Significant commited on
Commit
a8dd021
·
verified ·
1 Parent(s): 84f1a3c

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +49 -38
app.py CHANGED
@@ -272,9 +272,29 @@ woman_prompts = {
272
  def get_prompts_by_gender(gender):
273
  return man_prompts if gender == "man" else woman_prompts
274
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
275
  def update_suggestion_buttons(gender):
276
  prompts = get_prompts_by_gender(gender)
277
- return gr.update(visible=True), prompts
 
 
278
 
279
  ### Description and style
280
  logo = r"""
@@ -411,23 +431,17 @@ input[type="radio"] {
411
  '''
412
 
413
  def update_prompt_buttons_visibility(gender):
414
- if gender == "man":
415
- return [gr.update(visible=True)] + \
416
- [gr.update(visible=True) for _ in man_btns] + \
417
- [gr.update(visible=False) for _ in woman_btns]
418
- else:
419
- return [gr.update(visible=True)] + \
420
- [gr.update(visible=False) for _ in man_btns] + \
421
- [gr.update(visible=True) for _ in woman_btns]
422
-
423
 
 
424
 
425
  with gr.Blocks(css=css) as demo:
426
  gr.Markdown(logo)
427
  gr.Markdown(title)
428
  #gr.Markdown(description)
429
 
430
- current_suggestions = gr.State(woman_prompts)
431
 
432
  # gr.DuplicateButton(
433
  # value="Duplicate Space for private use ",
@@ -466,8 +480,10 @@ with gr.Blocks(css=css) as demo:
466
  gr.Markdown("### Suggested Prompts")
467
 
468
  theme_buttons = []
469
- for theme in man_prompts.keys(): # initially load man themes
470
- theme_buttons.append(gr.Button(theme))
 
 
471
  # prompt_buttons = []
472
  # for s in suggestions:
473
  # b = gr.Button(s)
@@ -482,27 +498,28 @@ with gr.Blocks(css=css) as demo:
482
  outputs=prompt_suggestions
483
  )
484
 
485
- def update_buttons_hidden(gender):
486
- updates = update_prompt_buttons_visibility(gender)
487
- # Force popup to remain hidden
488
- updates[0] = gr.update(visible=False)
489
- return updates
490
-
491
- def update_buttons_and_show(gender):
492
- updates = update_prompt_buttons_visibility(gender)
493
- updates[0] = gr.update(visible=True) # force popup visible
494
- return updates
495
 
496
  gender_selector.change(
497
- fn=update_buttons_hidden,
498
  inputs=gender_selector,
499
- outputs=[prompt_suggestions] + man_btns + woman_btns
500
  )
501
 
502
  show_prompts_btn.click(
503
- fn=update_buttons_and_show,
504
- inputs=gender_selector,
505
- outputs=[prompt_suggestions] + man_btns + woman_btns
 
506
  )
507
 
508
 
@@ -642,19 +659,13 @@ with gr.Blocks(css=css) as demo:
642
  # )
643
 
644
  # When user clicks on a suggestion, fill the prompt textbox and close popup
645
- for theme, prompt_text in man_prompts.items():
646
- b = gr.Button(theme)
647
- b.click(
648
- fn=lambda _, t=prompt_text: (gr.update(value=t), gr.update(visible=False)),
649
- inputs=None,
650
  outputs=[prompt, prompt_suggestions]
651
  )
652
 
653
-
654
-
655
-
656
-
657
-
658
  # gr.Examples(
659
  # examples=get_example(),
660
  # inputs=[files, prompt, style, negative_prompt],
 
272
  def get_prompts_by_gender(gender):
273
  return man_prompts if gender == "man" else woman_prompts
274
 
275
+ # ✅ Place this here, above gr.Blocks
276
+ def update_theme_buttons(gender):
277
+ prompts = get_prompts_by_gender(gender) # returns {theme: prompt}
278
+ updates = []
279
+ for i, (theme, prompt_text) in enumerate(prompts.items()):
280
+ if i < len(theme_btns):
281
+ updates.append(gr.update(value=theme, visible=True))
282
+ else:
283
+ break
284
+ # Hide remaining unused buttons
285
+ for j in range(len(prompts), len(theme_btns)):
286
+ updates.append(gr.update(visible=False))
287
+ return updates
288
+
289
+ def get_prompt_from_theme(gender, theme):
290
+ return get_prompts_by_gender(gender)[theme], gr.update(visible=False)
291
+
292
+
293
  def update_suggestion_buttons(gender):
294
  prompts = get_prompts_by_gender(gender)
295
+ return gr.update(visible=True), prompts
296
+
297
+
298
 
299
  ### Description and style
300
  logo = r"""
 
431
  '''
432
 
433
  def update_prompt_buttons_visibility(gender):
434
+ prompts = man_prompts if gender == "man" else woman_prompts
435
+ return [gr.update(value=theme, visible=True) for theme in prompts.keys()]
 
 
 
 
 
 
 
436
 
437
+ # theme_btns = [gr.Button(theme, visible=False) for theme in list(man_prompts.keys())]
438
 
439
  with gr.Blocks(css=css) as demo:
440
  gr.Markdown(logo)
441
  gr.Markdown(title)
442
  #gr.Markdown(description)
443
 
444
+ # current_suggestions = gr.State(woman_prompts)
445
 
446
  # gr.DuplicateButton(
447
  # value="Duplicate Space for private use ",
 
480
  gr.Markdown("### Suggested Prompts")
481
 
482
  theme_buttons = []
483
+ for theme in list(man_prompts.keys()): # initially load man themes
484
+ btn = gr.Button(theme)
485
+ theme_btns.append(btn)
486
+ # theme_buttons.append(gr.Button(theme))
487
  # prompt_buttons = []
488
  # for s in suggestions:
489
  # b = gr.Button(s)
 
498
  outputs=prompt_suggestions
499
  )
500
 
501
+ # def update_buttons_hidden(gender):
502
+ # updates = update_prompt_buttons_visibility(gender)
503
+ # # Force popup to remain hidden
504
+ # updates[0] = gr.update(visible=False)
505
+ # return updates
506
+
507
+ # def update_buttons_and_show(gender):
508
+ # updates = update_prompt_buttons_visibility(gender)
509
+ # updates[0] = gr.update(visible=True) # force popup visible
510
+ # return updates
511
 
512
  gender_selector.change(
513
+ fn=lambda gender: [gr.update(visible=True) for _ in theme_btns],
514
  inputs=gender_selector,
515
+ outputs=theme_btns
516
  )
517
 
518
  show_prompts_btn.click(
519
+ fn=lambda: gr.update(visible=True),
520
+ # fn=update_theme_buttons,
521
+ # inputs=gender_selector,
522
+ outputs=theme_buttons
523
  )
524
 
525
 
 
659
  # )
660
 
661
  # When user clicks on a suggestion, fill the prompt textbox and close popup
662
+ for btn in theme_btns:
663
+ btn.click(
664
+ fn=lambda theme_name, g: get_prompt_from_theme(g, theme_name),
665
+ inputs=[btn, gender_selector],
 
666
  outputs=[prompt, prompt_suggestions]
667
  )
668
 
 
 
 
 
 
669
  # gr.Examples(
670
  # examples=get_example(),
671
  # inputs=[files, prompt, style, negative_prompt],