File size: 5,491 Bytes
b3f2e04
9405fcc
 
400833e
e9ee4ce
 
9405fcc
 
 
 
 
 
 
 
 
 
 
e9ee4ce
400833e
9405fcc
 
 
02001b9
9405fcc
b7236f0
a29b766
 
9405fcc
 
07eca3d
2ba3409
9405fcc
 
 
2ba3409
9405fcc
 
 
 
 
 
7d6469d
b46ae9a
 
 
 
 
9405fcc
edd0581
 
 
b46ae9a
edd0581
 
 
c48d832
def48e6
b46ae9a
bd650f6
b46ae9a
 
bd650f6
b46ae9a
 
 
4a7ad4a
 
b46ae9a
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
def48e6
b46ae9a
 
 
a47abbb
b46ae9a
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4a7ad4a
 
bd650f6
 
4a7ad4a
b46ae9a
bd650f6
9405fcc
 
 
 
b46ae9a
9405fcc
 
 
 
 
 
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
import gradio as gr
from random import randint
from all_models import models



def load_fn(models):
    global models_load
    models_load = {}
    
    for model in models:
        if model not in models_load.keys():
            try:
                m = gr.load(f'models/{model}')
            except Exception as error:
                m = gr.Interface(lambda txt: None, ['text'], ['image'])
            models_load.update({model: m})


load_fn(models)


num_models = 1
default_models = models[:num_models]



def extend_choices(choices):
    return choices + (num_models - len(choices)) * ['NA']


def update_imgbox(choices):
    choices_plus = extend_choices(choices)
    return [gr.Image(None, label = m, visible = (m != 'NA')) for m in choices_plus]

    
def gen_fn(model_str, prompt):
    if model_str == 'NA':
        return None
    noise = str('') #str(randint(0, 99999999999))
    return models_load[model_str](f'{prompt} {noise}')

def gen_fnsix(model_str, prompt):
    if model_str == 'NA':
        return None
    noisesix = str(randint(1941, 2023)) #str(randint(0, 99999999999))
    return models_load[model_str](f'{prompt} {noisesix}')
with gr.Blocks() as demo:
    gr.HTML(
    """
        <div>
        <p> <center><img src="https://huggingface.co/Yntec/OpenGenDiffusers/resolve/main/pp.png" style="height:128px; width:482px; margin-top: -22px; margin-bottom: -44px;" span title="Free ai art image generator Printing Press"></center>
        </p>
    """
)    
    with gr.Tab('One Image'):
        model_choice = gr.Dropdown(models, label = 'Choose a model from the 782 available!', value = models[0], filterable = False)
        txt_input = gr.Textbox(label = 'Your prompt:')
        
        max_imagesone = 1
        num_imagesone = gr.Slider(1, max_imagesone, value = max_imagesone, step = 1, label = 'Nobody gets to see this label so I can put here whatever I want!', visible = False)
        
        gen_button = gr.Button('Generate')
        stop_button = gr.Button('Stop', variant = 'secondary', interactive = False)
        gen_button.click(lambda s: gr.update(interactive = True), None, stop_button)
        
        with gr.Row():
            output = [gr.Image(label = '') for _ in range(max_imagesone)]

        for i, o in enumerate(output):
            img_in = gr.Number(i, visible = False)
            num_imagesone.change(lambda i, n: gr.update(visible = (i < n)), [img_in, num_imagesone], o, show_progress = False)
            gen_event = gen_button.click(lambda i, n, m, t: gen_fn(m, t) if (i < n) else None, [img_in, num_imagesone, model_choice, txt_input], o)
            stop_button.click(lambda s: gr.update(interactive = False), None, stop_button, cancels = [gen_event])
        with gr.Row():
            gr.HTML(
    """
        <div class="footer">
        <p> Based on the <a href="https://huggingface.co/spaces/derwahnsinn/TestGen">TestGen</a> Space by derwahnsinn, the <a href="https://huggingface.co/spaces/RdnUser77/SpacIO_v1">SpacIO</a> Space by RdnUser77, Omnibus's Maximum Multiplier, <a href="https://huggingface.co/spaces/Yntec/Diffusion60XX">Diffusion60XX</a> and <a href="https://huggingface.co/spaces/Yntec/ToyWorld">Toy World</a>!
        </p>
    """
)
    with gr.Tab('Up To Six'):
        model_choice2 = gr.Dropdown(models, label = 'Choose a model from the 782 available!', value = models[0], filterable = False)
        txt_input2 = gr.Textbox(label = 'Your prompt:')
        
        max_images = 6
        num_images = gr.Slider(1, max_images, value = max_images, step = 1, label = 'Number of images (if you want less than 6 decrease them slowly until they match the boxes below)')
        
        gen_button2 = gr.Button('Generate up to 6 images in up to 3 minutes total')
        stop_button2 = gr.Button('Stop', variant = 'secondary', interactive = False)
        gen_button2.click(lambda s: gr.update(interactive = True), None, stop_button2)
        gr.HTML(
        """
            <div style="text-align: center; max-width: 1200px; margin: 0 auto;">
              <div>
                <body>
                <div class="center"><p style="margin-bottom: 10px; color: #000000;">Scroll down to see more images (they generate in a random order).</p>
                </div>
                </body>
              </div>
            </div>
        """
               )
        with gr.Column():
            output2 = [gr.Image(label = '') for _ in range(max_images)]

        for i, o in enumerate(output2):
            img_i = gr.Number(i, visible = False)
            num_images.change(lambda i, n: gr.update(visible = (i < n)), [img_i, num_images], o, show_progress = False)
            gen_event2 = gen_button2.click(lambda i, n, m, t: gen_fnsix(m, t) if (i < n) else None, [img_i, num_images, model_choice2, txt_input2], o)
            stop_button2.click(lambda s: gr.update(interactive = False), None, stop_button2, cancels = [gen_event2])
        with gr.Row():
            gr.HTML(
    """
        <div class="footer">
        <p> Based on the <a href="https://huggingface.co/spaces/derwahnsinn/TestGen">TestGen</a> Space by derwahnsinn, the <a href="https://huggingface.co/spaces/RdnUser77/SpacIO_v1">SpacIO</a> Space by RdnUser77, Omnibus's Maximum Multiplier, <a href="https://huggingface.co/spaces/Yntec/Diffusion60XX">Diffusion60XX</a> and <a href="https://huggingface.co/spaces/Yntec/ToyWorld">Toy World</a>!
        </p>
    """
)

demo.queue(concurrency_count = 200)                        
demo.launch()