Spaces:
Running
Running
File size: 3,814 Bytes
6fef025 f5b8400 7f74da5 6fef025 f5b8400 7f74da5 f5b8400 6fef025 f5b8400 6fef025 f5b8400 6fef025 f5b8400 7f74da5 6fef025 f5b8400 7f74da5 fc42fea 6fef025 f5b8400 d2777ff 1485f13 6fef025 f5b8400 7f74da5 6b70d61 7f74da5 8f8f343 3977ac5 8f8f343 3977ac5 8f8f343 7f74da5 8f8f343 654d3d1 6ce4171 654d3d1 f5b8400 7f74da5 f5b8400 |
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 |
import gradio as gr
from random import randint
from all_models import models
from externalmod import gr_Interface_load
def load_fn(models):
global models_load
models_load = {}
for model in models:
if model not in models_load.keys():
try:
m = gr_Interface_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 = 6
default_models = models[:num_models]
def extend_choices(choices):
return choices[0:num_models] + (num_models - len(choices[0:num_models])) * ['NA']
def update_imgbox(choices):
choices_plus = extend_choices(choices[0:num_models])
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:
gr.HTML(
"""
<div>
<p> <center>For simultaneous generations without queue check out <a href="https://huggingface.co/spaces/Yntec/ToyWorld">Toy World</a>!</center>
</p></div>
"""
)
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 6 images from 1 minute to 18 minutes total wait time')
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 866 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)
model_choice = gr.CheckboxGroup(models, label = f'Choose up to {num_models} different models from the 874 available!', value = default_models, interactive = True)
#model_choice.change(lambda x: x[0:num_models], [model_choice], [model_choice])
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()
demo.launch() |