Spaces:
Running on Zero
Running on Zero
fix gradio cache_examples None output crash
Browse files
app.py
CHANGED
|
@@ -27,6 +27,15 @@ import numpy as np
|
|
| 27 |
import cv2
|
| 28 |
import gradio as gr
|
| 29 |
import onnxruntime as ort
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 30 |
from huggingface_hub import hf_hub_download
|
| 31 |
|
| 32 |
cv2.setNumThreads(2)
|
|
@@ -495,6 +504,10 @@ def process_video(video_path, resolution, despill_val, mask_mode,
|
|
| 495 |
# Gradio UI
|
| 496 |
# ---------------------------------------------------------------------------
|
| 497 |
|
|
|
|
|
|
|
|
|
|
|
|
|
| 498 |
if HAS_CUDA:
|
| 499 |
DESCRIPTION = "# CorridorKey Green Screen Matting\nRemove green backgrounds from video. Based on [CorridorKey](https://www.youtube.com/watch?v=3Ploi723hg4) by Corridor Digital. GPU mode: max {max_dur}s / {max_frames} frames.".format(max_dur=MAX_DURATION_GPU, max_frames=MAX_FRAMES)
|
| 500 |
else:
|
|
@@ -559,7 +572,11 @@ with gr.Blocks(title="CorridorKey") as demo:
|
|
| 559 |
["examples/corridor_greenscreen_demo.mp4", "1024", 5, "Hybrid (auto)", True, 400, "Composite on checkerboard (MP4)"],
|
| 560 |
],
|
| 561 |
inputs=[input_video, resolution, despill_slider, mask_mode, despeckle_check, despeckle_size, output_mode],
|
| 562 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
| 563 |
)
|
| 564 |
|
| 565 |
process_btn.click(
|
|
|
|
| 27 |
import cv2
|
| 28 |
import gradio as gr
|
| 29 |
import onnxruntime as ort
|
| 30 |
+
|
| 31 |
+
# Workaround: Gradio cache_examples bug with None outputs.
|
| 32 |
+
# CSVLogger.flag() writes "" for None, read_from_flag("") calls json.loads("") -> crash.
|
| 33 |
+
_original_read_from_flag = gr.components.Component.read_from_flag
|
| 34 |
+
def _patched_read_from_flag(self, payload):
|
| 35 |
+
if payload is None or (isinstance(payload, str) and payload.strip() == ""):
|
| 36 |
+
return None
|
| 37 |
+
return _original_read_from_flag(self, payload)
|
| 38 |
+
gr.components.Component.read_from_flag = _patched_read_from_flag
|
| 39 |
from huggingface_hub import hf_hub_download
|
| 40 |
|
| 41 |
cv2.setNumThreads(2)
|
|
|
|
| 504 |
# Gradio UI
|
| 505 |
# ---------------------------------------------------------------------------
|
| 506 |
|
| 507 |
+
def process_example(video_path, resolution, despill, mask_mode, despeckle, despeckle_size, output_mode):
|
| 508 |
+
return process_video(video_path, resolution, despill, mask_mode, despeckle, despeckle_size, output_mode)
|
| 509 |
+
|
| 510 |
+
|
| 511 |
if HAS_CUDA:
|
| 512 |
DESCRIPTION = "# CorridorKey Green Screen Matting\nRemove green backgrounds from video. Based on [CorridorKey](https://www.youtube.com/watch?v=3Ploi723hg4) by Corridor Digital. GPU mode: max {max_dur}s / {max_frames} frames.".format(max_dur=MAX_DURATION_GPU, max_frames=MAX_FRAMES)
|
| 513 |
else:
|
|
|
|
| 572 |
["examples/corridor_greenscreen_demo.mp4", "1024", 5, "Hybrid (auto)", True, 400, "Composite on checkerboard (MP4)"],
|
| 573 |
],
|
| 574 |
inputs=[input_video, resolution, despill_slider, mask_mode, despeckle_check, despeckle_size, output_mode],
|
| 575 |
+
outputs=[output_video, output_file, status_text],
|
| 576 |
+
fn=process_example,
|
| 577 |
+
cache_examples=True,
|
| 578 |
+
cache_mode="lazy",
|
| 579 |
+
label="Examples (click to load)"
|
| 580 |
)
|
| 581 |
|
| 582 |
process_btn.click(
|