File size: 3,331 Bytes
b7130f6
 
75d68af
b7130f6
75d68af
 
b7130f6
 
 
 
 
 
 
 
 
 
75d68af
857ece0
 
 
 
 
b7130f6
 
c2a825e
f7e8a5c
 
 
970f37f
f7e8a5c
 
b7130f6
a80fd23
b7130f6
 
 
 
 
 
297b20a
 
 
 
 
 
 
 
 
 
857ece0
f53ce82
 
 
 
 
 
 
 
 
 
b7130f6
f53ce82
 
 
 
 
 
 
 
 
 
 
 
 
 
 
b7130f6
eb4340e
 
 
 
 
 
 
75d68af
eb4340e
fbcd9bb
f2bbc1c
1b7c0e8
8389ca8
321885d
f2bbc1c
8389ca8
 
857ece0
 
 
 
 
 
 
039becb
 
d38acc9
039becb
 
 
 
 
 
 
 
b7130f6
 
 
 
 
eb4340e
 
 
 
 
9103190
b7130f6
 
 
22b993d
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
import random
import gradio as gr
from client import Inference

MAX_SEED = 2 ** 31 - 1
client = Inference()

def generate(
    prompt,
    seed=None,
    randomize_seed=True,
    width=1024,
    height=1024
):
    if seed is None or randomize_seed:
        seed = random.randint(0, MAX_SEED)
    return client(
        prompt=prompt,
        seed=seed,
        width=width,
        height=height
    )

with gr.Blocks(
    title="πŸ’ Cherry Dreamer",
    css="footer {display: none !important}",
    theme=gr.themes.Base(
        primary_hue="red",
        secondary_hue="red",
        neutral_hue="neutral"
    )
) as app:
    with gr.Tab("🎨 Generate"):
        result = gr.Image(
            label="Image",
            show_label=False,
            format="jpeg",
            interactive=False
        )
        with gr.Row(equal_height=True):
            prompt = gr.Textbox(
                label="Prompt",
                show_label=False,
                placeholder="Enter your prompt..",
                max_lines=1,
                scale=2,
                container=False
            )
            btn = gr.Button("Generate", variant="primary")
            
        with gr.Accordion("βš™οΈ Settings", open=False):
            with gr.Row():
                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=1344,
                    step=64,
                    value=1024
                )
                height = gr.Slider(
                    label="Height",
                    minimum=256,
                    maximum=1344,
                    step=64,
                    value=1024
                )

    with gr.Tab("πŸ–ΌοΈ Gallery"):
        gallery = gr.Gallery(
            label="Gallery",
            show_label=False,
            format="jpeg",
            interactive=False
        )
        clear_btn = gr.Button("Clear")

    with gr.Tab("ℹ️ About"):
        gr.Markdown(f"""
        # πŸ’ Cherry Dreamer 
        * Created by [πŸ’ cherry-ghosts community](https://hf.co/cherry-ghosts)
        * Powered by [🌻 Pollinations.ai](https://pollinations.ai)
        * Running on [Gradio](https://www.gradio.app) v{gr.__version__}
        """)

    def add_to_gallery(img, gallery):
        if gallery is None:
            gallery = []
        if img is not None:
            gallery = gallery + [img]
        return gallery

    def clear_gallery():
        return []

    clear_btn.click(
        clear_gallery,
        inputs=None,
        outputs=[gallery],
        queue=False,
        show_api=False
    )

    btn.click(
        generate,
        inputs=[prompt, seed, randomize_seed, width, height],
        outputs=[result],
        api_name="run"
    ).then(
        add_to_gallery,
        inputs=[result, gallery],
        outputs=[gallery],
        queue=False,
        show_api=False
    )

if __name__ == "__main__":
    app.queue(default_concurrency_limit=8).launch(debug=True, ssr_mode=False)