Spaces:
Running
Running
File size: 4,301 Bytes
6fef025 89c5f18 f5b8400 53b0019 0318f31 6e1f6c4 15a21d3 53b0019 0318f31 c469318 0318f31 b21c027 f5b8400 d6c665c f5b8400 6fef025 81987e1 6fef025 19aac56 f5b8400 6fef025 f5b8400 6fef025 f5b8400 0318f31 6fef025 f5b8400 25a1729 6177a01 6fef025 c03394e bdcf524 0a4458d 3394932 4424a6b e367d1b 88264b8 8eff0b6 132d5bb 781fec0 0a4458d 88264b8 0b760cf 44a8e9d 0a4458d 9318515 cd443b7 8f8f343 3ed6f90 0a4458d 0318f31 2944f54 8eff0b6 8831d66 2944f54 8eff0b6 6723828 88264b8 8eff0b6 bb307df e5beca8 8fc64ff 8eff0b6 b5fa7e7 8eff0b6 26b4194 88264b8 8eff0b6 |
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 |
import gradio as gr
from random import randint
from all_models import models
from datetime import datetime
now2 = 0
kii=" needs async iterative function for all models selected to go to appropriate output boxes, because gradio update lost multiselect? OR not. where am i, how did i find myself here, what is this strange language";
def get_current_time():
now = datetime.now()
now2 = 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):
if model_str == 'NA':
return None
noise = str(randint(0, 9999))
return models_load[model_str](f'{prompt} {noise}')
def process_choices(selected_choices):
results = []
for choice in selected_choices:
results.append(f"Processed data for {choice}") # Example output for each model
return results # Return a separate output for each choice
def make_me():
with gr.Row():
txt_input = gr.Textbox(lines=2, value=kii)
#txt_input = gr.Textbox(label='Your prompt:', lines=2, value=kii)
gen_button = gr.Button('Generate images')
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: 100%; margin: 0 auto;">
<body>
</body>
</div>
""")
with gr.Row():
output = [gr.Image(label=m) 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' {num_models} different models selected', value=default_models, multiselect=True, interactive=True, filterable=False)
model_choice = gr.CheckboxGroup(models, label=f' {num_models} different models selected', value=default_models, interactive=True )
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>
""")
js_code = """
console.log('testing js_code');
"""
with gr.Blocks(css="""
label.float.svelte-i3tvor { top:auto!important; bottom: 0; position: absolute; background: rgba(0,0,0,0.0); left: var(--block-label-margin); color: rgba(200,200,200,.7);}
.genbut { max-width: 50px; max-height: 30px; width:150px; height:30px}
.stopbut { max-width: 50px; max-height: 30px; width:150px; height:30px}
.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()
demo.launch(max_threads=200 )
# output = [gr.Image(label=m, height=170) for m in default_models]
#demo.queue(concurrency_count=200)
#demo.launch()
|