File size: 3,087 Bytes
6fef025
f5b8400
 
6fef025
1d1b0f1
 
f5b8400
 
 
 
 
 
 
 
 
 
 
6fef025
1d1b0f1
f5b8400
6fef025
1d1b0f1
9c52132
f5b8400
6fef025
1d1b0f1
 
f5b8400
 
6fef025
1d1b0f1
f5b8400
 
1d1b0f1
6fef025
1d1b0f1
f5b8400
 
 
1d1b0f1
 
 
6fef025
 
f5b8400
1d1b0f1
 
9c52132
1d1b0f1
 
3977ac5
1d1b0f1
3977ac5
 
 
8f8f343
3977ac5
 
 
 
 
1d1b0f1
8f8f343
1d1b0f1
 
 
 
8f8f343
1d1b0f1
8f8f343
1d1b0f1
 
8f8f343
654d3d1
 
1d1b0f1
 
 
 
 
 
 
 
 
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
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 = 200
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}')



with gr.Blocks() as demo:
    with gr.Tab('The Dream'): 
        txt_input = gr.Textbox(label = 'Your prompt:', lines=4).style(container=False,min_width=1200)
        gen_button = gr.Button('Generate up to 200 images in up to 3 minutes total')
        stop_button = gr.Button('Stop', variant = 'secondary', interactive = False)
        gen_button.click(lambda s: gr.update(interactive = True), None, stop_button)
        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 and select models.</p>
                </div>
                </body>
              </div>
            </div>
        """
               )
        with gr.Row():
            output = [gr.Image(label = m, min_width=480) for m in default_models]
            current_models = [gr.Textbox(m, visible = False) for m in default_models]
                        
            for m, o in zip(current_models, output):
                gen_event = gen_button.click(gen_fn, [m, txt_input], o)
                stop_button.click(lambda s: gr.update(interactive = False), None, stop_button, cancels = [gen_event])
        with gr.Accordion('Model selection'):
            model_choice = gr.CheckboxGroup(models, label = f'Choose up to {num_models} different models from the 755 available!', value = default_models, multiselect = True, max_choices = num_models, interactive = True, filterable = False)
            model_choice.change(update_imgbox, model_choice, output)
            model_choice.change(extend_choices, model_choice, current_models)
        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 and Omnibus's Maximum Multiplier!
        </p>
    """
)

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