Update app.py
Browse files
app.py
CHANGED
@@ -67,4 +67,72 @@ def make_me():
|
|
67 |
model_group_selector = gr.Dropdown(
|
68 |
choices=list(model_groups.keys()), label="Select Model Group", value="Group A"
|
69 |
)
|
70 |
-
txt_input = gr.Textbox(label='
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
67 |
model_group_selector = gr.Dropdown(
|
68 |
choices=list(model_groups.keys()), label="Select Model Group", value="Group A"
|
69 |
)
|
70 |
+
txt_input = gr.Textbox(label='Your prompt:', lines=2, value=kii)
|
71 |
+
gen_button = gr.Button('Generate images', elem_id="generate-btn")
|
72 |
+
stop_button = gr.Button('Stop', variant='secondary', interactive=False)
|
73 |
+
|
74 |
+
gr.HTML("""
|
75 |
+
<div style="text-align: center; max-width: 100%; margin: 0 auto;">
|
76 |
+
<body></body>
|
77 |
+
</div>
|
78 |
+
""")
|
79 |
+
|
80 |
+
with gr.Row():
|
81 |
+
# Output elements
|
82 |
+
output = gr.State([])
|
83 |
+
tally_boxes = gr.State({})
|
84 |
+
output_display = gr.Column()
|
85 |
+
with output_display:
|
86 |
+
result_images = []
|
87 |
+
tally_counters = []
|
88 |
+
|
89 |
+
def update_outputs(group_name):
|
90 |
+
selected_models = model_groups[group_name]
|
91 |
+
result_images.clear()
|
92 |
+
tally_counters.clear()
|
93 |
+
for model in selected_models:
|
94 |
+
result_images.append(gr.Image(label=model, width=170, height=170))
|
95 |
+
tally_counters.append(gr.Textbox(value="0", label=f"Tally for {model}", interactive=False))
|
96 |
+
return result_images, tally_counters, {model: 0 for model in selected_models}
|
97 |
+
|
98 |
+
model_group_selector.change(
|
99 |
+
update_outputs, [model_group_selector], [output, tally_boxes]
|
100 |
+
)
|
101 |
+
|
102 |
+
def generate_images(prompt, outputs, tallies):
|
103 |
+
for idx, model_element in enumerate(outputs):
|
104 |
+
model_str = list(tallies.keys())[idx]
|
105 |
+
result, tallies = gen_fn(model_str, prompt, tallies)
|
106 |
+
model_element.update(value=result)
|
107 |
+
for idx, tally_box in enumerate(tally_counters):
|
108 |
+
tally_box.update(value=str(tallies[list(tallies.keys())[idx]]))
|
109 |
+
return tallies
|
110 |
+
|
111 |
+
gen_button.click(
|
112 |
+
generate_images,
|
113 |
+
inputs=[txt_input, output, tally_boxes],
|
114 |
+
outputs=[tally_boxes],
|
115 |
+
)
|
116 |
+
|
117 |
+
|
118 |
+
js_code = """
|
119 |
+
<script>
|
120 |
+
const originalScroll = window.scrollTo;
|
121 |
+
const originalShowToast = gradio.Toast.show;
|
122 |
+
gradio.Toast.show = function() {
|
123 |
+
originalShowToast.apply(this, arguments);
|
124 |
+
window.scrollTo = function() {};
|
125 |
+
};
|
126 |
+
setTimeout(() => {
|
127 |
+
window.scrollTo = originalScroll;
|
128 |
+
}, 3000); // Restore scroll function after 3 seconds
|
129 |
+
</script>
|
130 |
+
"""
|
131 |
+
|
132 |
+
with gr.Blocks() as demo:
|
133 |
+
gr.Markdown("<div></div>")
|
134 |
+
make_me()
|
135 |
+
gr.Markdown(js_code)
|
136 |
+
|
137 |
+
demo.queue(concurrency_count=50)
|
138 |
+
demo.launch()
|