File size: 1,142 Bytes
fa83b40
7dbc444
 
fa83b40
7dbc444
fa83b40
7dbc444
fa83b40
 
 
7dbc444
1f276eb
 
 
 
 
 
fa83b40
7dbc444
fa83b40
7dbc444
 
 
 
 
 
fa83b40
7dbc444
fa83b40
 
 
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
import gradio as gr
from diffusers import StableDiffusionPipeline
import torch, os

device = "mps" if torch.backends.mps.is_available() else "cpu"
pipe = StableDiffusionPipeline.from_pretrained(
    "runwayml/stable-diffusion-v1-5",
    safety_checker=None
).to(device)

def generate(prompt, steps, guidance, seed):
    gen = None if seed == 0 else torch.manual_seed(int(seed))
    result = pipe(prompt,
                  num_inference_steps=int(steps),
                  guidance_scale=float(guidance),
                  generator=gen)
    return result.images

with gr.Blocks() as demo:
    gr.Markdown("# Stable Diffusion Text→Image Generation Demo")
    prompt = gr.Textbox(label="Prompt", value="A serene forest at dawn")
    steps = gr.Slider(1, 100, value=30, label="Inference Steps")
    cfg   = gr.Slider(1, 15, value=7.5, label="Guidance Scale")
    seed  = gr.Number(value=0, label="Random Seed (0 = random)")
    btn   = gr.Button("Generate")
    gallery = gr.Gallery(label="Generated Images", columns=1, height="auto")

    btn.click(generate, [prompt, steps, cfg, seed], gallery)

if __name__ == "__main__":
    demo.launch()