File size: 14,658 Bytes
97e93b6
 
 
 
 
 
7bbe1b0
e737602
 
 
6f04921
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
9e4d171
 
 
 
 
 
 
 
3d03a06
 
 
 
 
ffa7645
 
 
 
 
 
 
 
6f04921
 
67e22f2
 
 
 
97e93b6
 
 
 
d57fe36
97e93b6
 
 
 
 
 
 
 
 
 
 
 
 
 
 
270c82d
97e93b6
 
 
 
 
 
 
270c82d
0a39a7d
270c82d
0a39a7d
6a94622
675f25a
93f6a95
675f25a
 
6a94622
6ab8181
7ba39fe
6ab8181
 
 
5ed47e5
 
 
 
 
 
0a39a7d
 
1b9b7e0
9bc4c3e
 
1b9b7e0
9bc4c3e
0a39a7d
 
 
97e93b6
 
 
d6d1319
97e93b6
 
49801d6
97e93b6
 
 
 
 
 
d6d1319
 
270c82d
 
95bae24
eb1fcb9
95bae24
eb1fcb9
95bae24
eb1fcb9
270c82d
4cd1220
 
 
270c82d
95bae24
eb1fcb9
95bae24
eb1fcb9
95bae24
eb1fcb9
270c82d
4cd1220
 
 
97e93b6
c3fddcc
97e93b6
 
 
 
 
 
 
 
95bae24
 
 
 
 
 
 
97e93b6
 
 
 
 
 
 
 
6c2fcdd
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
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
import gradio as gr
import os
import sys
from pathlib import Path

