File size: 2,962 Bytes
6fef025
89c5f18
f5b8400
53b0019
 
 
 
c469318
0115401
b21c027
 
f5b8400
 
 
 
 
 
 
 
d6c665c
f5b8400
6fef025
81987e1
6fef025
19aac56
f5b8400
6fef025
f5b8400
 
6fef025
f5b8400
 
0318f31
6fef025
0115401
f5b8400
 
f0623f6
0115401
6fef025
bdcf524
0115401
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2944f54
 
0115401
2944f54
 
6eab85d
bb307df
e5beca8
8fc64ff
76b97b6
0318f31
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
import gradio as gr
from random import randint
from all_models import models
from datetime import datetime

def get_current_time():
    now = datetime.now()
    current_time = now2.strftime("%Y-%m-%d %H:%M:%S")
    ki = f'{kii} {current_time}'
    return ki

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 = len(models)
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, negative_prompt):
    if model_str == 'NA':
        return None
    noise = str(randint(0, 9999))
    return models_load[model_str](f'{prompt} {negative_prompt} {noise}')

def make_me():
    with gr.Row():
        txt_input = gr.Textbox(label='Your prompt:', lines=2, width=800, max_height=30)
        neg_txt_input = gr.Textbox(label='Negative prompt:', lines=2, width=800, max_height=30)
        gen_button = gr.Button('Generate images', width=30, height=30)
        stop_button = gr.Button('Stop', variant='secondary', interactive=False, width=30, height=30)
        gen_button.click(lambda s: gr.update(interactive=True), None, stop_button)
        gr.HTML("""
        <div style="text-align: center; max-width: 100%; margin: 0 auto;">
            <body>
            </body>
        </div>
        """)
    with gr.Row():
        output = [gr.Image(label=m, min_width=250, height=250) 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, neg_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' {num_models} different models selected', 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()

js_code = """
console.log('ghgh');
"""

with gr.Blocks(css="div.float.svelte-1mwvhlq {    position: absolute;    top: var(--block-label-margin);    left: var(--block-label-margin);    background: none;    border: none;}") as demo: 
    gr.Markdown("<script>" + js_code + "</script>")
    make_me()

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