Spaces:
Runtime error
Runtime error
Update app.py
Browse files
app.py
CHANGED
@@ -85,14 +85,14 @@ def remove_watermark(image, blur_type="strong_gaussian"):
|
|
85 |
|
86 |
|
87 |
|
88 |
-
def process_frame(frame_path, save_path):
|
89 |
image = cv2.imread(frame_path)
|
90 |
|
91 |
if image is None:
|
92 |
print(f"Failed to load: {frame_path}") # Debugging step
|
93 |
return
|
94 |
|
95 |
-
no_watermark_image = remove_watermark(image, blur_type=
|
96 |
|
97 |
output_file = os.path.join(save_path, os.path.basename(frame_path))
|
98 |
success = cv2.imwrite(output_file, no_watermark_image)
|
@@ -100,7 +100,7 @@ def process_frame(frame_path, save_path):
|
|
100 |
if not success:
|
101 |
print(f"Failed to save: {output_file}") # Debugging step
|
102 |
|
103 |
-
def batch_process(batch_size=100):
|
104 |
input_folder = "./frames"
|
105 |
output_folder = "./clean"
|
106 |
|
@@ -111,7 +111,7 @@ def batch_process(batch_size=100):
|
|
111 |
frame_paths = [os.path.join(input_folder, f) for f in os.listdir(input_folder) if f.endswith((".jpg", ".png"))]
|
112 |
|
113 |
with ThreadPoolExecutor() as executor:
|
114 |
-
executor.map(process_frame, frame_paths, [output_folder] * len(frame_paths))
|
115 |
|
116 |
print(f"Processing complete! {len(frame_paths)} frames saved to {output_folder}")
|
117 |
|
@@ -255,11 +255,11 @@ def recover_audio(upload_path):
|
|
255 |
if var2==0:
|
256 |
return save_path
|
257 |
return None
|
258 |
-
def video_watermark_remover(video_path):
|
259 |
global gpu
|
260 |
upload_path=upload_file(video_path)
|
261 |
extract_frames(upload_path, "./frames")
|
262 |
-
batch_process(
|
263 |
vido_chunks(upload_path)
|
264 |
marge_video(gpu=gpu)
|
265 |
save_path=recover_audio(upload_path)
|
@@ -269,13 +269,18 @@ def video_watermark_remover(video_path):
|
|
269 |
import gradio as gr
|
270 |
import click
|
271 |
|
272 |
-
def gradio_interface(video_file):
|
273 |
-
vid_path=video_watermark_remover(video_file)
|
274 |
return vid_path,vid_path
|
275 |
|
|
|
|
|
276 |
demo = gr.Interface(
|
277 |
fn=gradio_interface,
|
278 |
-
inputs=
|
|
|
|
|
|
|
279 |
outputs=[gr.File(label="Download Video"),gr.Video(label="Play Video")],
|
280 |
title="Video Watermark Remover",
|
281 |
description="Upload a video, and this tool will remove watermarks using blurring techniques."
|
@@ -289,4 +294,4 @@ demo = gr.Interface(
|
|
289 |
def main(debug, share):
|
290 |
demo.queue().launch(debug=debug, share=share)
|
291 |
if __name__ == "__main__":
|
292 |
-
main()
|
|
|
85 |
|
86 |
|
87 |
|
88 |
+
def process_frame(frame_path, save_path, blur_type):
|
89 |
image = cv2.imread(frame_path)
|
90 |
|
91 |
if image is None:
|
92 |
print(f"Failed to load: {frame_path}") # Debugging step
|
93 |
return
|
94 |
|
95 |
+
no_watermark_image = remove_watermark(image, blur_type=blur_type)
|
96 |
|
97 |
output_file = os.path.join(save_path, os.path.basename(frame_path))
|
98 |
success = cv2.imwrite(output_file, no_watermark_image)
|
|
|
100 |
if not success:
|
101 |
print(f"Failed to save: {output_file}") # Debugging step
|
102 |
|
103 |
+
def batch_process(blur_type="median", batch_size=100):
|
104 |
input_folder = "./frames"
|
105 |
output_folder = "./clean"
|
106 |
|
|
|
111 |
frame_paths = [os.path.join(input_folder, f) for f in os.listdir(input_folder) if f.endswith((".jpg", ".png"))]
|
112 |
|
113 |
with ThreadPoolExecutor() as executor:
|
114 |
+
executor.map(process_frame, frame_paths, [output_folder] * len(frame_paths), [blur_type] * len(frame_paths))
|
115 |
|
116 |
print(f"Processing complete! {len(frame_paths)} frames saved to {output_folder}")
|
117 |
|
|
|
255 |
if var2==0:
|
256 |
return save_path
|
257 |
return None
|
258 |
+
def video_watermark_remover(video_path, blur_type="median"):
|
259 |
global gpu
|
260 |
upload_path=upload_file(video_path)
|
261 |
extract_frames(upload_path, "./frames")
|
262 |
+
batch_process(blur_type=blur_type)
|
263 |
vido_chunks(upload_path)
|
264 |
marge_video(gpu=gpu)
|
265 |
save_path=recover_audio(upload_path)
|
|
|
269 |
import gradio as gr
|
270 |
import click
|
271 |
|
272 |
+
def gradio_interface(video_file, blur_type):
|
273 |
+
vid_path=video_watermark_remover(video_file, blur_type=blur_type)
|
274 |
return vid_path,vid_path
|
275 |
|
276 |
+
blur_types = ["strong_gaussian", "median"]
|
277 |
+
|
278 |
demo = gr.Interface(
|
279 |
fn=gradio_interface,
|
280 |
+
inputs=[
|
281 |
+
gr.File(label="Upload Video"),
|
282 |
+
gr.Dropdown(choices=blur_types, label="Blur Type", value="strong_gaussian") # Default to median
|
283 |
+
],
|
284 |
outputs=[gr.File(label="Download Video"),gr.Video(label="Play Video")],
|
285 |
title="Video Watermark Remover",
|
286 |
description="Upload a video, and this tool will remove watermarks using blurring techniques."
|
|
|
294 |
def main(debug, share):
|
295 |
demo.queue().launch(debug=debug, share=share)
|
296 |
if __name__ == "__main__":
|
297 |
+
main()
|