models = [
    {"name": "SDXL-base-1.0", "url": "stabilityai/stable-diffusion-xl-base-1.0"},
    {"name": "Dreamlike-photoreal-2.0", "url": "dreamlike-art/dreamlike-photoreal-2.0"},
    {"name": "Dreamlike-anime-1.0", "url": "dreamlike-art/dreamlike-anime-1.0"},
    {"name": "Dreamlike-diffusion-1.0", "url": "dreamlike-art/dreamlike-diffusion-1.0"},
    {"name": "Claudfuen 1", "url": "claudfuen/photorealistic-fuen-v1"},
    {"name": "Deliberate", "url": "Masagin/Deliberate"},
    {"name": "Dreamshaper", "url": "Lykon/DreamShaper"},
    {"name": "Realistic Vision 1.4", "url": "SG161222/Realistic_Vision_V1.4"},
    {"name": "Seek Art Mega", "url": "coreco/seek.art_MEGA"},
    {"name": "AmiIReal", "url": "stablediffusionapi/amireal"},
    {"name": "Analog Diffusion", "url": "wavymulder/Analog-Diffusion"},
    {"name": "Circulus 2.8", "url": "circulus/sd-photoreal-v2.8"},
    {"name": "Circulus Photoreal V2", "url": "circulus/sd-photoreal-real-v2"},
    {"name": "Collage Diffusion", "url": "wavymulder/collage-diffusion"},
    {"name": "Cyberrealistic", "url": "stablediffusionapi/cyberrealistic"},
    {"name": "Dreamful 2", "url": "Hius/DreamFul-V2"},
    {"name": "GakkiMix768", "url": "Sa1i/gakki-mix-768"},
    {"name": "Grimoeresigils", "url": "ECarbenia/grimoiresigils"},
    {"name": "HARDBlend", "url": "theintuitiveye/HARDblend"},
    {"name": "HassanBlend 1.4", "url": "hassanblend/hassanblend1.4"},
    {"name": "HassanBlend 1.5.1.2", "url": "hassanblend/HassanBlend1.5.1.2"},
    {"name": "Lomo Diffusion", "url": "wavymulder/lomo-diffusion"},
    {"name": "Model Shoot", "url": "wavymulder/modelshoot"},
    {"name": "Portrait Plus", "url": "wavymulder/portraitplus"},
    {"name": "QuinceMix", "url": "Hemlok/QuinceMix"},
    {"name": "The Ally", "url": "stablediffusionapi/the-ally"},
    {"name": "Timeless Diffusion", "url": "wavymulder/timeless-diffusion"},
    {"name": "UltraSkin", "url": "VegaKH/Ultraskin"},
    {"name": "Wavyfusion", "url": "wavymulder/wavyfusion"},
    {"name": "Anything Midjourney 4.1", "url": "Joeythemonster/anything-midjourney-v-4-1"},
    {"name": "Chaos and Order", "url": "Guizmus/SDArt_ChaosAndOrder768"},
    {"name": "Comic Diffusion", "url": "ogkalu/Comic-Diffusion"},
    {"name": "Cosmic Horros 768", "url": "Guizmus/SDArt_cosmichorrors768"},
    {"name": "Cosmic Horros", "url": "Guizmus/SDArt_cosmichorrors"},
    {"name": "DGSpitzer", "url": "DGSpitzer/DGSpitzer-Art-Diffusion"},
    {"name": "Dungeons and Diffusion", "url": "0xJustin/Dungeons-and-Diffusion"},
    {"name": "Elden Ring", "url": "nitrosocke/elden-ring-diffusion"},
    {"name": "Epic Diffusion 1.1", "url": "johnslegers/epic-diffusion-v1.1"},
    {"name": "Epic Diffusion", "url": "johnslegers/epic-diffusion"},
    {"name": "EpicMix Realism", "url": "Duskfallcrew/EpicMix_Realism"},
    {"name": "Fantasy Mix", "url": "theintuitiveye/FantasyMix"},
    {"name": "Girl New 1", "url": "Fred99774/girlnew1"},
    {"name": "Lit 6B", "url": "hakurei/lit-6B"},
    {"name": "Luna Diffusion", "url": "proximasanfinetuning/luna-diffusion"},
    {"name": "Midjourney 4.0", "url": "flax/midjourney-v4-diffusion"},
    {"name": "Midjourney 4.1", "url": "Joeythemonster/anything-midjourney-v-4-1"},
    {"name": "Mo-Di Diffusion", "url": "nitrosocke/mo-di-diffusion"},
    {"name": "Nitro Diffusion", "url": "nitrosocke/Nitro-Diffusion"},
    {"name": "Openjourney V2", "url": "prompthero/openjourney-v2"},
    {"name": "Openjourney", "url": "prompthero/openjourney"},
    {"name": "Something", "url": "Guizmus/SDArt_something"},
    {"name": "Spider Verse diffusion", "url": "nitrosocke/spider-verse-diffusion"},
    {"name": "Vintedois 1.0", "url": "22h/vintedois-diffusion-v0-1"},
    {"name": "Vintedois 2.0", "url": "22h/vintedois-diffusion-v0-2"},
    {"name": "❤ ART STYLES ==========", "url": "joachimsallstrom/Double-Exposure-Diffusion"},
    {"name": "Balloon Art", "url": "Fictiverse/Stable_Diffusion_BalloonArt_Model"},
    {"name": "Double Exposure Diffusion", "url": "joachimsallstrom/Double-Exposure-Diffusion"},
    {"name": "Fluid Art", "url": "Fictiverse/Stable_Diffusion_FluidArt_Model"},
    {"name": "GTA5 Artwork Diffusion", "url": "ItsJayQz/GTA5_Artwork_Diffusion"},
    {"name": "Marvel WhatIf Diffusion", "url": "ItsJayQz/Marvel_WhatIf_Diffusion"},
    {"name": "Naruto Diffuser", "url": "lambdalabs/sd-naruto-diffusers"},
    {"name": "Papercut", "url": "Fictiverse/Stable_Diffusion_PaperCut_Model"},
    {"name": "Pokemon Diffuser", "url": "lambdalabs/sd-pokemon-diffusers"},
    {"name": "Synthwave Punk 2", "url": "ItsJayQz/SynthwavePunk-v2"},
    {"name": "Valorant Diffusion", "url": "ItsJayQz/Valorant_Diffusion"},
    {"name": "Van Gogh Diffusion", "url": "dallinmackay/Van-Gogh-diffusion"},
    {"name": "Vectorartz Diffusion", "url": "coder119/Vectorartz_Diffusion"},
    {"name": "VoxelArt", "url": "Fictiverse/Stable_Diffusion_VoxelArt_Model"},
    {"name": "Picasso Diffusion", "url": "aipicasso/picasso-diffusion-1-1"},
    {"name": "Cool Japan 2.1.2", "url": "aipicasso/cool-japan-diffusion-2-1-2"},
    {"name": "Cool Japan 2.1.1", "url": "aipicasso/cool-japan-diffusion-2-1-1"},
    {"name": "Future Diffusion", "url": "nitrosocke/Future-Diffusion"},
    {"name": "JWST Deep Space Diffusion", "url": "dallinmackay/JWST-Deep-Space-diffusion"},
    {"name": "Robo Diffusion 3 Base", "url": "nousr/robo-diffusion-2-base"},
    {"name": "Robo Diffusion", "url": "nousr/robo-diffusion"},
    {"name": "Tron Legacy Diffusion", "url": "dallinmackay/Tron-Legacy-diffusion"},
    {"name": "Archer Diffusion", "url": "nitrosocke/archer-diffusion"},
    {"name": "Icomix 2", "url": "stablediffusionapi/icomix-2"},
    {"name": "DucHaiten Art", "url": "DucHaiten/DucHaitenAIart"},
    {"name": "DucHaiten ClassicAnime", "url": "DucHaiten/DH_ClassicAnime"},
    {"name": "DucHaiten DreamWorld", "url": "DucHaiten/DucHaitenDreamWorld"},
    {"name": "DucHaiten Journey", "url": "DucHaiten/DucHaitenJourney"},
    {"name": "DucHaiten StyleLikeMe", "url": "DucHaiten/DucHaiten-StyleLikeMe"},
    {"name": "DucHaiten SuperCute", "url": "DucHaiten/DucHaitenSuperCute"},
    {"name": "Redshift Diffusion 768", "url": "nitrosocke/redshift-diffusion-768"},
    {"name": "Redshift Diffusion", "url": "nitrosocke/redshift-diffusion"},
    {"name": "All 526", "url": "stablediffusionapi/all-526"},
    {"name": "All 526 animated", "url": "stablediffusionapi/all-526-animated"},
    {"name": "Circulus Semi Real 2", "url": "circulus/sd-photoreal-semi-v2"},
    {"name": "Semi Real Mix", "url": "robotjung/SemiRealMix"},
    {"name": "SpyBG", "url": "stablediffusionapi/spybg"},
    {"name": "Protogen X 5.8", "url": "darkstorm2150/Protogen_x5.8_Official_Release"},
    {"name": "Protogen 2.2", "url": "darkstorm2150/Protogen_v2.2_Official_Release"},
    {"name": "Protogen X 3.4", "url": "darkstorm2150/Protogen_x3.4_Official_Release"},
    {"name": "Stable Diffusion 1.4","url": "CompVis/stable-diffusion-v1-4"},
    {"name": "Stable Diffusion 1.5","url": "runwayml/stable-diffusion-v1-5"},
    {"name": "Stable Diffusion 2.1","url": "stabilityai/stable-diffusion-2-1"},
    {"name": "Stable Diffusion 2.1 Base","url": "stabilityai/stable-diffusion-2-1-base"},
    {"name": "Stable Diffusion 2.1 Unclip","url": "stabilityai/stable-diffusion-2-1-unclip"},
    {"name": "Never Ending Dream 2", "url": "luongphamit/NeverEnding-Dream2"},
    {"name": "NeverEnding-Dream", "url": "Lykon/NeverEnding-Dream"},
    {"name": "InkPunk Diffusion", "url": "Envvi/Inkpunk-Diffusion"},
    {"name": "Protogen Infinity", "url": "darkstorm2150/Protogen_Infinity_Official_Release"},
    {"name": "Rev Anim", "url": "stablediffusionapi/rev-anim"},
    {"name": "Rev Animated", "url": "coreml/coreml-ReV-Animated"},
]

