Kims12 commited on
Commit
1f30a5b
ยท
verified ยท
1 Parent(s): 9778ad8

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +132 -17
app.py CHANGED
@@ -770,25 +770,129 @@ with gr.Blocks(css=custom_css) as demo:
770
  with gr.Tabs(elem_classes="custom-tabs") as tabs:
771
  # ์‚ฌ์šฉ ์„ค๋ช…์„œ ํƒญ์„ ์ฒซ ๋ฒˆ์งธ๋กœ ๋ฐฐ์น˜
772
  with gr.TabItem("๐Ÿ“š ์‚ฌ์šฉ ์„ค๋ช…์„œ", elem_classes="tab-content"):
773
- gr.HTML(user_manual_html)
774
-
775
- # ์ถ”๊ฐ€์ ์ธ ์‚ฌ์šฉ ์„ค๋ช… ๋‚ด์šฉ์ด ํ•„์š”ํ•˜๋‹ค๋ฉด ์—ฌ๊ธฐ์— ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค
776
  gr.HTML("""
777
- <div class="manual-section">
778
- <div class="manual-section-title"><i class="fas fa-question-circle"></i> ์ž์ฃผ ๋ฌป๋Š” ์งˆ๋ฌธ</div>
779
- <p class="manual-text">
780
- <strong style="font-size: 1.1rem; color: #5561e9;">Q: ์–ด๋–ค ํ˜•์‹์˜ ์ด๋ฏธ์ง€๋ฅผ ์—…๋กœ๋“œํ•  ์ˆ˜ ์žˆ๋‚˜์š”?</strong><br>
781
- A: JPG, PNG, WEBP ๋“ฑ ๋Œ€๋ถ€๋ถ„์˜ ์ผ๋ฐ˜์ ์ธ ์ด๋ฏธ์ง€ ํ˜•์‹์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.<br><br>
782
-
783
- <strong style="font-size: 1.1rem; color: #5561e9;">Q: ์ด๋ฏธ์ง€ ์ƒ์„ฑ ๋ฐ ์ฒ˜๋ฆฌ์— ์–ผ๋งˆ๋‚˜ ์‹œ๊ฐ„์ด ๊ฑธ๋ฆฌ๋‚˜์š”?</strong><br>
784
- A: ์ผ๋ฐ˜์ ์œผ๋กœ 10-30์ดˆ ์ •๋„ ์†Œ์š”๋˜๋ฉฐ, ์ด๋ฏธ์ง€ ํฌ๊ธฐ์™€ ๋ณต์žก๋„์— ๋”ฐ๋ผ ๋‹ฌ๋ผ์งˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.<br><br>
785
-
786
- <strong style="font-size: 1.1rem; color: #5561e9;">Q: ์ƒ์„ฑ๋œ ์ด๋ฏธ์ง€๋ฅผ ์–ด๋–ป๊ฒŒ ์ €์žฅํ•  ์ˆ˜ ์žˆ๋‚˜์š”?</strong><br>
787
- A: ์ƒ์„ฑ๋œ ์ด๋ฏธ์ง€์— ๋งˆ์šฐ์Šค ์˜ค๋ฅธ์ชฝ ๋ฒ„ํŠผ์„ ํด๋ฆญํ•˜์—ฌ '์ด๋ฏธ์ง€ ์ €์žฅ' ์˜ต์…˜์„ ์„ ํƒํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.
788
- </p>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
789
  </div>
790
  """)
791
-
792
  with gr.TabItem("โœจ ์ด์ปค๋จธ์Šค ์ด๋ฏธ์ง€ ์ƒ์„ฑ๊ธฐ", elem_classes="tab-content"):
793
  with gr.Row(equal_height=True):
794
  with gr.Column(scale=1):
@@ -819,7 +923,9 @@ with gr.Blocks(css=custom_css) as demo:
819
  background_change_btn = gr.Button('๐Ÿ–ผ๏ธ ๋ฐฐ๊ฒฝ ๋ฐ”๊พธ๊ธฐ', elem_classes="custom-button")
