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()