import gradio as gr import numpy as np import random import spaces import torch from diffusers import DiffusionPipeline dtype = torch.bfloat16 device = "cuda" if torch.cuda.is_available() else "cpu" pipe = DiffusionPipeline.from_pretrained("black-forest-labs/FLUX.1-schnell", torch_dtype=dtype).to(device) MAX_SEED = np.iinfo(np.int32).max MAX_IMAGE_SIZE = 2048 @spaces.GPU(enable_queue=True) def infer(prompt, seed=765449273, randomize_seed=False, width=1024, height=1024, num_inference_steps=4, progress=gr.Progress(track_tqdm=True)): if randomize_seed: seed = random.randint(0, MAX_SEED) generator = torch.Generator().manual_seed(seed) image = pipe( prompt = prompt, width = width, height = height, num_inference_steps = num_inference_steps, generator = generator, guidance_scale=0.0 ).images[0] return image, seed examples = ["breathtaking beautiful young woman, light-blue eyes, long bronze hair, fair complexion, (freckles:0.3) , wearing sexy lace lingerie, sitting on the floor, leaning on her bed, window in the background with sheer white curtains, staring seductively at the viewer, sun shining through the window, award-winning, professional, highly detailed"] css=""" """ with gr.Blocks(css=css, theme="Yntec/HaleyCH_Theme_Orange") as demo: with gr.Column(elem_id="col-container"): gr.Markdown(f"""OUR FLUX APP""") with gr.Row(): prompt = gr.Text( label="Prompt", show_label=False, max_lines=10, placeholder="Enter your prompt", container=False, ) run_button = gr.Button("Run", scale=0) result = gr.Image(label="Result", show_label=False) with gr.Accordion("Advanced Settings", open=True): seed = gr.Slider( label="Seed", minimum=0, maximum=MAX_SEED, step=1, value=0, ) randomize_seed = gr.Checkbox(label="Randomize seed", value=True) with gr.Row(): width = gr.Slider( label="Width", minimum=256, maximum=MAX_IMAGE_SIZE, step=32, value=704, ) height = gr.Slider( label="Height", minimum=256, maximum=MAX_IMAGE_SIZE, step=32, value=1024, ) with gr.Row(): num_inference_steps = gr.Slider( label="Number of inference steps", minimum=1, maximum=30, step=1, value=10, ) gr.Examples( examples = examples, fn = infer, inputs = [prompt], outputs = [result, seed], cache_examples="lazy" ) gr.on( triggers=[run_button.click, prompt.submit], fn = infer, inputs = [prompt, seed, randomize_seed, width, height, num_inference_steps], outputs = [result, seed] ) demo.launch()