test / app.py
TheWeirdo69's picture
Update app.py
02e8a9e verified
import gradio as gr
import torch
import numpy as np
import random
from diffusers import DiffusionPipeline
device = "cuda" if torch.cuda.is_available() else "cpu"
if torch.cuda.is_available():
pipe = DiffusionPipeline.from_pretrained("civit-ai/wanostyle_2_offset", use_safetensors=True)
pipe = pipe.to(device)
else:
pipe = DiffusionPipeline.from_pretrained("civit-ai/wanostyle_2_offset", use_safetensors=True)
pipe = pipe.to(device)
MAX_SEED = np.iinfo(np.int32).max
MAX_IMAGE_SIZE = 1024
def infer(prompt, negative_prompt, seed, randomize_seed, width, height, guidance_scale, num_inference_steps):
if randomize_seed:
seed = random.randint(0, MAX_SEED)
generator = torch.Generator().manual_seed(seed)
image = pipe(
prompt=prompt,
negative_prompt=negative_prompt,
guidance_scale=guidance_scale,
num_inference_steps=num_inference_steps,
width=width,
height=height,
generator=generator
).images[0]
return image
examples = [
"Astronaut in a jungle, cold color palette, muted colors, detailed, 8k",
"An astronaut riding a green horse",
"A delicious ceviche cheesecake slice",
]
css = """
#col-container {
margin: 0 auto;
max-width: 520px;
}
"""
if torch.cuda.is_available():
power_device = "GPU"
else:
power_device = "CPU"
gr.Interface(
fn=infer,
inputs=[
gr.inputs.Text(label="Prompt", placeholder="Enter your prompt"),
gr.inputs.Text(label="Negative Prompt", visible=False),
gr.inputs.Slider(label="Seed", minimum=0, maximum=MAX_SEED, step=1, default=0),
gr.inputs.Checkbox(label="Randomize Seed", default=True),
gr.inputs.Slider(label="Width", minimum=256, maximum=MAX_IMAGE_SIZE, step=32, default=512),
gr.inputs.Slider(label="Height", minimum=256, maximum=MAX_IMAGE_SIZE, step=32, default=512),
gr.inputs.Slider(label="Guidance Scale", minimum=0.0, maximum=10.0, step=0.1, default=0.0),
gr.inputs.Slider(label="Number of Inference Steps", minimum=1, maximum=12, step=1, default=2)
],
outputs=gr.outputs.Image(label="Result"),
title="Text-to-Image Gradio Template",
css=css,
examples=examples
).launch()