Spaces:
Running
Running
File size: 3,424 Bytes
988597d c0e3d62 af1e780 e498f21 af1e780 e915550 988597d c0e3d62 988597d c0e3d62 988597d c0e3d62 199e195 988597d 1bf2991 988597d c0e3d62 988597d af1e780 988597d c0e3d62 988597d c0e3d62 988597d c0e3d62 988597d c0e3d62 988597d e915550 c0e3d62 |
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 |
import gradio as gr
import time
models = [
"adirik/flux-cinestill",
"kudzueye/boreal-flux-dev-v2",
"alvdansen/flux_film_foto",
"alvdansen/pola-photo-flux",
"XLabs-AI/flux-RealismLora",
"black-forest-labs/FLUX.1-dev",
]
model_functions = {}
model_idx = 1
for model_path in models:
try:
model_functions[model_idx] = gr.load(f"models/{model_path}", live=False)
except Exception as error:
def the_fn(txt):
return None
model_functions[model_idx] = gr.Interface(fn=the_fn, inputs=["text"], outputs=["image"])
model_idx += 1
def send_it_idx(idx):
def send_it_fn(prompt):
output = (model_functions.get(str(idx)) or model_functions.get(str(1)))(prompt)
return output
return send_it_fn
def get_prompts(prompt_text):
return prompt_text
def clear_it(val):
if int(val) != 0:
val = 0
else:
val = 0
return val
def all_task_end(cnt, t_stamp):
to = t_stamp + 360
et = time.time()
if et > to and t_stamp != 0:
d = gr.update(value=0)
tog = gr.update(value=1)
else:
if cnt != 0:
d = gr.update(value=et)
else:
d = gr.update(value=0)
tog = gr.update(value=0)
return d, tog
def all_task_start():
t = time.gmtime()
t_stamp = time.time()
current_time = time.strftime("%H:%M:%S", t)
return gr.update(value=t_stamp), gr.update(value=t_stamp), gr.update(value=0)
def clear_fn():
nn = len(models)
return tuple([None, *[None for _ in range(nn)]])
with gr.Blocks(title="SD Models") as my_interface:
with gr.Column(scale=12):
with gr.Row():
with gr.Row():
primary_prompt = gr.Textbox(label="Prompt", value="")
with gr.Row():
run = gr.Button("Run", variant="primary")
clear_btn = gr.Button("Clear")
with gr.Row():
sd_outputs = {}
model_idx = 1
for model_path in models:
with gr.Column(scale=3, min_width=200):
with gr.Box():
sd_outputs[model_idx] = gr.Image(label=model_path)
model_idx += 1
with gr.Row(visible=False):
start_box = gr.Number(interactive=False)
end_box = gr.Number(interactive=False)
tog_box = gr.Textbox(value=0, interactive=False)
start_box.change(
all_task_end,
[start_box, end_box],
[start_box, tog_box],
every=1,
show_progress=True
)
primary_prompt.submit(all_task_start, None, [start_box, end_box, tog_box])
run.click(all_task_start, None, [start_box, end_box, tog_box])
runs_dict = {}
model_idx = 1
for model_path in models:
runs_dict[model_idx] = run.click(model_functions[model_idx], inputs=[primary_prompt], outputs=[sd_outputs[model_idx]])
model_idx += 1
clear_btn.click(
clear_fn,
None,
[primary_prompt, *list(sd_outputs.values())],
cancels=[*list(runs_dict.values())]
)
tog_box.change(
clear_it,
tog_box,
tog_box,
cancels=[*list(runs_dict.values())]
)
my_interface.queue(concurrency_count=200, status_update_rate=1)
my_interface.launch(inline=True, show_api=False) |