File size: 2,364 Bytes
7334f23
 
dd31ab9
7334f23
 
dd31ab9
7c4586f
f1769a4
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
7726d37
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
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)\n"
         "The demo is part of [panna](https://github.com/abacws-abacus/panna) project.")
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(server_name="0.0.0.0")