File size: 4,212 Bytes
f1221e3
 
 
 
25d5b43
f1221e3
 
 
 
9ea3aec
f1221e3
 
 
 
 
 
 
 
 
d33cd13
9432cac
f1221e3
 
25d5b43
f1221e3
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
79620f8
 
 
136eb8d
f1221e3
 
 
 
 
883f88e
f1221e3
 
 
 
 
d33cd13
f1221e3
 
 
 
 
79620f8
f1221e3
 
 
 
 
 
 
 
 
 
 
79620f8
f1221e3
 
 
 
 
 
6653089
f1221e3
79620f8
 
f1221e3
 
a51d307
f1221e3
 
 
 
883f88e
f1221e3
bfb1cc3
883f88e
f1221e3
 
 
 
883f88e
f1221e3
79620f8
883f88e
f1221e3
 
 
 
 
 
79620f8
9b359bb
 
f1221e3
 
 
 
 
883f88e
 
 
f1221e3
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
9ea3aec
79620f8
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
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
import gradio as gr
import numpy as np
import random


from diffusers import DiffusionPipeline
import torch

device = "cuda" if torch.cuda.is_available() else "cpu"
model_repo_id = "stabilityai/sdxl-turbo" 

if torch.cuda.is_available():
    torch_dtype = torch.float16
else:
    torch_dtype = torch.float32

pipe = DiffusionPipeline.from_pretrained(model_repo_id, torch_dtype=torch_dtype)
pipe = pipe.to(device)

MAX_SEED = 666
MAX_IMAGE_SIZE = 1280



def infer(
    prompt,
    negative_prompt,
    seed,
    randomize_seed,
    width,
    height,
    guidance_scale,
    num_inference_steps,
    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,
        negative_prompt=negative_prompt,
        guidance_scale=guidance_scale,
        num_inference_steps=num_inference_steps,
        width=width,
        height=height,
        generator=generator,
    ).images[0]

    return image, seed


examples = [
    "two soldiers wearing gas masks, clad in military digital camo jungle fatigues, djing on futuristic mixers, synth, mpcs. location jungle rave.",
    "in a dark jungle, a wizard and a warlock face each other as in a epic battle,  casting spells to operate vintage machines like mixers, synths, turntable.",
    "A mesmerizing, bioluminescent DNA double helix, illuminated by a kaleidoscope of vibrant, pulsating light beams from colorful lasers, suspended in a futuristic, setting.",
    "little rasta bunny dancing at a rave in the Jungle. cute street art, cartoon style.",
]

css = """
#col-container {
    margin: 0 auto;
    max-width: 600px;
}
"""

with gr.Blocks(css=css) as demo:
    with gr.Column(elem_id="col-container"):
        gr.Markdown(" # ߙߛߕ-ߊ - ϕ - |θ_θ| - ϕ -  ")

        with gr.Row():
            prompt = gr.Text(
                label="Prompt",
                show_label=False,
                max_lines=1.3,
                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):
            negative_prompt = gr.Text(
                label="Negative prompt",
                max_lines=1.3,
                placeholder="Enter a negative prompt",
                visible=False,
            )

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

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

            with gr.Row():
                width = gr.Slider(
                    label="Width",
                    minimum=600,
                    maximum=MAX_IMAGE_SIZE,
                    step=1.3,
                    value=600,  
                )

                height = gr.Slider(
                    label="Height",
                    minimum=400,
                    maximum=MAX_IMAGE_SIZE,
                    step=1.6,
                    value=400, 
                )

            with gr.Row():
                guidance_scale = gr.Slider(
                    label="Guidance scale",
                    minimum=0.0,
                    maximum=2,
                    step=0.6,
                    value=0.3, 
                )

                num_inference_steps = gr.Slider(
                    label="Number of inference steps",
                    minimum=1,
                    maximum=6,
                    step=3,
                    value=3,  
                )

        gr.Examples(examples=examples, inputs=[prompt])
    gr.on(
        triggers=[run_button.click, prompt.submit],
        fn=infer,
        inputs=[
            prompt,
            negative_prompt,
            seed,
            randomize_seed,
            width,
            height,
            guidance_scale,
            num_inference_steps,
        ],
        outputs=[result, seed],
    )

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