File size: 2,251 Bytes
7334f23
 
dd31ab9
7334f23
 
dd31ab9
66bb064
7334f23
 
c7bd22a
7334f23
0ee280c
 
 
 
 
 
7334f23
89f7a7c
 
dd31ab9
66bb064
c7bd22a
 
89f7a7c
 
 
 
dd31ab9
66bb064
89f7a7c
 
0ee280c
 
66bb064
7334f23
dd31ab9
7334f23
 
 
dd31ab9
 
7334f23
dd31ab9
 
7334f23
dd31ab9
66bb064
dd31ab9
7334f23
 
89f7a7c
dd31ab9
c7bd22a
7334f23
89f7a7c
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
import gradio as gr
import spaces
from panna import SD3


model = SD3("stabilityai/stable-diffusion-3-medium-diffusers")
title = "# [Stable Diffusion 3 Medium](https://huggingface.co/stabilityai/stable-diffusion-3-medium)"
examples = [
    "Astronaut in a jungle, cold color palette, muted colors, detailed, 8k",
    "A female model, high quality, fashion, Paris, Vogue, Maison Margiela, 8k",
]
css = """
#col-container {
    margin: 0 auto;
    max-width: 580px;
}
"""


@spaces.GPU
def infer(prompt, negative_prompt, seed, width, height, guidance_scale, num_inference_steps):
    return model.text2image(
        prompt=[prompt],
        negative_prompt=[negative_prompt],
        guidance_scale=guidance_scale,
        num_inference_steps=num_inference_steps,
        width=width,
        height=height,
        seed=seed
    )[0]


with gr.Blocks(css=css) as demo:
    with gr.Column(elem_id="col-container"):
        gr.Markdown(title)
        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)
        result = gr.Image(label="Result", show_label=False)
        with gr.Accordion("Advanced Settings", open=False):
            negative_prompt = gr.Text(label="Negative Prompt", max_lines=1, placeholder="Enter a negative prompt")
            seed = gr.Slider(label="Seed", minimum=0, maximum=1_000_000, step=1, value=0)
            with gr.Row():
                width = gr.Slider(label="Width", minimum=256, maximum=1344, step=64, value=1024)
                height = gr.Slider(label="Height", minimum=256, maximum=1344, step=64, value=1024)
            with gr.Row():
                guidance_scale = gr.Slider(label="Guidance scale", minimum=0.0, maximum=10.0, step=0.1, value=7.5)
                num_inference_steps = gr.Slider(label="Inference steps", minimum=1, maximum=50, step=1, value=50)
        gr.Examples(examples=examples, inputs=[prompt])
    gr.on(
        triggers=[run_button.click, prompt.submit, negative_prompt.submit],
        fn=infer,
        inputs=[prompt, negative_prompt, seed, width, height, guidance_scale, num_inference_steps],
        outputs=[result]
    )
demo.launch()