File size: 1,095 Bytes
15e78ee
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
import gradio as gr
from io import BytesIO

from torch import autocast
import requests
import PIL
import torch
from diffusers import StableDiffusionInpaintPipeline as StableDiffusionInpaintPipeline

pipe = StableDiffusionInpaintPipeline.from_pretrained(
    "CompVis/stable-diffusion-v1-4",
    revision="fp16",
    torch_dtype=torch.float16,
    use_auth_token=True,
)


def process_image(dict, prompt):
    init_img = dict["image"].convert("RGB").resize((512, 512))
    mask_img = dict["mask"].convert("RGB").resize((512, 512))
    images = pipe(
        prompt=prompt, init_image=init_img, mask_image=mask_img, strength=0.75
    )["sample"]
    return images[0]


iface = gr.Interface(
    fn=process_image,
    title="Stable Diffusion In-Painting Tool on Colab with Gradio",
    inputs=[
        gr.Image(source="upload", tool="sketch", type="pil"),
        gr.Textbox(label="prompt"),
    ],
    outputs=[gr.Image()],
    description="Choose a feature and upload an image to see the processed result.",
    article="<p style='text-align: center;'>Built with Gradio</p>",
)


iface.launch()