Felguk commited on
Commit
330c946
·
verified ·
1 Parent(s): 55c4f0a

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +74 -16
app.py CHANGED
@@ -1,7 +1,7 @@
1
  import gradio as gr
2
  from huggingface_hub import InferenceClient
3
  import PyPDF2
4
- from PIL import Image, ImageFont, ImageDraw
5
  import cv2
6
  import numpy as np
7
  from pydub import AudioSegment
@@ -16,6 +16,8 @@ import time
16
  import requests
17
  import zipfile
18
  import os
 
 
19
 
20
  # Инициализация клиента для модели HuggingFaceH4/zephyr-7b-beta
21
  client = InferenceClient("HuggingFaceH4/zephyr-7b-beta")
@@ -209,6 +211,49 @@ def generate_text_image(text, font_file, font_size=40, bg_color="#FFFFFF", text_
209
  image.save(tmp_file.name)
210
  return tmp_file.name
211
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
212
  # Создание интерфейса
213
  with gr.Blocks() as demo:
214
  # Заголовок с изображением
@@ -263,22 +308,35 @@ with gr.Blocks() as demo:
263
  convert_button = gr.Button("Конвертировать")
264
  convert_button.click(fn=convert_image, inputs=[img_input, img_format], outputs=img_output)
265
 
266
- # Вкладка Felguk Fonts
267
- with gr.Tab("Felguk Fonts"):
268
- gr.Markdown("## Felguk Fonts: Генерация текста с шрифтом")
269
- text_input = gr.Textbox(label="Введите текст", placeholder="Введите текст здесь...")
270
- font_input = gr.File(label="Загрузите шрифт (.ttf, .otf, .zip)", file_types=[".ttf", ".otf", ".zip"])
271
- font_size_input = gr.Slider(minimum=10, maximum=100, value=40, label="Размер шрифта")
272
- bg_color_input = gr.ColorPicker(label="Цвет фона", value="#FFFFFF")
273
- text_color_input = gr.ColorPicker(label="Цвет текста", value="#000000")
274
- generate_button = gr.Button("Сгенерировать изображение")
275
  image_output = gr.Image(label="Результат", type="filepath")
276
-
277
- generate_button.click(
278
- fn=generate_text_image,
279
- inputs=[text_input, font_input, font_size_input, bg_color_input, text_color_input],
280
- outputs=image_output
281
- )
 
 
 
 
 
 
 
 
 
 
 
 
 
 
282
 
283
  # Интерфейс чата
284
  chat_interface = gr.ChatInterface(
 
1
  import gradio as gr
2
  from huggingface_hub import InferenceClient
3
  import PyPDF2
4
+ from PIL import Image, ImageEnhance, ImageFont, ImageDraw
5
  import cv2
6
  import numpy as np
7
  from pydub import AudioSegment
 
16
  import requests
17
  import zipfile
18
  import os
19
+ import torchaudio
20
+ from transformers import pipeline
21
 
22
  # Инициализация клиента для модели HuggingFaceH4/zephyr-7b-beta
23
  client = InferenceClient("HuggingFaceH4/zephyr-7b-beta")
 
211
  image.save(tmp_file.name)
212
  return tmp_file.name
213
 
214
+ # Функция для улучшения качества изображения
215
+ def enhance_image(image, contrast_factor=1.5, brightness_factor=1.2, sharpness_factor=1.5):
216
+ if image is None:
217
+ return None
218
+
219
+ img = Image.open(image.name)
220
+
221
+ # Улучшение контраста
222
+ enhancer = ImageEnhance.Contrast(img)
223
+ img = enhancer.enhance(contrast_factor)
224
+
225
+ # Улучшение яркости
226
+ enhancer = ImageEnhance.Brightness(img)
227
+ img = enhancer.enhance(brightness_factor)
228
+
229
+ # Улучшение резкости
230
+ enhancer = ImageEnhance.Sharpness(img)
231
+ img = enhancer.enhance(sharpness_factor)
232
+
233
+ # Сохраняем изображение во временный файл
234
+ with tempfile.NamedTemporaryFile(delete=False, suffix=".jpg") as tmp_file:
235
+ img.save(tmp_file.name)
236
+ return tmp_file.name
237
+
238
+ # Функция для обрезки аудио
239
+ def trim_audio(file, start_time: float, end_time: float):
240
+ if file is None:
241
+ return "Файл не загружен."
242
+
243
+ audio = AudioSegment.from_file(file.name)
244
+ trimmed_audio = audio[start_time * 1000:end_time * 1000]
245
+
246
+ # Сохраняем обрезанное аудио во временный файл
247
+ with tempfile.NamedTemporaryFile(delete=False, suffix=".wav") as tmp_file:
248
+ trimmed_audio.export(tmp_file.name, format="wav")
249
+ return tmp_file.name
250
+
251
+ # Функция для суммаризации текста
252
+ def summarize_text(text: str, max_length: int = 100):
253
+ summarizer = pipeline("summarization", model="facebook/bart-large-cnn")
254
+ summary = summarizer(text, max_length=max_length, min_length=30, do_sample=False)
255
+ return summary[0]['summary_text']
256
+
257
  # Создание интерфейса
258
  with gr.Blocks() as demo:
259
  # Заголовок с изображением
 
308
  convert_button = gr.Button("Конвертировать")
309
  convert_button.click(fn=convert_image, inputs=[img_input, img_format], outputs=img_output)
310
 
311
+ # Вкладка Felguk-ImageEnhancer
312
+ with gr.Tab("Felguk-ImageEnhancer"):
313
+ gr.Markdown("## Felguk-ImageEnhancer: Улучшение качества изображений")
314
+ image_input = gr.File(label="Загрузите изображение", file_types=["image"])
315
+ contrast_slider = gr.Slider(label="Контраст", minimum=0.5, maximum=2.0, value=1.5)
316
+ brightness_slider = gr.Slider(label="Яркость", minimum=0.5, maximum=2.0, value=1.2)
317
+ sharpness_slider = gr.Slider(label="Резкость", minimum=0.5, maximum=2.0, value=1.5)
318
+ enhance_button = gr.Button("Улучшить изображение")
 
319
  image_output = gr.Image(label="Результат", type="filepath")
320
+ enhance_button.click(fn=enhance_image, inputs=[image_input, contrast_slider, brightness_slider, sharpness_slider], outputs=image_output)
321
+
322
+ # Вкладка Felguk-AudioTrimmer
323
+ with gr.Tab("Felguk-AudioTrimmer"):
324
+ gr.Markdown("## Felguk-AudioTrimmer: Обрезка аудиофайлов")
325
+ audio_input = gr.File(label="Загрузите аудиофайл", file_types=[".mp3", ".wav"])
326
+ start_time = gr.Number(label="Начало обрезки (сек)", value=0)
327
+ end_time = gr.Number(label="Конец обрезки (сек)", value=10)
328
+ trim_button = gr.Button("Обрезать аудио")
329
+ audio_output = gr.Audio(label="Результат")
330
+ trim_button.click(fn=trim_audio, inputs=[audio_input, start_time, end_time], outputs=audio_output)
331
+
332
+ # Вкладка Felguk-TextSummarizer
333
+ with gr.Tab("Felguk-TextSummarizer"):
334
+ gr.Markdown("## Felguk-TextSummarizer: Суммаризация текста")
335
+ text_input = gr.Textbox(label="Введите текст для суммаризации", lines=5)
336
+ max_length_slider = gr.Slider(label="Максимальная длина текста", minimum=30, maximum=200, value=100)
337
+ summarize_button = gr.Button("Суммаризировать")
338
+ summary_output = gr.Textbox(label="Результат", interactive=False)
339
+ summarize_button.click(fn=summarize_text, inputs=[text_input, max_length_slider], outputs=summary_output)
340
 
341
  # Интерфейс чата
342
  chat_interface = gr.ChatInterface(