File size: 2,199 Bytes
575ac3e
 
9d020ff
 
 
 
575ac3e
 
9d020ff
 
 
 
 
 
 
 
 
 
 
 
 
 
575ac3e
9d020ff
575ac3e
9d020ff
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
575ac3e
9d020ff
575ac3e
9d020ff
 
 
 
 
 
 
575ac3e
9d020ff
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
import gradio as gr
from huggingface_hub import InferenceClient
import random,os
import numpy as np

MAX_SEED = np.iinfo(np.int32).max

model_list = ["Qwen/Qwen-Image", "black-forest-labs/FLUX.1-dev"]
client = InferenceClient(
    provider="auto",
    api_key = os.getenv("HF_API_KEY")
)

def infer(
    prompt,
    model_name,
    seed,
    randomize_seed,
    progress=gr.Progress(track_tqdm=True),
):
    if randomize_seed:
        seed = random.randint(0, MAX_SEED)

    # Hugging Face InferenceClient doesn't use seed directly, but we keep it for display
    image = client.text_to_image(prompt, model=model_name)
    return image, seed

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: 640px;
}
"""

with gr.Blocks(css=css) as demo:
    with gr.Column(elem_id="col-container"):
        gr.Markdown(" # Text-to-Image Gradio Template (Hugging Face InferenceClient)")

        with gr.Row():
            prompt = gr.Text(
                label="Prompt",
                show_label=False,
                max_lines=1,
                placeholder="Enter your prompt",
                container=False,
            )
            run_button = gr.Button("Run", scale=0, variant="primary")

        result = gr.Image(label="Result", show_label=False)

        with gr.Accordion("Advanced Settings", open=False):
            model_name = gr.Dropdown(
                label="Model",
                choices=model_list,
                value=model_list[0],
            )

            seed = gr.Slider(
                label="Seed",
                minimum=0,
                maximum=MAX_SEED,
                step=1,
                value=0,
            )

            randomize_seed = gr.Checkbox(label="Randomize seed", value=True)

        gr.Examples(examples=examples, inputs=[prompt])
    gr.on(
        triggers=[run_button.click, prompt.submit],
        fn=infer,
        inputs=[prompt, model_name, seed, randomize_seed],
        outputs=[result, seed],
    )

if __name__ == "__main__":
    demo.launch()