Spaces:
Sleeping
Sleeping
import gradio as gr | |
from metaseg import SegAutoMaskGenerator | |
def image_app(): | |
with gr.Blocks(): | |
with gr.Row(): | |
with gr.Column(): | |
seg_automask_image_file = gr.Image(type="filepath").style(height=260) | |
with gr.Row(): | |
with gr.Column(): | |
seg_automask_image_model_type = gr.Dropdown( | |
choices=[ | |
"vit_h", | |
"vit_l", | |
"vit_b", | |
], | |
value="vit_l", | |
label="Model Type", | |
) | |
seg_automask_image_points_per_side = gr.Slider( | |
minimum=0, | |
maximum=32, | |
step=2, | |
value=16, | |
label="Points per Side", | |
) | |
seg_automask_image_points_per_batch = gr.Slider( | |
minimum=0, | |
maximum=64, | |
step=2, | |
value=64, | |
label="Points per Batch", | |
) | |
seg_automask_image_predict = gr.Button(value="Generator") | |
with gr.Column(): | |
output_image = gr.Image() | |
seg_automask_image_predict.click( | |
fn=SegAutoMaskGenerator().save_image, | |
inputs=[ | |
seg_automask_image_file, | |
seg_automask_image_model_type, | |
seg_automask_image_points_per_side, | |
seg_automask_image_points_per_batch, | |
], | |
outputs=[output_image], | |
) | |
def video_app(): | |
with gr.Blocks(): | |
with gr.Row(): | |
with gr.Column(): | |
seg_automask_video_file = gr.Video().style(height=260) | |
with gr.Row(): | |
with gr.Column(): | |
seg_automask_video_model_type = gr.Dropdown( | |
choices=[ | |
"vit_h", | |
"vit_l", | |
"vit_b", | |
], | |
value="vit_l", | |
label="Model Type", | |
) | |
seg_automask_video_points_per_side = gr.Slider( | |
minimum=0, | |
maximum=32, | |
step=2, | |
value=16, | |
label="Points per Side", | |
) | |
seg_automask_video_points_per_batch = gr.Slider( | |
minimum=0, | |
maximum=64, | |
step=2, | |
value=64, | |
label="Points per Batch", | |
) | |
seg_automask_video_predict = gr.Button(value="Generator") | |
with gr.Column(): | |
output_video = gr.Video() | |
seg_automask_video_predict.click( | |
fn=SegAutoMaskGenerator().save_image, | |
inputs=[ | |
seg_automask_video_file, | |
seg_automask_video_model_type, | |
seg_automask_video_points_per_side, | |
seg_automask_video_points_per_batch, | |
], | |
outputs=[output_video], | |
) | |
def metaseg_app(): | |
app = gr.Blocks() | |
with app: | |
with gr.Row(): | |
with gr.Column(): | |
with gr.Tab("Image"): | |
image_app() | |
with gr.Tab("Video"): | |
video_app() | |
app.queue(concurrency_count=2) | |
app.launch(debug=True, enable_queue=True) | |
if __name__ == "__main__": | |
metaseg_app() | |