Spaces:
Runtime error
Runtime error
Update ui/components.py
Browse files- ui/components.py +37 -36
ui/components.py
CHANGED
|
@@ -452,14 +452,16 @@ def create_text2music_ui(
|
|
| 452 |
choices=list(QUALITY_PRESETS.keys()),
|
| 453 |
value="Standard",
|
| 454 |
label="ํ์ง ํ๋ฆฌ์
",
|
| 455 |
-
scale=2
|
|
|
|
| 456 |
)
|
| 457 |
multi_seed_mode = gr.Dropdown(
|
| 458 |
choices=list(MULTI_SEED_OPTIONS.keys()),
|
| 459 |
value="Single",
|
| 460 |
label="๋ค์ค ์์ฑ ๋ชจ๋",
|
| 461 |
scale=2,
|
| 462 |
-
info="์ฌ๋ฌ ๋ฒ ์์ฑํ์ฌ ์ต๊ณ ํ์ง ์ ํ"
|
|
|
|
| 463 |
)
|
| 464 |
|
| 465 |
preset_description = gr.Textbox(
|
|
@@ -519,8 +521,8 @@ def create_text2music_ui(
|
|
| 519 |
|
| 520 |
def toggle_ref_audio_visibility(is_checked):
|
| 521 |
return (
|
| 522 |
-
gr.update(visible=is_checked
|
| 523 |
-
gr.update(visible=is_checked
|
| 524 |
)
|
| 525 |
|
| 526 |
audio2audio_enable.change(
|
|
@@ -540,14 +542,14 @@ def create_text2music_ui(
|
|
| 540 |
value="Custom",
|
| 541 |
label="์ฅ๋ฅด ํ๋ฆฌ์
",
|
| 542 |
scale=1,
|
| 543 |
-
interactive=True
|
| 544 |
)
|
| 545 |
song_style = gr.Dropdown(
|
| 546 |
choices=list(SONG_STYLES.keys()),
|
| 547 |
value="๋์ฃ (๋จ๋
ํผ์ฑ)",
|
| 548 |
label="๊ณก ์คํ์ผ",
|
| 549 |
scale=1,
|
| 550 |
-
interactive=True
|
| 551 |
)
|
| 552 |
enable_smart_enhancement = gr.Checkbox(
|
| 553 |
label="์ค๋งํธ ํฅ์",
|
|
@@ -562,6 +564,7 @@ def create_text2music_ui(
|
|
| 562 |
max_lines=4,
|
| 563 |
value=TAG_DEFAULT,
|
| 564 |
placeholder="์ฝค๋ง๋ก ๊ตฌ๋ถ๋ ํ๊ทธ๋ค...",
|
|
|
|
| 565 |
)
|
| 566 |
|
| 567 |
with gr.Group():
|
|
@@ -572,7 +575,8 @@ def create_text2music_ui(
|
|
| 572 |
lyric_prompt = gr.Textbox(
|
| 573 |
label="์์ฌ ์ฃผ์ ",
|
| 574 |
placeholder="์: ์ฒซ์ฌ๋์ ์ค๋ , ์ด๋ณ์ ์ํ, ํฌ๋ง์ฐฌ ๋ด์ผ...",
|
| 575 |
-
scale=3
|
|
|
|
| 576 |
)
|
| 577 |
generate_lyrics_btn = gr.Button("๐ค AI ์์ฌ", variant="secondary", scale=1)
|
| 578 |
|
|
@@ -581,7 +585,8 @@ def create_text2music_ui(
|
|
| 581 |
label="Lyrics",
|
| 582 |
max_lines=13,
|
| 583 |
value=LYRIC_DEFAULT,
|
| 584 |
-
placeholder="๊ฐ์ฌ๋ฅผ ์
๋ ฅํ์ธ์. [verse], [chorus] ๋ฑ์ ๊ตฌ์กฐ ํ๊ทธ ์ฌ์ฉ์ ๊ถ์ฅํฉ๋๋ค."
|
|
|
|
| 585 |
)
|
| 586 |
|
| 587 |
with gr.Accordion("Basic Settings", open=False):
|
|
@@ -1222,9 +1227,8 @@ def create_text2music_ui(
|
|
| 1222 |
outputs=extend_outputs + [extend_input_params_json],
|
| 1223 |
)
|
| 1224 |
|
| 1225 |
-
# =====
|
| 1226 |
|
| 1227 |
-
# ํ๊ทธ ์
๋ฐ์ดํธ ํจ์
|
| 1228 |
def update_tags_from_preset(preset_name, current_tags, song_style):
|
| 1229 |
"""์ฅ๋ฅด ํ๋ฆฌ์
์ ํ์ ํ๊ทธ ์
๋ฐ์ดํธ"""
|
| 1230 |
print(f"๐ต update_tags_from_preset called: preset={preset_name}, style={song_style}")
|
|
@@ -1244,18 +1248,19 @@ def create_text2music_ui(
|
|
| 1244 |
print(f"โ
Updated tags: {result[:50]}...")
|
| 1245 |
return result
|
| 1246 |
|
| 1247 |
-
|
| 1248 |
-
|
| 1249 |
print(f"๐ค AI ์์ฌ ๋ฒํผ ํด๋ฆญ: prompt='{lyric_prompt}'")
|
| 1250 |
if not lyric_prompt or lyric_prompt.strip() == "":
|
| 1251 |
print("โ ๏ธ ๋น ํ๋กฌํํธ")
|
| 1252 |
-
|
|
|
|
| 1253 |
|
| 1254 |
generated = generate_lyrics_with_ai(lyric_prompt, genre_preset, song_style)
|
| 1255 |
return generated
|
| 1256 |
|
| 1257 |
-
# ๋๋ค ๋ฐ์ดํฐ ์์ฑ ํจ์
|
| 1258 |
def generate_random_music_data(genre_preset, song_style):
|
|
|
|
| 1259 |
print("๐ฒ Random ๋ฒํผ ํด๋ฆญ")
|
| 1260 |
# ๋๋ค ์ฅ๋ฅด ์ ํ
|
| 1261 |
if genre_preset == "Custom":
|
|
@@ -1307,7 +1312,6 @@ def create_text2music_ui(
|
|
| 1307 |
None, # ref_audio_input
|
| 1308 |
)
|
| 1309 |
|
| 1310 |
-
# ์ค์๊ฐ ํ๋ฆฌ๋ทฐ ๊ธฐ๋ฅ
|
| 1311 |
def generate_preview(prompt, lyrics, genre_preset, song_style):
|
| 1312 |
"""10์ด ํ๋ฆฌ๋ทฐ ์์ฑ"""
|
| 1313 |
print("๐ต Preview ๋ฒํผ ํด๋ฆญ")
|
|
@@ -1323,26 +1327,25 @@ def create_text2music_ui(
|
|
| 1323 |
enhanced_prompt = enhance_prompt_with_genre(prompt, genre_preset, song_style)
|
| 1324 |
|
| 1325 |
try:
|
| 1326 |
-
# ์ค์ ๊ตฌํ์์๋ ๋น ๋ฅธ ์์ฑ ๋ชจ๋ ์ฌ์ฉ
|
| 1327 |
result = enhanced_process_func(
|
| 1328 |
preview_params["audio_duration"],
|
| 1329 |
enhanced_prompt,
|
| 1330 |
-
lyrics[:200],
|
| 1331 |
preview_params["infer_step"],
|
| 1332 |
preview_params["guidance_scale"],
|
| 1333 |
preview_params["scheduler_type"],
|
| 1334 |
preview_params["cfg_type"],
|
| 1335 |
preview_params["omega_scale"],
|
| 1336 |
-
None,
|
| 1337 |
-
0.5,
|
| 1338 |
-
0.0,
|
| 1339 |
-
3.0,
|
| 1340 |
-
True,
|
| 1341 |
-
False,
|
| 1342 |
-
True,
|
| 1343 |
-
None,
|
| 1344 |
-
0.0,
|
| 1345 |
-
0.0,
|
| 1346 |
multi_seed_mode="Single",
|
| 1347 |
song_style=song_style
|
| 1348 |
)
|
|
@@ -1350,39 +1353,37 @@ def create_text2music_ui(
|
|
| 1350 |
except Exception as e:
|
| 1351 |
return f"ํ๋ฆฌ๋ทฐ ์์ฑ ์คํจ: {str(e)}"
|
| 1352 |
|
| 1353 |
-
# ์ด๋ฒคํธ ํธ๋ค๋ฌ ์ฐ๊ฒฐ
|
| 1354 |
print("๐ ์ด๋ฒคํธ ํธ๋ค๋ฌ ์ฐ๊ฒฐ ์ค...")
|
| 1355 |
|
| 1356 |
# ์ฅ๋ฅด ํ๋ฆฌ์
๋ณ๊ฒฝ ์ด๋ฒคํธ
|
| 1357 |
-
genre_preset.
|
| 1358 |
fn=update_tags_from_preset,
|
| 1359 |
inputs=[genre_preset, prompt, song_style],
|
| 1360 |
outputs=[prompt]
|
| 1361 |
)
|
| 1362 |
|
| 1363 |
# ๊ณก ์คํ์ผ ๋ณ๊ฒฝ ์ด๋ฒคํธ
|
| 1364 |
-
song_style.
|
| 1365 |
fn=update_tags_from_preset,
|
| 1366 |
inputs=[genre_preset, prompt, song_style],
|
| 1367 |
outputs=[prompt]
|
| 1368 |
)
|
| 1369 |
|
| 1370 |
# ํ์ง ํ๋ฆฌ์
๋ณ๊ฒฝ ์ด๋ฒคํธ
|
| 1371 |
-
quality_preset.
|
| 1372 |
fn=lambda x: QUALITY_PRESETS.get(x, {}).get("description", ""),
|
| 1373 |
inputs=[quality_preset],
|
| 1374 |
outputs=[preset_description]
|
| 1375 |
-
)
|
| 1376 |
-
|
| 1377 |
-
quality_preset.change(
|
| 1378 |
-
fn=update_quality_preset, # ์ ์ญ ํจ์ ์ง์ ์ฌ์ฉ
|
| 1379 |
inputs=[quality_preset],
|
| 1380 |
outputs=[infer_step, guidance_scale, scheduler_type, omega_scale, use_erg_diffusion, use_erg_tag]
|
| 1381 |
)
|
| 1382 |
|
| 1383 |
# AI ์์ฌ ๋ฒํผ ์ด๋ฒคํธ
|
| 1384 |
generate_lyrics_btn.click(
|
| 1385 |
-
fn=
|
| 1386 |
inputs=[lyric_prompt, genre_preset, song_style],
|
| 1387 |
outputs=[lyrics]
|
| 1388 |
)
|
|
|
|
| 452 |
choices=list(QUALITY_PRESETS.keys()),
|
| 453 |
value="Standard",
|
| 454 |
label="ํ์ง ํ๋ฆฌ์
",
|
| 455 |
+
scale=2,
|
| 456 |
+
interactive=True
|
| 457 |
)
|
| 458 |
multi_seed_mode = gr.Dropdown(
|
| 459 |
choices=list(MULTI_SEED_OPTIONS.keys()),
|
| 460 |
value="Single",
|
| 461 |
label="๋ค์ค ์์ฑ ๋ชจ๋",
|
| 462 |
scale=2,
|
| 463 |
+
info="์ฌ๋ฌ ๋ฒ ์์ฑํ์ฌ ์ต๊ณ ํ์ง ์ ํ",
|
| 464 |
+
interactive=True
|
| 465 |
)
|
| 466 |
|
| 467 |
preset_description = gr.Textbox(
|
|
|
|
| 521 |
|
| 522 |
def toggle_ref_audio_visibility(is_checked):
|
| 523 |
return (
|
| 524 |
+
gr.update(visible=is_checked),
|
| 525 |
+
gr.update(visible=is_checked),
|
| 526 |
)
|
| 527 |
|
| 528 |
audio2audio_enable.change(
|
|
|
|
| 542 |
value="Custom",
|
| 543 |
label="์ฅ๋ฅด ํ๋ฆฌ์
",
|
| 544 |
scale=1,
|
| 545 |
+
interactive=True
|
| 546 |
)
|
| 547 |
song_style = gr.Dropdown(
|
| 548 |
choices=list(SONG_STYLES.keys()),
|
| 549 |
value="๋์ฃ (๋จ๋
ํผ์ฑ)",
|
| 550 |
label="๊ณก ์คํ์ผ",
|
| 551 |
scale=1,
|
| 552 |
+
interactive=True
|
| 553 |
)
|
| 554 |
enable_smart_enhancement = gr.Checkbox(
|
| 555 |
label="์ค๋งํธ ํฅ์",
|
|
|
|
| 564 |
max_lines=4,
|
| 565 |
value=TAG_DEFAULT,
|
| 566 |
placeholder="์ฝค๋ง๋ก ๊ตฌ๋ถ๋ ํ๊ทธ๋ค...",
|
| 567 |
+
interactive=True
|
| 568 |
)
|
| 569 |
|
| 570 |
with gr.Group():
|
|
|
|
| 575 |
lyric_prompt = gr.Textbox(
|
| 576 |
label="์์ฌ ์ฃผ์ ",
|
| 577 |
placeholder="์: ์ฒซ์ฌ๋์ ์ค๋ , ์ด๋ณ์ ์ํ, ํฌ๋ง์ฐฌ ๋ด์ผ...",
|
| 578 |
+
scale=3,
|
| 579 |
+
interactive=True
|
| 580 |
)
|
| 581 |
generate_lyrics_btn = gr.Button("๐ค AI ์์ฌ", variant="secondary", scale=1)
|
| 582 |
|
|
|
|
| 585 |
label="Lyrics",
|
| 586 |
max_lines=13,
|
| 587 |
value=LYRIC_DEFAULT,
|
| 588 |
+
placeholder="๊ฐ์ฌ๋ฅผ ์
๋ ฅํ์ธ์. [verse], [chorus] ๋ฑ์ ๊ตฌ์กฐ ํ๊ทธ ์ฌ์ฉ์ ๊ถ์ฅํฉ๋๋ค.",
|
| 589 |
+
interactive=True
|
| 590 |
)
|
| 591 |
|
| 592 |
with gr.Accordion("Basic Settings", open=False):
|
|
|
|
| 1227 |
outputs=extend_outputs + [extend_input_params_json],
|
| 1228 |
)
|
| 1229 |
|
| 1230 |
+
# ===== ์ด๋ฒคํธ ํธ๋ค๋ฌ ํจ์ ์ ์ =====
|
| 1231 |
|
|
|
|
| 1232 |
def update_tags_from_preset(preset_name, current_tags, song_style):
|
| 1233 |
"""์ฅ๋ฅด ํ๋ฆฌ์
์ ํ์ ํ๊ทธ ์
๋ฐ์ดํธ"""
|
| 1234 |
print(f"๐ต update_tags_from_preset called: preset={preset_name}, style={song_style}")
|
|
|
|
| 1248 |
print(f"โ
Updated tags: {result[:50]}...")
|
| 1249 |
return result
|
| 1250 |
|
| 1251 |
+
def generate_ai_lyrics_wrapper(lyric_prompt, genre_preset, song_style):
|
| 1252 |
+
"""AI ์์ฌ ๋ฒํผ ์ด๋ฒคํธ ํธ๋ค๋ฌ"""
|
| 1253 |
print(f"๐ค AI ์์ฌ ๋ฒํผ ํด๋ฆญ: prompt='{lyric_prompt}'")
|
| 1254 |
if not lyric_prompt or lyric_prompt.strip() == "":
|
| 1255 |
print("โ ๏ธ ๋น ํ๋กฌํํธ")
|
| 1256 |
+
gr.Warning("์์ฌ ์ฃผ์ ๋ฅผ ์
๋ ฅํด์ฃผ์ธ์!")
|
| 1257 |
+
return gr.update() # ํ์ฌ ๊ฐ์ฌ ์ ์ง
|
| 1258 |
|
| 1259 |
generated = generate_lyrics_with_ai(lyric_prompt, genre_preset, song_style)
|
| 1260 |
return generated
|
| 1261 |
|
|
|
|
| 1262 |
def generate_random_music_data(genre_preset, song_style):
|
| 1263 |
+
"""๋๋ค ๋ฐ์ดํฐ ์์ฑ"""
|
| 1264 |
print("๐ฒ Random ๋ฒํผ ํด๋ฆญ")
|
| 1265 |
# ๋๋ค ์ฅ๋ฅด ์ ํ
|
| 1266 |
if genre_preset == "Custom":
|
|
|
|
| 1312 |
None, # ref_audio_input
|
| 1313 |
)
|
| 1314 |
|
|
|
|
| 1315 |
def generate_preview(prompt, lyrics, genre_preset, song_style):
|
| 1316 |
"""10์ด ํ๋ฆฌ๋ทฐ ์์ฑ"""
|
| 1317 |
print("๐ต Preview ๋ฒํผ ํด๋ฆญ")
|
|
|
|
| 1327 |
enhanced_prompt = enhance_prompt_with_genre(prompt, genre_preset, song_style)
|
| 1328 |
|
| 1329 |
try:
|
|
|
|
| 1330 |
result = enhanced_process_func(
|
| 1331 |
preview_params["audio_duration"],
|
| 1332 |
enhanced_prompt,
|
| 1333 |
+
lyrics[:200],
|
| 1334 |
preview_params["infer_step"],
|
| 1335 |
preview_params["guidance_scale"],
|
| 1336 |
preview_params["scheduler_type"],
|
| 1337 |
preview_params["cfg_type"],
|
| 1338 |
preview_params["omega_scale"],
|
| 1339 |
+
None,
|
| 1340 |
+
0.5,
|
| 1341 |
+
0.0,
|
| 1342 |
+
3.0,
|
| 1343 |
+
True,
|
| 1344 |
+
False,
|
| 1345 |
+
True,
|
| 1346 |
+
None,
|
| 1347 |
+
0.0,
|
| 1348 |
+
0.0,
|
| 1349 |
multi_seed_mode="Single",
|
| 1350 |
song_style=song_style
|
| 1351 |
)
|
|
|
|
| 1353 |
except Exception as e:
|
| 1354 |
return f"ํ๋ฆฌ๋ทฐ ์์ฑ ์คํจ: {str(e)}"
|
| 1355 |
|
| 1356 |
+
# ===== ์ด๋ฒคํธ ํธ๋ค๋ฌ ์ฐ๊ฒฐ =====
|
| 1357 |
print("๐ ์ด๋ฒคํธ ํธ๋ค๋ฌ ์ฐ๊ฒฐ ์ค...")
|
| 1358 |
|
| 1359 |
# ์ฅ๋ฅด ํ๋ฆฌ์
๋ณ๊ฒฝ ์ด๋ฒคํธ
|
| 1360 |
+
genre_preset.select(
|
| 1361 |
fn=update_tags_from_preset,
|
| 1362 |
inputs=[genre_preset, prompt, song_style],
|
| 1363 |
outputs=[prompt]
|
| 1364 |
)
|
| 1365 |
|
| 1366 |
# ๊ณก ์คํ์ผ ๋ณ๊ฒฝ ์ด๋ฒคํธ
|
| 1367 |
+
song_style.select(
|
| 1368 |
fn=update_tags_from_preset,
|
| 1369 |
inputs=[genre_preset, prompt, song_style],
|
| 1370 |
outputs=[prompt]
|
| 1371 |
)
|
| 1372 |
|
| 1373 |
# ํ์ง ํ๋ฆฌ์
๋ณ๊ฒฝ ์ด๋ฒคํธ
|
| 1374 |
+
quality_preset.select(
|
| 1375 |
fn=lambda x: QUALITY_PRESETS.get(x, {}).get("description", ""),
|
| 1376 |
inputs=[quality_preset],
|
| 1377 |
outputs=[preset_description]
|
| 1378 |
+
).then(
|
| 1379 |
+
fn=update_quality_preset,
|
|
|
|
|
|
|
| 1380 |
inputs=[quality_preset],
|
| 1381 |
outputs=[infer_step, guidance_scale, scheduler_type, omega_scale, use_erg_diffusion, use_erg_tag]
|
| 1382 |
)
|
| 1383 |
|
| 1384 |
# AI ์์ฌ ๋ฒํผ ์ด๋ฒคํธ
|
| 1385 |
generate_lyrics_btn.click(
|
| 1386 |
+
fn=generate_ai_lyrics_wrapper,
|
| 1387 |
inputs=[lyric_prompt, genre_preset, song_style],
|
| 1388 |
outputs=[lyrics]
|
| 1389 |
)
|