ColebAi / app.py
Doubleupai's picture
Create app.py
c77c287 verified
import gradio as gr
from rembg import remove
from PIL import Image
import numpy as np
import librosa
import soundfile as sf
from spleeter.separator import Separator
import cv2
from pytube import YouTube
import requests
# Функция для удаления фона с изображения
def remove_background(image):
output = remove(image)
return output
# Функция для удаления вокала из аудио
def remove_vocal(audio_path):
separator = Separator('spleeter:2stems')
separator.separate_to_file(audio_path, 'output')
return 'output/vocals.wav'
# Функция для удаления объекта на фото (пример: удаление объекта по маске)
def delete_object(image, mask):
image = np.array(image)
mask = np.array(mask)
result = cv2.inpaint(image, mask, inpaintRadius=3, flags=cv2.INPAINT_TELEA)
return Image.fromarray(result)
# Функция для загрузки видео с YouTube, Facebook, Vimeo, Dailymotion и Instagram
def download_video(url, platform):
if platform == "youtube":
yt = YouTube(url)
stream = yt.streams.get_highest_resolution()
stream.download(output_path="downloads", filename="video.mp4")
elif platform == "facebook":
# Используйте библиотеку youtube-dl или другую для загрузки с Facebook
pass
elif platform == "vimeo":
# Используйте библиотеку youtube-dl или другую для загрузки с Vimeo
pass
elif platform == "dailymotion":
# Используйте библиотеку youtube-dl или другую для загрузки с Dailymotion
pass
elif platform == "instagram":
# Используйте библиотеку youtube-dl или другую для загрузки с Instagram
pass
return "downloads/video.mp4"
# Создание интерфейса Gradio
with gr.Blocks() as demo:
with gr.Tab("AI Remove Background"):
image_input = gr.Image(label="Upload Image")
image_output = gr.Image(label="Result")
remove_bg_button = gr.Button("Remove Background")
remove_bg_button.click(remove_background, inputs=image_input, outputs=image_output)
with gr.Tab("Vocal Remover"):
audio_input = gr.Audio(label="Upload Audio", type="filepath")
audio_output = gr.Audio(label="Result")
remove_vocal_button = gr.Button("Remove Vocal")
remove_vocal_button.click(remove_vocal, inputs=audio_input, outputs=audio_output)
with gr.Tab("Delete Object in Photo"):
image_input_obj = gr.Image(label="Upload Image")
mask_input = gr.Image(label="Upload Mask", type="numpy")
image_output_obj = gr.Image(label="Result")
delete_object_button = gr.Button("Delete Object")
delete_object_button.click(delete_object, inputs=[image_input_obj, mask_input], outputs=image_output_obj)
with gr.Tab("Download Videos"):
url_input = gr.Textbox(label="Video URL")
platform_input = gr.Dropdown(label="Platform", choices=["youtube", "facebook", "vimeo", "dailymotion", "instagram"])
download_button = gr.Button("Download Video")
download_output = gr.Video(label="Downloaded Video")
download_button.click(download_video, inputs=[url_input, platform_input], outputs=download_output)
demo.launch()