820
  composite_product_btn = gr.Button('โœ‚๏ธ ๋ถ€๋ถ„ ์ง€์šฐ๊ธฐ', elem_classes="custom-button")
821
 
822
- submit_btn = gr.Button('โœจ ์ด๋ฏธ์ง€ ์ƒ์„ฑ (4์žฅ)', elem_classes="custom-button primary")
 
 
823
 
824
  with gr.Column(scale=1):
825
  with gr.Group(elem_classes="panel"):
@@ -952,6 +1058,15 @@ with gr.Blocks(css=custom_css) as demo:
952
  inputs=[],
953
  outputs=prompt_input
954
  )
 
 
 
 
 
 
 
 
 
955
  submit_btn.click(
956
  fn=generate_multiple_images,
957
  inputs=[image1_input, image2_input, image3_input, prompt_input],
 
770
  with gr.Tabs(elem_classes="custom-tabs") as tabs:
771
  # ์‚ฌ์šฉ ์„ค๋ช…์„œ ํƒญ์„ ์ฒซ ๋ฒˆ์งธ๋กœ ๋ฐฐ์น˜
772
  with gr.TabItem("๐Ÿ“š ์‚ฌ์šฉ ์„ค๋ช…์„œ", elem_classes="tab-content"):
 
 
 
773
  gr.HTML("""
774
+ <div class="user-manual">
775
+ <div class="manual-title"><i class="fas fa-book"></i> ์‚ฌ์šฉ ์„ค๋ช…์„œ</div>
776
+
777
+ <div class="manual-section">
778
+ <div class="manual-section-title"><i class="fas fa-magic"></i> ๊ธฐ๋ณธ ์‚ฌ์šฉ๋ฒ•</div>
779
+ <p class="manual-text">
780
+ <span style="font-size: 1.1rem; font-weight: 600; color: #5561e9;">1๏ธโƒฃ ์ด๋ฏธ์ง€ ์—…๋กœ๋“œ</span><br>
781
+ ์ตœ๋Œ€ 3๊ฐœ์˜ ์ด๋ฏธ์ง€๋ฅผ ์—…๋กœ๋“œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ฒซ ๋ฒˆ์งธ ์ด๋ฏธ์ง€๋Š” ํ•„์ˆ˜์ž…๋‹ˆ๋‹ค.<br><br>
782
+
783
+ <span style="font-size: 1.1rem; font-weight: 600; color: #5561e9;">2๏ธโƒฃ ํ”„๋กฌํ”„ํŠธ ์ž…๋ ฅ ๋˜๋Š” ๋ฒ„ํŠผ ์„ ํƒ</span><br>
784
+ ๋ณ€ํ™˜ํ•˜๊ณ  ์‹ถ์€ ๋‚ด์šฉ์„ ์ง์ ‘ ์ž…๋ ฅํ•˜๊ฑฐ๋‚˜, ๋ฏธ๋ฆฌ ์ •์˜๋œ ๋ฒ„ํŠผ ์ค‘ ํ•˜๋‚˜๋ฅผ ์„ ํƒํ•˜์„ธ์š”.<br><br>
785
+
786
+ <span style="font-size: 1.1rem; font-weight: 600; color: #5561e9;">3๏ธโƒฃ ์ด๋ฏธ์ง€ ์ƒ์„ฑ</span><br>
787
+ '์ด๋ฏธ์ง€ ์ƒ์„ฑ (1์žฅ)' ๋ฒ„ํŠผ์„ ํด๋ฆญํ•˜๋ฉด 1๊ฐœ์˜ ์ด๋ฏธ์ง€๊ฐ€, '์ด๋ฏธ์ง€ ์ƒ์„ฑ (4์žฅ)' ๋ฒ„ํŠผ์„ ํด๋ฆญํ•˜๋ฉด 4๊ฐ€์ง€ ๋ฒ„์ „์˜ ์ด๋ฏธ์ง€๊ฐ€ ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค.
788
+ </p>
789
+ </div>
790
+
791
+ <div class="manual-section">
792
+ <div class="manual-section-title"><i class="fas fa-hashtag"></i> ์ด๋ฏธ์ง€ ์ฐธ์กฐ ๋ฐฉ๋ฒ•</div>
793
+ <p class="manual-text">
794
+ ํ”„๋กฌํ”„ํŠธ์—์„œ ๋‹ค์Œ ํƒœ๊ทธ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ฐ ์ด๋ฏธ์ง€๋ฅผ ์ฐธ์กฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค:
795
+ <ul>
796
+ <li><strong style="font-size: 1.05rem;">#1</strong> - ์ฒซ ๋ฒˆ์งธ ์ด๋ฏธ์ง€</li>
797
+ <li><strong style="font-size: 1.05rem;">#2</strong> - ๋‘ ๋ฒˆ์งธ ์ด๋ฏธ์ง€</li>
798
+ <li><strong style="font-size: 1.05rem;">#3</strong> - ์„ธ ๋ฒˆ์งธ ์ด๋ฏธ์ง€</li>
799
+ </ul>
800
+
801
+ <div class="tip-box">
802
+ <i class="fas fa-lightbulb"></i> <strong>ํŒ:</strong> ์˜ˆ๋ฅผ ๋“ค์–ด, "(#1์˜ ์—ฌ์„ฑ๋ชจ๋ธ)์ด (#2์˜ ์„ ๊ธ€๋ผ์Šค)๋ฅผ ์ฐฉ์šฉํ•œ ๋ชจ์Šต"๊ณผ ๊ฐ™์ด ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
803
+ </div>
804
+ </p>
805
+ </div>
806
+
807
+ <div class="manual-section">
808
+ <div class="manual-section-title"><i class="fas fa-tools"></i> ์ฃผ์š” ๊ธฐ๋Šฅ</div>
809
+ <div class="manual-text">
810
+ <div style="display: grid; grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); gap: 1rem;">
811
+ <div>
812
+ <p style="font-size: 1.1rem; font-weight: 600; color: #ff6b6b;"><i class="fas fa-exchange-alt"></i> ์ด๋ฏธ์ง€ ๋ณ€๊ฒฝ</p>
813
+ ํฌ์ฆˆ๋‚˜ ์Šคํƒ€์ผ์„ ๋ณ€๊ฒฝํ•˜๋ฉด์„œ ์›๋ณธ์˜ ์ฃผ์š” ์š”์†Œ๋Š” ์œ ์ง€ํ•ฉ๋‹ˆ๋‹ค.
814
+ </div>
815
+
816
+ <div>
817
+ <p style="font-size: 1.1rem; font-weight: 600; color: #ff6b6b;"><i class="fas fa-eraser"></i> ๊ธ€์ž ์ง€์šฐ๊ธฐ/๋ณ€๊ฒฝ</p>
818
+ ์ด๋ฏธ์ง€์˜ ํ…์ŠคํŠธ๋ฅผ ์ž์—ฐ์Šค๋Ÿฝ๊ฒŒ ์ œ๊ฑฐํ•˜๊ฑฐ๋‚˜ ๋‹ค๋ฅธ ํ…์ŠคํŠธ๋กœ ๋ณ€๊ฒฝํ•ฉ๋‹ˆ๋‹ค.
819
+ </div>
820
+
821
+ <div>
822
+ <p style="font-size: 1.1rem; font-weight: 600; color: #ff6b6b;"><i class="fas fa-tshirt"></i> ๊ฐ€์ƒ ์ƒํ’ˆ์ฐฉ์šฉ</p>
823
+ ๋ชจ๋ธ์—๊ฒŒ ๋‹ค๋ฅธ ์ด๋ฏธ์ง€์˜ ์ƒํ’ˆ์„ ์ž์—ฐ์Šค๋Ÿฝ๊ฒŒ ์ฐฉ์šฉ์‹œํ‚ต๋‹ˆ๋‹ค.
824
+ </div>
825
+
826
+ <div>
827
+ <p style="font-size: 1.1rem; font-weight: 600; color: #ff6b6b;"><i class="fas fa-image"></i> ๋ฐฐ๊ฒฝ ๋ฐ”๊พธ๊ธฐ</p>
828
+ ์ฃผ์š” ํ”ผ์‚ฌ์ฒด๋Š” ์œ ์ง€ํ•˜๋ฉฐ ๋ฐฐ๊ฒฝ๋งŒ ๊ต์ฒดํ•ฉ๋‹ˆ๋‹ค.
829
+ </div>
830
+
831
+ <div>
832
+ <p style="font-size: 1.1rem; font-weight: 600; color: #ff6b6b;"><i class="fas fa-cut"></i> ๋ถ€๋ถ„ ์ง€์šฐ๊ธฐ</p>
833
+ ์ด๋ฏธ์ง€์˜ ํŠน์ • ๋ถ€๋ถ„์„ ์ง€์šฐ๊ณ  ๋ฐฐ๊ฒฝ๊ณผ ์ž์—ฐ์Šค๋Ÿฝ๊ฒŒ ์กฐํ™”๋˜๋„๋ก ์ฑ„์›๋‹ˆ๋‹ค.
834
+ </div>
835
+
836
+ <div>
837
+ <p style="font-size: 1.1rem; font-weight: 600; color: #ff6b6b;"><i class="fas fa-wine-glass"></i> ์ƒํ’ˆ๋“ค๊ณ  ์žˆ๊ธฐ</p>
838
+ ๋ชจ๋ธ์ด ์ƒํ’ˆ์„ ๋“ค๊ณ  ์žˆ๋Š” ์ž์—ฐ์Šค๋Ÿฌ์šด ํฌ์ฆˆ์˜ ์ด๋ฏธ์ง€๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.
839
+ </div>
840
+ </div>
841
+ </div>
842
+ </div>
843
+
844
+ <div class="manual-section">
845
+ <div class="manual-section-title"><i class="fas fa-search-plus"></i> GFPGAN ์—…์Šค์ผ€์ผ๋Ÿฌ</div>
846
+ <p class="manual-text">
847
+ <span style="font-size: 1.1rem; font-weight: 600; color: #5561e9;">์ด๋ฏธ์ง€ ๊ฐœ์„  ๊ธฐ๋Šฅ</span><br>
848
+ ์ €ํ•ด์ƒ๋„ ์ด๋ฏธ์ง€๋ฅผ ๊ณ ํ•ด์ƒ๋„๋กœ ๋ณ€ํ™˜ํ•˜๊ณ , ์–ผ๊ตด์„ ์ž์—ฐ์Šค๋Ÿฝ๊ฒŒ ๋ณต์›ํ•ฉ๋‹ˆ๋‹ค.<br>
849
+ ํŠนํžˆ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ฒฝ์šฐ์— ํšจ๊ณผ์ ์ž…๋‹ˆ๋‹ค:
850
+ <ul>
851
+ <li>ํ•ด์ƒ๋„๊ฐ€ ๋‚ฎ์€ ์ด๋ฏธ์ง€ ๊ฐœ์„ </li>
852
+ <li>ํ๋ฆฟํ•˜๊ฑฐ๋‚˜ ๋…ธ์ด์ฆˆ๊ฐ€ ์žˆ๋Š” ์–ผ๊ตด ๋ณต์›</li>
853
+ <li>์ด๋ฏธ์ง€ ์ „๋ฐ˜์ ์ธ ์„ ๋ช…๋„ ํ–ฅ์ƒ</li>
854
+ </ul>
855
+
856
+ <div class="tip-box">
857
+ <i class="fas fa-lightbulb"></i> <strong>ํŒ:</strong> ์ด๋ฏธ์ง€์˜ ํฌ๊ธฐ๊ฐ€ ์ž‘์„์ˆ˜๋ก ์ฒ˜๋ฆฌ ์†๋„๊ฐ€ ๋น ๋ฆ…๋‹ˆ๋‹ค. ์–ผ๊ตด์ด ํฌํ•จ๋œ ์ด๋ฏธ์ง€์—์„œ ๊ฐ€์žฅ ์ข‹์€ ๊ฒฐ๊ณผ๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
858
+ </div>
859
+ </p>
860
+ </div>
861
+
862
+ <div class="manual-section">
863
+ <div class="manual-section-title"><i class="fas fa-cut"></i> ๋ฐฐ๊ฒฝ ์ง€์šฐ๊ธฐ ๊ธฐ๋Šฅ</div>
864
+ <p class="manual-text">
865
+ <span style="font-size: 1.1rem; font-weight: 600; color: #5561e9;">์ž๋™ ๋ฐฐ๊ฒฝ ์ œ๊ฑฐ</span><br>
866
+ ์ด๋ฏธ์ง€์—์„œ ๋ฐฐ๊ฒฝ์„ ์ž๋™์œผ๋กœ ๊ฐ์ง€ํ•˜๊ณ  ์ œ๊ฑฐํ•˜์—ฌ ํˆฌ๋ช…ํ•œ PNG ์ด๋ฏธ์ง€๋กœ ๋ณ€ํ™˜ํ•ฉ๋‹ˆ๋‹ค.<br>
867
+ ์ฃผ์š” ์‚ฌ์šฉ ์‚ฌ๋ก€:
868
+ <ul>
869
+ <li>์ œํ’ˆ ์ด๋ฏธ์ง€์˜ ๋ฐฐ๊ฒฝ ์ œ๊ฑฐ</li>
870
+ <li>์ธ๋ฌผ ์‚ฌ์ง„์—์„œ ๋ฐฐ๊ฒฝ ๋ถ„๋ฆฌ</li>
871
+ <li>์—ฌ๋Ÿฌ ์ด๋ฏธ์ง€ ํ•ฉ์„ฑ์„ ์œ„ํ•œ ์ค€๋น„</li>
872
+ </ul>
873
+
874
+ <div class="tip-box">
875
+ <i class="fas fa-lightbulb"></i> <strong>ํŒ:</strong> ๋ฐฐ๊ฒฝ๊ณผ ์ฃผ์š” ํ”ผ์‚ฌ์ฒด ๊ฐ„์˜ ๋Œ€๋น„๊ฐ€ ๋šœ๋ ทํ• ์ˆ˜๋ก ๋” ์ •ํ™•ํ•œ ๊ฒฐ๊ณผ๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ณต์žกํ•œ ๋ฐฐ๊ฒฝ์˜ ๊ฒฝ์šฐ ๋ฏธ์„ธ ์กฐ์ •์ด ํ•„์š”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
876
+ </div>
877
+ </p>
878
+ </div>
879
+
880
+ <div class="manual-section">
881
+ <div class="manual-section-title"><i class="fas fa-question-circle"></i> ์ž์ฃผ ๋ฌป๋Š” ์งˆ๋ฌธ</div>
882
+ <p class="manual-text">
883
+ <strong style="font-size: 1.1rem; color: #5561e9;">Q: ์–ด๋–ค ํ˜•์‹์˜ ์ด๋ฏธ์ง€๋ฅผ ์—…๋กœ๋“œํ•  ์ˆ˜ ์žˆ๋‚˜์š”?</strong><br>
884
+ A: JPG, PNG, WEBP ๋“ฑ ๋Œ€๋ถ€๋ถ„์˜ ์ผ๋ฐ˜์ ์ธ ์ด๋ฏธ์ง€ ํ˜•์‹์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.<br><br>
885
+
886
+ <strong style="font-size: 1.1rem; color: #5561e9;">Q: ์ด๋ฏธ์ง€ ์ƒ์„ฑ ๋ฐ ์ฒ˜๋ฆฌ์— ์–ผ๋งˆ๋‚˜ ์‹œ๊ฐ„์ด ๊ฑธ๋ฆฌ๋‚˜์š”?</strong><br>
887
+ A: ์ผ๋ฐ˜์ ์œผ๋กœ 10-30์ดˆ ์ •๋„ ์†Œ์š”๋˜๋ฉฐ, ์ด๋ฏธ์ง€ ํฌ๊ธฐ์™€ ๋ณต์žก๋„์— ๋”ฐ๋ผ ๋‹ฌ๋ผ์งˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.<br><br>
888
+
889
+ <strong style="font-size: 1.1rem; color: #5561e9;">Q: ์ƒ์„ฑ๋œ ์ด๋ฏธ์ง€๋ฅผ ์–ด๋–ป๊ฒŒ ์ €์žฅํ•  ์ˆ˜ ์žˆ๋‚˜์š”?</strong><br>
890
+ A: ์ƒ์„ฑ๋œ ์ด๋ฏธ์ง€์— ๋งˆ์šฐ์Šค ์˜ค๋ฅธ์ชฝ ๋ฒ„ํŠผ์„ ํด๋ฆญํ•˜์—ฌ '์ด๋ฏธ์ง€ ์ €์žฅ' ์˜ต์…˜์„ ์„ ํƒํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.
891
+ </p>
892
+ </div>
893
  </div>
894
  """)
895
+
896
  with gr.TabItem("โœจ ์ด์ปค๋จธ์Šค ์ด๋ฏธ์ง€ ์ƒ์„ฑ๊ธฐ", elem_classes="tab-content"):
897
  with gr.Row(equal_height=True):
898
  with gr.Column(scale=1):
 
923
  background_change_btn = gr.Button('๐Ÿ–ผ๏ธ ๋ฐฐ๊ฒฝ ๋ฐ”๊พธ๊ธฐ', elem_classes="custom-button")
924
  composite_product_btn = gr.Button('โœ‚๏ธ ๋ถ€๋ถ„ ์ง€์šฐ๊ธฐ', elem_classes="custom-button")
925
 
926
+ with gr.Row():
927
+ submit_single_btn = gr.Button('โœจ ์ด๋ฏธ์ง€ ์ƒ์„ฑ (1์žฅ)', elem_classes="custom-button primary")
928
+ submit_btn = gr.Button('โœจ ์ด๋ฏธ์ง€ ์ƒ์„ฑ (4์žฅ)', elem_classes="custom-button primary")
929
 
930
  with gr.Column(scale=1):
931
  with gr.Group(elem_classes="panel"):
 
1058
  inputs=[],
1059
  outputs=prompt_input
1060
  )
1061
+
1062
+ # ๋‹จ์ผ ์ด๋ฏธ์ง€ ์ƒ์„ฑ ๋ฒ„ํŠผ ์ด๋ฒคํŠธ ์—ฐ๊ฒฐ
1063
+ submit_single_btn.click(
1064
+ fn=lambda image1, image2, image3, prompt: process_images_with_prompt(image1, image2, image3, prompt, 0),
1065
+ inputs=[image1_input, image2_input, image3_input, prompt_input],
1066
+ outputs=[output_image1, output_text, prompt_display],
1067
+ )
1068
+
1069
+ # 4์žฅ ์ด๋ฏธ์ง€ ์ƒ์„ฑ ๋ฒ„ํŠผ ์ด๋ฒคํŠธ ์—ฐ๊ฒฐ
1070
  submit_btn.click(
1071
  fn=generate_multiple_images,
1072
  inputs=[image1_input, image2_input, image3_input, prompt_input],