Spaces:
Sleeping
Sleeping
import os | |
import numpy as np | |
import gradio as gr | |
from utils.i2i import i2i_gen | |
MAX_SEED = np.iinfo(np.int32).max | |
with gr.Blocks( | |
title="πͺ LayerDiffuse - Flux version (Image to Image)", | |
theme="CultriX/gradio-theme" | |
) as demo: | |
gr.Markdown( | |
""" | |
# πͺ LayerDiffuse - Flux version (Image to Image) | |
A Flux version implementation of LayerDiffuse for image-to-image generation. | |
Upload an image with transparency (PNG with alpha channel) and transform it with a text prompt. | |
The output image will maintain the same aspect ratio as your input image. | |
""" | |
) | |
with gr.Row(): | |
with gr.Column(scale=1): | |
input_image = gr.Image( | |
label="Input Image", | |
type="pil", | |
sources=["upload", "webcam", "clipboard"], | |
image_mode="RGBA", | |
height=512 | |
) | |
prompt = gr.Text( | |
label="Prompt", | |
info="Describe what you want to generate", | |
placeholder="E.g: a beautiful landscape with mountains, high quality" | |
) | |
with gr.Row(): | |
seed = gr.Slider( | |
label="Seed", | |
minimum=0, | |
maximum=MAX_SEED, | |
step=1, | |
value=0, | |
randomize=True | |
) | |
strength = gr.Slider( | |
label="Strength", | |
minimum=0.0, | |
maximum=1.0, | |
step=0.01, | |
value=0.5, | |
info="How much to transform the image (0 = no change, 1 = complete change)" | |
) | |
with gr.Row(): | |
guidance_scale = gr.Slider( | |
label="Guidance scale", | |
minimum=1, | |
maximum=20, | |
step=0.1, | |
value=7.0, | |
) | |
num_inference_steps = gr.Slider( | |
label="Steps", | |
minimum=10, | |
maximum=100, | |
step=1, | |
value=50, | |
) | |
generate_btn = gr.Button("Generate", variant="primary") | |
with gr.Column(scale=1): | |
output_image = gr.Image( | |
label="Result", | |
type="pil", | |
height=512 | |
) | |
# Set up the generation flow | |
gr.on( | |
triggers=[generate_btn.click], | |
fn=lambda: gr.update(interactive=False, value="Generating..."), | |
outputs=generate_btn, | |
api_name=False | |
).then( | |
fn=i2i_gen, | |
inputs=[ | |
input_image, | |
prompt, | |
seed, | |
guidance_scale, | |
num_inference_steps, | |
strength | |
], | |
outputs=output_image | |
).then( | |
fn=lambda: gr.update(interactive=True, value="Generate"), | |
outputs=generate_btn, | |
api_name=False | |
) | |
if __name__ == "__main__": | |
demo.queue(max_size=20).launch(show_error=True, share=True) |