current_model = models[0]

text_gen = gr.Interface.load("spaces/Omnibus/MagicPrompt-Stable-Diffusion_link") 

models2 = []
for model in models:
    model_url = f"models/{model['url']}"
    loaded_model = gr.Interface.load(model_url, live=True, preprocess=True)
    models2.append(loaded_model)


def text_it(inputs, text_gen=text_gen):
    return text_gen(inputs)


def set_model(current_model_index):
    global current_model
    current_model = models[current_model_index]
    return gr.update(value=f"{current_model['name']}")


def send_it(inputs, model_choice):
    proc = models2[model_choice]
    return proc(inputs)


with gr.Blocks() as myface:
    gr.HTML()

    with gr.Row():
        with gr.Tab("Эскизы"):
                gr.HTML("""
                <p style='font-weight: bold;text-align: center;font-size: large'>Magic Levitan_v1</p>
                
                """)
        with gr.Tab("Финальный мазок"):
            gr.HTML(f"""<title>Как использовать</title><div style="text-align: center; max-width: 1500px; margin: 0 auto;">
                <iframe src="https://mackorlab.github.io/spase/GFPGAN.html" width="100%" height="650" align="left">
                 Ваш браузер не поддерживает плавающие фреймы!
                </iframe>               
                """)
        with gr.Tab("Magic промт"):
            gr.HTML(f"""<title>Как использовать</title><div style="text-align: center; max-width: 1500px; margin: 0 auto;">
                <iframe src="https://mackorlab.github.io/spase/magic_pro.html" width="100%" height="650" align="left">
                 Ваш браузер не поддерживает плавающие фреймы!
                </iframe>               
                """)
        with gr.Tab("Как использовать"):
            gr.HTML(f"""<title>Как использовать</title><div style="text-align: center; max-width: 1500px; margin: 0 auto;">
                <h4>1. Добавьте вашу идею пейзажа 🖼 в соответствующее поле (не забывайте <b>перевести текст идеи</b> на английский)</h4>
                <h4>2. Далее по нажатию кнопки "Сгенерировать Magic промт" ИИ продолжит ваш текст и самостоятельно создаст разнообразные промты для каждого пейзажа</h4>
                <h4>3. Когда генерация промта будет завершена. выберите понравившуюся вам модель <b>Stable Diffusion</b> в разделе Палитра 🎨</h4>
                <h4>4. Нажмите кнопку "Создать пейзажи", дождитесь окончания генерации и наслаждайтесь великолепными изображениями </h4>
                <h4>5. Для новых итерации изображения, выберите другую модель или снова нажмите кнопку "Сгенерировать Magic промт"</h4></div>                
                """)
            
    

    with gr.Row():
        with gr.Row():
            input_text = gr.Textbox(label="Идея пейзажей 🖼",  placeholder="", lines=1)
            # Model selection dropdown
            model_name1 = gr.Dropdown(
                label="Палитра 🎨",
                choices=[m["name"] for m in models],
                type="index",
                value=current_model["name"],
                interactive=True,
            )
        with gr.Row():
            see_prompts = gr.Button("Сгенерировать Magic промты")
            run = gr.Button("Создать пейзажи", variant="primary")
    
    with gr.Row():
        output1 = gr.outputs.Image(type="numpy", label="Output (The whole image)")
        download1 = gr.outputs.File(label="Download the output image")
        output2 = gr.outputs.Image(type="numpy", label="Output (The whole image)")       
        download2 = gr.outputs.File(label="Download the output image")
        output3 = gr.outputs.Image(type="numpy", label="Output (The whole image)")        
        download3 = gr.outputs.File(label="Download the output image")
    with gr.Row():
        magic1 = gr.Textbox(label="Magic промт", lines=2)
        magic2 = gr.Textbox(label="Magic промт", lines=2)
        magic3 = gr.Textbox(label="Magic промт", lines=2)
    with gr.Row():
        output4 = gr.outputs.Image(type="numpy", label="Output (The whole image)")        
        download4 = gr.outputs.File(label="Download the output image")
        output5 = gr.outputs.Image(type="numpy", label="Output (The whole image)")        
        download5 = gr.outputs.File(label="Download the output image")
        output6 = gr.outputs.Image(type="numpy", label="Output (The whole image)")        
        download6 = gr.outputs.File(label="Download the output image")
    with gr.Row():
        magic4 = gr.Textbox(label="Magic промт", lines=2)
        magic5 = gr.Textbox(label="Magic промт", lines=2)
        magic6 = gr.Textbox(label="Magic промт", lines=2)

    model_name1.change(set_model, inputs=model_name1, outputs=[output1, output2, output3, output4, output5, output6])

    run.click(send_it, inputs=[magic1, model_name1], outputs=[output1])
    run.click(send_it, inputs=[magic2, model_name1], outputs=[output2])
    run.click(send_it, inputs=[magic3, model_name1], outputs=[output3])
    run.click(send_it, inputs=[magic4, model_name1], outputs=[output4])
    run.click(send_it, inputs=[magic5, model_name1], outputs=[output5])
    run.click(send_it, inputs=[magic6, model_name1], outputs=[output6])

    run.click(send_it, inputs=[magic1, model_name1], outputs=[download1])
    run.click(send_it, inputs=[magic2, model_name1], outputs=[download2])
    run.click(send_it, inputs=[magic3, model_name1], outputs=[download3])
    run.click(send_it, inputs=[magic4, model_name1], outputs=[download4])
    run.click(send_it, inputs=[magic5, model_name1], outputs=[download5])
    run.click(send_it, inputs=[magic6, model_name1], outputs=[download6])    

    see_prompts.click(text_it, inputs=[input_text], outputs=[magic1])
    see_prompts.click(text_it, inputs=[input_text], outputs=[magic2])
    see_prompts.click(text_it, inputs=[input_text], outputs=[magic3])
    see_prompts.click(text_it, inputs=[input_text], outputs=[magic4])
    see_prompts.click(text_it, inputs=[input_text], outputs=[magic5])
    see_prompts.click(text_it, inputs=[input_text], outputs=[magic6])

myface.queue(concurrency_count=200)
myface.launch(inline=True, show_api=False, max_threads=400)