Spaces:
Sleeping
Sleeping
import torch | |
from diffusers import DiffusionPipeline | |
import gradio as gr | |
import spaces | |
# Load the pre-trained diffusion model | |
pipe = DiffusionPipeline.from_pretrained('ptx0/terminus-xl-velocity-v2', torch_dtype=torch.bfloat16) | |
pipe.to('cuda') | |
# Define the image generation function with adjustable parameters and a progress bar | |
def generate(prompt, guidance_scale, num_inference_steps, negative_prompt): | |
with gr.Progress(steps=num_inference_steps) as progress: | |
for i in range(num_inference_steps): | |
progress.update(progress=i) | |
return pipe( | |
prompt, | |
negative_prompt=negative_prompt, | |
guidance_scale=guidance_scale, | |
num_inference_steps=num_inference_steps | |
).images | |
# Example prompts to demonstrate the model's capabilities | |
example_prompts = [ | |
["A futuristic cityscape at night under a starry sky", 7.5, 25, "blurry, overexposed"], | |
["A serene landscape with a flowing river and autumn trees", 8.0, 20, "crowded, noisy"], | |
["An abstract painting of joy and energy in bright colors", 9.0, 30, "dark, dull"] | |
] | |
# Create a Gradio interface | |
iface = gr.Interface( | |
fn=generate, | |
inputs=[ | |
gr.Text(label="Enter your prompt"), | |
gr.Slider(5, 10, step=0.1, label="Guidance Scale", value=7.5), | |
gr.Slider(10, 50, step=5, label="Number of Inference Steps", value=25), | |
gr.Text(value="underexposed, blurry, ugly, washed-out", label="Negative Prompt") | |
], | |
outputs=gr.Gallery(height=1024, min_width=1024, columns=2), | |
examples=example_prompts, | |
title="Image Generation with Diffusion Model", | |
description="Generate images based on textual prompts. Adjust the parameters to see how they affect the outcome." | |
).launch() | |