img2img / app.py
Furkan12's picture
e
4938098 verified
raw
history blame
1.78 kB
import gradio as gr
import torch
from PIL import Image
from diffusers import StableDiffusionPipeline, DPMSolverMultistepScheduler
model_id = "stabilityai/stable-diffusion-2-1"
device = "cpu"
# DPM-Solver++ scheduler'ını kullan, torch_dtype belirtme
pipe = StableDiffusionPipeline.from_pretrained(model_id)
pipe.scheduler = DPMSolverMultistepScheduler.from_config(pipe.scheduler.config)
pipe = pipe.to(device)
def resize(value, img_path):
img = Image.open(img_path)
img = img.resize((value, value))
return img
def infer(source_img, prompt, negative_prompt, guide, steps, seed, Strength):
generator = torch.Generator(device).manual_seed(seed)
source_image = resize(768, source_img)
source_image.save('source.png')
image = pipe(prompt, negative_prompt=negative_prompt, init_image=source_image, strength=Strength, guidance_scale=guide, num_inference_steps=steps, generator=generator).images[0]
return image
gr.Interface(
fn=infer,
inputs=[
gr.Image(type="filepath", label="Raw Image. Must Be .png"), # Güncellenmiş kullanım
gr.Textbox(label='Prompt Input Text. 77 Token (Keyword or Symbol) Maximum'),
gr.Textbox(label='What you Do Not want the AI to generate.'),
gr.Slider(2, 15, value=7, label='Guidance Scale'),
gr.Slider(1, 25, value=10, step=1, label='Number of Iterations'),
gr.Slider(label="Seed", minimum=0, maximum=987654321987654321, step=1, randomize=True),
gr.Slider(label='Strength', minimum=0, maximum=1, step=.05, value=.5)
],
outputs=gr.Image(type="pil"),
title="Stable Diffusion 2.1 Image to Image Pipeline on CPU",
description="For more information on Stable Diffusion 2.1 see https://github.com/Stability-AI/stablediffusion"
).launch()