Spaces:
Running
Running
Update app.py
Browse files
app.py
CHANGED
@@ -150,21 +150,24 @@ def character_creation_app(data_manager):
|
|
150 |
|
151 |
save_button.click(save_character, inputs=[name_input, traits_input, image_input, gender_input], outputs=output)
|
152 |
|
153 |
-
def prompt_generator_app(data_manager
|
154 |
with gr.Tab("Prompt Generator"):
|
155 |
gr.Markdown("## Prompt Generator")
|
156 |
|
|
|
|
|
|
|
157 |
inputs = {}
|
158 |
tag_displays = {}
|
159 |
for category_name, var_name in categories:
|
160 |
-
tags_list =
|
161 |
tags_string = ', '.join(tags_list)
|
162 |
max_tags = len(tags_list)
|
163 |
if max_tags == 0:
|
164 |
default_value = 0
|
165 |
else:
|
166 |
default_value = min(1, max_tags)
|
167 |
-
with gr.
|
168 |
gr.Markdown(f"### {category_name}")
|
169 |
tag_display = gr.Markdown(f"**Tags:** {tags_string}")
|
170 |
tag_num = gr.Slider(minimum=0, maximum=max_tags, step=1, value=default_value, label=f"Number of {category_name} Tags to Select")
|
@@ -201,12 +204,12 @@ def prompt_generator_app(data_manager, category_tags_state):
|
|
201 |
generate_button = gr.Button("Generate Prompt")
|
202 |
prompt_output = gr.Textbox(label="Generated Prompt", lines=5)
|
203 |
|
204 |
-
def generate_prompt(*args
|
205 |
arg_idx = 0
|
206 |
|
207 |
prompt_tags = []
|
208 |
for category_name, var_name in categories:
|
209 |
-
tags_list =
|
210 |
tags_num = args[arg_idx]
|
211 |
arg_idx += 1
|
212 |
|
@@ -296,22 +299,28 @@ def prompt_generator_app(data_manager, category_tags_state):
|
|
296 |
|
297 |
generate_button.click(generate_prompt, inputs=inputs_list, outputs=prompt_output)
|
298 |
|
299 |
-
# Function to
|
300 |
-
def
|
301 |
-
|
302 |
-
|
303 |
-
|
304 |
-
|
305 |
-
|
306 |
-
|
307 |
-
|
308 |
-
|
309 |
-
|
310 |
-
|
311 |
-
|
312 |
-
|
313 |
-
|
314 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
315 |
with gr.Tab("Tags"):
|
316 |
gr.Markdown("## Edit Tags for Each Category")
|
317 |
|
@@ -323,21 +332,16 @@ def tags_app(data_manager, category_tags_state):
|
|
323 |
save_button = gr.Button(f"Save {category_name} Tags")
|
324 |
status_output = gr.Textbox(label="", interactive=False)
|
325 |
|
326 |
-
# Function to save tags
|
327 |
def make_save_category_tags_fn(var_name, category_name):
|
328 |
def fn(tags_string):
|
329 |
tags_list = [t.strip() for t in tags_string.split(',') if t.strip()]
|
330 |
data_manager.set_category_tags(var_name, tags_list)
|
331 |
-
|
332 |
-
|
333 |
-
# Update the prompt generator components
|
334 |
-
updates = prompt_generator_app.update_prompt_generator_tags(var_name, tags_list)
|
335 |
-
return updates, f"{category_name} tags saved successfully."
|
336 |
return fn
|
337 |
|
338 |
save_fn = make_save_category_tags_fn(var_name, category_name)
|
339 |
-
|
340 |
-
save_button.click(save_fn, inputs=tag_input, outputs=[gr.Group.update(), status_output])
|
341 |
|
342 |
# Persistent Tags
|
343 |
gr.Markdown(f"### Persistent Tags")
|
@@ -355,12 +359,10 @@ def tags_app(data_manager, category_tags_state):
|
|
355 |
|
356 |
def main():
|
357 |
data_manager = DataManager()
|
358 |
-
category_tags_state = {var_name: data_manager.get_category_tags(var_name) for _, var_name in categories}
|
359 |
-
|
360 |
with gr.Blocks() as demo:
|
361 |
-
prompt_generator_app(data_manager
|
362 |
character_creation_app(data_manager)
|
363 |
-
tags_app(data_manager
|
364 |
|
365 |
demo.launch()
|
366 |
|
|
|
150 |
|
151 |
save_button.click(save_character, inputs=[name_input, traits_input, image_input, gender_input], outputs=output)
|
152 |
|
153 |
+
def prompt_generator_app(data_manager):
|
154 |
with gr.Tab("Prompt Generator"):
|
155 |
gr.Markdown("## Prompt Generator")
|
156 |
|
157 |
+
# Add a refresh tags button
|
158 |
+
refresh_tags_button = gr.Button("Refresh Tags")
|
159 |
+
|
160 |
inputs = {}
|
161 |
tag_displays = {}
|
162 |
for category_name, var_name in categories:
|
163 |
+
tags_list = data_manager.get_category_tags(var_name)
|
164 |
tags_string = ', '.join(tags_list)
|
165 |
max_tags = len(tags_list)
|
166 |
if max_tags == 0:
|
167 |
default_value = 0
|
168 |
else:
|
169 |
default_value = min(1, max_tags)
|
170 |
+
with gr.Box():
|
171 |
gr.Markdown(f"### {category_name}")
|
172 |
tag_display = gr.Markdown(f"**Tags:** {tags_string}")
|
173 |
tag_num = gr.Slider(minimum=0, maximum=max_tags, step=1, value=default_value, label=f"Number of {category_name} Tags to Select")
|
|
|
204 |
generate_button = gr.Button("Generate Prompt")
|
205 |
prompt_output = gr.Textbox(label="Generated Prompt", lines=5)
|
206 |
|
207 |
+
def generate_prompt(*args):
|
208 |
arg_idx = 0
|
209 |
|
210 |
prompt_tags = []
|
211 |
for category_name, var_name in categories:
|
212 |
+
tags_list = data_manager.get_category_tags(var_name)
|
213 |
tags_num = args[arg_idx]
|
214 |
arg_idx += 1
|
215 |
|
|
|
299 |
|
300 |
generate_button.click(generate_prompt, inputs=inputs_list, outputs=prompt_output)
|
301 |
|
302 |
+
# Function to refresh tags display and sliders
|
303 |
+
def refresh_tags():
|
304 |
+
updates = {}
|
305 |
+
for category_name, var_name in categories:
|
306 |
+
# Reload tags from data_manager
|
307 |
+
tags_list = data_manager.get_category_tags(var_name)
|
308 |
+
tags_string = ', '.join(tags_list)
|
309 |
+
max_tags = len(tags_list)
|
310 |
+
if max_tags == 0:
|
311 |
+
slider_value = 0
|
312 |
+
else:
|
313 |
+
slider_value = min(1, max_tags)
|
314 |
+
# Update the tag display and slider
|
315 |
+
tag_display, tag_num = tag_displays[var_name]
|
316 |
+
updates[tag_display] = gr.update(value=f"**Tags:** {tags_string}")
|
317 |
+
updates[tag_num] = gr.update(maximum=max_tags, value=slider_value)
|
318 |
+
return updates
|
319 |
+
|
320 |
+
# Connect the refresh_tags function to the refresh_tags_button
|
321 |
+
refresh_tags_button.click(refresh_tags, outputs=list(tag_displays.values()))
|
322 |
+
|
323 |
+
def tags_app(data_manager):
|
324 |
with gr.Tab("Tags"):
|
325 |
gr.Markdown("## Edit Tags for Each Category")
|
326 |
|
|
|
332 |
save_button = gr.Button(f"Save {category_name} Tags")
|
333 |
status_output = gr.Textbox(label="", interactive=False)
|
334 |
|
335 |
+
# Function to save tags
|
336 |
def make_save_category_tags_fn(var_name, category_name):
|
337 |
def fn(tags_string):
|
338 |
tags_list = [t.strip() for t in tags_string.split(',') if t.strip()]
|
339 |
data_manager.set_category_tags(var_name, tags_list)
|
340 |
+
return f"{category_name} tags saved successfully."
|
|
|
|
|
|
|
|
|
341 |
return fn
|
342 |
|
343 |
save_fn = make_save_category_tags_fn(var_name, category_name)
|
344 |
+
save_button.click(save_fn, inputs=tag_input, outputs=status_output)
|
|
|
345 |
|
346 |
# Persistent Tags
|
347 |
gr.Markdown(f"### Persistent Tags")
|
|
|
359 |
|
360 |
def main():
|
361 |
data_manager = DataManager()
|
|
|
|
|
362 |
with gr.Blocks() as demo:
|
363 |
+
prompt_generator_app(data_manager)
|
364 |
character_creation_app(data_manager)
|
365 |
+
tags_app(data_manager)
|
366 |
|
367 |
demo.launch()
|
368 |
|