File size: 2,644 Bytes
6fef025 89c5f18 edc0a4e 53b0019 edc0a4e f5b8400 edc0a4e f5b8400 edc0a4e 6fef025 fc20ddf edc0a4e f5b8400 edc0a4e 1fb3ca0 25a1729 481d7cd edc0a4e 1fb3ca0 bdcf524 fc20ddf edc0a4e 9b21a4a edc0a4e 9b21a4a edc0a4e 9b21a4a 5b9e78e 9b21a4a edc0a4e 9b21a4a |
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 |
import gradio as gr
from random import randint
from all_models import models
from datetime import datetime
kii = "mohawk femboy racecar driver"
def get_current_time():
now = datetime.now()
current_time = now.strftime("%Y-%m-%d %H:%M:%S")
return f'{kii} {current_time}'
def load_fn(models):
models_load = {}
for model in models:
if model not in models_load:
try:
m = gr.load(f'models/{model}') # Adjust `gr.load` as needed
except Exception as error:
m = gr.Interface(lambda txt: None, ['text'], ['image'])
models_load[model] = m
return models_load
models_load = 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))
combined_prompt = f'{prompt} {model_str} {noise}'
print(f"Generating with prompt: {combined_prompt}") # Debug line
return models_load.get(model_str, lambda txt: None)(f'{prompt} {noise}')
def make_me():
with gr.Row():
txt_input = gr.Textbox(label='Your prompt:', lines=2, value=kii)
gen_button = gr.Button('Generate images', elem_id="generate-btn")
stop_button = gr.Button('Stop', variant='secondary', interactive=False)
gen_button.click(lambda: 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, width=170, height=170) for m in default_models]
current_models = [gr.Textbox(value=m, visible=False) for m in default_models]
for m, o in zip(current_models, output):
gen_button.click(gen_fn, inputs=[m, txt_input], outputs=o)
js_code = """
<script>
const originalScroll = window.scrollTo;
const originalShowToast = gradio.Toast.show;
gradio.Toast.show = function() {
originalShowToast.apply(this, arguments);
window.scrollTo = function() {};
};
setTimeout(() => {
window.scrollTo = originalScroll;
}, 3000); // Restore scroll function after 3 seconds
</script>
"""
with gr.Blocks() as demo:
gr.Markdown("<div></div>")
make_me()
gr.Markdown(js_code)
demo.queue(concurrency_count=50)
demo.launch()
|