|
import gradio as gr |
|
import torch |
|
from diffusers import AutoPipelineForImage2Image |
|
from diffusers.utils import make_image_grid |
|
from PIL import Image |
|
|
|
|
|
pipeline = AutoPipelineForImage2Image.from_pretrained( |
|
"stabilityai/stable-diffusion-xl-refiner-1.0", |
|
torch_dtype=torch.float16, |
|
variant="fp16", |
|
use_safetensors=True |
|
) |
|
|
|
|
|
pipeline.enable_model_cpu_offload() |
|
|
|
|
|
def generate_image(prompt, init_image, strength): |
|
result_image = pipeline(prompt, image=init_image, strength=strength).images[0] |
|
|
|
|
|
grid_image = make_image_grid([init_image, result_image], rows=1, cols=2) |
|
return grid_image |
|
|
|
|
|
gr.Interface( |
|
fn=generate_image, |
|
inputs=[ |
|
gr.Textbox(lines=1, label="Prompt", placeholder="Enter the image description prompt"), |
|
gr.Image(type="pil", label="Upload Initial Image"), |
|
gr.Slider(0.0, 1.0, value=0.5, label="Strength"), |
|
], |
|
outputs=gr.Image(label="Image Comparison"), |
|
title="Stable Diffusion XL Refiner - Image to Image", |
|
description="Upload an initial image and provide a text prompt to generate a new image using the Stable Diffusion XL Refiner model.", |
|
).launch() |