Object-Remover / app.py
Jagrut Thakare
v2.6 - Working
acec49f
raw
history blame contribute delete
1.35 kB
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"))
@spaces.GPU()
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)