Kims12 commited on
Commit
ebbb2ff
ยท
verified ยท
1 Parent(s): 981a39b

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +62 -52
app.py CHANGED
@@ -1,4 +1,3 @@
1
-
2
  import gradio as gr
3
  import google.generativeai as genai
4
  from PIL import Image
@@ -436,84 +435,95 @@ def create_app():
436
  image_preview = gr.Image(label="์—…๋กœ๋“œ๋œ ์ด๋ฏธ์ง€ (#1)", type="pil")
437
  preview_html = gr.HTML("ํ”„๋กฌํ”„ํŠธ ์ƒ์„ฑ ์‹œ ์—ฌ๊ธฐ์— ๋ฏธ๋ฆฌ๋ณด๊ธฐ๊ฐ€ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.", visible=True)
438
 
439
- # ๋ฐฐ๊ฒฝ ๋ฉ”์ธ ์นดํ…Œ๊ณ ๋ฆฌ ๋ณ€๊ฒฝ ์‹œ ์„œ๋ธŒ ๋ฐ ๊ตฌ์ฒด์  ๋“œ๋กญ๋‹ค์šด ์—…๋ฐ์ดํŠธ
440
- def update_bg_subcategory(bg_main):
441
  subcategories = get_subcategories_background(bg_main)
442
  first_sub = subcategories[0] if subcategories else None
443
  specific_options = get_specific_backgrounds(bg_main, first_sub) if first_sub else []
444
  first_specific = specific_options[0] if specific_options else None
445
- return subcategories, first_sub, specific_options, first_specific
 
 
 
 
 
 
 
446
 
447
- # ๋ฐฐ๊ฒฝ ์„œ๋ธŒ ์นดํ…Œ๊ณ ๋ฆฌ ๋ณ€๊ฒฝ ์‹œ ๊ตฌ์ฒด์  ๋ฐฐ๊ฒฝ ๋“œ๋กญ๋‹ค์šด ์—…๋ฐ์ดํŠธ
448
- def update_bg_specific(bg_main, bg_sub):
449
  specific_options = get_specific_backgrounds(bg_main, bg_sub)
450
  first_specific = specific_options[0] if specific_options else None
451
- return specific_options, first_specific
 
 
 
 
452
 
453
- # ์Šคํƒ€์ผ ๋ฉ”์ธ ์นดํ…Œ๊ณ ๋ฆฌ ๋ณ€๊ฒฝ ์‹œ ๊ตฌ์ฒด์  ์Šคํƒ€์ผ ๋“œ๋กญ๋‹ค์šด ์—…๋ฐ์ดํŠธ
454
- def update_style_specific(style_main):
455
  if style_main == "ํ•„์š”์‹œ ์„ ํƒํ•˜์„ธ์š”":
456
- return [default_style_specific], default_style_specific
 
 
 
 
457
  specific_styles = get_specific_styles(style_main)
458
  first_specific = specific_styles[0] if specific_styles else None
459
- return specific_styles, first_specific
 
 
 
 
460
 
461
- def update_preview(prompt):
462
- if not prompt or "API ํ‚ค" in prompt:
463
- return False, ""
464
- preview = f"""
465
- <div style="padding:10px; border:1px solid #ddd; border-radius:8px; margin-top:10px;">
466
- <h3>ํ”„๋กฌํ”„ํŠธ ์š”์•ฝ</h3>
467
- <p><strong>์ด ๊ธธ์ด:</strong> {len(prompt)} ๊ธ€์ž</p>
468
- <p><strong>์ฃผ์š” ์š”์†Œ:</strong> {", ".join([kw for kw in ["commercial photography", "product", "square format", "centered", "detailed"] if kw.lower() in prompt.lower()])}</p>
469
- <p><strong>๋ฏธ๋“œ์ €๋‹ˆ ํŒŒ๋ผ๋ฏธํ„ฐ:</strong> {" ".join([param for param in ["--ar 1:1", "--s 750", "--q 2"] if param in prompt])}</p>
470
- </div>
471
- """
472
- return True, preview
 
 
 
 
 
473
 
474
- # ๋“œ๋กญ๋‹ค์šด ๋ณ€๊ฒฝ ์ด๋ฒคํŠธ ์—ฐ๊ฒฐ
475
  bg_main_category.change(
476
- fn=update_bg_subcategory,
477
- inputs=[bg_main_category],
478
- outputs=[
479
- bg_subcategory.choices,
480
- bg_subcategory.value,
481
- bg_specific.choices,
482
- bg_specific.value
483
- ]
484
  )
485
 
486
  bg_subcategory.change(
487
- fn=update_bg_specific,
488
  inputs=[bg_main_category, bg_subcategory],
489
- outputs=[
490
- bg_specific.choices,
491
- bg_specific.value
492
- ]
493
  )
494
 
495
  style_main.change(
496
- fn=update_style_specific,
497
- inputs=[style_main],
498
- outputs=[
499
- style_specific.choices,
500
- style_specific.value
501
- ]
502
  )
503
 
