File size: 7,083 Bytes
97e93b6
 
 
 
 
 
7afe54b
0782468
eb94947
9e4d171
 
 
 
 
 
 
 
3d03a06
 
 
 
 
0cfbf8e
 
 
 
 
 
ffa7645
 
 
 
 
 
 
 
 
 
 
67e22f2
 
 
 
 
 
 
 
 
 
 
 
 
 
 
296b4fb
 
 
 
 
97e93b6
 
 
 
6c2fcdd
97e93b6
 
 
 
 
 
 
 
 
 
 
 
 
 
 
270c82d
97e93b6
 
 
 
 
 
 
270c82d
97e93b6
270c82d
97e93b6
 
 
 
c3fddcc
97e93b6
 
 
 
 
 
 
 
 
 
 
270c82d
 
 
 
 
 
6c2fcdd
 
 
270c82d
6c2fcdd
270c82d
 
 
6c2fcdd
 
 
97e93b6
c3fddcc
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
import gradio as gr
import os
import sys
from pathlib import Path

models = [
    {"name": "Dreamlike Diffusion", "url": "DmatryMakeev/ponteleich-v1-3500s"},
    {"name": "Dreamlike Anime", "url": "dreamlike-art/dreamlike-anime-1.0"},
    {"name": "Dreamlike Photoreal", "url": "dreamlike-art/dreamlike-photoreal-2.0"},
    {"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": "Archer Diffusion", "url": "nitrosocke/archer-diffusion"},
    {"name": "Icomix 2", "url": "stablediffusionapi/icomix-2"},
    {"name": "Mo-Di Diffusion", "url": "nitrosocke/mo-di-diffusion"},
    {"name": "Comic Diffusion", "url": "ogkalu/Comic-Diffusion"},
    {"name": "Marvel WhatIf Diffusion", "url": "ItsJayQz/Marvel_WhatIf_Diffusion"},
    {"name": "Nitro Diffusion", "url": "nitrosocke/Nitro-Diffusion"},
    {"name": "Never Ending Dream 2", "url": "luongphamit/NeverEnding-Dream2"},
    {"name": "NeverEnding-Dream", "url": "Lykon/NeverEnding-Dream"},
    {"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": "Seek Art Mega", "url": "coreco/seek.art_MEGA"},
    {"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": "Anything Midjourney 4.1", "url": "Joeythemonster/anything-midjourney-v-4-1"},
    {"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": "InkPunk Diffusion", "url": "Envvi/Inkpunk-Diffusion"},
    {"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 Infinity", "url": "darkstorm2150/Protogen_Infinity_Official_Release"},
    {"name": "Protogen X 3.4", "url": "darkstorm2150/Protogen_x3.4_Official_Release"},
    {"name": "Rev Anim", "url": "stablediffusionapi/rev-anim"},
    {"name": "Rev Animated", "url": "coreml/coreml-ReV-Animated"},
    {"name": "Vintedois 1.0", "url": "22h/vintedois-diffusion-v0-1"},
    {"name": "Vintedois 2.0", "url": "22h/vintedois-diffusion-v0-2"},
    {"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"},
]

current_model = models[0]

text_gen = gr.Interface.load("spaces/daspartho/prompt-extend") 

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.Row():
            input_text = gr.Textbox(label="Prompt idea",  placeholder="", lines=1)
            # Model selection dropdown
            model_name1 = gr.Dropdown(
                label="Choose Model",
                choices=[m["name"] for m in models],
                type="index",
                value=current_model["name"],
                interactive=True,
            )
        with gr.Row():
            see_prompts = gr.Button("Generate Prompts")
            run = gr.Button("Generate Images", variant="primary")
    
    with gr.Row():
        output1 = gr.Image(label="")
        output2 = gr.Image(label="")
        output3 = gr.Image(label="")
    with gr.Row():
        magic1 = gr.Textbox(label="Generated Prompt", lines=2)
        magic2 = gr.Textbox(label="Generated Prompt", lines=2)
        magic3 = gr.Textbox(label="Generated Prompt", lines=2)
    with gr.Row():
        output4 = gr.Image(label="")
        output5 = gr.Image(label="")
        output6 = gr.Image(label="")
    with gr.Row():
        magic4 = gr.Textbox(label="Generated Prompt", lines=2)
        magic5 = gr.Textbox(label="Generated Prompt", lines=2)
        magic6 = gr.Textbox(label="Generated Prompt", 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])

    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)