File size: 3,156 Bytes
b7130f6
 
75d68af
b7130f6
75d68af
 
b7130f6
 
 
 
 
 
 
 
 
 
75d68af
857ece0
 
 
 
 
b7130f6
 
c2a825e
f7e8a5c
 
 
970f37f
f7e8a5c
 
b7130f6
c2a825e
a80fd23
b7130f6
 
 
 
 
 
48eb5af
 
 
 
 
 
 
 
857ece0
a80fd23
b7130f6
 
 
 
 
b4dffda
b7130f6
 
 
 
 
 
 
 
 
b4dffda
b7130f6
 
 
 
 
 
b4dffda
b7130f6
 
 
eb4340e
 
 
 
 
 
 
75d68af
eb4340e
857ece0
f2bbc1c
8389ca8
321885d
f2bbc1c
8389ca8
 
857ece0
 
 
 
 
 
 
039becb
 
d38acc9
039becb
 
 
 
 
 
 
 
b7130f6
 
 
 
 
eb4340e
 
 
 
 
9103190
b7130f6
 
 
 
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
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:
    gr.Markdown("# πŸ’ Cherry Dreamer")
    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
            )
            btn = gr.Button("Generate", variant="primary")
            
    with gr.Tab("βš™οΈ Settings"):
        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.Accordion("ℹ️ About", open=False):
        gr.Markdown(f"""
        * 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().launch(debug=True, ssr_mode=False)