hanriv commited on
Commit
7a27c75
ยท
verified ยท
1 Parent(s): 74ac09c

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +35 -8
app.py CHANGED
@@ -1,14 +1,41 @@
1
  import streamlit as st
 
2
  import cv2
3
  import numpy as np
4
  from PIL import Image, ExifTags
5
 
6
-
7
  st.set_page_config(page_title="๋”ฅํŽ˜์ดํฌ ์‚ฌ์ „ ๋ฐฉ์ง€ ํ•„ํ„ฐ(ํ…Œ์ŠคํŠธ)", layout="wide")
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
8
  st.title("๋”ฅํŽ˜์ดํฌ ์‚ฌ์ „ ๋ฐฉ์ง€ ํ•„ํ„ฐ(ํ…Œ์ŠคํŠธ)")
9
- st.markdown("1. ์ด๋ฏธ์ง€๋ฅผ ์—…๋กœ๋“œํ•˜๋ฉด, ์‚ฌ์ „ ๋ฐฉ์ง€ ํ•„ํ„ฐ๋ฅผ ์”Œ์šด ์ด๋ฏธ์ง€๋ฅผ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค. 2. ํ•˜๋‹จ์˜ ํฐ ๋ฒ„ํŠผ์„ ๋ˆ„๋ฅด๋ฉด, ๋”ฅํŽ˜์ดํฌ ๋ชจ๋ธ์„ ํ†ตํ•ด ์ƒ์„ฑ๋œ ๊ฒฐ๊ณผ๋ฅผ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค.")
 
 
 
 
 
 
 
 
10
  st.markdown(
11
  """
 
12
  <style>
13
  .stFileUploader label {
14
  font-size: 20px;
@@ -91,7 +118,6 @@ st.markdown(
91
  unsafe_allow_html=True,
92
  )
93
 
94
-
95
  def change_hair_to_blonde(image):
96
  # Convert to OpenCV format
97
  image = np.array(image)
@@ -154,15 +180,15 @@ if uploaded_file is not None:
154
 
155
  with col1:
156
  st.image(image, use_column_width=True)
157
- st.markdown('<div class="custom-caption-1">์›๋ณธ ์ด๋ฏธ์ง€</div>', unsafe_allow_html=True)
158
 
159
  with col2:
160
  st.image(image, use_column_width=True)
161
- st.markdown('<div class="custom-caption-1">์‚ฌ์ „ ํ•„ํ„ฐ๋ฅผ ์ž…ํžŒ ์ด๋ฏธ์ง€</div>', unsafe_allow_html=True)
162
-
163
  button_clicked = st.button("์ƒ๋‹จ์˜ ๋‘ ์‚ฌ์ง„์„ ๋”ฅํŽ˜์ดํฌ ๋ชจ๋ธ์— ํ•™์Šต์‹œํ‚ค๊ธฐ")
164
  st.markdown('<p class="survey">์œ„ ์„œ๋น„์Šค๋ฅผ ์‚ฌ์šฉํ•ด ๋ณด์…จ๊ฑฐ๋‚˜, ์ €ํฌ ๊ธฐ์ˆ ์  ์›๋ฆฌ์— ๊ด€์‹ฌ์ด ์žˆ์œผ์‹  ๋ถ„๋“ค๊ป˜์„  ์•„๋ž˜์˜ ๊ฐ„๋‹จํ•œ ์ธํ„ฐ๋ทฐ์— ์ฐธ์—ฌํ•ด ์ฃผ์‹œ๋ฉด ์ง„์‹ฌ์œผ๋กœ ๊ฐ์‚ฌ๋“œ๋ฆฌ๊ฒ ์Šต๋‹ˆ๋‹ค.</p>', unsafe_allow_html=True)
165
- st.markdown('<p class="survey-1"><a href="https://docs.google.com/forms/d/e/1FAIpQLSdzRtuvQyp3CQDhlxEag40v2yDM7u9NYpJ2gv5kgwuNbo1gUA/viewform?usp=sf_link" target="_blank" class="a-tag">์ธํ„ฐ๋ทฐ์— ์‘ํ•ด ์ฃผ์‹ ๋‹ค๋ฉด ํฐ ๋„์›€์ด ๋  ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค!!</a></p>', unsafe_allow_html=True)
166
  st.markdown('<p class="survey-2">์„œ๋น„์Šค๋ฅผ ์ด์šฉํ•ด ์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค! ์ข‹์€ ํ•˜๋ฃจ ๋ณด๋‚ด์„ธ์š”!</p>', unsafe_allow_html=True)
167
 
168
  if button_clicked:
@@ -170,9 +196,10 @@ if uploaded_file is not None:
170
  processed_image = change_hair_to_blonde(image)
171
  st.image(processed_image, use_column_width=True)
172
  st.markdown('<div class="custom-caption-2">์›๋ณธ ์ด๋ฏธ์ง€๋ฅผ ๋”ฅํŽ˜์ดํฌ ๋ชจ๋ธ์— ๋„ฃ์—ˆ์„ ๊ฒฝ์šฐ</div>', unsafe_allow_html=True)
 
173
 
174
  with col2:
175
  deepfake_image = add_noise(image)
176
  st.image(deepfake_image, use_column_width=True)
177
  st.markdown('<div class="custom-caption-2">์‚ฌ์ „ ๋ฐฉ์ง€ ํ•„ํ„ฐ ์ด๋ฏธ์ง€๋ฅผ ๋”ฅํŽ˜์ดํฌ ๋ชจ๋ธ์— ๋„ฃ์—ˆ์„ ๊ฒฝ์šฐ</div>', unsafe_allow_html=True)
178
-
 
1
  import streamlit as st
2
+ import streamlit.components.v1 as components
3
  import cv2
4
  import numpy as np
5
  from PIL import Image, ExifTags
6
 
7
+ # ๊ฐ€์žฅ ๋จผ์ € set_page_config() ํ˜ธ์ถœ
8
  st.set_page_config(page_title="๋”ฅํŽ˜์ดํฌ ์‚ฌ์ „ ๋ฐฉ์ง€ ํ•„ํ„ฐ(ํ…Œ์ŠคํŠธ)", layout="wide")
9
+
10
+
11
+ ga_code = """
12
+ <!-- Global site tag (gtag.js) - Google Analytics -->
13
+ <script async src="https://www.googletagmanager.com/gtag/js?id=G-PZPBGNENQG"></script>
14
+ <script>
15
+ window.dataLayer = window.dataLayer || [];
16
+ function gtag(){dataLayer.push(arguments);}
17
+ gtag('js', new Date());
18
+ gtag('config', 'G-PZPBGNENQG');
19
+ </script>
20
+ """
21
+
22
+ # Streamlit์— GA ์ฝ”๋“œ ์‚ฝ์ž…
23
+ components.html(ga_code, height=0)
24
+
25
+ # ๋‚˜๋จธ์ง€ Streamlit ์ฝ”๋“œ
26
  st.title("๋”ฅํŽ˜์ดํฌ ์‚ฌ์ „ ๋ฐฉ์ง€ ํ•„ํ„ฐ(ํ…Œ์ŠคํŠธ)")
27
+ st.markdown("")
28
+ st.markdown("<span style='font-size: 18px;'>์•ˆ๋…•ํ•˜์„ธ์š”! ์ €ํฌ๋Š” ๋”ฅํŽ˜์ดํฌ๋กœ๋ถ€ํ„ฐ ์—ฌ๋Ÿฌ๋ถ„์˜ ์‚ฌ์ง„์„ ๋ณดํ˜ธํ•˜๋Š” ์†”๋ฃจ์…˜์„ ๊ฐœ๋ฐœํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.</span>", unsafe_allow_html=True)
29
+ st.markdown("<span style='font-size: 18px;'>์ €ํฌ์˜ ๋ชฉํ‘œ๋Š” ์˜จ๋ผ์ธ์— ๊ฒŒ์‹œ๋œ ๊ฐœ์ธ์˜ ์‚ฌ์ง„์ด ์•…์„ฑ ๋”ฅํŽ˜์ดํฌ ์˜์ƒ์— ์‚ฌ์šฉ๋˜์ง€ ์•Š๋„๋ก ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ํ˜„์žฌ๋Š” ๊ฐœ๋ฐœ์„ ๋งˆ๋ฌด๋ฆฌํ•˜๊ณ  ์„œ๋น„์Šคํ™” ํ•˜๊ธฐ ์ „, ์—ฌ๋Ÿฌ๋ถ„์˜ ์˜๊ฒฌ์„ ๋“ฃ๊ธฐ ์œ„ํ•ด ๊ฐ„๋‹จํ•œ ํ…Œ์ŠคํŠธ๋ฅผ ์ง„ํ–‰ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.</span>", unsafe_allow_html=True)
30
+ st.markdown("<span style='font-size: 18px;'>์ตœ๊ทผ SNS์— ์—…๋กœ๋“œ๋œ ์ด๋ฏธ์ง€๊ฐ€ ๋”ฅํŽ˜์ดํฌ ํฌ๋ฅด๋…ธ๋ฌผ์— ์•…์šฉ๋˜๋Š” ์‚ฌ๋ก€๊ฐ€ ๋งค์ผ ๋ณด๊ณ ๋˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ํ•ด๊ฒฐ์ฑ…์„ ๊ฐ•๊ตฌํ•˜๊ธฐ ์œ„ํ•ด, ์—ฌ๋Ÿฌ๋ถ„์˜ ์†Œ์ค‘ํ•œ ์˜๊ฒฌ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.</span>", unsafe_allow_html=True)
31
+ st.markdown("<span style='font-size: 18px;'>์•„๋ž˜ ๋งํฌ๋ฅผ ํ†ตํ•ด ์ €ํฌ ์„œ๋น„์Šค๋ฅผ ์ด์šฉํ•ด ๋ณด์‹  ํ›„, ์ธํ„ฐ๋ทฐ์— ์ฐธ์—ฌํ•ด ์ฃผ์‹œ๋ฉด ํฐ ๋„์›€์ด ๋˜๊ฒ ์Šต๋‹ˆ๋‹ค. ์—ฌ๋Ÿฌ๋ถ„์˜ ํ”ผ๋“œ๋ฐฑ์€ ์„œ๋น„์Šค ๊ฐœ์„ ์— ๊ท€์ค‘ํ•œ ์ž๋ฃŒ๊ฐ€ ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค.</span>", unsafe_allow_html=True)
32
+ st.markdown("")
33
+ st.markdown("<span style='font-size: 18px;'>๋™์ž‘ ์›๋ฆฌ : 1. ์ด๋ฏธ์ง€๋ฅผ ์—…๋กœ๋“œํ•˜๋ฉด, ์‚ฌ์ „ ๋ฐฉ์ง€ ํ•„ํ„ฐ๊ฐ€ ์ ์šฉ๋œ ์ด๋ฏธ์ง€๋ฅผ ๋ณด์—ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค. 2. ํ•˜๋‹จ์˜ ํฐ ๋ฒ„ํŠผ์„ ํด๋ฆญํ•˜๋ฉด ๋”ฅํŽ˜์ดํฌ ๋ชจ๋ธ์„ ํ†ตํ•ด ์ƒ์„ฑ๋œ ๊ฒฐ๊ณผ๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.</span>", unsafe_allow_html=True)
34
+ st.markdown("<span style='font-size: 18px;'>์—ฌ๋Ÿฌ๋ถ„์˜ ์ฐธ์—ฌ์— ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค!</span>", unsafe_allow_html=True)
35
+ st.markdown("<span style='font-size: 14px;'> *์‚ฌ์ „ ๋ฐฉ์ง€ ํ•„ํ„ฐ๋ž€: ์—ฌ๋Ÿฌ๋ถ„์˜ ์‚ฌ์ง„์ด ๋”ฅํŽ˜์ดํฌ ๋ชจ๋ธ์— ํ•™์Šต๋˜์ง€ ๋ชปํ•˜๋„๋ก ๋ฐฉํ•ดํ•˜๋Š” ๋…ธ์ด์ฆˆ(noise)ํ˜•ํƒœ์˜ ํ•„ํ„ฐ.</span>", unsafe_allow_html=True)
36
  st.markdown(
37
  """
38
+ <link href="https://maxcdn.bootstrapcdn.com/bootstrap/5.3.0/css/bootstrap.min.css" rel="stylesheet">
39
  <style>
40
  .stFileUploader label {
41
  font-size: 20px;
 
118
  unsafe_allow_html=True,
119
  )
120
 
 
121
  def change_hair_to_blonde(image):
122
  # Convert to OpenCV format
123
  image = np.array(image)
 
180
 
181
  with col1:
182
  st.image(image, use_column_width=True)
183
+ st.markdown('<div class="custom-caption-1">์—…๋กœ๋“œํ•œ ์ด๋ฏธ์ง€</div>', unsafe_allow_html=True)
184
 
185
  with col2:
186
  st.image(image, use_column_width=True)
187
+ st.markdown('<div class="custom-caption-1">ํ•„ํ„ฐ๋ฅผ ์ž…ํžŒ ์ด๋ฏธ์ง€</div>', unsafe_allow_html=True)
188
+
189
  button_clicked = st.button("์ƒ๋‹จ์˜ ๋‘ ์‚ฌ์ง„์„ ๋”ฅํŽ˜์ดํฌ ๋ชจ๋ธ์— ํ•™์Šต์‹œํ‚ค๊ธฐ")
190
  st.markdown('<p class="survey">์œ„ ์„œ๋น„์Šค๋ฅผ ์‚ฌ์šฉํ•ด ๋ณด์…จ๊ฑฐ๋‚˜, ์ €ํฌ ๊ธฐ์ˆ ์  ์›๋ฆฌ์— ๊ด€์‹ฌ์ด ์žˆ์œผ์‹  ๋ถ„๋“ค๊ป˜์„  ์•„๋ž˜์˜ ๊ฐ„๋‹จํ•œ ์ธํ„ฐ๋ทฐ์— ์ฐธ์—ฌํ•ด ์ฃผ์‹œ๋ฉด ์ง„์‹ฌ์œผ๋กœ ๊ฐ์‚ฌ๋“œ๋ฆฌ๊ฒ ์Šต๋‹ˆ๋‹ค.</p>', unsafe_allow_html=True)
191
+ st.markdown('<p class="survey-1"><a href="https://docs.google.com/forms/d/e/1FAIpQLSdzRtuvQyp3CQDhlxEag40v2yDM7u9NYpJ2gv5kgwuNbo1gUA/viewform?usp=sf_link" target="_blank" class="a-tag">์—ฌ๊ธฐ๋ฅผ ํด๋ฆญํ•˜์—ฌ ์ธํ„ฐ๋ทฐ์— ์‘ํ•ด ์ฃผ์‹ ๋‹ค๋ฉด ํฐ ๋„์›€์ด ๋  ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค!!</a></p>', unsafe_allow_html=True)
192
  st.markdown('<p class="survey-2">์„œ๋น„์Šค๋ฅผ ์ด์šฉํ•ด ์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค! ์ข‹์€ ํ•˜๋ฃจ ๋ณด๋‚ด์„ธ์š”!</p>', unsafe_allow_html=True)
193
 
194
  if button_clicked:
 
196
  processed_image = change_hair_to_blonde(image)
197
  st.image(processed_image, use_column_width=True)
198
  st.markdown('<div class="custom-caption-2">์›๋ณธ ์ด๋ฏธ์ง€๋ฅผ ๋”ฅํŽ˜์ดํฌ ๋ชจ๋ธ์— ๋„ฃ์—ˆ์„ ๊ฒฝ์šฐ</div>', unsafe_allow_html=True)
199
+ st.markdown("<span>์ดํ•ด๋ฅผ ๋•๊ธฐ ์œ„ํ•ด ์‚ฌ์ง„์— ๋…ธ๋ž€์ƒ‰์„ ์ž…ํžˆ๋Š” ๋”ฅํŽ˜์ดํฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ ์šฉ. ์›๋ณธ ์ด๋ฏธ์ง€๋Š” ๋”ฅํŽ˜์ดํฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์˜ํ–ฅ์„ ๋ฐ›์Œ.</span>", unsafe_allow_html=True)
200
 
201
  with col2:
202
  deepfake_image = add_noise(image)
203
  st.image(deepfake_image, use_column_width=True)
204
  st.markdown('<div class="custom-caption-2">์‚ฌ์ „ ๋ฐฉ์ง€ ํ•„ํ„ฐ ์ด๋ฏธ์ง€๋ฅผ ๋”ฅํŽ˜์ดํฌ ๋ชจ๋ธ์— ๋„ฃ์—ˆ์„ ๊ฒฝ์šฐ</div>', unsafe_allow_html=True)
205
+ st.markdown("<span>์‚ฌ์ „ ๋ฐฉ์ง€ ํ•„ํ„ฐ๋ฅผ ์ž…ํžŒ ์ด๋ฏธ์ง€๋Š” ๋”ฅํŽ˜์ดํฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์˜ํ–ฅ์„ ๋ฐ›์ง€ ์•Š๊ณ  ๋…ธ์ด์ฆˆ ์ฒ˜๋ฆฌ๊ฐ€ ๋˜์–ด ์•Œ์•„๋ณด๊ธฐ ํž˜๋“  ์‚ฌ์ง„์„ ์ถœ๋ ฅ. ์ฆ‰, ๋”ฅํŽ˜์ดํฌ ์‚ฌ์ง„ ํ•ฉ์„ฑ์„ ๋ฐฉํ•ดํ•จ.</span>", unsafe_allow_html=True)