Manjushri's picture
Update app.py
685838d verified
raw
history blame
2.18 kB
import gradio as gr
import modin.pandas as pd
import torch
from PIL import Image
import imageio
from diffusers import StableDiffusionXLImg2ImgPipeline
device = "cuda" if torch.cuda.is_available() else "cpu"
model_id = "stabilityai/stable-diffusion-xl-refiner-1.0"
#adapter = T2IAdapter.from_pretrained(
#"TencentARC/t2i-adapter-sketch-sdxl-1.0")
#scheduler = EulerAncestralDiscreteScheduler.from_pretrained(model_id, subfolder="scheduler")
pipe = StableDiffusionXLImg2ImgPipeline.from_pretrained(model_id)
pipe = pipe.to(device)
def resize(value,img):
img = Image.open(img)
img = img.resize((value,value))
return img
def infer(source_img, prompt, negative_prompt, guide, steps, seed):
generator = torch.Generator(device).manual_seed(seed)
imageio.imwrite("data.png", source_img)
src = resize(768, 'data.png')
image = pipe(prompt, negative_prompt=negative_prompt, image=src, strength=1, guidance_scale=guide, num_inference_steps=steps).images[0]
return image
gr.Interface(fn=infer, inputs=[gr.Image(type='numpy', interactive=True),
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(5, 15, value = 10, label = 'Guidance Scale'),
gr.Slider(25, 50, value = 25, step = 25, label = 'Number of Iterations'),
gr.Slider(label = "Seed", minimum = 0, maximum = 987654321987654321, step = 1, randomize = True)],
outputs='image',
title = "Stable Diffusion XL 1.0 Doodle to Image CPU",
description = "For more information on Stable Diffusion XL 1.0 see https://huggingface.co/stabilityai/stable-diffusion-xl-refiner-1.0 <br><br>Sketch an Image then enter a Prompt, or let it just do its Thing, then click submit. 10 Iterations takes about ~900-1200 seconds currently. For more informationon about Stable Diffusion or Suggestions for prompts, keywords, artists or styles see https://github.com/Maks-s/sd-akashic",
article = "Code Monkey: <a href=\"https://huggingface.co/Manjushri\">Manjushri</a>").queue(max_size=5).launch()