Spaces:
Running
on
Zero
Running
on
Zero
import numpy as np | |
import gradio as gr | |
from PIL import Image | |
from io import BytesIO | |
from copy import deepcopy | |
from core import process_inpaint | |
from huggingface_hub import login | |
import os | |
import spaces | |
login(os.getenv("HF_TOKEN")) | |
def process_image(image, mask, progress=gr.Progress(track_tqdm=True)): | |
if np.unique(mask["background"]).size == 1: | |
mask = image["layers"][0] | |
output = process_inpaint(image["background"], mask) | |
else: | |
mask = mask["background"] | |
output = process_inpaint(image["background"], mask) | |
img_output = Image.fromarray(output).convert("RGB") | |
return img_output, mask | |
with gr.Blocks() as demo: | |
gr.Markdown("# OBJECT REMOVER") | |
with gr.Row(): | |
with gr.Column(): | |
image = gr.ImageMask(type="numpy", layers=False, label="Upload Image") | |
with gr.Accordion(label="Advanced", open=False): | |
mask = gr.ImageMask(label="Mask", format="png", value=None, sources=["upload"]) | |
mask_out = gr.Image(format="png", label="Output Image") | |
button = gr.Button("Remove") | |
with gr.Column(): | |
output = gr.Image(format="png", label="Output Image") | |
button.click(fn=process_image, inputs=[image, mask], outputs=[output, mask_out]) | |
demo.launch(debug=True,show_error=True) | |