Spaces:
Runtime error
Runtime error
Update app-backup.py
Browse files- app-backup.py +92 -73
app-backup.py
CHANGED
@@ -9,32 +9,26 @@ import torch
|
|
9 |
import numpy as np
|
10 |
from diffusers import DiffusionPipeline
|
11 |
from transformers import pipeline as hf_pipeline
|
|
|
12 |
|
13 |
##############################################################################
|
14 |
# 1) ZeroGPU νκ²½ μ²λ¦¬ + device, dtype μ€μ
|
15 |
##############################################################################
|
16 |
-
##############################################################################
|
17 |
-
# 1) ZeroGPU νκ²½ μ²λ¦¬ + device, dtype μ€μ
|
18 |
-
##############################################################################
|
19 |
-
# ZeroGPU μ΄κΈ°ν μλ
|
20 |
try:
|
21 |
import zerogpu
|
22 |
zerogpu.init()
|
23 |
print("ZeroGPU initialized successfully")
|
24 |
device = "cuda" if torch.cuda.is_available() else "cpu"
|
25 |
except ImportError:
|
26 |
-
# ZeroGPUκ° μ€μΉλμ§ μμ κ²½μ°
|
27 |
print("ZeroGPU package not installed, continuing without it")
|
28 |
if os.getenv("ZERO_GPU"):
|
29 |
print("ZeroGPU environment variable is set but zerogpu package is not installed.")
|
30 |
device = "cuda" if torch.cuda.is_available() else "cpu"
|
31 |
except Exception as e:
|
32 |
-
# ZeroGPU μ΄κΈ°ν μ€ λ€λ₯Έ μ€λ₯κ° λ°μν κ²½μ°
|
33 |
print(f"Error initializing ZeroGPU: {e}")
|
34 |
print("Continuing without ZeroGPU")
|
35 |
device = "cuda" if torch.cuda.is_available() else "cpu"
|
36 |
|
37 |
-
# GPUμΌ λλ§ bfloat16, κ·Έ μΈμλ float32
|
38 |
dtype = torch.bfloat16 if device == "cuda" else torch.float32
|
39 |
|
40 |
print(f"Using device: {device}, dtype: {dtype}")
|
@@ -57,7 +51,6 @@ try:
|
|
57 |
print("Models loaded successfully")
|
58 |
except Exception as e:
|
59 |
print(f"Error loading models: {e}")
|
60 |
-
# λͺ¨λΈ λ‘λ μλ¬ μ²λ¦¬λ₯Ό μν λλ―Έ ν¨μλ€
|
61 |
def dummy_translator(text):
|
62 |
return [{'translation_text': text}]
|
63 |
|
@@ -87,23 +80,48 @@ def contains_korean(text):
|
|
87 |
return False
|
88 |
|
89 |
##############################################################################
|
90 |
-
#
|
91 |
##############################################################################
|
92 |
-
def
|
93 |
"""
|
94 |
-
|
95 |
-
|
96 |
"""
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
97 |
original_prompt = prompt
|
98 |
translated = False
|
99 |
|
100 |
-
#
|
|
|
|
|
|
|
|
|
|
|
|
|
101 |
if contains_korean(prompt):
|
102 |
-
|
|
|
103 |
prompt = translation[0]['translation_text']
|
104 |
translated = True
|
105 |
|
106 |
-
# λλ€ μλ μ€μ
|
107 |
if randomize_seed:
|
108 |
seed = random.randint(0, MAX_SEED)
|
109 |
|
@@ -120,6 +138,7 @@ def generate_design_image(prompt, seed=42, randomize_seed=True, width=1024, heig
|
|
120 |
|
121 |
return image
|
122 |
|
|
|
123 |
##############################################################################
|
124 |
# λ‘κΉ
μ€μ
|
125 |
##############################################################################
|
@@ -167,12 +186,17 @@ def choose_alternative(transformation):
|
|
167 |
# 물리μ λ³ν μΉ΄ν
κ³ λ¦¬ μ¬μ (μ΄ 15κ°)
|
168 |
##############################################################################
|
169 |
physical_transformation_categories = {
|
170 |
-
"
|
171 |
-
"
|
172 |
-
"
|
173 |
-
"
|
174 |
-
"
|
175 |
-
"
|
|
|
|
|
|
|
|
|
|
|
176 |
],
|
177 |
"ν¬κΈ°μ νν λ³ν": [
|
178 |
"λΆνΌ λμ΄λ¨/μ€μ΄λ¦", "κΈΈμ΄ λμ΄λ¨/μ€μ΄λ¦", "λλΉ λμ΄λ¨/μ€μ΄λ¦", "λμ΄ λμ΄λ¨/μ€μ΄λ¦",
|
@@ -190,7 +214,10 @@ physical_transformation_categories = {
|
|
190 |
"κ΄ν/μ€κΈ° λ³ν", "μμ‘°/μ±λ λ³ν", "λ°κ΄/νκ΄", "λΉ μ°λ ν¨κ³Ό",
|
191 |
"λΉ ν‘μ λ³ν", "λ°ν¬λͺ
ν¨κ³Ό", "κ·Έλ¦Όμ ν¨κ³Ό λ³ν", "μμΈμ λ°μ λ³ν",
|
192 |
"μΌκ΄ ν¨κ³Ό"
|
193 |
-
],
|
|
|
|
|
|
|
194 |
"λ¬Όμ§μ μν λ³ν": [
|
195 |
"κ³ μ²΄/μ‘체/기체 μ ν", "κ²°μ ν/μ©ν΄", "μ°ν/λΆμ", "λ±λ±ν΄μ§/λΆλλ¬μμ§",
|
196 |
"νΉμ μν μ ν", "무μ ν/κ²°μ ν μ ν", "μ±λΆ λΆλ¦¬", "λ―ΈμΈ μ
μ νμ±/λΆν΄",
|
@@ -199,14 +226,7 @@ physical_transformation_categories = {
|
|
199 |
"건쑰/μ΅μ€", "ν½μ€/μμΆ", "λκ²°/ν΄λ", "νν/μΉ¨μ", "μΆ©μ /λ°©μ ",
|
200 |
"κ²°ν©/λΆλ¦¬", "λ°ν¨/λΆν¨"
|
201 |
],
|
202 |
-
|
203 |
-
"μ¨λ μμΉ/νκ°", "μ΄μ μν ν½μ°½/μμΆ", "μ΄ μ λ¬/μ°¨λ¨", "μλ ₯ μμΉ/νκ°",
|
204 |
-
"μ΄ λ³νμ λ°λ₯Έ μν", "무μ§μλ λ³ν", "μ΄μ κΈ° νμ", "μκΈ°μ₯μ μν μ΄ λ³ν",
|
205 |
-
"μνλ³ν μ€ μ΄ μ μ₯/λ°©μΆ", "μ΄ μ€νΈλ μ€ λ°μ/ν΄μ", "κΈκ²©ν μ¨λ λ³ν μν₯",
|
206 |
-
"볡μ¬μ΄μ μν λκ°/κ°μ΄", "λ°μ΄/ν‘μ΄", "μ΄ λΆν¬ λ³ν", "μ΄ λ°μ¬/ν‘μ",
|
207 |
-
"λκ° μμΆ", "μ΄ νμ±ν", "μ΄ λ³μ", "μ΄ ν½μ°½ κ³μ λ³ν", "μ΄ μμ μ± λ³ν",
|
208 |
-
"λ΄μ΄μ±/λ΄νμ±", "μκΈ°λ°μ΄", "μ΄μ νν/λΆκ· ν", "μ΄μ λ³ν", "μ΄ λΆμ°/μ§μ€"
|
209 |
-
],
|
210 |
"μμ§μ νΉμ± λ³ν": [
|
211 |
"κ°μ/κ°μ", "μΌμ μλ μ μ§", "μ§λ/μ§λ κ°μ", "λΆλͺν/νκΉ",
|
212 |
"νμ μλ μ¦κ°/κ°μ", "νμ λ°©ν₯ λ³ν", "λΆκ·μΉ μμ§μ", "λ©μ·λ€ λ―Έλλ¬μ§λ νμ",
|
@@ -223,22 +243,12 @@ physical_transformation_categories = {
|
|
223 |
"μΈλΆ ꡬ쑰 λ³ν", "μ€μ¬μΆ μ΄λ", "κ· νμ λ³ν", "κ³μΈ΅ ꡬ쑰 λ³ν", "μ§μ§ ꡬ쑰 λ³ν",
|
224 |
"μλ ₯ λΆμ° ꡬ쑰", "좩격 ν‘μ ꡬ쑰", "그리λ/λ§€νΈλ¦μ€ ꡬ쑰 λ³ν", "μνΈ μ°κ²°μ± λ³ν"
|
225 |
],
|
226 |
-
"
|
227 |
-
"
|
228 |
-
"
|
229 |
-
"
|
230 |
-
"
|
231 |
-
"
|
232 |
-
"μ μ νλ¦ λ°©ν₯ λ³ν", "μ κΈ°μ 곡λͺ
", "μ κΈ°μ μ°¨ν/λ
ΈμΆ", "μκΈ° μ°¨ν/λ
ΈμΆ",
|
233 |
-
"μκΈ°μ₯ λ°©ν₯ μ λ ¬"
|
234 |
-
],
|
235 |
-
"ννμ λ³ν": [
|
236 |
-
"νλ©΄ μ½ν
λ³ν", "λ¬Όμ§ μ±λΆ λ³ν", "νν λ°μ λ³ν", "μ΄λ§€ μμ© μμ/μ€λ¨",
|
237 |
-
"λΉμ μν νν λ°μ", "μ κΈ°μ μν νν λ°μ", "λ¨λΆμλ§ νμ±", "λΆμ μμ€ κ³μ° λ³ν",
|
238 |
-
"μμ° λͺ¨λ°© νλ©΄ λ³ν", "νκ²½ λ°μν λ¬Όμ§ λ³ν", "μ£ΌκΈ°μ νν λ°μ", "μ°ν", "νμ",
|
239 |
-
"κ³ λΆμν", "λ¬Ό λΆν΄", "νν©", "λ°©μ¬μ μν₯", "μ°-μΌκΈ° λ°μ", "μ€ν λ°μ",
|
240 |
-
"μ΄μ¨ν", "ννμ ν‘μ°©/νμ°©", "μ΄λ§€ ν¨μ¨ λ³ν", "ν¨μ νμ± λ³ν", "λ°μ λ°μ",
|
241 |
-
"pH λ³ν", "ννμ νν μ΄λ", "κ²°ν© νμ±/λΆν΄", "μ©ν΄λ λ³ν"
|
242 |
],
|
243 |
"μκ° κ΄λ ¨ λ³ν": [
|
244 |
"λ
Έν/νν", "λ§λͺ¨/λΆμ", "μ λ°λ¨/λ³μ", "μμ/ν볡", "μλͺ
μ£ΌκΈ° λ³ν",
|
@@ -264,6 +274,32 @@ physical_transformation_categories = {
|
|
264 |
"μ리 μ§ν₯μ±", "μν₯ μ곑", "λΉνΈ μμ±", "νλͺ¨λμ€ μμ±", "μ£Όνμ λ³μ‘°",
|
265 |
"μν₯ 좩격ν", "μν₯ νν°λ§"
|
266 |
],
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
267 |
"μλ¬Όνμ λ³ν": [
|
268 |
"μμ₯/μμΆ", "μΈν¬ λΆμ΄/μ¬λ©Έ", "μλ¬Ό λ°κ΄", "μ μ§λμ¬ λ³ν", "λ©΄μ λ°μ",
|
269 |
"νΈλ₯΄λͺ¬ λΆλΉ", "μ κ²½ λ°μ", "μ μ μ λ°ν", "μ μ/μ§ν", "μμ²΄λ¦¬λ¬ λ³ν",
|
@@ -278,19 +314,8 @@ physical_transformation_categories = {
|
|
278 |
"λ°©μ¬μ λ°μ", "μ§λ κ°μ§", "pH λ°μ", "μ©λ§€ λ°μ", "기체 κ΅ν",
|
279 |
"νκ²½ μ€μΌ λ°μ", "λ μ¨ λ°μ", "κ³μ λ³ν λ°μ", "μΌμ£ΌκΈ° λ°μ", "μνκ³ μνΈμμ©",
|
280 |
"곡μ/κ²½μ λ°μ", "ν¬μ/νΌμ κ΄κ³", "κ΅°μ§ νμ±", "μμ μ€μ ", "μ΄μ£Ό/μ μ°© ν¨ν΄"
|
281 |
-
],
|
282 |
-
"μΌμ κΈ°λ₯": [
|
283 |
-
"μκ° μΌμ/κ°μ§", "μ²κ° μΌμ/κ°μ§", "μ΄κ° μΌμ/κ°μ§", "λ―Έκ° μΌμ/κ°μ§", "νκ° μΌμ/κ°μ§",
|
284 |
-
"μ¨λ μΌμ/κ°μ§", "μ΅λ μΌμ/κ°μ§", "μλ ₯ μΌμ/κ°μ§", "κ°μλ μΌμ/κ°μ§", "νμ μΌμ/κ°μ§",
|
285 |
-
"κ·Όμ μΌμ/κ°μ§", "μμΉ μΌμ/κ°μ§", "μ΄λ μΌμ/κ°μ§", "κ°μ€ μΌμ/κ°μ§", "μ μΈμ μΌμ/κ°μ§",
|
286 |
-
"μμΈμ μΌμ/κ°μ§", "λ°©μ¬μ μΌμ/κ°μ§", "μκΈ°μ₯ μΌμ/κ°μ§", "μ κΈ°μ₯ μΌμ/κ°μ§", "ννλ¬Όμ§ μΌμ/κ°μ§",
|
287 |
-
"μ체μ νΈ μΌμ/κ°μ§", "μ§λ μΌμ/κ°μ§", "μμ μΌμ/κ°μ§", "λΉ μΈκΈ° μΌμ/κ°μ§", "λΉ νμ₯ μΌμ/κ°μ§",
|
288 |
-
"κΈ°μΈκΈ° μΌμ/κ°μ§", "pH μΌμ/κ°μ§", "μ λ₯ μΌμ/κ°μ§", "μ μ μΌμ/κ°μ§", "μ΄λ―Έμ§ μΌμ/κ°μ§",
|
289 |
-
"거리 μΌμ/κ°μ§", "κΉοΏ½οΏ½οΏ½ μΌμ/κ°μ§", "μ€λ ₯ μΌμ/κ°μ§", "μλ μΌμ/κ°μ§", "νλ¦ μΌμ/κ°μ§",
|
290 |
-
"μμ μΌμ/κ°μ§", "νλ μΌμ/κ°μ§", "μΌλ μΌμ/κ°μ§", "κΈμ κ°μ§", "μμ μΌμ/κ°μ§",
|
291 |
-
"κ΄μ μΌμ/κ°μ§", "μ΄μ λ μΌμ/κ°μ§", "ν ν¨κ³Ό μΌμ/κ°μ§", "μ΄μν μΌμ/κ°μ§", "λ μ΄λ μΌμ/κ°μ§",
|
292 |
-
"λΌμ΄λ€ μΌμ/κ°μ§", "ν°μΉ μΌμ/κ°μ§", "μ μ€μ² μΌμ/κ°μ§", "μ¬λ° μΌμ/κ°μ§", "νμ μΌμ/κ°μ§"
|
293 |
]
|
|
|
294 |
}
|
295 |
|
296 |
##############################################################################
|
@@ -420,7 +445,6 @@ def process_inputs(text1, text2, text3, selected_category, progress=gr.Progress(
|
|
420 |
time.sleep(0.3)
|
421 |
progress(0.1, desc="μ°½μμ μΈ μμ΄λμ΄ μμ± μμ...")
|
422 |
|
423 |
-
# μΉ΄ν
κ³ λ¦¬μ ν΄λΉνλ μμ΄λμ΄ μμ±
|
424 |
results = generate_transformations(text1, text2, text3, selected_category)
|
425 |
|
426 |
progress(0.8, desc="κ²°κ³Ό ν¬λ§·ν
μ€...")
|
@@ -497,7 +521,7 @@ with gr.Blocks(
|
|
497 |
</style>
|
498 |
""")
|
499 |
|
500 |
-
gr.Markdown("# π
|
501 |
gr.Markdown("μ
λ ₯ν **ν€μλ**(μ΅λ 3κ°)μ **μΉ΄ν
κ³ λ¦¬**λ₯Ό λ°νμΌλ‘, μ°½μμ μΈ λͺ¨λΈ/컨μ
/νμ λ³ν μμ΄λμ΄λ₯Ό μμ±νκ³ , ν΄λΉ νμ₯ μμ΄λμ΄λ₯Ό ν둬ννΈλ‘ νμ¬ λμμΈ μ΄λ―Έμ§λ₯Ό μμ±ν©λλ€.")
|
502 |
|
503 |
warning = gr.Markdown(get_warning_message())
|
@@ -507,7 +531,7 @@ with gr.Blocks(
|
|
507 |
text_input1 = gr.Textbox(label="ν€μλ 1 (νμ)", placeholder="μ: μ€λ§νΈν°")
|
508 |
text_input2 = gr.Textbox(label="ν€μλ 2 (μ ν)", placeholder="μ: μΈκ³΅μ§λ₯")
|
509 |
text_input3 = gr.Textbox(label="ν€μλ 3 (μ ν)", placeholder="μ: ν¬μ€μΌμ΄")
|
510 |
-
|
511 |
label="μΉ΄ν
κ³ λ¦¬ μ ν",
|
512 |
choices=list(physical_transformation_categories.keys()),
|
513 |
value=list(physical_transformation_categories.keys())[0],
|
@@ -534,34 +558,30 @@ with gr.Blocks(
|
|
534 |
idea_output = gr.Markdown(label="μμ΄λμ΄ κ²°κ³Ό")
|
535 |
generated_image = gr.Image(label="μμ±λ λμμΈ μ΄λ―Έμ§", type="pil")
|
536 |
|
537 |
-
# μμ
|
538 |
gr.Examples(
|
539 |
examples=[
|
540 |
-
["μ€λ§νΈν°", "", "",
|
541 |
-
["μλμ°¨", "", "",
|
542 |
-
["μλμ°¨", "μΈκ³΅μ§λ₯", "",
|
543 |
-
["λλ‘ ", "μΈκ³΅μ§λ₯", "",
|
544 |
-
["μ΄λν", "μ¨μ΄λ¬λΈ", "건κ°",
|
545 |
],
|
546 |
-
inputs=[text_input1, text_input2, text_input3,
|
547 |
)
|
548 |
|
549 |
-
# μ²λ¦¬μ€ μμ΄μ½ 보μ΄κΈ°
|
550 |
def show_processing_indicator():
|
551 |
return gr.update(visible=True)
|
552 |
|
553 |
-
# μ²λ¦¬μ€ μμ΄μ½ μ¨κΈ°κΈ°
|
554 |
def hide_processing_indicator():
|
555 |
return gr.update(visible=False)
|
556 |
|
557 |
-
# λ²νΌ ν΄λ¦ μ μ²λ¦¬ λ‘μ§
|
558 |
submit_button.click(
|
559 |
fn=show_processing_indicator,
|
560 |
inputs=None,
|
561 |
outputs=processing_indicator
|
562 |
).then(
|
563 |
fn=process_all,
|
564 |
-
inputs=[text_input1, text_input2, text_input3,
|
565 |
outputs=[idea_output, generated_image]
|
566 |
).then(
|
567 |
fn=hide_processing_indicator,
|
@@ -569,6 +589,5 @@ with gr.Blocks(
|
|
569 |
outputs=processing_indicator
|
570 |
)
|
571 |
|
572 |
-
# λ©μΈ μ€ν
|
573 |
if __name__ == "__main__":
|
574 |
demo.launch(debug=True)
|
|
|
9 |
import numpy as np
|
10 |
from diffusers import DiffusionPipeline
|
11 |
from transformers import pipeline as hf_pipeline
|
12 |
+
import re
|
13 |
|
14 |
##############################################################################
|
15 |
# 1) ZeroGPU νκ²½ μ²λ¦¬ + device, dtype μ€μ
|
16 |
##############################################################################
|
|
|
|
|
|
|
|
|
17 |
try:
|
18 |
import zerogpu
|
19 |
zerogpu.init()
|
20 |
print("ZeroGPU initialized successfully")
|
21 |
device = "cuda" if torch.cuda.is_available() else "cpu"
|
22 |
except ImportError:
|
|
|
23 |
print("ZeroGPU package not installed, continuing without it")
|
24 |
if os.getenv("ZERO_GPU"):
|
25 |
print("ZeroGPU environment variable is set but zerogpu package is not installed.")
|
26 |
device = "cuda" if torch.cuda.is_available() else "cpu"
|
27 |
except Exception as e:
|
|
|
28 |
print(f"Error initializing ZeroGPU: {e}")
|
29 |
print("Continuing without ZeroGPU")
|
30 |
device = "cuda" if torch.cuda.is_available() else "cpu"
|
31 |
|
|
|
32 |
dtype = torch.bfloat16 if device == "cuda" else torch.float32
|
33 |
|
34 |
print(f"Using device: {device}, dtype: {dtype}")
|
|
|
51 |
print("Models loaded successfully")
|
52 |
except Exception as e:
|
53 |
print(f"Error loading models: {e}")
|
|
|
54 |
def dummy_translator(text):
|
55 |
return [{'translation_text': text}]
|
56 |
|
|
|
80 |
return False
|
81 |
|
82 |
##############################################################################
|
83 |
+
# μ
λ ₯ ν
μ€νΈ ν΄λ¦°μ§ ν¨μ: νκΈ, μλ¬Έ, μ«μ, 곡백 λ° μΌλ°μ μΈ λ¬Έμ₯ λΆνΈλ§ νμ©
|
84 |
##############################################################################
|
85 |
+
def clean_input_text(text):
|
86 |
"""
|
87 |
+
νκΈ, μλ¬Έ, μ«μ, 곡백 λ° . , ! ? - : ; ' " λ±μ λ¬Έμ₯ λΆνΈλ§ λ¨κΈ°κ³ μ κ±°ν©λλ€.
|
88 |
+
νμμ λ°λΌ νμ©ν λ¬Έμλ₯Ό μ‘°μ ν μ μμ΅λλ€.
|
89 |
"""
|
90 |
+
allowed = re.compile(r'[^γ±-γ
κ°-ν£a-zA-Z0-9\s\.\,\!\?\-\:\;\'\"]')
|
91 |
+
cleaned_text = allowed.sub('', text)
|
92 |
+
return cleaned_text
|
93 |
+
|
94 |
+
##############################################################################
|
95 |
+
# μ
λ ₯ ν
μ€νΈμ μμμΉ λͺ»ν λ¬Έμ λ‘κ·Έ ν¨μ (λλ²κΉ
μ©)
|
96 |
+
##############################################################################
|
97 |
+
def log_unexpected_characters(text):
|
98 |
+
allowed = re.compile(r'[γ±-γ
κ°-ν£a-zA-Z0-9\s\.\,\!\?\-\:\;\'\"]')
|
99 |
+
unexpected_chars = [char for char in text if not allowed.match(char)]
|
100 |
+
if unexpected_chars:
|
101 |
+
print("μμμΉ λͺ»ν λ¬Έμ λ°κ²¬:", set(unexpected_chars))
|
102 |
+
else:
|
103 |
+
print("μ
λ ₯ ν
μ€νΈμ μμμΉ λͺ»ν λ¬Έμλ μμ΅λλ€.")
|
104 |
+
|
105 |
+
##############################################################################
|
106 |
+
# μ΄λ―Έμ§ μμ± ν¨μ
|
107 |
+
##############################################################################
|
108 |
+
def generate_design_image(prompt, seed=42, randomize_seed=True, width=1024, height=1024, num_inference_steps=4):
|
109 |
original_prompt = prompt
|
110 |
translated = False
|
111 |
|
112 |
+
# μ
λ ₯ ν
μ€νΈ ν΄λ¦°μ§ μ μ©
|
113 |
+
prompt = clean_input_text(prompt)
|
114 |
+
|
115 |
+
# μ¬μ μ²λ¦¬: μ
λ ₯ ν
μ€νΈκ° λ무 κΈΈλ©΄ 미리 μλ₯΄κΈ° (μ: 1000μ μ΄μμ΄λ©΄ 1000μλ‘ μλΌλ)
|
116 |
+
if len(prompt) > 1000:
|
117 |
+
prompt = prompt[:1000]
|
118 |
+
|
119 |
if contains_korean(prompt):
|
120 |
+
# λ²μ νΈμΆ μ max_lengthμ truncation μ΅μ
μ μΆκ°νμ¬ κΈΈμ΄ μ΄κ³Ό λ¬Έμ λ₯Ό λ°©μ§
|
121 |
+
translation = translator(prompt, max_length=400, truncation=True)
|
122 |
prompt = translation[0]['translation_text']
|
123 |
translated = True
|
124 |
|
|
|
125 |
if randomize_seed:
|
126 |
seed = random.randint(0, MAX_SEED)
|
127 |
|
|
|
138 |
|
139 |
return image
|
140 |
|
141 |
+
|
142 |
##############################################################################
|
143 |
# λ‘κΉ
μ€μ
|
144 |
##############################################################################
|
|
|
186 |
# 물리μ λ³ν μΉ΄ν
κ³ λ¦¬ μ¬μ (μ΄ 15κ°)
|
187 |
##############################################################################
|
188 |
physical_transformation_categories = {
|
189 |
+
"μΌμ κΈ°λ₯": [
|
190 |
+
"μκ° μΌμ/κ°μ§", "μ²κ° μΌμ/κ°μ§", "μ΄κ° μΌμ/κ°μ§", "λ―Έκ° μΌμ/κ°μ§", "νκ° μΌμ/κ°μ§",
|
191 |
+
"μ¨λ μΌμ/κ°μ§", "μ΅λ μΌμ/κ°μ§", "μλ ₯ μΌμ/κ°μ§", "κ°μλ μΌμ/κ°μ§", "νμ μΌμ/κ°μ§",
|
192 |
+
"κ·Όμ μΌμ/κ°μ§", "μμΉ μΌμ/κ°μ§", "μ΄λ μΌμ/κ°μ§", "κ°μ€ μΌμ/κ°μ§", "μ μΈμ μΌμ/κ°μ§",
|
193 |
+
"μμΈμ μΌμ/κ°μ§", "λ°©μ¬μ μΌμ/κ°μ§", "μκΈ°μ₯ μΌμ/κ°μ§", "μ κΈ°μ₯ μΌμ/κ°μ§", "ννλ¬Όμ§ μΌμ/κ°μ§",
|
194 |
+
"μ체μ νΈ μΌμ/κ°μ§", "μ§λ μΌμ/κ°μ§", "μμ μΌμ/κ°μ§", "λΉ μΈκΈ° μΌμ/κ°μ§", "λΉ νμ₯ μΌμ/κ°μ§",
|
195 |
+
"κΈ°μΈκΈ° μΌμ/κ°μ§", "pH μΌμ/κ°μ§", "μ λ₯ μΌμ/κ°μ§", "μ μ μΌμ/κ°μ§", "μ΄λ―Έμ§ μΌμ/κ°μ§",
|
196 |
+
"거리 μΌμ/κ°μ§", "κΉμ΄ μΌμ/κ°μ§", "μ€λ ₯ μΌμ/κ°μ§", "μλ μΌμ/κ°μ§", "νλ¦ μΌμ/κ°μ§",
|
197 |
+
"μμ μΌμ/κ°μ§", "νλ μΌμ/κ°μ§", "μΌλ μΌμ/κ°μ§", "κΈμ κ°μ§", "μμ μΌμ/κ°μ§",
|
198 |
+
"κ΄μ μΌμ/κ°μ§", "μ΄μ λ μΌμ/κ°μ§", "ν ν¨κ³Ό μΌμ/κ°μ§", "μ΄μν μΌμ/κ°μ§", "λ μ΄λ μΌμ/κ°μ§",
|
199 |
+
"λΌμ΄λ€ μΌμ/κ°μ§", "ν°μΉ μΌμ/κ°μ§", "μ μ€μ² μΌμ/κ°μ§", "μ¬λ° μΌμ/κ°μ§", "νμ μΌμ/κ°μ§"
|
200 |
],
|
201 |
"ν¬κΈ°μ νν λ³ν": [
|
202 |
"λΆνΌ λμ΄λ¨/μ€μ΄λ¦", "κΈΈμ΄ λμ΄λ¨/μ€μ΄λ¦", "λλΉ λμ΄λ¨/μ€μ΄λ¦", "λμ΄ λμ΄λ¨/μ€μ΄λ¦",
|
|
|
214 |
"κ΄ν/μ€κΈ° λ³ν", "μμ‘°/μ±λ λ³ν", "λ°κ΄/νκ΄", "λΉ μ°λ ν¨κ³Ό",
|
215 |
"λΉ ν‘μ λ³ν", "λ°ν¬λͺ
ν¨κ³Ό", "κ·Έλ¦Όμ ν¨κ³Ό λ³ν", "μμΈμ λ°μ λ³ν",
|
216 |
"μΌκ΄ ν¨κ³Ό"
|
217 |
+
],
|
218 |
+
|
219 |
+
|
220 |
+
|
221 |
"λ¬Όμ§μ μν λ³ν": [
|
222 |
"κ³ μ²΄/μ‘체/기체 μ ν", "κ²°μ ν/μ©ν΄", "μ°ν/λΆμ", "λ±λ±ν΄μ§/λΆλλ¬μμ§",
|
223 |
"νΉμ μν μ ν", "무μ ν/κ²°μ ν μ ν", "μ±λΆ λΆλ¦¬", "λ―ΈμΈ μ
μ νμ±/λΆν΄",
|
|
|
226 |
"건쑰/μ΅μ€", "ν½μ€/μμΆ", "λκ²°/ν΄λ", "νν/μΉ¨μ", "μΆ©μ /λ°©μ ",
|
227 |
"κ²°ν©/λΆλ¦¬", "λ°ν¨/λΆν¨"
|
228 |
],
|
229 |
+
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
230 |
"μμ§μ νΉμ± λ³ν": [
|
231 |
"κ°μ/κ°μ", "μΌμ μλ μ μ§", "μ§λ/μ§λ κ°μ", "λΆλͺν/νκΉ",
|
232 |
"νμ μλ μ¦κ°/κ°μ", "νμ λ°©ν₯ λ³ν", "λΆκ·μΉ μμ§μ", "λ©μ·λ€ λ―Έλλ¬μ§λ νμ",
|
|
|
243 |
"μΈλΆ ꡬ쑰 λ³ν", "μ€μ¬μΆ μ΄λ", "κ· νμ λ³ν", "κ³μΈ΅ ꡬ쑰 λ³ν", "μ§μ§ ꡬ쑰 λ³ν",
|
244 |
"μλ ₯ λΆμ° ꡬ쑰", "좩격 ν‘μ ꡬ쑰", "그리λ/λ§€νΈλ¦μ€ ꡬ쑰 λ³ν", "μνΈ μ°κ²°μ± λ³ν"
|
245 |
],
|
246 |
+
"κ³΅κ° μ΄λ": [
|
247 |
+
"μ/λ€ μ΄λ", "μ’/μ° μ΄λ", "μ/μλ μ΄λ", "μΈλ‘μΆ νμ (κ³ κ° λλμ)",
|
248 |
+
"κ°λ‘μΆ νμ (κ³ κ° μ κΈ°)", "κΈΈμ΄μΆ νμ (μμΌλ‘ κΈ°μΈμ)", "μ μ΄λ", "λμ ν μ΄λ",
|
249 |
+
"κ΄μ±μ μν λ―Έλλ¬μ§", "νμ μΆ λ³ν", "λΆκ·μΉ νμ ", "νλ€λ¦Ό μ΄λ", "ν¬λ¬Όμ μ΄λ",
|
250 |
+
"무μ€λ ₯ λΆμ ", "μλ©΄ μ λΆμ ", "μ ν/λμ½", "μ¬λΌμ΄λ©", "λ‘€λ§", "μμ λν",
|
251 |
+
"μ볡 μ΄λ", "νμ± νκΉ", "κ΄ν΅", "ννΌ μμ§μ", "μ§κ·Έμ¬κ·Έ μ΄λ", "μ€μ μ΄λ"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
252 |
],
|
253 |
"μκ° κ΄λ ¨ λ³ν": [
|
254 |
"λ
Έν/νν", "λ§λͺ¨/λΆμ", "μ λ°λ¨/λ³μ", "μμ/ν볡", "μλͺ
μ£ΌκΈ° λ³ν",
|
|
|
274 |
"μ리 μ§ν₯μ±", "μν₯ μ곑", "λΉνΈ μμ±", "νλͺ¨λμ€ μμ±", "μ£Όνμ λ³μ‘°",
|
275 |
"μν₯ 좩격ν", "μν₯ νν°λ§"
|
276 |
],
|
277 |
+
"μ΄ κ΄λ ¨ λ³ν": [
|
278 |
+
"μ¨λ μμΉ/νκ°", "μ΄μ μν ν½μ°½/μμΆ", "μ΄ μ λ¬/μ°¨λ¨", "μλ ₯ μμΉ/νκ°",
|
279 |
+
"μ΄ λ³νμ λ°λ₯Έ μν", "무μ§μλ λ³ν", "μ΄μ κΈ° νμ", "μκΈ°μ₯μ μν μ΄ λ³ν",
|
280 |
+
"μνλ³ν μ€ μ΄ μ μ₯/λ°©μΆ", "μ΄ μ€νΈλ μ€ λ°μ/ν΄μ", "κΈκ²©ν μ¨λ λ³ν μν₯",
|
281 |
+
"볡μ¬μ΄μ μν λκ°/κ°μ΄", "λ°μ΄/ν‘μ΄", "μ΄ λΆν¬ λ³ν", "μ΄ λ°μ¬/ν‘μ",
|
282 |
+
"λκ° μμΆ", "μ΄ νμ±ν", "μ΄ λ³μ", "μ΄ ν½μ°½ κ³μ λ³ν", "μ΄ μμ μ± λ³ν",
|
283 |
+
"λ΄μ΄μ±/λ΄νμ±", "μκΈ°λ°μ΄", "μ΄μ νν/λΆκ· ν", "μ΄μ λ³ν", "μ΄ λΆμ°/μ§μ€"
|
284 |
+
],
|
285 |
+
"μ κΈ° λ° μκΈ° λ³ν": [
|
286 |
+
"μμ± μμ±/μλ©Έ", "μ νλ μ¦κ°/κ°μ", "μ κΈ°μ₯ μμ±/μλ©Έ", "μκΈ°μ₯ μμ±/μλ©Έ",
|
287 |
+
"μ΄μ λ μν μ ν", "κ°μ μ 체 νΉμ± λ³ν", "μμ μν λ³ν", "νλΌμ¦λ§ μν νμ±/μλ©Έ",
|
288 |
+
"μ€νν μ λ¬", "λΉμ μν μ κΈ° λ°μ", "μλ ₯μ μν μ κΈ° λ°μ", "μκΈ°μ₯ μ μ λ₯ λ³ν",
|
289 |
+
"μ κΈ° μ ν λ³ν", "μ κΈ° μ λμ± λ³ν", "μ μ κΈ° λ°μ/λ°©μ ", "μ μκΈ° μ λ",
|
290 |
+
"μ μκΈ°ν λ°©μΆ/ν‘μ", "μ κΈ° μ©λ λ³ν", "μκΈ° μ΄λ ₯ νμ", "μ κΈ°μ λΆκ·Ή",
|
291 |
+
"μ μ νλ¦ λ°©ν₯ λ³ν", "μ κΈ°μ 곡λͺ
", "μ κΈ°μ μ°¨ν/λ
ΈμΆ", "μκΈ° μ°¨ν/λ
ΈμΆ",
|
292 |
+
"μκΈ°μ₯ λ°©ν₯ μ λ ¬"
|
293 |
+
],
|
294 |
+
"ννμ λ³ν": [
|
295 |
+
"νλ©΄ μ½ν
λ³ν", "λ¬Όμ§ μ±λΆ λ³ν", "νν λ°μ λ³ν", "μ΄λ§€ μμ© μμ/μ€λ¨",
|
296 |
+
"λΉμ μν νν λ°μ", "μ κΈ°μ μν νν λ°μ", "λ¨λΆμλ§ νμ±", "λΆμ μμ€ κ³μ° λ³ν",
|
297 |
+
"μμ° λͺ¨λ°© νλ©΄ λ³ν", "νκ²½ λ°μν λ¬Όμ§ λ³ν", "μ£ΌκΈ°μ νν λ°μ", "μ°ν", "νμ",
|
298 |
+
"κ³ λΆμν", "λ¬Ό λΆν΄", "νν©", "λ°©μ¬μ μν₯", "μ°-μΌκΈ° λ°μ", "μ€ν λ°μ",
|
299 |
+
"μ΄μ¨ν", "ννμ ν‘μ°©/νμ°©", "μ΄λ§€ ν¨μ¨ λ³ν", "ν¨μ νμ± λ³ν", "λ°μ λ°μ",
|
300 |
+
"pH λ³ν", "ννμ νν μ΄λ", "κ²°ν© νμ±/λΆν΄", "μ©ν΄λ λ³ν"
|
301 |
+
],
|
302 |
+
|
303 |
"μλ¬Όνμ λ³ν": [
|
304 |
"μμ₯/μμΆ", "μΈν¬ λΆμ΄/μ¬λ©Έ", "μλ¬Ό λ°κ΄", "μ μ§λμ¬ λ³ν", "λ©΄μ λ°μ",
|
305 |
"νΈλ₯΄λͺ¬ λΆλΉ", "μ κ²½ λ°μ", "μ μ μ λ°ν", "μ μ/μ§ν", "μμ²΄λ¦¬λ¬ λ³ν",
|
|
|
314 |
"λ°©μ¬μ λ°μ", "μ§λ κ°μ§", "pH λ°μ", "μ©λ§€ λ°μ", "기체 κ΅ν",
|
315 |
"νκ²½ μ€μΌ λ°μ", "λ μ¨ λ°μ", "κ³μ λ³ν λ°μ", "μΌμ£ΌκΈ° λ°μ", "μνκ³ μνΈμμ©",
|
316 |
"곡μ/κ²½μ λ°μ", "ν¬μ/νΌμ κ΄κ³", "κ΅°μ§ νμ±", "μμ μ€μ ", "μ΄μ£Ό/μ μ°© ν¨ν΄"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
317 |
]
|
318 |
+
|
319 |
}
|
320 |
|
321 |
##############################################################################
|
|
|
445 |
time.sleep(0.3)
|
446 |
progress(0.1, desc="μ°½μμ μΈ μμ΄λμ΄ μμ± μμ...")
|
447 |
|
|
|
448 |
results = generate_transformations(text1, text2, text3, selected_category)
|
449 |
|
450 |
progress(0.8, desc="κ²°κ³Ό ν¬λ§·ν
μ€...")
|
|
|
521 |
</style>
|
522 |
""")
|
523 |
|
524 |
+
gr.Markdown("# π μμ΄λμ΄ νΈλμ€ν¬λ¨Έ")
|
525 |
gr.Markdown("μ
λ ₯ν **ν€μλ**(μ΅λ 3κ°)μ **μΉ΄ν
κ³ λ¦¬**λ₯Ό λ°νμΌλ‘, μ°½μμ μΈ λͺ¨λΈ/컨μ
/νμ λ³ν μμ΄λμ΄λ₯Ό μμ±νκ³ , ν΄λΉ νμ₯ μμ΄λμ΄λ₯Ό ν둬ννΈλ‘ νμ¬ λμμΈ μ΄λ―Έμ§λ₯Ό μμ±ν©λλ€.")
|
526 |
|
527 |
warning = gr.Markdown(get_warning_message())
|
|
|
531 |
text_input1 = gr.Textbox(label="ν€μλ 1 (νμ)", placeholder="μ: μ€λ§νΈν°")
|
532 |
text_input2 = gr.Textbox(label="ν€μλ 2 (μ ν)", placeholder="μ: μΈκ³΅μ§λ₯")
|
533 |
text_input3 = gr.Textbox(label="ν€μλ 3 (μ ν)", placeholder="μ: ν¬μ€μΌμ΄")
|
534 |
+
category_radio = gr.Radio(
|
535 |
label="μΉ΄ν
κ³ λ¦¬ μ ν",
|
536 |
choices=list(physical_transformation_categories.keys()),
|
537 |
value=list(physical_transformation_categories.keys())[0],
|
|
|
558 |
idea_output = gr.Markdown(label="μμ΄λμ΄ κ²°κ³Ό")
|
559 |
generated_image = gr.Image(label="μμ±λ λμμΈ μ΄λ―Έμ§", type="pil")
|
560 |
|
|
|
561 |
gr.Examples(
|
562 |
examples=[
|
563 |
+
["μ€λ§νΈν°", "", "", "μΌμ κΈ°λ₯"],
|
564 |
+
["μλμ°¨", "", "", "ν¬κΈ°μ νν λ³ν"],
|
565 |
+
["μλμ°¨", "μΈκ³΅μ§λ₯", "", "νλ©΄ λ° μΈκ΄ λ³ν"],
|
566 |
+
["λλ‘ ", "μΈκ³΅μ§λ₯", "", "λ¬Όμ§μ μν λ³ν"],
|
567 |
+
["μ΄λν", "μ¨μ΄λ¬λΈ", "건κ°", "ꡬ쑰μ λ³ν"],
|
568 |
],
|
569 |
+
inputs=[text_input1, text_input2, text_input3, category_radio],
|
570 |
)
|
571 |
|
|
|
572 |
def show_processing_indicator():
|
573 |
return gr.update(visible=True)
|
574 |
|
|
|
575 |
def hide_processing_indicator():
|
576 |
return gr.update(visible=False)
|
577 |
|
|
|
578 |
submit_button.click(
|
579 |
fn=show_processing_indicator,
|
580 |
inputs=None,
|
581 |
outputs=processing_indicator
|
582 |
).then(
|
583 |
fn=process_all,
|
584 |
+
inputs=[text_input1, text_input2, text_input3, category_radio],
|
585 |
outputs=[idea_output, generated_image]
|
586 |
).then(
|
587 |
fn=hide_processing_indicator,
|
|
|
589 |
outputs=processing_indicator
|
590 |
)
|
591 |
|
|
|
592 |
if __name__ == "__main__":
|
593 |
demo.launch(debug=True)
|