Spaces:
Runtime error
Runtime error
Update app.py
Browse files
app.py
CHANGED
@@ -60,10 +60,25 @@ def capture_function(vid=None):
|
|
60 |
return fbox,fbox
|
61 |
|
62 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
63 |
def rem_bg(vid):
|
64 |
new_video_in = str(vid)
|
65 |
capture = cv2.VideoCapture(new_video_in)
|
66 |
frame_count = int(capture.get(cv2.CAP_PROP_FRAME_COUNT))
|
|
|
67 |
|
68 |
fbox2=[]
|
69 |
cnt=0
|
@@ -77,32 +92,10 @@ def rem_bg(vid):
|
|
77 |
cv2.imwrite(f'{uid}-rembg/{i}.png',out)
|
78 |
fbox2.append(f'{uid}-rembg/{i}.png')
|
79 |
frame_num=f'Working on {i+1} of {frame_count}'
|
80 |
-
yield fbox2,frame_num
|
81 |
-
|
82 |
-
|
83 |
-
def im_2_vid(images,fps):
|
84 |
-
#width, height = Image.open(images[0]).size
|
85 |
-
width, height = cv2.imread(images[0]).shape()
|
86 |
-
print (width,height)
|
87 |
-
size = (width, height)
|
88 |
-
codec = cv2.VideoWriter_fourcc(*'mp4v') #DIVX, DIVD
|
89 |
-
if (len(sys.argv) < 2 and n > 0):
|
90 |
-
video = cv2.VideoWriter(vidName, codec, nfs, (W, H))
|
91 |
-
else:
|
92 |
-
video = cv2.VideoWriter(vidName, codec, nfs, size)
|
93 |
-
|
94 |
-
#Do not open images in 'Image' as well as 'CV2', else following error occurs
|
95 |
-
#<built-in function imread> returned NULL without setting an error
|
96 |
-
for img in images:
|
97 |
-
#In case images are of different size, resize them to user specified values
|
98 |
-
if (len(sys.argv) < 2 and n > 0):
|
99 |
-
newImg = cv2.imread(img)
|
100 |
-
newImg = cv2.resize(newImg, (W, H))
|
101 |
-
video.write(newImg)
|
102 |
-
else:
|
103 |
-
video.write(img)
|
104 |
-
|
105 |
|
|
|
|
|
106 |
|
107 |
|
108 |
def rem_bg_og(inp):
|
@@ -139,8 +132,28 @@ def dl(inp):
|
|
139 |
except Exception as e:
|
140 |
print (e)
|
141 |
out = None
|
142 |
-
return out,out,out
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
143 |
|
|
|
|
|
|
|
144 |
with gr.Blocks() as app:
|
145 |
with gr.Tab("Load"):
|
146 |
|
@@ -154,6 +167,14 @@ with gr.Blocks() as app:
|
|
154 |
frame_count=gr.Textbox(label="Frame Count",interactive = False)
|
155 |
fps=gr.Textbox(label="FPS",interactive = False)
|
156 |
outp_file=gr.Files()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
157 |
with gr.Tab("Frames"):
|
158 |
frame_btn = gr.Button("Get Frames")
|
159 |
with gr.Row():
|
@@ -175,9 +196,11 @@ with gr.Blocks() as app:
|
|
175 |
text_input=gr.Textbox()
|
176 |
text_output=gr.Textbox()
|
177 |
url_params=gr.JSON()
|
|
|
|
|
178 |
outp_vid.change(load_video,outp_vid,[frame_count,fps])
|
179 |
frame_btn.click(capture_function,[outp_vid],[frame_gal,frame_file])
|
180 |
rem_btn.click(rem_bg,[outp_vid],[rem_vid,frame_num])
|
181 |
-
go_btn.click(dl,inp_url,[outp_vid,in_vid,outp_file])
|
182 |
app.load(fn=predict, inputs=[text_input,url_params], outputs=[text_output,text_input],_js=load_js)
|
183 |
app.launch()
|
|
|
60 |
return fbox,fbox
|
61 |
|
62 |
|
63 |
+
|
64 |
+
def im_2_vid(images,fps):
|
65 |
+
#width, height = Image.open(images[0]).size
|
66 |
+
width, height = cv2.imread(images[0]).shape()
|
67 |
+
print (width,height)
|
68 |
+
size = (width, height)
|
69 |
+
codec = cv2.VideoWriter_fourcc(*'mp4v') #DIVX, DIVD
|
70 |
+
video = cv2.VideoWriter(vidName, codec, fps, size)
|
71 |
+
|
72 |
+
#Do not open images in 'Image' as well as 'CV2', else following error occurs
|
73 |
+
#<built-in function imread> returned NULL without setting an error
|
74 |
+
for img in images:
|
75 |
+
video.write(img)
|
76 |
+
return (video)
|
77 |
def rem_bg(vid):
|
78 |
new_video_in = str(vid)
|
79 |
capture = cv2.VideoCapture(new_video_in)
|
80 |
frame_count = int(capture.get(cv2.CAP_PROP_FRAME_COUNT))
|
81 |
+
fps = capture.get(cv2.CAP_PROP_FPS)
|
82 |
|
83 |
fbox2=[]
|
84 |
cnt=0
|
|
|
92 |
cv2.imwrite(f'{uid}-rembg/{i}.png',out)
|
93 |
fbox2.append(f'{uid}-rembg/{i}.png')
|
94 |
frame_num=f'Working on {i+1} of {frame_count}'
|
95 |
+
yield fbox2,frame_num,None
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
96 |
|
97 |
+
out_vid = im_2_vid(fbox2, fps)
|
98 |
+
return (fbox2,frame_num,out_vid)
|
99 |
|
100 |
|
101 |
def rem_bg_og(inp):
|
|
|
132 |
except Exception as e:
|
133 |
print (e)
|
134 |
out = None
|
135 |
+
return out,out,out,out
|
136 |
+
def trim_clip(inp):
|
137 |
+
new_video_in = str(vid)
|
138 |
+
capture = cv2.VideoCapture(new_video_in)
|
139 |
+
frame_count = int(capture.get(cv2.CAP_PROP_FRAME_COUNT))
|
140 |
+
fps = capture.get(cv2.CAP_PROP_FPS)
|
141 |
+
fbox3=[]
|
142 |
+
frame_count1= int(frame_count)
|
143 |
+
for i in range(int(frame_count1)):
|
144 |
+
capture.set(cv2.CAP_PROP_POS_FRAMES, i)
|
145 |
+
ret, frame_f = capture.read(i)
|
146 |
+
#frame_ff = cv2.cvtColor(frame_f, cv2.COLOR_BGR2RGB)
|
147 |
+
out = rm(frame_f)
|
148 |
+
print (i)
|
149 |
+
cv2.imwrite(f'{uid}-rembg/{i}.png',out)
|
150 |
+
fbox3.append(f'{uid}-rembg/{i}.png')
|
151 |
+
frame_num=f'Working on {i+1} of {frame_count}'
|
152 |
+
yield fbox2,frame_num,None
|
153 |
|
154 |
+
|
155 |
+
|
156 |
+
|
157 |
with gr.Blocks() as app:
|
158 |
with gr.Tab("Load"):
|
159 |
|
|
|
167 |
frame_count=gr.Textbox(label="Frame Count",interactive = False)
|
168 |
fps=gr.Textbox(label="FPS",interactive = False)
|
169 |
outp_file=gr.Files()
|
170 |
+
with gr.Tab("Trim"):
|
171 |
+
with gr.Row():
|
172 |
+
start_f=gr.Number(value=0)
|
173 |
+
end_f=gr.Number(value=1)
|
174 |
+
trim_btn=gr.Button("Trim")
|
175 |
+
with gr.Row():
|
176 |
+
in_trim = gr.Video()
|
177 |
+
out_trim=gr.Video()
|
178 |
with gr.Tab("Frames"):
|
179 |
frame_btn = gr.Button("Get Frames")
|
180 |
with gr.Row():
|
|
|
196 |
text_input=gr.Textbox()
|
197 |
text_output=gr.Textbox()
|
198 |
url_params=gr.JSON()
|
199 |
+
in_trim.change(None,in_trim,out_trim)
|
200 |
+
trim_btn.click(trim_clip,in_trim,out_trim)
|
201 |
outp_vid.change(load_video,outp_vid,[frame_count,fps])
|
202 |
frame_btn.click(capture_function,[outp_vid],[frame_gal,frame_file])
|
203 |
rem_btn.click(rem_bg,[outp_vid],[rem_vid,frame_num])
|
204 |
+
go_btn.click(dl,inp_url,[outp_vid,in_vid,outp_file,in_trim])
|
205 |
app.load(fn=predict, inputs=[text_input,url_params], outputs=[text_output,text_input],_js=load_js)
|
206 |
app.launch()
|