DiffusionDemo / src /pipelines /inpainting.py
akameswa's picture
Update src/pipelines/inpainting.py
2dfc7d5 verified
raw
history blame contribute delete
No virus
1.23 kB
import torch
import spaces
import gradio as gr
from src.util.base import *
from src.util.params import *
from diffusers import AutoPipelineForInpainting
inpaint_pipe = AutoPipelineForInpainting.from_pretrained(inpaint_model_path).to(torch_device)
@spaces.GPU()
def inpaint(dict, num_inference_steps, seed, prompt="", progress=gr.Progress()):
progress(0)
mask = dict["layers"][0].convert("RGB").resize((imageHeight, imageWidth))
init_image = dict["background"].convert("RGB").resize((imageHeight, imageWidth))
output = inpaint_pipe(
prompt=prompt,
image=init_image,
mask_image=mask,
guidance_scale=guidance_scale,
num_inference_steps=num_inference_steps,
generator=torch.Generator().manual_seed(seed),
)
progress(1)
fname = "inpainting"
tab_config = {
"Tab": "Inpainting",
"Prompt": prompt,
"Number of Inference Steps per Image": num_inference_steps,
"Seed": seed,
}
imgs_list = []
imgs_list.append((output.images[0], "Inpainted Image"))
imgs_list.append((mask, "Mask"))
export_as_zip(imgs_list, fname, tab_config)
return output.images[0], f"outputs/{fname}.zip"
__all__ = ["inpaint"]