flux-inpainting / app.py
not-lain's picture
initial app
1794465
raw
history blame
1.35 kB
import torch
import spaces
import gradio as gr
from diffusers import FluxFillPipeline
pipe = FluxFillPipeline.from_pretrained("black-forest-labs/FLUX.1-Fill-dev", torch_dtype=torch.bfloat16).to("cuda")
@spaces.GPU()
def inpaint(
image,
mask,
prompt="",
num_inference_steps=28,
guidance_scale=50,
):
background = image.convert("RGB")
mask = mask.convert("L")
result = pipe(
prompt=prompt,
height=background.height,
width=background.width,
image=background,
mask_image=mask,
num_inference_steps=num_inference_steps,
guidance_scale=guidance_scale,
).images[0]
result = result.convert("RGBA")
return result
demo = gr.Interface(
fn=inpaint,
inputs=[
gr.Image(label="image", type="pil"),
gr.Image(label="mask", type="pil"),
gr.Text(label="prompt"),
gr.Number(value=50, label="num_inference_steps"),
gr.Number(value=28, label="guidance_scale"),
],
outputs=["image"],
api_name="inpaint",
examples=[[3, "./assets/rocket.png", "./assets/Inpainting mask.png"]],
cache_examples=False,
description="it is recommended that you use https://github.com/la-voliere/react-mask-editor when creating an image mask in JS and then inverse it before sending it to this space",
)
demo.launch()