Lcm_dreamshare / app.py
launch-calcium's picture
Create app.py
e1740a5 verified
Raw
History Blame Contribute Delete
1.77 kB
import os
import torch
import gradio as gr
from diffusers import OnnxStableDiffusionPipeline
MODEL_ID = "SimianLuo/LCM_Dreamshaper_v7"
ONNX_PATH = os.getenv("ONNX_PATH", "./onnx-model")
pipe = OnnxStableDiffusionPipeline.from_pretrained(
ONNX_PATH,
provider="CUDAExecutionProvider" if torch.cuda.is_available() else "CPUExecutionProvider",
)
def generate(prompt, negative_prompt, steps, guidance_scale, width, height, seed):
generator = torch.Generator(device="cuda" if torch.cuda.is_available() else "cpu")
if seed >= 0:
generator = generator.manual_seed(seed)
image = pipe(
prompt=prompt,
negative_prompt=negative_prompt or None,
num_inference_steps=steps,
guidance_scale=guidance_scale,
width=width,
height=height,
generator=generator,
).images[0]
return image
demo = gr.Blocks()
with demo:
gr.Markdown("# LCM DreamShaper v7 ONNX")
with gr.Row():
prompt = gr.Textbox(label="Prompt", value="a cinematic portrait of a futuristic astronaut")
negative_prompt = gr.Textbox(label="Negative prompt", value="blurry, low quality")
with gr.Row():
steps = gr.Slider(1, 8, value=4, step=1, label="Steps")
guidance_scale = gr.Slider(0, 10, value=1.5, step=0.1, label="Guidance scale")
with gr.Row():
width = gr.Slider(256, 1024, value=512, step=64, label="Width")
height = gr.Slider(256, 1024, value=512, step=64, label="Height")
seed = gr.Number(value=42, precision=0, label="Seed")
btn = gr.Button("Generate")
out = gr.Image(label="Result")
btn.click(
fn=generate,
inputs=[prompt, negative_prompt, steps, guidance_scale, width, height, seed],
outputs=out,
)
demo.launch()