Spaces:
Running
on
Zero
Running
on
Zero
import os | |
import numpy as np | |
import gradio as gr | |
from utils.t2i import t2i_gen | |
MAX_SEED = np.iinfo(np.int32).max | |
MIN_IMAGE_SIZE = int(os.getenv("MIN_IMAGE_SIZE", "512")) | |
MAX_IMAGE_SIZE = int(os.getenv("MAX_IMAGE_SIZE", "2048")) | |
with gr.Blocks( | |
title="🪄 LayerDiffuse - Flux version", | |
theme="CultriX/gradio-theme" | |
) as demo: | |
gr.Markdown( | |
""" | |
# 🪄 LayerDiffuse - Flux version | |
A Flux version implementation of LayerDiffuse ([LayerDiffuse](https://github.com/lllyasviel/LayerDiffuse)) | |
**Feel free to open a PR and contribute to this demo to help improve it!** | |
""" | |
) | |
prompt = gr.Text( | |
label="Prompt", | |
info="Your prompt here", | |
placeholder="E.g: glass bottle, high quality" | |
) | |
with gr.Row(): | |
width = gr.Slider( | |
label="Width", | |
minimum=MIN_IMAGE_SIZE, | |
maximum=MAX_IMAGE_SIZE, | |
step=32, | |
value=1024, | |
) | |
height = gr.Slider( | |
label="Height", | |
minimum=MIN_IMAGE_SIZE, | |
maximum=MAX_IMAGE_SIZE, | |
step=32, | |
value=1024, | |
) | |
seed = gr.Slider( | |
label="Seed", | |
minimum=0, | |
maximum=MAX_SEED, | |
step=1, | |
value=0, | |
) | |
with gr.Row(): | |
guidance_scale = gr.Slider( | |
label="Guidance scale", | |
minimum=1, | |
maximum=20, | |
step=0.1, | |
value=3.5, | |
) | |
num_inference_steps = gr.Slider( | |
label="Steps", | |
minimum=10, | |
maximum=100, | |
step=1, | |
value=50, | |
) | |
t2i_gen_bttn = gr.Button("Generate") | |
t2i_result = gr.Image( | |
label="Result", | |
show_label=False, | |
format="png" | |
) | |
gr.on( | |
triggers=[ | |
t2i_gen_bttn.click | |
], | |
fn=lambda: gr.update(interactive=False, value="Generating..."), | |
outputs=t2i_gen_bttn, | |
api_name=False | |
).then( | |
fn=t2i_gen, | |
inputs=[ | |
prompt, | |
seed, | |
width, | |
height, | |
guidance_scale, | |
num_inference_steps | |
], | |
outputs=t2i_result | |
).then( | |
fn=lambda: gr.update(interactive=True, value="Generate"), | |
outputs=t2i_gen_bttn, | |
api_name=False | |
) | |
if __name__ == "__main__": | |
demo.queue(max_size=20).launch(show_error=True) |