Spaces:
Running
Running
File size: 3,083 Bytes
b7236f0 7d6469d 46c56a8 b7236f0 a29b766 7d6469d b7236f0 7d6469d 190bea1 7d6469d 190bea1 c672df2 7d6469d fa04110 a9366e7 7d6469d 07eca3d 2ba3409 7d6469d 2ba3409 a9366e7 7d6469d 7794968 7d6469d b7236f0 7794968 b7236f0 7d6469d 7794968 242efa0 7794968 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 |
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 = 6
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 6 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 686 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() |