504
-
505
  submit_btn.click(
506
- fn=process_inputs,
507
- inputs=[image_input, bg_main_category, bg_subcategory, bg_specific, style_main, style_specific, product_name, additional_info],
508
- outputs=[prompt_output, image_preview]
509
- ).then(
510
- fn=update_preview,
511
- inputs=[prompt_output],
512
- outputs=[preview_html]
 
513
  )
514
 
515
  return demo
516
 
517
  if __name__ == "__main__":
518
  app = create_app()
519
- app.launch()
 
 
1
  import gradio as gr
2
  import google.generativeai as genai
3
  from PIL import Image
 
435
  image_preview = gr.Image(label="์—…๋กœ๋“œ๋œ ์ด๋ฏธ์ง€ (#1)", type="pil")
436
  preview_html = gr.HTML("ํ”„๋กฌํ”„ํŠธ ์ƒ์„ฑ ์‹œ ์—ฌ๊ธฐ์— ๋ฏธ๋ฆฌ๋ณด๊ธฐ๊ฐ€ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.", visible=True)
437
 
438
+ # ์ด๋ฒคํŠธ ํ•ธ๋“ค๋Ÿฌ ํ•จ์ˆ˜๋“ค
439
+ def on_bg_main_change(bg_main):
440
  subcategories = get_subcategories_background(bg_main)
441
  first_sub = subcategories[0] if subcategories else None
442
  specific_options = get_specific_backgrounds(bg_main, first_sub) if first_sub else []
443
  first_specific = specific_options[0] if specific_options else None
444
+
445
+ return {
446
+ "choices": subcategories,
447
+ "value": first_sub
448
+ }, {
449
+ "choices": specific_options,
450
+ "value": first_specific
451
+ }
452
 
453
+ def on_bg_sub_change(bg_main, bg_sub):
 
454
  specific_options = get_specific_backgrounds(bg_main, bg_sub)
455
  first_specific = specific_options[0] if specific_options else None
456
+
457
+ return {
458
+ "choices": specific_options,
459
+ "value": first_specific
460
+ }
461
 
462
+ def on_style_main_change(style_main):
 
463
  if style_main == "ํ•„์š”์‹œ ์„ ํƒํ•˜์„ธ์š”":
464
+ return {
465
+ "choices": [default_style_specific],
466
+ "value": default_style_specific
467
+ }
468
+
469
  specific_styles = get_specific_styles(style_main)
470
  first_specific = specific_styles[0] if specific_styles else None
471
+
472
+ return {
473
+ "choices": specific_styles,
474
+ "value": first_specific
475
+ }
476
 
477
+ def on_submit(img, bg_main, bg_sub, bg_specific, style_main, style_specific, prod_name, add_info):
478
+ output, preview_img = process_inputs(img, bg_main, bg_sub, bg_specific, style_main, style_specific, prod_name, add_info)
479
+
480
+ preview_visible = not (not output or "API ํ‚ค" in output)
481
+ preview_content = ""
482
+
483
+ if preview_visible:
484
+ preview_content = f"""
485
+ <div style="padding:10px; border:1px solid #ddd; border-radius:8px; margin-top:10px;">
486
+ <h3>ํ”„๋กฌํ”„ํŠธ ์š”์•ฝ</h3>
487
+ <p><strong>์ด ๊ธธ์ด:</strong> {len(output)} ๊ธ€์ž</p>
488
+ <p><strong>์ฃผ์š” ์š”์†Œ:</strong> {", ".join([kw for kw in ["commercial photography", "product", "square format", "centered", "detailed"] if kw.lower() in output.lower()])}</p>
489
+ <p><strong>๋ฏธ๋“œ์ €๋‹ˆ ํŒŒ๋ผ๋ฏธํ„ฐ:</strong> {" ".join([param for param in ["--ar 1:1", "--s 750", "--q 2"] if param in output])}</p>
490
+ </div>
491
+ """
492
+
493
+ return output, preview_img, preview_content, preview_visible
494
 
495
+ # ์ด๋ฒคํŠธ ์—ฐ๊ฒฐ
496
  bg_main_category.change(
497
+ fn=on_bg_main_change,
498
+ inputs=bg_main_category,
499
+ outputs=[bg_subcategory, bg_specific]
 
 
 
 
 
500
  )
501
 
502
  bg_subcategory.change(
503
+ fn=on_bg_sub_change,
504
  inputs=[bg_main_category, bg_subcategory],
505
+ outputs=bg_specific
 
 
 
506
  )
507
 
508
  style_main.change(
509
+ fn=on_style_main_change,
510
+ inputs=style_main,
511
+ outputs=style_specific
 
 
 
512
  )
513
 
 
514
  submit_btn.click(
515
+ fn=on_submit,
516
+ inputs=[
517
+ image_input, bg_main_category, bg_subcategory, bg_specific,
518
+ style_main, style_specific, product_name, additional_info
519
+ ],
520
+ outputs=[
521
+ prompt_output, image_preview, preview_html, preview_html
522
+ ]
523
  )
524
 
525
  return demo
526
 
527
  if __name__ == "__main__":
528
  app = create_app()
529
+ app.launch()