File size: 3,029 Bytes
b7236f0
7d6469d
46c56a8
b7236f0
a29b766
 
7d6469d
 
 
b7236f0
7d6469d
 
 
 
 
 
 
190bea1
 
7d6469d
190bea1
 
c0df2a4
7d6469d
fa04110
 
a9366e7
7d6469d
 
07eca3d
2ba3409
7d6469d
 
 
2ba3409
a9366e7
7d6469d
 
 
 
 
 
 
 
 
 
17c773f
a29b766
 
 
 
 
 
 
 
7d6469d
 
 
b7236f0
 
a29b766
b7236f0
 
 
 
7d6469d
 
b1d0d41
dbfbf51
b036a1c
5b847ce
b1d0d41
17c773f
b1d0d41
29433a1
b1d0d41
 
7d6469d
 
 
 
 
 
 
 
 
 
 
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
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}')



with gr.Blocks() as demo:
    with gr.Tab('The Dream'): 
        model_choice2 = gr.Dropdown(models, label = 'Choose a model from the 686 available!', value = models[0], filterable = False)
        txt_input2 = gr.Textbox(label = 'Your prompt:')
        
        max_images = 6
        
        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.</p>
                </div>
                </body>
              </div>
            </div>
        """
               )
        
        with gr.Column():
            num_images = gr.Slider(1, max_images, value = 1, step = 1, label = 'Number of images')        
            output2 = [gr.Image(label = '') for _ in range(1)]
        for i, o in enumerate(output2):
            num_models = num_images
            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_fn(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 and Omnibus's Maximum Multiplier!
        </p>
    """
)

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