Spaces:
Runtime error
Runtime error
File size: 2,810 Bytes
7f88dd7 b4d7fed 56afb5e 7022cc6 9e24192 7022cc6 5e47d3b 7022cc6 e90bb7a 7022cc6 2417919 fbaf836 2417919 9e24192 e793092 7f88dd7 46fd8e8 34d9197 c173614 34d9197 6ef6ed7 34d9197 e90bb7a 7f88dd7 9e24192 e90bb7a 9e24192 8c0fcd2 7022cc6 e90bb7a 9e24192 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 |
import gradio as gr
import yt_dlp
import os
import json
import rembg
import cv2
load_js = """
function(text_input, url_params) {
console.log(text_input, url_params);
const params = new URLSearchParams(window.location.search);
url_params = Object.fromEntries(params);
return [text_input, url_params]
}
"""
def rem_cv(inp):
cv2cap = cv2.VideoCapture(f'{inp}')
kernel = cv2.getStructuringElement(cv2.MORPH_ELLIPSE,(3,3))
fgbg = cv2.bgsegm.createBackgroundSubtractorGMG()
while True():
ret, frame = cap.read()
fgmask = fgbg.apply(frame)
fgmask = cv2.morphologyEx(fgmask, cv2.MORPH_OPEN, kernel)
yield (fgmask)
def rem_bg(inp):
out = rem_bg()
def rem_bg_og(inp):
#transparent background .mov
#os.system(f'backgroundremover -i "{inp}" -tv -o "{inp}.mov"')
#video video to be overlayed output
#os.system(f' backgroundremover -i "/path/to/video.mp4" -tov "/path/to/videtobeoverlayed.mp4" -o "output.mov"')
#video over image file
#os.system(f'backgroundremover -i "/path/to/video.mp4" -toi "/path/to/videtobeoverlayed.mp4" -o "output.mov"')
#output to transparent GIF
#os.system(f'backgroundremover -i "/path/to/video.mp4" -tg -o "output.gif"')
#output to matte background
os.system(f'backgroundremover -i "{inp}" -mk -o "{inp}.matte.mp4"')
return f'{inp}.matte.mp4'
def predict(text, url_params):
mod_url=""
mod=gr.HTML("")
out = None
valid=gr.update(visible=False)
mod_url = url_params.get('url')
print (mod_url)
return ["" + text + "", mod_url]
def dl(inp):
out = None
out_file=[]
try:
inp_out=inp.replace("https://","")
inp_out=inp_out.replace("/","_").replace(".","_")
os.system(f'yt-dlp "{inp}" --trim-filenames 100 -o "{inp_out}.mp4"')
out = f"{inp_out}.mp4"
except Exception as e:
print (e)
out = None
return out,out,out
with gr.Blocks() as app:
with gr.Tab("Load"):
inp_url = gr.Textbox()
go_btn = gr.Button("Run")
with gr.Row():
with gr.Column():
outp_vid=gr.Video()
with gr.Column():
outp_file=gr.Textbox()
with gr.Tab("Rem BG"):
with gr.Row():
with gr.Column():
rem_btn=gr.Button()
in_vid=gr.Video()
with gr.Column():
rem_vid=gr.Video()
with gr.Row(visible=False):
text_input=gr.Textbox()
text_output=gr.Textbox()
url_params=gr.JSON()
rem_btn.click(rem_cv,in_vid,rem_vid)
go_btn.click(dl,inp_url,[outp_vid,in_vid,outp_file])
app.load(fn=predict, inputs=[text_input,url_params], outputs=[text_output,text_input],_js=load_js)
app.launch()
|