Spaces:
Build error
Build error
import gradio as gr | |
import torch | |
from torch import autocast | |
from diffusers import StableDiffusionPipeline | |
import random | |
model = "hakurei/waifu-diffusion" | |
device = "cpu" | |
pipe = StableDiffusionPipeline.from_pretrained(model, torch_dtype=torch.float32) | |
pipe = pipe.to(device) | |
block = gr.Blocks(css=".container { max-width: 800px; margin: auto; }") | |
def infer(prompt, width, height, nums, steps, guidance_scale, seed): | |
print(prompt) | |
print(width, height, nums, steps, guidance_scale, seed) | |
if prompt is not None and prompt != "": | |
if seed is None or seed == '' or seed == -1: | |
seed = int(random.randrange(4294967294)) | |
generator = torch.Generator(device).manual_seed(seed) | |
images = pipe([prompt] * nums, height=height, width=width, num_inference_steps=steps, generator=generator, guidance_scale=guidance_scale )["sample"] | |
return images | |
# with block as demo: | |
def run(): | |
_app = gr.Interface( | |
fn=infer, | |
title="Waifu Generator", | |
inputs=[ | |
gr.Textbox(label="prompt"), | |
gr.Slider(512, 1024, 512, step=64, label="width"), | |
gr.Slider(512, 1024, 512, step=64, label="height"), | |
gr.Slider(1, 4, 1, step=1, label="Number of Images"), | |
gr.Slider(10, 150, step=1, value=50, | |
label="num_inference_steps:\n" | |
"The number of denoising steps. More de-scaling steps usually result in a higher quality image, but will slow down inference."), | |
gr.Slider(0, 20, 7.5, step=0.5, | |
label="guidance_scale:\n" + | |
"A higher boot ratio encourages the generation of images that are closely related to text \"hints\", often at the expense of reduced image quality"), | |
gr.Textbox(label="Random seed", | |
placeholder="Random Seed", | |
lines=1), | |
], | |
outputs=[ | |
gr.Gallery(label="Generated images") | |
]) | |
return _app | |
app = run() | |
app.launch(debug=True) |