Doubleupai commited on
Commit
c77c287
·
verified ·
1 Parent(s): fb9c846

Create app.py

Browse files
Files changed (1) hide show
  1. app.py +78 -0
app.py ADDED
@@ -0,0 +1,78 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import gradio as gr
2
+ from rembg import remove
3
+ from PIL import Image
4
+ import numpy as np
5
+ import librosa
6
+ import soundfile as sf
7
+ from spleeter.separator import Separator
8
+ import cv2
9
+ from pytube import YouTube
10
+ import requests
11
+
12
+ # Функция для удаления фона с изображения
13
+ def remove_background(image):
14
+ output = remove(image)
15
+ return output
16
+
17
+ # Функция для удаления вокала из аудио
18
+ def remove_vocal(audio_path):
19
+ separator = Separator('spleeter:2stems')
20
+ separator.separate_to_file(audio_path, 'output')
21
+ return 'output/vocals.wav'
22
+
23
+ # Функция для удаления объекта на фото (пример: удаление объекта по маске)
24
+ def delete_object(image, mask):
25
+ image = np.array(image)
26
+ mask = np.array(mask)
27
+ result = cv2.inpaint(image, mask, inpaintRadius=3, flags=cv2.INPAINT_TELEA)
28
+ return Image.fromarray(result)
29
+
30
+ # Функция для загрузки видео с YouTube, Facebook, Vimeo, Dailymotion и Instagram
31
+ def download_video(url, platform):
32
+ if platform == "youtube":
33
+ yt = YouTube(url)
34
+ stream = yt.streams.get_highest_resolution()
35
+ stream.download(output_path="downloads", filename="video.mp4")
36
+ elif platform == "facebook":
37
+ # Используйте библиотеку youtube-dl или другую для загрузки с Facebook
38
+ pass
39
+ elif platform == "vimeo":
40
+ # Используйте библиотеку youtube-dl или другую для загрузки с Vimeo
41
+ pass
42
+ elif platform == "dailymotion":
43
+ # Используйте библиотеку youtube-dl или другую для загрузки с Dailymotion
44
+ pass
45
+ elif platform == "instagram":
46
+ # Используйте библиотеку youtube-dl или другую для загрузки с Instagram
47
+ pass
48
+ return "downloads/video.mp4"
49
+
50
+ # Создание интерфейса Gradio
51
+ with gr.Blocks() as demo:
52
+ with gr.Tab("AI Remove Background"):
53
+ image_input = gr.Image(label="Upload Image")
54
+ image_output = gr.Image(label="Result")
55
+ remove_bg_button = gr.Button("Remove Background")
56
+ remove_bg_button.click(remove_background, inputs=image_input, outputs=image_output)
57
+
58
+ with gr.Tab("Vocal Remover"):
59
+ audio_input = gr.Audio(label="Upload Audio", type="filepath")
60
+ audio_output = gr.Audio(label="Result")
61
+ remove_vocal_button = gr.Button("Remove Vocal")
62
+ remove_vocal_button.click(remove_vocal, inputs=audio_input, outputs=audio_output)
63
+
64
+ with gr.Tab("Delete Object in Photo"):
65
+ image_input_obj = gr.Image(label="Upload Image")
66
+ mask_input = gr.Image(label="Upload Mask", type="numpy")
67
+ image_output_obj = gr.Image(label="Result")
68
+ delete_object_button = gr.Button("Delete Object")
69
+ delete_object_button.click(delete_object, inputs=[image_input_obj, mask_input], outputs=image_output_obj)
70
+
71
+ with gr.Tab("Download Videos"):
72
+ url_input = gr.Textbox(label="Video URL")
73
+ platform_input = gr.Dropdown(label="Platform", choices=["youtube", "facebook", "vimeo", "dailymotion", "instagram"])
74
+ download_button = gr.Button("Download Video")
75
+ download_output = gr.Video(label="Downloaded Video")
76
+ download_button.click(download_video, inputs=[url_input, platform_input], outputs=download_output)
77
+
78
+ demo.launch()