Mmanikandan's picture
Update app.py
09fc204 verified
import gradio as gr
import torch
from diffusers import StableDiffusionPipeline
# Load smaller, faster model
model_id = "runwayml/stable-diffusion-v1-5"
pipe = StableDiffusionPipeline.from_pretrained(model_id).to("cpu")
# Inference function with portrait image size
def generate(prompt, negative, steps, scale, seed):
generator = torch.Generator("cpu").manual_seed(seed)
image = pipe(
prompt=prompt,
negative_prompt=negative,
height=768,
width=512,
num_inference_steps=steps,
guidance_scale=scale,
generator=generator,
).images[0]
return image
# Build Gradio UI
with gr.Blocks() as demo:
gr.Markdown("### 🎨 Stable Diffusion 1.4 (CPU Optimized Portrait Generator)")
with gr.Row():
prompt = gr.Textbox(label="Prompt", placeholder="e.g. A fantasy castle on a cliff")
negative = gr.Textbox(label="Negative Prompt", placeholder="e.g. low quality, blurry")
with gr.Row():
steps = gr.Slider(10, 50, value=20, label="Steps")
scale = gr.Slider(1, 20, value=7.5, step=0.1, label="Guidance Scale")
seed = gr.Slider(0, 100000, step=1, value=42, label="Seed", randomize=True)
run_btn = gr.Button("🎨 Generate Portrait")
output = gr.Image(label="Result", type="pil")
run_btn.click(fn=generate, inputs=[prompt, negative, steps, scale, seed], outputs=output)
demo.launch(show_api=True)