Spaces:
Runtime error
Runtime error
import gradio as gr | |
from gradio_imageslider import ImageSlider | |
from helper import create_transparent_foreground,remove_background_batch_images,remove_background_from_video | |
from soft_foreground_segmenter import SoftForegroundSegmenter | |
foreground_model = "foreground-segmentation-model-vitl16_384.onnx" | |
foreground_segmenter = SoftForegroundSegmenter(onnx_model=foreground_model) | |
def process_image(image_path): | |
original, transparent, output_image_path = create_transparent_foreground(image_path,foreground_segmenter) | |
return (original, transparent), output_image_path | |
def ui1(): | |
with gr.Blocks() as demo: | |
gr.Markdown("## πͺ Background Remove From Image") | |
with gr.Row(): | |
with gr.Column(): | |
image_input = gr.Image(type="filepath", label="Upload Image") | |
btn = gr.Button("Remove Background") | |
with gr.Column(): | |
image_slider = ImageSlider(label="Before vs After",position=0.5) | |
save_path_box = gr.File(label="Download Transparent Image") | |
btn.click( | |
fn=process_image, | |
inputs=image_input, | |
outputs=[image_slider, save_path_box] | |
) | |
gr.Examples( | |
examples=[["./assets/cat.png"],["./assets/girl.jpg"],["./assets/dog.jpg"]], | |
inputs=[image_input], | |
outputs=[image_slider, save_path_box], | |
fn=process_image, | |
cache_examples=True, | |
) | |
return demo | |
def process_uploaded_images(uploaded_images): | |
return remove_background_batch_images(uploaded_images,foreground_segmenter) | |
def ui2(): | |
with gr.Blocks() as demo: | |
gr.Markdown("## πͺ Background Remover From Bulk Images") | |
with gr.Row(): | |
with gr.Column(): | |
image_input = gr.File(file_types=["image"], file_count="multiple", label="Upload Multiple Images") | |
submit_btn = gr.Button("Remove Backgrounds") | |
with gr.Column(): | |
zip_output = gr.File(label="Download ZIP") | |
submit_btn.click(fn=process_uploaded_images, inputs=image_input, outputs=zip_output) | |
return demo | |
def process_video(video_file): | |
output_path = remove_background_from_video(video_file, foreground_segmenter) | |
return output_path # should be absolute or relative path to processed video | |
def ui3(): | |
# --- Gradio Interface --- | |
with gr.Blocks() as demo: | |
gr.Markdown("## π₯ Remove Background From Video") | |
with gr.Row(): | |
with gr.Column(): | |
input_video = gr.Video(label="Upload Video (.mp4)") | |
run_btn = gr.Button("Remove Background") | |
with gr.Column(): | |
output_video = gr.Video(label="Green Screen Video") | |
run_btn.click(fn=process_video, inputs=input_video, outputs=output_video) | |
# gr.Examples( | |
# examples=[["./assets/video.mp4"]], | |
# inputs=[input_video], | |
# outputs=[output_video], | |
# fn=process_video, | |
# cache_examples=True, | |
# ) | |
return demo | |
demo1=ui1() | |
demo2=ui2() | |
demo3=ui3() | |
demo = gr.TabbedInterface([demo1, demo2,demo3],["Background Remove From Image","Background Remover From Bulk Images","Remove Background From Video"],title="Microsoft DAViD Background Remove") | |
demo.queue().launch(debug=True, share=True) | |