Spaces:
Sleeping
Sleeping
Upload app.py with huggingface_hub
Browse files
app.py
CHANGED
|
@@ -48,7 +48,7 @@ def do_interpret(poem: str, correction: str):
|
|
| 48 |
return f"### 画中之意\n\n{interp.understanding_zh}", interp.brief_en
|
| 49 |
|
| 50 |
|
| 51 |
-
def do_paint(brief_en: str, style_id: str, poem: str
|
| 52 |
if not brief_en:
|
| 53 |
raise gr.Error("请先点「读诗」,让我先体会诗意。")
|
| 54 |
brief = ensure_text_free(apply_image_style(brief_en, style_id or DEFAULT_IMAGE_STYLE))
|
|
@@ -56,7 +56,7 @@ def do_paint(brief_en: str, style_id: str, poem: str, greeting: str):
|
|
| 56 |
painting = providers.get_painter().paint(brief)
|
| 57 |
except Exception as exc: # noqa: BLE001 — cold-start/network → warm copy
|
| 58 |
raise gr.Error("画师正在热身(首次作画要多等一会儿),请稍候再点一次「作画」。") from exc
|
| 59 |
-
card = compose_card(painting, poem,
|
| 60 |
return card, painting
|
| 61 |
|
| 62 |
|
|
@@ -86,10 +86,10 @@ def do_animate(painting, brief_en: str, audio_path: str | None):
|
|
| 86 |
return video
|
| 87 |
|
| 88 |
|
| 89 |
-
def do_everything(poem: str,
|
| 90 |
understanding, brief_en = do_interpret(poem, "")
|
| 91 |
yield understanding, brief_en, gr.update(), gr.update(), gr.update(), gr.update()
|
| 92 |
-
card, painting = do_paint(brief_en, style_id, poem
|
| 93 |
yield understanding, brief_en, card, painting, gr.update(), gr.update()
|
| 94 |
audio = do_sing(poem, song_style, duration)
|
| 95 |
yield understanding, brief_en, card, painting, audio, gr.update()
|
|
@@ -314,9 +314,6 @@ with gr.Blocks(title="诗情画意 · Poetry to Art") as demo:
|
|
| 314 |
poem_box = gr.Textbox(
|
| 315 |
label="您的诗", lines=4, placeholder="把您想说的写成几句小诗,长短都可以。"
|
| 316 |
)
|
| 317 |
-
greeting_box = gr.Textbox(
|
| 318 |
-
label="想送的问候(可以不填)", placeholder="例如:早安,或一句祝福的话"
|
| 319 |
-
)
|
| 320 |
with gr.Row():
|
| 321 |
interpret_btn = gr.Button("读诗", variant="primary", scale=1)
|
| 322 |
everything_btn = gr.Button(
|
|
@@ -349,7 +346,7 @@ with gr.Blocks(title="诗情画意 · Poetry to Art") as demo:
|
|
| 349 |
song_radio = gr.Radio(
|
| 350 |
SONG_STYLE_CHOICES, value=DEFAULT_SONG_STYLE, label="选一种曲风"
|
| 351 |
)
|
| 352 |
-
duration_slider = gr.Slider(20,
|
| 353 |
sing_btn = gr.Button("唱诗", variant="primary")
|
| 354 |
song_audio = gr.Audio(label="您的诗,唱出来了", type="filepath", interactive=False)
|
| 355 |
|
|
@@ -360,11 +357,11 @@ with gr.Blocks(title="诗情画意 · Poetry to Art") as demo:
|
|
| 360 |
|
| 361 |
gr.Examples(
|
| 362 |
examples=[
|
| 363 |
-
["床前明月光,疑是地上霜。举头望明月,低头思故乡。"
|
| 364 |
-
["白日依山尽,黄河入海流。欲穷千里目,更上一层楼。"
|
| 365 |
-
["春眠不觉晓,处处闻啼鸟。夜来风雨声,花落知多少。"
|
| 366 |
],
|
| 367 |
-
inputs=[poem_box
|
| 368 |
label="试试这些诗(也欢迎写您自己的)",
|
| 369 |
cache_examples=False,
|
| 370 |
)
|
|
@@ -378,7 +375,7 @@ with gr.Blocks(title="诗情画意 · Poetry to Art") as demo:
|
|
| 378 |
|
| 379 |
paint_btn.click(
|
| 380 |
do_paint,
|
| 381 |
-
inputs=[brief_state, style_radio, poem_box
|
| 382 |
outputs=[card_image, painting_state],
|
| 383 |
)
|
| 384 |
|
|
@@ -392,7 +389,7 @@ with gr.Blocks(title="诗情画意 · Poetry to Art") as demo:
|
|
| 392 |
|
| 393 |
everything_btn.click(
|
| 394 |
do_everything,
|
| 395 |
-
inputs=[poem_box,
|
| 396 |
outputs=[understanding_md, brief_state, card_image, painting_state, song_audio, video_out],
|
| 397 |
)
|
| 398 |
|
|
|
|
| 48 |
return f"### 画中之意\n\n{interp.understanding_zh}", interp.brief_en
|
| 49 |
|
| 50 |
|
| 51 |
+
def do_paint(brief_en: str, style_id: str, poem: str):
|
| 52 |
if not brief_en:
|
| 53 |
raise gr.Error("请先点「读诗」,让我先体会诗意。")
|
| 54 |
brief = ensure_text_free(apply_image_style(brief_en, style_id or DEFAULT_IMAGE_STYLE))
|
|
|
|
| 56 |
painting = providers.get_painter().paint(brief)
|
| 57 |
except Exception as exc: # noqa: BLE001 — cold-start/network → warm copy
|
| 58 |
raise gr.Error("画师正在热身(首次作画要多等一会儿),请稍候再点一次「作画」。") from exc
|
| 59 |
+
card = compose_card(painting, poem, "")
|
| 60 |
return card, painting
|
| 61 |
|
| 62 |
|
|
|
|
| 86 |
return video
|
| 87 |
|
| 88 |
|
| 89 |
+
def do_everything(poem: str, style_id: str, song_style: str, duration: float):
|
| 90 |
understanding, brief_en = do_interpret(poem, "")
|
| 91 |
yield understanding, brief_en, gr.update(), gr.update(), gr.update(), gr.update()
|
| 92 |
+
card, painting = do_paint(brief_en, style_id, poem)
|
| 93 |
yield understanding, brief_en, card, painting, gr.update(), gr.update()
|
| 94 |
audio = do_sing(poem, song_style, duration)
|
| 95 |
yield understanding, brief_en, card, painting, audio, gr.update()
|
|
|
|
| 314 |
poem_box = gr.Textbox(
|
| 315 |
label="您的诗", lines=4, placeholder="把您想说的写成几句小诗,长短都可以。"
|
| 316 |
)
|
|
|
|
|
|
|
|
|
|
| 317 |
with gr.Row():
|
| 318 |
interpret_btn = gr.Button("读诗", variant="primary", scale=1)
|
| 319 |
everything_btn = gr.Button(
|
|
|
|
| 346 |
song_radio = gr.Radio(
|
| 347 |
SONG_STYLE_CHOICES, value=DEFAULT_SONG_STYLE, label="选一种曲风"
|
| 348 |
)
|
| 349 |
+
duration_slider = gr.Slider(20, 30, value=25, step=5, label="歌曲长度(秒)")
|
| 350 |
sing_btn = gr.Button("唱诗", variant="primary")
|
| 351 |
song_audio = gr.Audio(label="您的诗,唱出来了", type="filepath", interactive=False)
|
| 352 |
|
|
|
|
| 357 |
|
| 358 |
gr.Examples(
|
| 359 |
examples=[
|
| 360 |
+
["床前明月光,疑是地上霜。举头望明月,低头思故乡。"],
|
| 361 |
+
["白日依山尽,黄河入海流。欲穷千里目,更上一层楼。"],
|
| 362 |
+
["春眠不觉晓,处处闻啼鸟。夜来风雨声,花落知多少。"],
|
| 363 |
],
|
| 364 |
+
inputs=[poem_box],
|
| 365 |
label="试试这些诗(也欢迎写您自己的)",
|
| 366 |
cache_examples=False,
|
| 367 |
)
|
|
|
|
| 375 |
|
| 376 |
paint_btn.click(
|
| 377 |
do_paint,
|
| 378 |
+
inputs=[brief_state, style_radio, poem_box],
|
| 379 |
outputs=[card_image, painting_state],
|
| 380 |
)
|
| 381 |
|
|
|
|
| 389 |
|
| 390 |
everything_btn.click(
|
| 391 |
do_everything,
|
| 392 |
+
inputs=[poem_box, style_radio, song_radio, duration_slider],
|
| 393 |
outputs=[understanding_md, brief_state, card_image, painting_state, song_audio, video_out],
|
| 394 |
)
|
| 395 |
|