Spaces:
Paused
Paused
Update web-demos/hugging_face/app.py
Browse files- web-demos/hugging_face/app.py +48 -51
web-demos/hugging_face/app.py
CHANGED
@@ -623,62 +623,59 @@ with gr.Blocks(theme=gr.themes.Monochrome(), css=css) as iface:
|
|
623 |
value=10,)
|
624 |
|
625 |
with gr.Column():
|
626 |
-
|
627 |
-
|
628 |
-
|
629 |
-
|
630 |
-
|
631 |
-
|
632 |
-
|
633 |
-
|
634 |
-
|
635 |
-
|
636 |
-
|
637 |
-
|
638 |
-
|
639 |
-
|
640 |
-
with gr.
|
641 |
-
|
642 |
-
|
643 |
-
|
644 |
-
|
645 |
-
|
646 |
-
|
647 |
-
|
648 |
-
|
649 |
-
track_pause_number_slider = gr.Slider(minimum=1, maximum=100, step=1, value=1, label="Track end frame", visible=False)
|
650 |
-
with gr.Column(scale=2, elem_classes="jc_center"):
|
651 |
-
mask_mode_selector = gr.Radio(
|
652 |
choices=["Click", "Draw"],
|
653 |
value="Click",
|
654 |
label="Mask input mode",
|
655 |
interactive=True,
|
656 |
visible=False
|
657 |
-
|
658 |
-
|
659 |
-
|
660 |
-
|
661 |
-
|
662 |
-
|
663 |
-
|
664 |
-
|
665 |
-
|
666 |
-
|
667 |
-
|
668 |
-
|
669 |
-
|
670 |
-
|
671 |
-
|
672 |
-
|
673 |
-
|
674 |
-
|
675 |
-
|
676 |
-
|
677 |
-
|
678 |
-
|
679 |
-
|
680 |
-
|
681 |
-
|
682 |
|
683 |
# first step: get the video information
|
684 |
extract_frames_button.click(
|
|
|
623 |
value=10,)
|
624 |
|
625 |
with gr.Column():
|
626 |
+
# Step 1: Upload video
|
627 |
+
gr.Markdown("## Step1: Upload video")
|
628 |
+
with gr.Row(equal_height=True):
|
629 |
+
with gr.Column(scale=2):
|
630 |
+
video_input = gr.Video(elem_classes="video")
|
631 |
+
extract_frames_button = gr.Button(value="Get video info", interactive=True, variant="primary")
|
632 |
+
with gr.Column(scale=2):
|
633 |
+
run_status = gr.HighlightedText(value=[("",""), ("Try to upload your video and click the Get video info button to get started!", "Normal")],
|
634 |
+
color_map={"Normal": "green", "Error": "red", "Clear clicks": "gray", "Add mask": "green", "Remove mask": "red"})
|
635 |
+
video_info = gr.Textbox(label="Video Info")
|
636 |
+
|
637 |
+
# Step 2: Add masks
|
638 |
+
step2_title = gr.Markdown("---\n## Step2: Add masks", visible=False)
|
639 |
+
with gr.Row(equal_height=True):
|
640 |
+
with gr.Column(scale=2):
|
641 |
+
template_frame = gr.Image(type="numpy", label="Draw mask manually or click to add", tool="sketch", brush_radius=2, interactive=True, visible=False, elem_id="template_frame", elem_classes="image")
|
642 |
+
image_selection_slider = gr.Slider(minimum=1, maximum=100, step=1, value=1, label="Track start frame", visible=False)
|
643 |
+
track_pause_number_slider = gr.Slider(minimum=1, maximum=100, step=1, value=1, label="Track end frame", visible=False)
|
644 |
+
with gr.Column(scale=2, elem_classes="jc_center"):
|
645 |
+
run_status2 = gr.HighlightedText(value=[("",""), ("Use click or draw to select mask, then track or inpaint.", "Normal")],
|
646 |
+
color_map={"Normal": "green", "Error": "red", "Clear clicks": "gray", "Add mask": "green", "Remove mask": "red"},
|
647 |
+
visible=False)
|
648 |
+
mask_mode_selector = gr.Radio(
|
|
|
|
|
|
|
649 |
choices=["Click", "Draw"],
|
650 |
value="Click",
|
651 |
label="Mask input mode",
|
652 |
interactive=True,
|
653 |
visible=False
|
654 |
+
)
|
655 |
+
point_prompt = gr.Radio(
|
656 |
+
choices=["Positive", "Negative"],
|
657 |
+
value="Positive",
|
658 |
+
label="Point prompt",
|
659 |
+
interactive=True,
|
660 |
+
visible=False,
|
661 |
+
min_width=100,
|
662 |
+
scale=1
|
663 |
+
)
|
664 |
+
with gr.Row(elem_classes="mask_button_group"):
|
665 |
+
Add_mask_button = gr.Button(value="Add mask", interactive=True, visible=False, elem_classes="add_button")
|
666 |
+
remove_mask_button = gr.Button(value="Remove mask", interactive=True, visible=False, elem_classes="remove_button")
|
667 |
+
clear_button_click = gr.Button(value="Clear clicks", interactive=True, visible=False, elem_classes="clear_button")
|
668 |
+
mask_dropdown = gr.Dropdown(multiselect=True, value=[], label="Mask selection", info=".", visible=False)
|
669 |
+
|
670 |
+
# Step 3: Tracking & Inpainting
|
671 |
+
step3_title = gr.Markdown("---\n## Step3: Track masks and get the inpainting result", visible=False)
|
672 |
+
with gr.Row(equal_height=True):
|
673 |
+
with gr.Column(scale=2):
|
674 |
+
tracking_video_output = gr.Video(visible=False, elem_classes="video")
|
675 |
+
tracking_video_predict_button = gr.Button(value="1. Tracking", visible=False, elem_classes="margin_center")
|
676 |
+
with gr.Column(scale=2):
|
677 |
+
inpaiting_video_output = gr.Video(visible=False, elem_classes="video")
|
678 |
+
inpaint_video_predict_button = gr.Button(value="2. Inpainting", visible=False, elem_classes="margin_center")
|
679 |
|
680 |
# first step: get the video information
|
681 |
extract_frames_button.click(
|