File size: 6,111 Bytes
81ca520
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
import gradio as gr
import os
import sys
from pathlib import Path

models = [
    {"name": "Anything Midjourney 4.1", "url": "Joeythemonster/anything-midjourney-v-4-1"},
    {"name": "Chaos and Order", "url": "Guizmus/SDArt_ChaosAndOrder768"},
    {"name": "Chilloutclara", "url": "Fred99774/chilloutvlara"},
    {"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": "Seek Art Mega", "url": "coreco/seek.art_MEGA"},
    {"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"},
]

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="Eg. Fantasy sunrise, serene", 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)