{
  "project_id": "EP01_HQ_2026-08-28_bobo-high-definition",
  "episode_id": "EP01_HQ",
  "episode_number": "1-HQ",
  "title": "第 01 集 HQ：Bobo in the Wrong Box（高畫質重製版）",
  "theme": "遇到小失敗時，用簡短英文互相提醒、鼓勵、合作；擴充到 15 個短句以增加練習量。",
  "updated_at": "2026-09-21T16:38:50.209162+08:00",
  "status": "planned_s05_new_final_story_reference_only_20260906",
  "style_lock": "F soft 3D clay toy style / JellyToon-compatible soft clay toy look",
  "provider_policy": {
    "text_brain": "Agent workflow for script/story/prompt drafts; Hermes main model only integrates/reviews with provenance",
    "visual_primary": "ChatArtPro first for character images, keyframes, and I2V/source clips",
    "visual_backup": "ComfyUI as backup/experiment",
    "assembly": "FFmpeg/Python for subtitles, audio alignment, and final MP4"
  },
  "retained_shared_characters": [
    "images/character/mia_ref_v1.png",
    "images/character/leo_ref_v1.png"
  ],
  "phrases": [
    {
      "id": "p01",
      "phrase": "Watch out!",
      "zh_tw": "小心！",
      "usage": "看到對方快撞到、東西快掉下來、危險快發生時使用。",
      "micro_story": "Leo 抱著零件盒走路，差點踩到地上的火箭尾翼；Mia 緊張指向地板說這句。",
      "visual_goal": "地上零件＋Leo 快踩到＋Mia 清楚提醒。",
      "status": "user_approved_20260828_3x_subtitled",
      "status_note": "使用者核准；已改為重複三次並燒錄英文字幕。",
      "coverage_check": [
        "Visual: red block ahead before contact",
        "Visual: Mia raises stop hand before Leo touches block",
        "Visual: Leo stops/avoids safely",
        "Audio: Watch out starts around 0.33s",
        "Demucs no_vocals max -56.8 dBFS"
      ],
      "source_video_original_single_phrase": null,
      "source_video": null,
      "video": "generated/video/hq_short_phrases_20260828_3x_subtitles/ep01_hq_p01_watch_out_3x_subtitled.mp4",
      "assembled_video": "generated/video/hq_short_phrases_20260828_3x_subtitles/ep01_hq_p01_watch_out_3x_subtitled.mp4",
      "contact_sheet_3x_subtitled": "generated/video/hq_short_phrases_20260828_3x_subtitles/ep01_hq_p01_watch_out_3x_subtitled_contact.jpg",
      "repeat_count": 3,
      "subtitle_mode": "burned_english_phrase_bottom_center"
    },
    {
      "id": "p02",
      "phrase": "Hold on.",
      "zh_tw": "等一下。",
      "usage": "想請對方暫停、不要太快行動時使用。",
      "micro_story": "Leo 太急按下大紅色發射鈕，玩具小火箭直接砰一聲爆炸，冒出一團誇張但安全的黑煙；Mia 和 Leo 的臉都被煙燻黑。Mia 做 STOP 手勢並清楚說 Hold on.",
      "visual_goal": "大紅按鈕→玩具火箭直接爆炸→黑煙把 Mia 和 Leo 的臉燻黑→Mia STOP 手勢＋說 Hold on.",
      "status": "user_approved_20260828_3x_subtitled",
      "correction": "Completed with v3 source: black smoke, both children sooty, Mia STOP hand, red button visible; assembled into 3-pass segment.",
      "source_video": "source_clips/p02_hold_on/p02_hold_on_v4_separate_button_box.mp4",
      "assembled_video": "generated/video/hq_short_phrases_20260828_3x_subtitles/ep01_hq_p02_hold_on_3x_subtitled.mp4",
      "qa": "Regenerated with separate red button box; STT x3.",
      "status_note": "使用者核准；已改為重複三次並燒錄英文字幕。",
      "coverage_check": [
        "使用者審核通過"
      ],
      "source_video_original_single_phrase": "source_clips/p02_hold_on/p02_hold_on_v4_separate_button_box.mp4",
      "video": "generated/video/hq_short_phrases_20260828_3x_subtitles/ep01_hq_p02_hold_on_3x_subtitled.mp4",
      "contact_sheet_3x_subtitled": "generated/video/hq_short_phrases_20260828_3x_subtitles/ep01_hq_p02_hold_on_3x_subtitled_contact.jpg",
      "repeat_count": 3,
      "subtitle_mode": "burned_english_phrase_bottom_center"
    },
    {
      "id": "p03",
      "phrase": "My turn.",
      "zh_tw": "換我了。",
      "usage": "輪流玩、輪流嘗試、輪到自己做某件事時使用。",
      "micro_story": "Mia 裝好一片尾翼後，把工具遞給 Leo；Leo 開心舉手。",
      "visual_goal": "明確交接工具、輪流動作。",
      "status": "user_approved_20260828_3x_subtitled",
      "status_note": "使用者核准；已改為重複三次並燒錄英文字幕。",
      "source_video_original_single_phrase": null,
      "source_video": null,
      "video": "generated/video/hq_short_phrases_20260828_3x_subtitles/ep01_hq_p03_my_turn_3x_subtitled.mp4",
      "assembled_video": "generated/video/hq_short_phrases_20260828_3x_subtitles/ep01_hq_p03_my_turn_3x_subtitled.mp4",
      "contact_sheet_3x_subtitled": "generated/video/hq_short_phrases_20260828_3x_subtitles/ep01_hq_p03_my_turn_3x_subtitled_contact.jpg",
      "repeat_count": 3,
      "subtitle_mode": "burned_english_phrase_bottom_center"
    },
    {
      "id": "p04",
      "phrase": "No way!",
      "zh_tw": "不會吧！／真的假的！",
      "usage": "驚訝、難以相信，或看到意外狀況時使用。",
      "micro_story": "Mia 和 Leo 按下發射按鈕，原本期待玩具火箭成功發射；火箭只輕微震動，結果只冒出一小團煙就歪掉壞掉，兩人難以置信。",
      "visual_goal": "按鈕啟動→期待成功發射→只冒一點煙→火箭壞掉/歪掉→清楚震驚表情。不要泡泡。",
      "status": "user_approved_20260828_3x_subtitled",
      "human_feedback": "p04的影片情境很奇怪，為什麼火箭冒泡泡，應該改成按鈕啟動時，原本以為會發射成功，結果只出了一點煙就壞掉了",
      "logic_revision": "p04 No way! should not be a bubble-machine gag. The readable event must be: Mia and Leo press the launch button expecting the toy rocket to launch successfully; it looks ready for a moment, then only a tiny weak puff of smoke comes out, the rocket sputters/droops and clearly breaks down/stops working. The children react with disbelief and one child says exactly No way!.",
      "prompt_revision_file": "prompts/p04_no_way_chatartpro_v3_button_tiny_smoke_failure.txt",
      "rejected_assembled_video": "assembled_segments/p04_no_way/p04_no_way_3pass_v1.mp4",
      "correction": "v3 source fixes rejected bubble concept: button press expectation -> tiny smoke -> rocket droops/falls; assembled 3-pass with controlled voice because provider audio missed target phrase.",
      "source_video": "assembled_segments/p04_no_way/p04_no_way_3pass_v3_button_tiny_smoke.mp4",
      "assembled_video": "generated/video/hq_short_phrases_20260828_3x_subtitles/ep01_hq_p04_no_way_3x_subtitled.mp4",
      "status_note": "使用者核准；已改為重複三次並燒錄英文字幕。",
      "coverage_check": [
        "Required: no rocket/theme prop",
        "Required: clear surprising cause/result",
        "Required: speaker says No way after seeing the surprise",
        "Required: correct mouth/speaker timing"
      ],
      "source_video_original_single_phrase": "assembled_segments/p04_no_way/p04_no_way_3pass_v3_button_tiny_smoke.mp4",
      "video": "generated/video/hq_short_phrases_20260828_3x_subtitles/ep01_hq_p04_no_way_3x_subtitled.mp4",
      "contact_sheet_3x_subtitled": "generated/video/hq_short_phrases_20260828_3x_subtitles/ep01_hq_p04_no_way_3x_subtitled_contact.jpg",
      "repeat_count": 3,
      "subtitle_mode": "burned_english_phrase_bottom_center"
    },
    {
      "id": "p05",
      "phrase": "Try again.",
      "zh_tw": "再試一次。",
      "usage": "鼓勵自己或別人在失敗後重新嘗試。",
      "micro_story": "火箭在畫面中從正在裝配/直立搖晃，明確倒下散開；Leo 沮喪；Mia 拿起零件鼓勵；兩人開始重新裝回尾翼。",
      "visual_goal": "必須演出失敗動畫本身：嘗試中→火箭倒下/零件散開→沮喪→鼓勵→重新開始。8 秒 source clip。",
      "status": "approved",
      "human_feedback": "p05的影片不適合的原因是開頭的失敗沒有動畫，只有開頭就是失敗的畫面，這樣還是不夠直覺，可能是影片秒數不夠，改成生成8秒的影片",
      "logic_revision": "p05 Try again must animate the failure on screen before retry: upright/wobbly rocket being assembled -> visible collapse/fall-apart -> sad reaction -> encouragement -> retry/rebuild. Use 8s visual-only source clip instead of 5s so the failure animation is intuitive.",
      "prompt_revision_file": "prompts/p05_try_again_chatartpro_v6_8s_with_provider_voice.txt",
      "voice_policy_correction": "Regenerate full source clip with provider-generated speech first; use local controlled voice only if provider audio fails QA.",
      "previous_assembled_video": null,
      "assembled_video": "generated/hq_p05_threepass_20260921_v1/master.mp4",
      "correction_reference_hold": "Human feedback 2026-05-28: p05 opening still showed character/reference image instead of direct story content. Reassembled trimmed 3-pass version with 1.0s source trim. Visual opening reference-hold issue addressed; base STT still detects Try again but may over-read provider reaction/SFX as Hmm/Mmm, so human audio review remains required.",
      "source_video": "generated/hq_p05_threepass_20260921_v1/master.mp4",
      "status_note": "使用者已確認 P05 新版；已以原候選連續串接三次。三段間無黑畫面、淡入淡出或額外靜音接縫。",
      "coverage_check": [
        "Required: no rocket/theme prop",
        "Required: visible failed first attempt",
        "Required: speaker says Try again before second attempt",
        "Required: retry improves/continues action"
      ],
      "source_video_original_single_phrase": "generated/hq_p05_rework_20260921_v1/review.mp4",
      "video": "generated/hq_p05_threepass_20260921_v1/master.mp4",
      "contact_sheet_3x_subtitled": "",
      "repeat_count": 3,
      "subtitle_mode": "three_continuous_repeats_no_transitions",
      "prompt": "Picture 1 shows the approved characters: Mia, the girl with brown ponytail and pink sweater, and Leo, the boy with brown hair and green sweater. Preserve their soft 3D clay-toy appearance, faces, clothing and child proportions. The reference audio gives Mia's established child voice.\n\nOne continuous fixed medium-wide shot in a bright preschool playroom, showing both children from head to feet and the whole game area. Leo stands at left holding one small red foam ball. Mia stands next to him. One low wide open blue basket rests on the floor a short distance to Leo's right. A second identical red foam ball rests on a small stool beside Leo, available for his second attempt. Only these two balls and one basket are used. Keep the basket's opening and floor around it clearly visible.\n\nSimple seven-second scene teaching trying a second time after a miss:\n0.0-1.8 seconds: Leo gently tosses the first ball underhand toward the basket. It lands on the floor just short of the basket and stays there, visibly outside. Leo looks at the missed ball with a small disappointed expression.\n1.8-2.8 seconds: Mia looks encouragingly at Leo and says exactly once, warmly and clearly: \"Try again.\" Leo listens with his mouth closed. Mia closes her mouth immediately after her two words.\n2.8-5.8 seconds: Leo picks up the second red ball from the stool, aims carefully, and gently tosses it into the wide basket. Show the ball's short arc, crossing the open rim and landing visibly inside the basket. The first ball remains on the floor outside.\n5.8-7.0 seconds: Both children look at the successful ball in the basket and smile with closed mouths. The successful second ball remains in the basket, the missed first ball remains outside, and Leo's hands are empty. End in a stable quiet hold.\n\nExactly one spoken line in the entire video: Mia says \"Try again.\" Match the supplied Mia voice reference. Dry clean speech with silence before and after, no music, no sound effects, no other words. Leo stays silent throughout. No captions, no letters, no subtitles, no split screen. The children's bodies, hands, balls and basket retain the same shape and color throughout. Show the complete missed attempt, encouragement, successful retry and visible final result without cuts.",
      "prompt_en": "Picture 1 shows the approved characters: Mia, the girl with brown ponytail and pink sweater, and Leo, the boy with brown hair and green sweater. Preserve their soft 3D clay-toy appearance, faces, clothing and child proportions. The reference audio gives Mia's established child voice.\n\nOne continuous fixed medium-wide shot in a bright preschool playroom, showing both children from head to feet and the whole game area. Leo stands at left holding one small red foam ball. Mia stands next to him. One low wide open blue basket rests on the floor a short distance to Leo's right. A second identical red foam ball rests on a small stool beside Leo, available for his second attempt. Only these two balls and one basket are used. Keep the basket's opening and floor around it clearly visible.\n\nSimple seven-second scene teaching trying a second time after a miss:\n0.0-1.8 seconds: Leo gently tosses the first ball underhand toward the basket. It lands on the floor just short of the basket and stays there, visibly outside. Leo looks at the missed ball with a small disappointed expression.\n1.8-2.8 seconds: Mia looks encouragingly at Leo and says exactly once, warmly and clearly: \"Try again.\" Leo listens with his mouth closed. Mia closes her mouth immediately after her two words.\n2.8-5.8 seconds: Leo picks up the second red ball from the stool, aims carefully, and gently tosses it into the wide basket. Show the ball's short arc, crossing the open rim and landing visibly inside the basket. The first ball remains on the floor outside.\n5.8-7.0 seconds: Both children look at the successful ball in the basket and smile with closed mouths. The successful second ball remains in the basket, the missed first ball remains outside, and Leo's hands are empty. End in a stable quiet hold.\n\nExactly one spoken line in the entire video: Mia says \"Try again.\" Match the supplied Mia voice reference. Dry clean speech with silence before and after, no music, no sound effects, no other words. Leo stays silent throughout. No captions, no letters, no subtitles, no split screen. The children's bodies, hands, balls and basket retain the same shape and color throughout. Show the complete missed attempt, encouragement, successful retry and visible final result without cuts.",
      "prompt_zh_tw": "固定中廣角幼兒園遊戲區。Leo 第一次輕投紅色軟球，球落在藍色籃子前方，明確未入籃。Mia 看著他溫柔說一次「Try again.」。Leo 從身旁小凳拿起第二顆球，再次瞄準輕投，球落入籃中。結尾第一顆球仍在籃外、第二顆球在籃內，兩人閉口微笑。保留核准角色與 Mia 聲音參考，無音樂、字幕或額外台詞。",
      "prompt_file": "generated/hq_p05_rework_20260921_v1/prompt_en.txt",
      "active_prompt_file": "generated/hq_p05_rework_20260921_v1/prompt_en.txt",
      "prompt_status": "hq_p05_rework_20260921_v1",
      "actual_prompt_language": "en",
      "prompt_display_language": "zh_tw",
      "updated_at": "2026-09-21T09:42:47.143405+08:00",
      "review_status": "approved",
      "review_label": "使用者已確認｜三遍版完成",
      "video_label": "高畫質三遍連續教學版",
      "review_note": "使用者已確認 P05 新版；已以原候選連續串接三次。三段間無黑畫面、淡入淡出或額外靜音接縫。",
      "qa_status": "數值、畫面與聲音連續性 QA 通過；使用者已確認 P05 新版。",
      "qa": {
        "pass": true,
        "technical_pass": true,
        "source_sha256": "83f34279a01455c3289d07ee640b5605b3ec2c48c7717762903b0bead52fa744",
        "review_sha256": "b0be564e43983191135a0e8ce67dea7e8895adb9fa6c5cde39cc11b07986277a",
        "duration_seconds": 21.896333,
        "resolution": [
          1344,
          768
        ],
        "fps": 24,
        "repeat_count": 3,
        "black_frames_detected": 0,
        "splice_boundaries_seconds": [
          7.291667,
          14.583334
        ],
        "splice_audio": "stream-copy concat; no silence samples, fade, or transition inserted",
        "visual_review": "contact sheet includes frames immediately before/after both splice boundaries; no black frame or transition is visible",
        "user_approval": "P05 source candidate approved by user; this three-repeat assembly has been checked for continuity"
      },
      "active_video": "generated/hq_p05_threepass_20260921_v1/master.mp4",
      "contact_sheet": "generated/hq_p05_threepass_20260921_v1/contact.jpg",
      "source_contact_sheet": "generated/hq_p05_rework_20260921_v1/contact.jpg",
      "review_sheet": "generated/hq_p05_threepass_20260921_v1/contact.jpg",
      "final_frame": "generated/hq_p05_threepass_20260921_v1/contact.jpg",
      "qa_file": "generated/hq_p05_threepass_20260921_v1/qa.json",
      "delivery_dialogue": [
        "Mia: Try again."
      ],
      "quality": "1344 × 768 / 24fps",
      "hq_notes": "新版投球重試情境；原速原生對白，對白外音效已靜音。",
      "qa_3x_subtitled": null,
      "contact_sheet_3pass_subtitled": "",
      "preview_file": "generated/hq_p05_threepass_20260921_v1/master.mp4",
      "approved_at": "2026-09-21T09:42:47.143405+08:00"
    },
    {
      "id": "p06",
      "phrase": "Need help?",
      "zh_tw": "需要幫忙嗎？",
      "usage": "看到對方卡住、拿不動、做不來時，用來主動關心。",
      "micro_story": "Mia 一手扶火箭、一手找膠帶忙不過來；Leo 靠近詢問。",
      "visual_goal": "一人明顯忙不過來，另一人主動靠近幫忙。",
      "status": "user_approved_20260828_3x_subtitled",
      "previous_assembled_video": null,
      "assembled_video": "generated/video/hq_short_phrases_20260828_3x_subtitles/ep01_hq_p06_need_help_3x_subtitled.mp4",
      "correction_reference_hold": "Human feedback 2026-05-28: p06 opening still showed character/reference image instead of direct story content. Reassembled trimmed 3-pass version with 0.8s source trim. Per-pass base STT exact Need help?.",
      "review_status": "pending_review",
      "source_video_original_single_phrase": "assembled_segments/p06_need_help_trimmed/p06_need_help_trimmed_3pass_v1.mp4",
      "source_video": "assembled_segments/p06_need_help_trimmed/p06_need_help_trimmed_3pass_v1.mp4",
      "video": "generated/video/hq_short_phrases_20260828_3x_subtitles/ep01_hq_p06_need_help_3x_subtitled.mp4",
      "contact_sheet_3x_subtitled": "generated/video/hq_short_phrases_20260828_3x_subtitles/ep01_hq_p06_need_help_3x_subtitled_contact.jpg",
      "status_note": "使用者核准；已改為重複三次並燒錄英文字幕。",
      "repeat_count": 3,
      "subtitle_mode": "burned_english_phrase_bottom_center"
    },
    {
      "id": "p07",
      "phrase": "Good idea.",
      "zh_tw": "好主意。",
      "usage": "認同別人的點子或建議時使用。",
      "micro_story": "Mia 指向筆筒提出收納建議；Leo 說 Good idea 後把散落蠟筆放好。",
      "visual_goal": "四支蠟筆最後全在筆筒內，桌面收乾淨。",
      "status": "approved",
      "source_video": "generated/hq_p07_rework_20260920_v1/review.mp4",
      "assembled_video": "generated/hq_p07_threepass_20260920_v2/master.mp4",
      "qa": {
        "duration": 19.75,
        "frames": 474,
        "resolution": [
          1344,
          768
        ],
        "exact_dialogue": true,
        "source_qa": "generated\\hq_p07_rework_20260920_v1\\qa.json",
        "audio_integrity": [
          {
            "start": 0.0,
            "correlation_to_approved_audio": 0.9999954912652441
          },
          {
            "start": 6.583333333333333,
            "correlation_to_approved_audio": 0.9999934566777421
          },
          {
            "start": 13.166666666666666,
            "correlation_to_approved_audio": 0.9999916199825282
          }
        ],
        "audio_method": "Decoded waveform correlation per full pass against user-approved source; no new voice processing. Source STT and human listening approval retained.",
        "technical_pass": true,
        "visual_subtitles": "passed: reviewed all three passes and every dialogue, readable English/Traditional Chinese, first pass no text",
        "black_frame_scan": "passed: entire decoded video, no black intervals",
        "splice_frames": "passed: both boundaries visually inspected; no black gaps",
        "pass": true
      },
      "previous_assembled_video": "assembled_segments/p07_good_idea/p07_good_idea_3pass_v1.mp4",
      "correction_reference_hold": "Human feedback 2026-05-28: p07 opening still showed character/reference image instead of direct story content. Reassembled trimmed 3-pass version with 0.8s source trim. Per-pass base STT exact Good idea!.",
      "status_note": "三遍修正版已由使用者確認",
      "video": "generated/hq_p07_threepass_20260920_v2/master.mp4",
      "source_video_original_single_phrase": "generated/hq_p07_rework_20260920_v1/review.mp4",
      "contact_sheet_3x_subtitled": "",
      "repeat_count": 3,
      "subtitle_mode": "3pass_no_sub_en_en_zh_tw",
      "review_status": "approved",
      "active_video": "generated/hq_p07_threepass_20260920_v2/master.mp4",
      "source_contact_sheet": "generated/hq_p07_rework_20260920_v1/contact.jpg",
      "contact_sheet": "generated/hq_p07_threepass_20260920_v2/contact.jpg",
      "prompt_file": "generated/hq_p07_rework_20260920_v1/prompt_en.txt",
      "active_prompt_file": "generated/hq_p07_rework_20260920_v1/prompt_en.txt",
      "qa_file": "generated/hq_p07_threepass_20260920_v2/qa.json",
      "video_label": "高畫質三遍教學版",
      "contact_sheet_3pass_subtitled": "",
      "qa_3x_subtitled": {},
      "review_sheet": "generated/hq_p07_threepass_20260920_v2/contact.jpg",
      "provider_prompt": "generated/hq_p07_rework_20260920_v1/prompt_en.txt",
      "source_contact_sheet_3x_subtitled": "",
      "final_frame": "generated/hq_p07_threepass_20260920_v2/last.png",
      "first_frame": "",
      "approval": "",
      "approved_at": "2026-09-20T23:10:47.191931+08:00",
      "user_review": "",
      "prompt": "Use the exact checked first frame: original Mia in pink LEFT, Leo in green RIGHT, four loose crayons and one empty yellow cup on the pale-green table. Same warm clay style and fixed medium-wide camera, complete heads and hands remain visible.\n0.0-1.2 seconds: one loose crayon rolls a short distance across the table; Leo stops it with his fingertips and looks at the scattered crayons, unsure how to keep them tidy.\n1.2-2.1 seconds: Mia silently points to the empty yellow pencil cup, clearly offering that cup as the solution. Leo follows her pointing finger with his eyes.\n2.1-3.0 seconds: Leo looks at Mia with recognition and says exactly once, \"Good idea!\" Only Leo speaks; Mia listens with closed lips.\n3.0-5.6 seconds: Leo visibly gathers the four crayons with his hands and places them upright in the yellow cup, their tips protruding. The crayons move continuously with his hands into the cup.\n5.6-6.5 seconds: the tabletop is clear of loose crayons; all four stand in the cup. Both children admire the tidy result with closed-mouth smiles.\nOne target line total, dry natural child speech, no music or additional speech. Keep Mia's lips closed throughout. Continuous camera, no on-screen text, subtitles or extra props. Maintain the exact original identities and colors.\n\n",
      "prompt_en": "Use the exact checked first frame: original Mia in pink LEFT, Leo in green RIGHT, four loose crayons and one empty yellow cup on the pale-green table. Same warm clay style and fixed medium-wide camera, complete heads and hands remain visible.\n0.0-1.2 seconds: one loose crayon rolls a short distance across the table; Leo stops it with his fingertips and looks at the scattered crayons, unsure how to keep them tidy.\n1.2-2.1 seconds: Mia silently points to the empty yellow pencil cup, clearly offering that cup as the solution. Leo follows her pointing finger with his eyes.\n2.1-3.0 seconds: Leo looks at Mia with recognition and says exactly once, \"Good idea!\" Only Leo speaks; Mia listens with closed lips.\n3.0-5.6 seconds: Leo visibly gathers the four crayons with his hands and places them upright in the yellow cup, their tips protruding. The crayons move continuously with his hands into the cup.\n5.6-6.5 seconds: the tabletop is clear of loose crayons; all four stand in the cup. Both children admire the tidy result with closed-mouth smiles.\nOne target line total, dry natural child speech, no music or additional speech. Keep Mia's lips closed throughout. Continuous camera, no on-screen text, subtitles or extra props. Maintain the exact original identities and colors.\n\n",
      "prompt_zh_tw": "沿用原始 Mia（左、粉紅上衣）與 Leo（右、綠色上衣），固定中景，完整露出頭部、雙手及淺綠桌面。桌上有四支散落蠟筆和一個空黃色筆筒。\n0–1.2 秒：一支蠟筆在桌上短距離滾動，Leo 用指尖攔住，望著散落蠟筆。\n1.2–2.1 秒：Mia 閉嘴指向空筆筒，提出收納方法，Leo 順著她指的方向看。\n2.1–3.0 秒：Leo 看向 Mia，只說一次「Good idea!」。Mia 全程不說話。\n3.0–5.6 秒：Leo 用手收起四支蠟筆，連續可見地放進筆筒，筆尖朝上。\n5.6–6.5 秒：四支蠟筆全在筆筒內，桌面沒有剩餘蠟筆，兩人閉嘴微笑。\n原生 1344×768、24fps；不顯示文字或字幕，不加配樂與其他台詞。保持原角色與色彩，先檢查單段後再製作三遍教學版。\n",
      "prompt_display_language": "zh_tw",
      "actual_prompt_language": "en",
      "generation_key": "hq_p07_rework_20260920_v1",
      "review_label": "已確認",
      "qa_3pass_subtitled": {},
      "prompt_status": "fresh_independent_generation_20260920",
      "updated_at": "2026-09-20T22:52:45.202695+08:00",
      "review_note": "使用者確認無黑畫面三遍修正版：這兩句可以了，現在把短句串接起來",
      "qa_status": "QA 通過，使用者已確認",
      "delivery_dialogue": [
        "Mia: Try the cup.",
        "Leo: Good idea!"
      ],
      "preview_file": "generated/hq_p07_threepass_20260920_v2/master.mp4",
      "source_review_status": "approved"
    },
    {
      "id": "p08",
      "phrase": "All set.",
      "zh_tw": "好了／完成了。",
      "usage": "完成準備、事情處理好了時使用。",
      "micro_story": "Leo 關妥裝好的午餐盒後說 All set，表示已準備好與背書包的 Mia 出門。",
      "visual_goal": "盒蓋完整關妥後才說話，最後保持關閉。",
      "status": "approved",
      "video": "generated/hq_p08_threepass_20260920_v2/master.mp4",
      "source_video": "generated/hq_p08_rework_20260920_v1/review.mp4",
      "video_label": "高畫質三遍教學版",
      "prompt_file": "generated/hq_p08_rework_20260920_v1/prompt_en.txt",
      "active_prompt_file": "generated/hq_p08_rework_20260920_v1/prompt_en.txt",
      "source_contact_sheet": "generated/hq_p08_rework_20260920_v1/contact.jpg",
      "qa": {
        "duration": 17.625,
        "frames": 423,
        "resolution": [
          1344,
          768
        ],
        "exact_dialogue": true,
        "source_qa": "generated\\hq_p08_rework_20260920_v1\\qa.json",
        "audio_integrity": [
          {
            "start": 0.0,
            "correlation_to_approved_audio": 0.9999999704250861
          },
          {
            "start": 5.875,
            "correlation_to_approved_audio": 0.9999969289463513
          },
          {
            "start": 11.75,
            "correlation_to_approved_audio": 0.9999932673526579
          }
        ],
        "audio_method": "Decoded waveform correlation per full pass against user-approved source; no new voice processing. Source STT and human listening approval retained.",
        "technical_pass": true,
        "visual_subtitles": "passed: reviewed all three passes and every dialogue, readable English/Traditional Chinese, first pass no text",
        "black_frame_scan": "passed: entire decoded video, no black intervals",
        "splice_frames": "passed: both boundaries visually inspected; no black gaps",
        "pass": true
      },
      "source_video_original_single_phrase": "generated/hq_p08_rework_20260920_v1/review.mp4",
      "assembled_video": "generated/hq_p08_threepass_20260920_v2/master.mp4",
      "contact_sheet_3x_subtitled": "",
      "status_note": "三遍修正版已由使用者確認",
      "repeat_count": 3,
      "subtitle_mode": "3pass_no_sub_en_en_zh_tw",
      "active_video": "generated/hq_p08_threepass_20260920_v2/master.mp4",
      "contact_sheet_3pass_subtitled": "",
      "review_status": "approved",
      "qa_3x_subtitled": {},
      "provider_prompt": "generated/hq_p08_rework_20260920_v1/prompt_en.txt",
      "review_label": "已確認",
      "contact_sheet": "generated/hq_p08_threepass_20260920_v2/contact.jpg",
      "source_contact_sheet_3x_subtitled": "",
      "final_frame": "generated/hq_p08_threepass_20260920_v2/last.png",
      "first_frame": "",
      "review_sheet": "generated/hq_p08_threepass_20260920_v2/contact.jpg",
      "qa_file": "generated/hq_p08_threepass_20260920_v2/qa.json",
      "approval": "",
      "approved_at": "2026-09-20T23:10:47.191931+08:00",
      "user_review": "",
      "prompt": "Use the exact checked first frame: original Mia in pink LEFT wearing her backpack, Leo in green RIGHT, one blue lunchbox on the table in front of him with the hinged lid fully open and food neatly inside below the rim. Same warm clay style and fixed medium-wide camera. Complete heads, hands, lunchbox and lid remain visible.\n0.0-0.8 seconds: Leo checks the packed lunchbox; Mia quietly waits beside him, ready to leave.\n0.8-2.6 seconds: Leo holds the lunchbox base steady with one hand and uses his other hand to lower the attached lid along its hinge until it meets the rim. He presses the front edge to secure the closed lid. Show the entire closing action clearly, with food staying inside.\n2.6-3.1 seconds: Leo takes both hands away; the blue lunchbox stays completely closed on the table. The preparation is visibly finished.\n3.1-4.1 seconds: Leo looks at Mia and says exactly once, \"All set.\" His expression conveys that the lunch is packed and they are ready to go. Mia listens with closed lips.\n4.1-5.8 seconds: Mia gives a small silent nod. Leo rests his hands beside the lunchbox. End with the lunchbox still completely closed on the table and both mouths closed.\nOnly Leo speaks. One short line, natural dry child voice, quiet background, no music, additional words or narration. One lunchbox throughout, solid attached hinge, consistent size and color, continuous visible hand contact. No text, captions, labels, transitions or extra props.\n\n",
      "prompt_en": "Use the exact checked first frame: original Mia in pink LEFT wearing her backpack, Leo in green RIGHT, one blue lunchbox on the table in front of him with the hinged lid fully open and food neatly inside below the rim. Same warm clay style and fixed medium-wide camera. Complete heads, hands, lunchbox and lid remain visible.\n0.0-0.8 seconds: Leo checks the packed lunchbox; Mia quietly waits beside him, ready to leave.\n0.8-2.6 seconds: Leo holds the lunchbox base steady with one hand and uses his other hand to lower the attached lid along its hinge until it meets the rim. He presses the front edge to secure the closed lid. Show the entire closing action clearly, with food staying inside.\n2.6-3.1 seconds: Leo takes both hands away; the blue lunchbox stays completely closed on the table. The preparation is visibly finished.\n3.1-4.1 seconds: Leo looks at Mia and says exactly once, \"All set.\" His expression conveys that the lunch is packed and they are ready to go. Mia listens with closed lips.\n4.1-5.8 seconds: Mia gives a small silent nod. Leo rests his hands beside the lunchbox. End with the lunchbox still completely closed on the table and both mouths closed.\nOnly Leo speaks. One short line, natural dry child voice, quiet background, no music, additional words or narration. One lunchbox throughout, solid attached hinge, consistent size and color, continuous visible hand contact. No text, captions, labels, transitions or extra props.\n\n",
      "prompt_zh_tw": "全新獨立短句情境：「午餐準備好了」。沿用原始 Mia（左、粉紅上衣、背著書包）與 Leo（右、綠色上衣），固定中景，完整露出頭部、雙手及午餐盒。桌上只有一個藍色午餐盒，盒蓋沿後側鉸鏈完全打開，三明治和蘋果已放好。\n0–0.8 秒：Leo 查看裝好的午餐，Mia 安靜等待出門。\n0.8–2.6 秒：Leo 一手扶住盒身，另一手沿鉸鏈放下盒蓋，壓妥前緣。全程看清盒蓋關閉，食物留在盒內。\n2.6–3.1 秒：Leo 移開雙手，午餐盒仍完整關閉，清楚顯示準備完成。\n3.1–4.1 秒：Leo 看向 Mia，只說一次「All set.」。Mia 閉嘴聆聽。\n4.1–5.8 秒：Mia 輕輕點頭，Leo 雙手停在盒旁。盒子維持關妥，兩人嘴巴閉上。\n只讓 Leo 說話；無配樂、旁白、額外台詞、字幕或文字。保持單一午餐盒、穩定鉸鏈與可見手部接觸。這是重新生成的獨立短句影片，不沿用故事切膠帶畫面。\n",
      "prompt_display_language": "zh_tw",
      "actual_prompt_language": "en",
      "generation_key": "hq_p08_rework_20260920_v1",
      "qa_3pass_subtitled": {},
      "prompt_status": "fresh_independent_generation_20260920",
      "updated_at": "2026-09-20T22:53:51.004395+08:00",
      "review_note": "使用者確認無黑畫面三遍修正版：這兩句可以了，現在把短句串接起來",
      "qa_status": "QA 通過，使用者已確認",
      "delivery_dialogue": [
        "Leo: All set."
      ],
      "preview_file": "generated/hq_p08_threepass_20260920_v2/master.mp4",
      "source_review_status": "approved"
    },
    {
      "id": "p09",
      "phrase": "Let’s go!",
      "zh_tw": "走吧！／開始吧！",
      "usage": "準備出發、開始行動、炒熱氣氛時使用。",
      "micro_story": "倒數結束，兩人一起把手放到發射按鈕旁，興奮開喊。",
      "visual_goal": "啟動前的共同開始感。",
      "status": "user_approved_20260828_3x_subtitled",
      "source_video": "",
      "assembled_video": "generated/video/hq_short_phrases_20260828_3x_subtitles/ep01_hq_p09_let_s_go_3x_subtitled.mp4",
      "qa": {
        "latest_verdict": "pending_generation_no_current_candidate",
        "human_review_required": null,
        "summary": "尚未生成目前新版 Clip；等待 Director 方案B。"
      },
      "video": "generated/video/hq_short_phrases_20260828_3x_subtitles/ep01_hq_p09_let_s_go_3x_subtitled.mp4",
      "video_label": "Clip E / Let’s go.：打開開關，待生成",
      "prompt_file": "generated/video/final_story_bobo_20260822/director_workflows/ep01_bobo_director_planB_common_prompt_D_to_G_REVIEW_CLEAN_FIXED.json",
      "active_prompt_file": "generated/video/final_story_bobo_20260822/director_workflows/ep01_bobo_director_planB_common_prompt_D_to_G_REVIEW_CLEAN_FIXED.json",
      "source_video_original_single_phrase": "",
      "contact_sheet_3x_subtitled": "generated/video/hq_short_phrases_20260828_3x_subtitles/ep01_hq_p09_let_s_go_3x_subtitled_contact.jpg",
      "status_note": "使用者核准；已改為重複三次並燒錄英文字幕。",
      "repeat_count": 3,
      "subtitle_mode": "burned_english_phrase_bottom_center"
    },
    {
      "id": "p10",
      "phrase": "High five!",
      "zh_tw": "擊掌！",
      "usage": "完成任務、慶祝成功、鼓勵彼此時使用。",
      "micro_story": "小火箭終於彈起並安全落在軟墊上；Mia 和 Leo 開心擊掌。",
      "visual_goal": "成功結果＋清楚擊掌慶祝。",
      "status": "user_approved_20260828_3x_subtitled",
      "video": "generated/video/hq_short_phrases_20260828_3x_subtitles/ep01_hq_p10_high_five_3x_subtitled.mp4",
      "source_video": "",
      "video_label": "Clip G / High five!：Mia/Leo 擊掌，待生成",
      "prompt_file": "generated/video/final_story_bobo_20260822/director_workflows/ep01_bobo_director_planB_common_prompt_D_to_G_REVIEW_CLEAN_FIXED.json",
      "active_prompt_file": "generated/video/final_story_bobo_20260822/director_workflows/ep01_bobo_director_planB_common_prompt_D_to_G_REVIEW_CLEAN_FIXED.json",
      "assembled_video": "generated/video/hq_short_phrases_20260828_3x_subtitles/ep01_hq_p10_high_five_3x_subtitled.mp4",
      "qa": {
        "latest_verdict": "pending_generation_no_current_candidate",
        "human_review_required": null,
        "summary": "尚未生成目前新版 Clip；等待 Director 方案B。"
      },
      "source_video_original_single_phrase": "",
      "contact_sheet_3x_subtitled": "generated/video/hq_short_phrases_20260828_3x_subtitles/ep01_hq_p10_high_five_3x_subtitled_contact.jpg",
      "status_note": "使用者核准；已改為重複三次並燒錄英文字幕。",
      "repeat_count": 3,
      "subtitle_mode": "burned_english_phrase_bottom_center"
    },
    {
      "id": "p11",
      "phrase": "Slow down.",
      "zh_tw": "慢一點。",
      "usage": "提醒對方放慢速度、小心操作時使用。",
      "micro_story": "Leo 太急著貼最後一片尾翼，差點讓火箭歪掉；Mia 溫和提醒他慢一點。",
      "visual_goal": "急躁動作→火箭晃動→Mia 手勢提醒放慢→Leo 放慢操作。",
      "status": "user_approved_20260828_3x_subtitled",
      "source_video": "generated/video/hq_short_phrases_20260828/ep01_hq_p11_slow_down_wagon_retry5_mia_voice_ref_1344x768_20260828_slowdown_aligned_2250ms_no_bgm.mp4",
      "assembled_video": "generated/video/hq_short_phrases_20260828_3x_subtitles/ep01_hq_p11_slow_down_3x_subtitled.mp4",
      "correction": "p11 v3 compact generated after UI retained stale refs; Images 6-8 used as Mia/Leo/rocket refs and prompt instructed provider to ignore Images 1-5.",
      "human_feedback_v3": "太空船機翼很奇怪，突然消失，學生又從桌面上拿起機翼裝上去",
      "logic_revision_v4": "Complete whole rocket, no detachable wings/fins or assembly. Leo pushes the whole rocket too fast; it wobbles; Mia says Slow down; Leo slows and steadies it.",
      "status_note": "使用者核准；已改為重複三次並燒錄英文字幕。",
      "video": "generated/video/hq_short_phrases_20260828_3x_subtitles/ep01_hq_p11_slow_down_3x_subtitled.mp4",
      "qa": "STT Slow down pass; Demucs no_vocals max -61.92 dBFS; visual semantics pass.",
      "source_video_original_single_phrase": "generated/video/hq_short_phrases_20260828/ep01_hq_p11_slow_down_wagon_retry5_mia_voice_ref_1344x768_20260828_slowdown_aligned_2250ms_no_bgm.mp4",
      "contact_sheet_3x_subtitled": "generated/video/hq_short_phrases_20260828_3x_subtitles/ep01_hq_p11_slow_down_3x_subtitled_contact.jpg",
      "repeat_count": 3,
      "subtitle_mode": "burned_english_phrase_bottom_center"
    },
    {
      "id": "p12",
      "phrase": "Pass it here.",
      "zh_tw": "把它遞給我。",
      "usage": "需要別人把工具或物品遞過來時使用。",
      "micro_story": "Mia 需要 Leo 手邊的膠帶或星星貼紙，伸手指向需要的物品。",
      "visual_goal": "一人需要物品、伸手請對方遞過來、物品清楚轉移。",
      "status": "user_approved_20260828_3x_subtitled",
      "source_video": "source_clips/p12_pass_it_here/p12_pass_it_here_v2_exact_audio.mp4",
      "assembled_video": "generated/video/hq_short_phrases_20260828_3x_subtitles/ep01_hq_p12_pass_it_here_3x_subtitled.mp4",
      "qa": "v2 STT exact and visual tape handoff clear; awaiting human review.",
      "source_video_original_single_phrase": "source_clips/p12_pass_it_here/p12_pass_it_here_v2_exact_audio.mp4",
      "video": "generated/video/hq_short_phrases_20260828_3x_subtitles/ep01_hq_p12_pass_it_here_3x_subtitled.mp4",
      "contact_sheet_3x_subtitled": "generated/video/hq_short_phrases_20260828_3x_subtitles/ep01_hq_p12_pass_it_here_3x_subtitled_contact.jpg",
      "status_note": "使用者核准；已改為重複三次並燒錄英文字幕。",
      "repeat_count": 3,
      "subtitle_mode": "burned_english_phrase_bottom_center"
    },
    {
      "id": "p13",
      "phrase": "I got it.",
      "zh_tw": "我拿到了／我會了。",
      "usage": "拿到東西、理解做法、或成功接住/完成一小步時使用。",
      "micro_story": "Leo 接住小螺絲或成功卡好零件，露出自信表情。",
      "visual_goal": "明確拿到/完成小步驟＋自信回應。",
      "status": "user_approved_20260828_3x_subtitled",
      "source_video": "source_clips/p13_i_got_it/p13_i_got_it_v1_tape_receive.mp4",
      "assembled_video": "generated/video/hq_short_phrases_20260828_3x_subtitles/ep01_hq_p13_i_got_it_3x_subtitled.mp4",
      "qa": "v1 STT exact enough and visual tape receive clear; awaiting human review.",
      "source_video_original_single_phrase": "source_clips/p13_i_got_it/p13_i_got_it_v1_tape_receive.mp4",
      "video": "generated/video/hq_short_phrases_20260828_3x_subtitles/ep01_hq_p13_i_got_it_3x_subtitled.mp4",
      "contact_sheet_3x_subtitled": "generated/video/hq_short_phrases_20260828_3x_subtitles/ep01_hq_p13_i_got_it_3x_subtitled_contact.jpg",
      "status_note": "使用者核准；已改為重複三次並燒錄英文字幕。",
      "repeat_count": 3,
      "subtitle_mode": "burned_english_phrase_bottom_center"
    },
    {
      "id": "p14",
      "phrase": "Ready?",
      "zh_tw": "準備好了嗎？",
      "usage": "開始前確認對方是否準備好時使用。",
      "micro_story": "正式按發射鈕前，Mia 看向 Leo，手停在按鈕旁確認。",
      "visual_goal": "開始前停頓確認、兩人看向彼此、按鈕/火箭準備好。",
      "status": "user_approved_20260828_3x_subtitled",
      "source_video": "assembled_segments/p14_ready_v2/p14_ready_v2_3pass_v1_normalized.mp4",
      "assembled_video": "generated/video/hq_short_phrases_20260828_3x_subtitles/ep01_hq_p14_ready_3x_subtitled.mp4",
      "qa": {
        "latest_verdict": "previous_clipD_rejected_director_planB_ready",
        "source_stt": "Ready? Power check first. I found the switch.",
        "human_feedback": "使用者指出 Clip D 舊版沒有從上一段最後一幀接上，且 Bobo 仍做表情/會動。",
        "rejected_source_video": "generated/video/final_story_bobo_20260822/cam03_story_clipD_ready_power_check_strong_continuity_bobo_away_v8_12s_lowres/cam03_story_clipD_ready_power_check_strong_continuity_bobo_away_v8_12s_source.mp4",
        "human_review_required": null
      },
      "video": "generated/video/hq_short_phrases_20260828_3x_subtitles/ep01_hq_p14_ready_3x_subtitled.mp4",
      "video_label": "Clip D / Ready?：舊版 rejected；Director 方案B 待生成",
      "prompt_file": "generated/video/final_story_bobo_20260822/director_workflows/ep01_bobo_director_planB_common_prompt_D_to_G_REVIEW_CLEAN_FIXED.json",
      "active_prompt_file": "generated/video/final_story_bobo_20260822/director_workflows/ep01_bobo_director_planB_common_prompt_D_to_G_REVIEW_CLEAN_FIXED.json",
      "source_contact_sheet": "",
      "source_video_original_single_phrase": "assembled_segments/p14_ready_v2/p14_ready_v2_3pass_v1_normalized.mp4",
      "contact_sheet_3x_subtitled": "generated/video/hq_short_phrases_20260828_3x_subtitles/ep01_hq_p14_ready_3x_subtitled_contact.jpg",
      "status_note": "使用者核准；已改為重複三次並燒錄英文字幕。",
      "repeat_count": 3,
      "subtitle_mode": "burned_english_phrase_bottom_center"
    },
    {
      "id": "p15",
      "phrase": "It works!",
      "zh_tw": "成功了／它可以用了！",
      "usage": "測試成功、機器/玩具真的運作時使用。",
      "micro_story": "修好的小火箭成功彈起並落在軟墊上，兩人驚喜地發現真的成功了。",
      "visual_goal": "清楚成功運作結果＋驚喜表情＋說 It works!。",
      "status": "user_approved_20260828_3x_subtitled",
      "source_video": "generated/video/hq_short_phrases_20260828/ep01_hq_p15_it_works_pinwheel_retry2_native_leo_mia_vocals_only_no_bgm.mp4",
      "assembled_video": "generated/video/hq_short_phrases_20260828_3x_subtitles/ep01_hq_p15_it_works_3x_subtitled.mp4",
      "qa": "STT It works! Wow! pass; Demucs no_vocals max -63.54 dBFS; visual semantics pass.",
      "video": "generated/video/hq_short_phrases_20260828_3x_subtitles/ep01_hq_p15_it_works_3x_subtitled.mp4",
      "video_label": "Clip F / It works!：指示燈亮，小機械反應，待生成",
      "prompt_file": "generated/video/final_story_bobo_20260822/director_workflows/ep01_bobo_director_planB_common_prompt_D_to_G_REVIEW_CLEAN_FIXED.json",
      "active_prompt_file": "generated/video/final_story_bobo_20260822/director_workflows/ep01_bobo_director_planB_common_prompt_D_to_G_REVIEW_CLEAN_FIXED.json",
      "status_note": "使用者核准；已改為重複三次並燒錄英文字幕。",
      "source_video_original_single_phrase": "generated/video/hq_short_phrases_20260828/ep01_hq_p15_it_works_pinwheel_retry2_native_leo_mia_vocals_only_no_bgm.mp4",
      "contact_sheet_3x_subtitled": "generated/video/hq_short_phrases_20260828_3x_subtitles/ep01_hq_p15_it_works_3x_subtitled_contact.jpg",
      "repeat_count": 3,
      "subtitle_mode": "burned_english_phrase_bottom_center"
    }
  ],
  "final_story": {
    "id": "ep01_bobo_high_definition_regen",
    "title": "EP01 HQ｜Bobo in the Wrong Box（高畫質重製版）",
    "status": "planned_s05_new_final_story_reference_only",
    "updated_at": "2026-09-19T22:15:01.298113+08:00",
    "provenance": "New independent HQ episode page created from the approved/current EP01 Bobo story structure; no low-res source clips are promoted as HQ outputs.",
    "logline": "Before the class puppet show, Mia and Leo discover Bobo was accidentally packed with stage props because Leo cleaned too fast, then use the checklist and labels to find him naturally.",
    "logline_zh_tw": "班級布偶劇前，Mia 和 Leo 發現 Bobo 因為 Leo 早上整理太快，被誤收到舞台道具裡；兩人照著清單和標籤自然找回他。",
    "story_requirements": [
      "故事原因只使用正向設定：午餐前 Leo 整理舞台道具太快，Bobo 被收到錯的位置。",
      "尋找流程只使用教室整理工作會自然出現的物件：packing checklist、box label、scarf tag、bell sound。",
      "短句只作為自然台詞素材；故事主線固定為「收錯位置 → 按清單檢查 → 找回 Bobo → 彩排修好 → 準備表演」。",
      "每個短句前後都要有正常故事對話、角色目的、因果和反應。"
    ],
    "beats": [
      {
        "beat_id": "beat01_empty_box_reason",
        "story_order": 1,
        "phrase_id": "p04",
        "phrase": "No way!",
        "zh_tw": "不會吧！",
        "plot_function": "開場問題有合理原因：午餐前 Leo 幫忙整理舞台道具，動作太快，可能把 Bobo 布偶一起放進錯的道具箱。現在正式準備布偶劇時，班級吉祥物盒是空的，所以 Leo 驚訝。",
        "visual_action": "Mia 打開寫著 Class Mascot 的盒子，裡面是空的；旁邊有 Leo 早上整理過的幾個舞台道具箱與一張 packing checklist。",
        "dialogue": [
          {
            "speaker": "Mia",
            "line": "The puppet show box is ready. Let’s take Bobo out.",
            "line_zh_tw": "布偶劇盒子準備好了，我們把 Bobo 拿出來吧。",
            "taught_phrase": false
          },
          {
            "speaker": "Leo",
            "line": "No way!",
            "line_zh_tw": "不會吧！",
            "taught_phrase": true
          },
          {
            "speaker": "Leo",
            "line": "Bobo is not in the mascot box.",
            "line_zh_tw": "Bobo 不在吉祥物盒子裡。",
            "taught_phrase": false
          },
          {
            "speaker": "Mia",
            "line": "Maybe Bobo got packed with the stage props this morning.",
            "line_zh_tw": "也許 Bobo 早上被一起收進舞台道具了。",
            "taught_phrase": false
          }
        ],
        "story_detail_level": "revised_reasonable_causality_no_mystery_puzzle",
        "camera_segment_id": "cam01_realistic_problem"
      },
      {
        "beat_id": "beat02_watch_out_rush",
        "story_order": 2,
        "phrase_id": "p01",
        "phrase": "Watch out!",
        "zh_tw": "小心！",
        "plot_function": "Leo 因為自己可能收錯東西而著急，快步轉身要去道具櫃，差點踩到舞台布條。Watch out 是自然的安全提醒。",
        "visual_action": "Leo 轉身太快，腳邊有一條掉在地上的舞台布條；Mia 指向地面提醒。",
        "dialogue": [
          {
            "speaker": "Leo",
            "line": "I cleaned the stage cart before lunch. I should check it now.",
            "line_zh_tw": "我午餐前整理過舞台推車，我現在去看。",
            "taught_phrase": false
          },
          {
            "speaker": "Mia",
            "line": "Watch out!",
            "line_zh_tw": "小心！",
            "taught_phrase": true
          },
          {
            "speaker": "Mia",
            "line": "The red stage ribbon is by your foot.",
            "line_zh_tw": "紅色舞台布條在你腳邊。",
            "taught_phrase": false
          },
          {
            "speaker": "Leo",
            "line": "Oh, thanks. I was rushing.",
            "line_zh_tw": "喔，謝謝，我太急了。",
            "taught_phrase": false
          }
        ],
        "story_detail_level": "revised_reasonable_causality_no_mystery_puzzle",
        "camera_segment_id": "cam01_realistic_problem"
      },
      {
        "beat_id": "beat03_hold_on_checklist",
        "story_order": 3,
        "phrase_id": "p02",
        "phrase": "Hold on.",
        "zh_tw": "等一下。",
        "plot_function": "Leo 想把所有箱子都打開翻找，Mia 要他先停下來看整理清單，讓搜尋維持有順序的整理流程。",
        "visual_action": "Leo 伸手要打開第一個道具箱；Mia 拿起 packing checklist，請他先看標籤與清單。",
        "dialogue": [
          {
            "speaker": "Leo",
            "line": "I can open every box and find him fast.",
            "line_zh_tw": "我可以把每個箱子都打開，很快找到他。",
            "taught_phrase": false
          },
          {
            "speaker": "Mia",
            "line": "Hold on.",
            "line_zh_tw": "等一下。",
            "taught_phrase": true
          },
          {
            "speaker": "Mia",
            "line": "Let’s read the checklist first, or we will make a bigger mess.",
            "line_zh_tw": "我們先看清單，不然會弄得更亂。",
            "taught_phrase": false
          },
          {
            "speaker": "Leo",
            "line": "Right. The list says stage cart, prop box, curtain shelf.",
            "line_zh_tw": "對，清單寫著舞台推車、道具箱、布幕架。",
            "taught_phrase": false
          }
        ],
        "story_detail_level": "revised_reasonable_causality_no_mystery_puzzle",
        "camera_segment_id": "cam01_realistic_problem"
      },
      {
        "beat_id": "beat04_need_help_cart",
        "story_order": 4,
        "phrase_id": "p06",
        "phrase": "Need help?",
        "zh_tw": "需要幫忙嗎？",
        "plot_function": "他們先檢查舞台推車。Mia 要扶住推車又要移開輕的布景板，手不夠用；Leo 先問再幫，延續合作。",
        "visual_action": "Mia 一手扶推車，一手想移開薄布景板；Leo 靠近詢問。",
        "dialogue": [
          {
            "speaker": "Mia",
            "line": "This board is blocking the cart label.",
            "line_zh_tw": "這塊板子擋住推車標籤了。",
            "taught_phrase": false
          },
          {
            "speaker": "Leo",
            "line": "Need help?",
            "line_zh_tw": "需要幫忙嗎？",
            "taught_phrase": true
          },
          {
            "speaker": "Mia",
            "line": "Yes, please hold the cart still.",
            "line_zh_tw": "好，請幫我扶穩推車。",
            "taught_phrase": false
          },
          {
            "speaker": "Leo",
            "line": "I will hold it so it does not roll.",
            "line_zh_tw": "我扶穩它。",
            "taught_phrase": false
          }
        ],
        "story_detail_level": "revised_reasonable_causality_no_mystery_puzzle",
        "camera_segment_id": "cam02_check_stage_cart",
        "status": "hq_p06_candidate_ready_late_audio_aligned_20260828",
        "review_status": "pending_review"
      },
      {
        "beat_id": "beat05_pass_flashlight",
        "story_order": 5,
        "phrase_id": "p12",
        "phrase": "Pass it here.",
        "zh_tw": "把它遞給我。",
        "plot_function": "推車下層有點暗，Mia 需要 Leo 手邊的小手電筒看清楚標籤。Pass it here 來自這個明確的物件需求。",
        "visual_action": "Mia 指向 Leo 手邊的小手電筒；Leo 把手電筒遞給她，Mia 照向推車下層。",
        "dialogue": [
          {
            "speaker": "Mia",
            "line": "The lower shelf is too dark to see.",
            "line_zh_tw": "下層太暗，看不清楚。",
            "taught_phrase": false
          },
          {
            "speaker": "Mia",
            "line": "Pass it here.",
            "line_zh_tw": "把它遞給我。",
            "taught_phrase": true
          },
          {
            "speaker": "Leo",
            "line": "Here is the small flashlight.",
            "line_zh_tw": "小手電筒給你。",
            "taught_phrase": false
          },
          {
            "speaker": "Mia",
            "line": "Thanks. Now I can read the label.",
            "line_zh_tw": "謝謝，現在我看得到標籤了。",
            "taught_phrase": false
          }
        ],
        "story_detail_level": "revised_reasonable_causality_no_mystery_puzzle",
        "camera_segment_id": "cam02_check_stage_cart"
      },
      {
        "beat_id": "beat06_i_got_it_scarf",
        "story_order": 6,
        "phrase_id": "p13",
        "phrase": "I got it.",
        "zh_tw": "我拿到了。",
        "plot_function": "Leo 在推車邊看到 Bobo 的紅圍巾角卡在布景板後方，拿到它並確認下一個檢查方向。I got it 對應拿到 Bobo 的圍巾標籤。",
        "visual_action": "Leo 從布景板後方拉出 Bobo 的紅圍巾角或名牌；Mia 看清楚上面寫著 Bobo。",
        "dialogue": [
          {
            "speaker": "Leo",
            "line": "I see something red behind the board.",
            "line_zh_tw": "我看到板子後面有紅色的東西。",
            "taught_phrase": false
          },
          {
            "speaker": "Leo",
            "line": "I got it.",
            "line_zh_tw": "我拿到了。",
            "taught_phrase": true
          },
          {
            "speaker": "Leo",
            "line": "It is Bobo’s scarf tag.",
            "line_zh_tw": "是 Bobo 的圍巾標籤。",
            "taught_phrase": false
          },
          {
            "speaker": "Mia",
            "line": "Then Bobo was moved with the props.",
            "line_zh_tw": "那 Bobo 真的被收到道具裡了。",
            "taught_phrase": false
          }
        ],
        "story_detail_level": "revised_reasonable_causality_no_mystery_puzzle",
        "camera_segment_id": "cam02_check_stage_cart"
      },
      {
        "beat_id": "beat07_my_turn_propbox",
        "story_order": 7,
        "phrase_id": "p03",
        "phrase": "My turn.",
        "zh_tw": "換我了。",
        "plot_function": "Mia 檢查完推車，下一個是輕的 prop box。Leo 想負責打開自己早上收的箱子，禮貌地說輪到他。",
        "visual_action": "Mia 把 checklist 指到 prop box；Leo 把手放在箱蓋上，等 Mia 同意。",
        "dialogue": [
          {
            "speaker": "Mia",
            "line": "The cart only has the scarf tag. Next is the prop box.",
            "line_zh_tw": "推車上只有圍巾標籤，下一個是道具箱。",
            "taught_phrase": false
          },
          {
            "speaker": "Leo",
            "line": "My turn.",
            "line_zh_tw": "換我了。",
            "taught_phrase": true
          },
          {
            "speaker": "Mia",
            "line": "Okay. Open the light box slowly.",
            "line_zh_tw": "好，慢慢打開那個輕的箱子。",
            "taught_phrase": false
          },
          {
            "speaker": "Leo",
            "line": "I packed this one, so I should check it carefully.",
            "line_zh_tw": "這個是我收的，所以我應該仔細檢查。",
            "taught_phrase": false
          }
        ],
        "story_detail_level": "revised_reasonable_causality_no_mystery_puzzle",
        "camera_segment_id": "cam03_open_prop_box"
      },
      {
        "beat_id": "beat08_slow_down_box",
        "story_order": 8,
        "phrase_id": "p11",
        "phrase": "Slow down.",
        "zh_tw": "慢一點。",
        "plot_function": "Leo 太急著掀箱蓋，裡面的紙皇冠和小道具快掉出來；Mia 提醒慢一點。Slow down 服務於避免弄亂道具。",
        "visual_action": "Leo 掀箱蓋太快，小道具晃動；Mia 做放慢手勢，Leo 改成一手扶箱蓋、一手整理。",
        "dialogue": [
          {
            "speaker": "Leo",
            "line": "I hope Bobo is inside.",
            "line_zh_tw": "希望 Bobo 在裡面。",
            "taught_phrase": false
          },
          {
            "speaker": "Mia",
            "line": "Slow down.",
            "line_zh_tw": "慢一點。",
            "taught_phrase": true
          },
          {
            "speaker": "Mia",
            "line": "The small props may fall out.",
            "line_zh_tw": "小道具可能會掉出來。",
            "taught_phrase": false
          },
          {
            "speaker": "Leo",
            "line": "Okay. I will lift the lid gently.",
            "line_zh_tw": "好，我輕輕打開蓋子。",
            "taught_phrase": false
          }
        ],
        "story_detail_level": "revised_reasonable_causality_no_mystery_puzzle",
        "camera_segment_id": "cam03_open_prop_box"
      },
      {
        "beat_id": "beat09_good_idea_sort",
        "story_order": 9,
        "phrase_id": "p07",
        "phrase": "Good idea.",
        "zh_tw": "好主意。",
        "plot_function": "箱內沒有 Bobo，但有很多同類道具。Leo 提議把『表演用』和『裝飾用』分成兩堆，這能更快找錯放的布偶。Mia 認同。",
        "visual_action": "Leo 指向箱內混在一起的帽子、卡片、小布料；Mia 點頭，兩人開始分成兩堆。",
        "dialogue": [
          {
            "speaker": "Leo",
            "line": "What if we sort the props into two piles?",
            "line_zh_tw": "如果我們把道具分成兩堆呢？",
            "taught_phrase": false
          },
          {
            "speaker": "Leo",
            "line": "Show props here, decorations there.",
            "line_zh_tw": "表演道具放這邊，裝飾品放那邊。",
            "taught_phrase": false
          },
          {
            "speaker": "Mia",
            "line": "Good idea.",
            "line_zh_tw": "好主意。",
            "taught_phrase": true
          },
          {
            "speaker": "Mia",
            "line": "Then Bobo will not be hidden under everything.",
            "line_zh_tw": "這樣 Bobo 就不會被壓在東西下面。",
            "taught_phrase": false
          }
        ],
        "story_detail_level": "revised_reasonable_causality_no_mystery_puzzle",
        "camera_segment_id": "cam03_open_prop_box"
      },
      {
        "beat_id": "beat10_almost_there_bell",
        "story_order": 10,
        "phrase_id": "p08",
        "phrase": "Almost there.",
        "zh_tw": "快到了。",
        "plot_function": "分類後，兩人聽到 Bobo 身上的小鈴鐺從布幕架附近傳來。Almost there 表示他們已接近找到 Bobo。",
        "visual_action": "兩人停下聽聲音；布幕架後方露出一點 Bobo 的紅圍巾或小鈴鐺聲。",
        "dialogue": [
          {
            "speaker": "Leo",
            "line": "Do you hear a little bell?",
            "line_zh_tw": "你有聽到小鈴鐺嗎？",
            "taught_phrase": false
          },
          {
            "speaker": "Mia",
            "line": "Almost there.",
            "line_zh_tw": "快到了。",
            "taught_phrase": true
          },
          {
            "speaker": "Mia",
            "line": "The sound is coming from the curtain shelf.",
            "line_zh_tw": "聲音從布幕架那邊來。",
            "taught_phrase": false
          },
          {
            "speaker": "Leo",
            "line": "That makes sense. I put the soft puppets near the curtain.",
            "line_zh_tw": "有道理，我把軟布偶放在布幕旁邊。",
            "taught_phrase": false
          }
        ],
        "story_detail_level": "revised_reasonable_causality_no_mystery_puzzle",
        "camera_segment_id": "cam04_find_bobo_naturally",
        "status": "candidate_ready_for_user_review_vocals_only_20260828"
      },
      {
        "beat_id": "beat11_ready_move_curtain",
        "story_order": 11,
        "phrase_id": "p14",
        "phrase": "Ready?",
        "zh_tw": "準備好了嗎？",
        "plot_function": "Bobo 可能被布幕壓住。兩人要一起慢慢拉開布幕，先確認彼此準備好。Ready? 是共同動作前的安全確認。",
        "visual_action": "Mia 和 Leo 各抓住布幕一角，下面有 Bobo 的腳或紅圍巾露出；兩人互看。",
        "dialogue": [
          {
            "speaker": "Mia",
            "line": "Let’s move the curtain together so Bobo does not fall.",
            "line_zh_tw": "我們一起移開布幕，免得 Bobo 掉下來。",
            "taught_phrase": false
          },
          {
            "speaker": "Mia",
            "line": "Ready?",
            "line_zh_tw": "準備好了嗎？",
            "taught_phrase": true
          },
          {
            "speaker": "Leo",
            "line": "Ready. I will hold this side.",
            "line_zh_tw": "準備好了，我扶這邊。",
            "taught_phrase": false
          },
          {
            "speaker": "Mia",
            "line": "Slow and gentle.",
            "line_zh_tw": "慢慢、輕輕地。",
            "taught_phrase": false
          }
        ],
        "story_detail_level": "revised_reasonable_causality_no_mystery_puzzle",
        "camera_segment_id": "cam04_find_bobo_naturally"
      },
      {
        "beat_id": "beat12_lets_go_stage",
        "story_order": 12,
        "phrase_id": "p09",
        "phrase": "Let’s go!",
        "zh_tw": "開始吧！",
        "plot_function": "Bobo 找到了：他被收在布幕架旁的軟布偶袋裡。兩人帶他回舞台，準備彩排。",
        "visual_action": "Bobo 從布幕旁的軟袋中被拿出來；Mia 抱著 Bobo，Leo 拿著 checklist 往小舞台走。",
        "dialogue": [
          {
            "speaker": "Leo",
            "line": "There he is! Bobo was in the soft puppet bag.",
            "line_zh_tw": "他在這裡！Bobo 在軟布偶袋裡。",
            "taught_phrase": false
          },
          {
            "speaker": "Mia",
            "line": "Good. We found him before the class comes in.",
            "line_zh_tw": "太好了，同學進來前找到他了。",
            "taught_phrase": false
          },
          {
            "speaker": "Leo",
            "line": "Let’s go!",
            "line_zh_tw": "開始吧！",
            "taught_phrase": true
          },
          {
            "speaker": "Mia",
            "line": "To the stage for one quick practice.",
            "line_zh_tw": "去舞台快速彩排一次。",
            "taught_phrase": false
          }
        ],
        "story_detail_level": "revised_reasonable_causality_no_mystery_puzzle",
        "camera_segment_id": "cam04_find_bobo_naturally",
        "status": "candidate_ready_for_user_review_vocals_only_20260828"
      },
      {
        "beat_id": "beat13_try_again_arm",
        "story_order": 13,
        "phrase_id": "p05",
        "phrase": "Try again.",
        "zh_tw": "再試一次。",
        "plot_function": "彩排時 Bobo 的手臂線被圍巾壓住，第一次揮手不成功。Mia 鼓勵 Leo 修正後再試。",
        "visual_action": "Leo 操作 Bobo 揮手，手臂沒抬起；Mia 指出圍巾壓住線。",
        "dialogue": [
          {
            "speaker": "Leo",
            "line": "Bobo’s arm is not waving.",
            "line_zh_tw": "Bobo 的手揮不起來。",
            "taught_phrase": false
          },
          {
            "speaker": "Mia",
            "line": "Try again.",
            "line_zh_tw": "再試一次。",
            "taught_phrase": true
          },
          {
            "speaker": "Mia",
            "line": "Move the scarf off the string first.",
            "line_zh_tw": "先把圍巾從線上移開。",
            "taught_phrase": false
          },
          {
            "speaker": "Leo",
            "line": "Okay. I can fix that.",
            "line_zh_tw": "好，我可以修好。",
            "taught_phrase": false
          }
        ],
        "story_detail_level": "revised_reasonable_causality_no_mystery_puzzle",
        "camera_segment_id": "cam05_rehearse_fix"
      },
      {
        "beat_id": "beat14_it_works_wave",
        "story_order": 14,
        "phrase_id": "p15",
        "phrase": "It works!",
        "zh_tw": "成功了！",
        "plot_function": "整理線後，Bobo 順利揮手。It works 是布偶表演動作成功。",
        "visual_action": "Bobo 的手臂成功抬起並揮動；兩人放心微笑。",
        "dialogue": [
          {
            "speaker": "Leo",
            "line": "The string is free now.",
            "line_zh_tw": "線現在鬆開了。",
            "taught_phrase": false
          },
          {
            "speaker": "Mia",
            "line": "Try one small wave.",
            "line_zh_tw": "試試看小小揮手。",
            "taught_phrase": false
          },
          {
            "speaker": "Leo",
            "line": "It works!",
            "line_zh_tw": "成功了！",
            "taught_phrase": true
          },
          {
            "speaker": "Mia",
            "line": "Bobo can say hello to everyone.",
            "line_zh_tw": "Bobo 可以跟大家打招呼了。",
            "taught_phrase": false
          }
        ],
        "story_detail_level": "revised_reasonable_causality_no_mystery_puzzle",
        "camera_segment_id": "cam05_rehearse_fix"
      },
      {
        "beat_id": "beat15_high_five_showtime",
        "story_order": 15,
        "phrase_id": "p10",
        "phrase": "High five!",
        "zh_tw": "擊掌！",
        "plot_function": "收尾：Bobo 被找回，道具也整理好，兩人確認問題是早上收太快造成，現在靠合作修正。High five 是任務完成慶祝。",
        "visual_action": "小舞台上 Bobo 站好；旁邊有已整理好的道具箱與 checklist；Mia 和 Leo 清楚擊掌。",
        "dialogue": [
          {
            "speaker": "Mia",
            "line": "We found the mix-up and fixed the puppet.",
            "line_zh_tw": "我們找到收錯的原因，也修好布偶了。",
            "taught_phrase": false
          },
          {
            "speaker": "Leo",
            "line": "Next time I will check the labels before I pack.",
            "line_zh_tw": "下次收東西前，我會先看標籤。",
            "taught_phrase": false
          },
          {
            "speaker": "Mia",
            "line": "High five!",
            "line_zh_tw": "擊掌！",
            "taught_phrase": true
          },
          {
            "speaker": "Leo",
            "line": "High five! The puppet show is ready.",
            "line_zh_tw": "擊掌！布偶劇準備好了。",
            "taught_phrase": false
          }
        ],
        "story_detail_level": "revised_reasonable_causality_no_mystery_puzzle",
        "camera_segment_id": "cam06_show_ready"
      }
    ],
    "full_story_zh_tw": "Mia 和 Leo 打開盒子準備拿出 Bobo，卻發現盒子空了。兩人驚訝，開始尋找 Bobo。\n\nLeo 急著去檢查，Mia 提醒他小心地上的紅色布條。Leo 停下來道謝，將布條收好。\n\nLeo 想一次打開所有箱子，Mia 建議一個一個檢查，先讀整理清單。\n\n兩人找到封住的藍箱。Mia 打不開，Leo 主動幫忙。箱子打開後發現 Bobo，兩人開心擊掌。Leo 想抱出 Bobo，Mia 提醒他慢一點、小心拿，Leo 邊回應邊把 Bobo 抱出。\n\nLeo 檢查 Bobo，發現沒有電池。Mia 把電池交給他，Leo 裝入電池並關好背蓋，再放穩 Bobo、按下開關。Bobo 成功啟動，Leo 說 It works!，Mia 回應 Good job!，故事結束。",
    "highlight_phrases": [
      {
        "id": "p04",
        "phrase": "No way!",
        "zh_tw": "不會吧！",
        "status": "user_approved_20260828",
        "source_video": "",
        "status_note": "使用者已審核通過。",
        "coverage_check": [
          "Required: no rocket/theme prop",
          "Required: clear surprising cause/result",
          "Required: speaker says No way after seeing the surprise",
          "Required: correct mouth/speaker timing"
        ]
      },
      {
        "id": "p01",
        "phrase": "Watch out!",
        "zh_tw": "小心！",
        "status": "candidate_ready_for_user_review_audio_early_aligned",
        "status_note": "Current p01 candidate: stop-before-step Watch out; Mia warns before contact; clean voice inserted early at ~0.25s; STT/BGM/visual QA pass.",
        "coverage_check": [
          "Visual: red block ahead before contact",
          "Visual: Mia raises stop hand before Leo touches block",
          "Visual: Leo stops/avoids safely",
          "Audio: Watch out starts around 0.33s",
          "Demucs no_vocals max -56.8 dBFS"
        ]
      },
      {
        "id": "p02",
        "phrase": "Hold on.",
        "zh_tw": "等一下。",
        "status": "user_approved_20260828",
        "status_note": "使用者已審核通過。",
        "coverage_check": [
          "使用者審核通過"
        ]
      },
      {
        "id": "p06",
        "phrase": "Need help?",
        "zh_tw": "需要幫忙嗎？",
        "status": "hq_p06_candidate_ready_late_audio_aligned_20260828",
        "review_status": "pending_review"
      },
      {
        "id": "p12",
        "phrase": "Pass it here.",
        "zh_tw": "把它遞給我。"
      },
      {
        "id": "p13",
        "phrase": "I got it.",
        "zh_tw": "我拿到了。"
      },
      {
        "id": "p03",
        "phrase": "My turn.",
        "zh_tw": "換我了。",
        "status": "user_approved_20260828",
        "status_note": "使用者已審核通過。"
      },
      {
        "id": "p11",
        "phrase": "Slow down.",
        "zh_tw": "慢一點。"
      },
      {
        "id": "p07",
        "phrase": "Good idea.",
        "zh_tw": "好主意。",
        "status": "candidate_ready_for_user_review_20260831_retry13",
        "review_status": "pending_review",
        "source_video": "generated/video/hq_short_phrases_20260828/ep01_hq_p07_good_idea_bookend_retry13_clear_semantics_1344x768_20260831_r13_good_idea_once_no_bgm.mp4",
        "video": "generated/video/hq_short_phrases_20260828_3x_subtitles/ep01_hq_p07_good_idea_3x_subtitled.mp4",
        "assembled_video": "generated/video/hq_short_phrases_20260828_3x_subtitles/ep01_hq_p07_good_idea_3x_subtitled.mp4",
        "review_sheet": "generated/video/hq_short_phrases_20260828/ep01_hq_p07_good_idea_bookend_retry13_clear_semantics_1344x768_20260831_r13_good_idea_once_no_bgm_contact.jpg",
        "contact_sheet": "generated/video/hq_short_phrases_20260828/ep01_hq_p07_good_idea_bookend_retry13_clear_semantics_1344x768_20260831_r13_good_idea_once_no_bgm_contact.jpg",
        "prompt_file": "generated/video/hq_short_phrases_20260828/hq_p07_good_idea_bookend_retry13_clear_semantics_1344x768_20260831_r13.txt",
        "provider_prompt": "generated/video/hq_short_phrases_20260828/hq_p07_good_idea_bookend_retry13_clear_semantics_1344x768_20260831_r13.txt",
        "qa_file": "generated/video/hq_short_phrases_20260828/ep01_hq_p07_good_idea_bookend_retry13_clear_semantics_1344x768_20260831_r13_good_idea_once_no_bgm.qa.json",
        "status_note": "P07 retry13 regenerated; clean one-line audio remux; BGM gate pass; pending human review."
      },
      {
        "id": "p08",
        "phrase": "Almost there.",
        "zh_tw": "快到了。",
        "status": "candidate_ready_for_user_review_vocals_only_20260828"
      },
      {
        "id": "p14",
        "phrase": "Ready?",
        "zh_tw": "準備好了嗎？"
      },
      {
        "id": "p09",
        "phrase": "Let’s go!",
        "zh_tw": "開始吧！",
        "status": "candidate_ready_for_user_review_vocals_only_20260828"
      },
      {
        "id": "p05",
        "phrase": "Try again.",
        "zh_tw": "再試一次。",
        "status": "regenerating_user_requested_reprompt_20260828",
        "source_video": "",
        "status_note": "Regenerating p05 with rewritten no-rocket phrase-native Try again prompt.",
        "coverage_check": [
          "Required: no rocket/theme prop",
          "Required: visible failed first attempt",
          "Required: speaker says Try again before second attempt",
          "Required: retry improves/continues action"
        ]
      },
      {
        "id": "p15",
        "phrase": "It works!",
        "zh_tw": "成功了！"
      },
      {
        "id": "p10",
        "phrase": "High five!",
        "zh_tw": "擊掌！"
      }
    ],
    "camera_segments": [],
    "production_notes": [
      "這是全新高畫質重製分流；不覆蓋原本 EP01 draft/768px 進度。",
      "所有 HQ 影片欄位一開始保持空白，等 1080p/720p 原生生成通過 QA 後才掛載。",
      "Bobo 必須維持被動固定臉小布偶/電動玩偶道具，不能變成會說話或自主行動的第三個孩子。",
      "每一段生成必須使用上一段已確認 HQ 版本最後一幀當 first_frame，同時保留 Mia/Leo/場景/Bobo 參考。",
      "部署進度頁仍遵守 <25MB web 檔限制；本機可保存高 bitrate master。"
    ],
    "story_order_note": "依序 S01 → S02 → S03 → S04 → S05；在 Bobo 啟動成功後結束。",
    "camera_rewrite_source": "user correction: use positive story setup only; remove reverse references to prior wrong concepts",
    "camera_rewrite_status": "revised_reasonable_causality_20260822",
    "camera_context_note": "Camera segments describe the grounded cleanup mix-up and checklist search in positive terms only.",
    "camera_generation_status": "generating_15_beat_level_source_candidates_20260822",
    "generation_strategy_revision": "Paused by user: generated prompts were not acceptable. Do not continue generation until prompts are rewritten and user approves direction.",
    "beat_level_generation_plan": [
      {
        "id": "beat01_empty_box_reason_source_v1",
        "beat_id": "beat01_empty_box_reason",
        "phrase_id": "p04",
        "phrase": "No way!",
        "camera_segment_id": "cam01_realistic_problem",
        "duration_target": "5-6s source clip",
        "status": "rejected_prompt_direction_wrong_paused_20260822",
        "generation_rule": "One source clip should show only this beat: setup action -> taught phrase moment -> visible response/result. Do not include neighboring beats.",
        "plot_function": "開場問題有合理原因：午餐前 Leo 幫忙整理舞台道具，動作太快，可能把 Bobo 布偶一起放進錯的道具箱。現在正式準備布偶劇時，班級吉祥物盒是空的，所以 Leo 驚訝。",
        "visual_action": "Mia 打開寫著 Class Mascot 的盒子，裡面是空的；旁邊有 Leo 早上整理過的幾個舞台道具箱與一張 packing checklist。",
        "dialogue": [
          {
            "speaker": "Mia",
            "line": "The puppet show box is ready. Let’s take Bobo out.",
            "line_zh_tw": "布偶劇盒子準備好了，我們把 Bobo 拿出來吧。",
            "taught_phrase": false
          },
          {
            "speaker": "Leo",
            "line": "No way!",
            "line_zh_tw": "不會吧！",
            "taught_phrase": true
          },
          {
            "speaker": "Leo",
            "line": "Bobo is not in the mascot box.",
            "line_zh_tw": "Bobo 不在吉祥物盒子裡。",
            "taught_phrase": false
          },
          {
            "speaker": "Mia",
            "line": "Maybe Bobo got packed with the stage props this morning.",
            "line_zh_tw": "也許 Bobo 早上被一起收進舞台道具了。",
            "taught_phrase": false
          }
        ],
        "source_video": "generated/video/final_story_bobo_20260822/beat_level_v1/01_beat01_empty_box_reason_p04/01_beat01_empty_box_reason_p04_source.mp4",
        "contact_sheet": "generated/video/final_story_bobo_20260822/beat_level_v1/01_beat01_empty_box_reason_p04/01_beat01_empty_box_reason_p04_contact.jpg",
        "prompt_file": "generated/video/final_story_bobo_20260822/beat_level_v1/01_beat01_empty_box_reason_p04/01_beat01_empty_box_reason_p04_prompt.txt",
        "generated_at": "2026-08-22T22:00:29",
        "status_note": "User stopped generation: prompt direction was too strange; do not use as accepted candidate."
      },
      {
        "id": "beat02_watch_out_rush_source_v1",
        "beat_id": "beat02_watch_out_rush",
        "phrase_id": "p01",
        "phrase": "Watch out!",
        "camera_segment_id": "cam01_realistic_problem",
        "duration_target": "5-6s source clip",
        "status": "rejected_prompt_direction_wrong_paused_20260822",
        "generation_rule": "One source clip should show only this beat: setup action -> taught phrase moment -> visible response/result. Do not include neighboring beats.",
        "plot_function": "Leo 因為自己可能收錯東西而著急，快步轉身要去道具櫃，差點踩到舞台布條。Watch out 是自然的安全提醒。",
        "visual_action": "Leo 轉身太快，腳邊有一條掉在地上的舞台布條；Mia 指向地面提醒。",
        "dialogue": [
          {
            "speaker": "Leo",
            "line": "I cleaned the stage cart before lunch. I should check it now.",
            "line_zh_tw": "我午餐前整理過舞台推車，我現在去看。",
            "taught_phrase": false
          },
          {
            "speaker": "Mia",
            "line": "Watch out!",
            "line_zh_tw": "小心！",
            "taught_phrase": true
          },
          {
            "speaker": "Mia",
            "line": "The red stage ribbon is by your foot.",
            "line_zh_tw": "紅色舞台布條在你腳邊。",
            "taught_phrase": false
          },
          {
            "speaker": "Leo",
            "line": "Oh, thanks. I was rushing.",
            "line_zh_tw": "喔，謝謝，我太急了。",
            "taught_phrase": false
          }
        ],
        "source_video": "generated/video/final_story_bobo_20260822/beat_level_v1/02_beat02_watch_out_rush_p01/02_beat02_watch_out_rush_p01_source.mp4",
        "contact_sheet": "generated/video/final_story_bobo_20260822/beat_level_v1/02_beat02_watch_out_rush_p01/02_beat02_watch_out_rush_p01_contact.jpg",
        "prompt_file": "generated/video/final_story_bobo_20260822/beat_level_v1/02_beat02_watch_out_rush_p01/02_beat02_watch_out_rush_p01_prompt.txt",
        "generated_at": "2026-08-22T22:08:18",
        "status_note": "User stopped generation: prompt direction was too strange; do not use as accepted candidate."
      },
      {
        "id": "beat03_hold_on_checklist_source_v1",
        "beat_id": "beat03_hold_on_checklist",
        "phrase_id": "p02",
        "phrase": "Hold on.",
        "camera_segment_id": "cam01_realistic_problem",
        "duration_target": "5-6s source clip",
        "status": "rejected_prompt_direction_wrong_paused_20260822",
        "generation_rule": "One source clip should show only this beat: setup action -> taught phrase moment -> visible response/result. Do not include neighboring beats.",
        "plot_function": "Leo 想把所有箱子都打開翻找，Mia 要他先停下來看整理清單，讓搜尋維持有順序的整理流程。",
        "visual_action": "Leo 伸手要打開第一個道具箱；Mia 拿起 packing checklist，請他先看標籤與清單。",
        "dialogue": [
          {
            "speaker": "Leo",
            "line": "I can open every box and find him fast.",
            "line_zh_tw": "我可以把每個箱子都打開，很快找到他。",
            "taught_phrase": false
          },
          {
            "speaker": "Mia",
            "line": "Hold on.",
            "line_zh_tw": "等一下。",
            "taught_phrase": true
          },
          {
            "speaker": "Mia",
            "line": "Let’s read the checklist first, or we will make a bigger mess.",
            "line_zh_tw": "我們先看清單，不然會弄得更亂。",
            "taught_phrase": false
          },
          {
            "speaker": "Leo",
            "line": "Right. The list says stage cart, prop box, curtain shelf.",
            "line_zh_tw": "對，清單寫著舞台推車、道具箱、布幕架。",
            "taught_phrase": false
          }
        ],
        "source_video": "generated/video/final_story_bobo_20260822/beat_level_v1/03_beat03_hold_on_checklist_p02/03_beat03_hold_on_checklist_p02_source.mp4",
        "contact_sheet": "generated/video/final_story_bobo_20260822/beat_level_v1/03_beat03_hold_on_checklist_p02/03_beat03_hold_on_checklist_p02_contact.jpg",
        "prompt_file": "generated/video/final_story_bobo_20260822/beat_level_v1/03_beat03_hold_on_checklist_p02/03_beat03_hold_on_checklist_p02_prompt.txt",
        "generated_at": "2026-08-22T22:16:09",
        "status_note": "User stopped generation: prompt direction was too strange; do not use as accepted candidate."
      },
      {
        "id": "beat04_need_help_cart_source_v1",
        "beat_id": "beat04_need_help_cart",
        "phrase_id": "p06",
        "phrase": "Need help?",
        "camera_segment_id": "cam02_check_stage_cart",
        "duration_target": "5-6s source clip",
        "status": "hq_p06_candidate_ready_late_audio_aligned_20260828",
        "generation_rule": "One source clip should show only this beat: setup action -> taught phrase moment -> visible response/result. Do not include neighboring beats.",
        "plot_function": "他們先檢查舞台推車。Mia 要扶住推車又要移開輕的布景板，手不夠用；Leo 先問再幫，延續合作。",
        "visual_action": "Mia 一手扶推車，一手想移開薄布景板；Leo 靠近詢問。",
        "dialogue": [
          {
            "speaker": "Mia",
            "line": "This board is blocking the cart label.",
            "line_zh_tw": "這塊板子擋住推車標籤了。",
            "taught_phrase": false
          },
          {
            "speaker": "Leo",
            "line": "Need help?",
            "line_zh_tw": "需要幫忙嗎？",
            "taught_phrase": true
          },
          {
            "speaker": "Mia",
            "line": "Yes, please hold the cart still.",
            "line_zh_tw": "好，請幫我扶穩推車。",
            "taught_phrase": false
          },
          {
            "speaker": "Leo",
            "line": "I will hold it so it does not roll.",
            "line_zh_tw": "我扶穩它。",
            "taught_phrase": false
          }
        ],
        "status_note": "Paused before generation; prompt direction must be rewritten first.",
        "source_video": "generated/video/hq_short_phrases_20260828/ep01_hq_p06_need_help_wobbly_stack_retry2_voice_ref_1344x768_20260828_audio_3s_aligned_no_bgm.mp4",
        "contact_sheet": "generated/video/hq_short_phrases_20260828/ep01_hq_p06_need_help_wobbly_stack_retry2_voice_ref_1344x768_20260828_audio_3s_aligned_no_bgm_contact.jpg",
        "prompt_file": "generated/video/final_story_bobo_20260822/beat_level_v1/04_beat04_need_help_cart_p06/04_beat04_need_help_cart_p06_prompt.txt",
        "generated_at": "2026-08-22T22:23:58",
        "review_status": "pending_review"
      },
      {
        "id": "beat05_pass_flashlight_source_v1",
        "beat_id": "beat05_pass_flashlight",
        "phrase_id": "p12",
        "phrase": "Pass it here.",
        "camera_segment_id": "cam02_check_stage_cart",
        "duration_target": "5-6s source clip",
        "status": "source_candidate_pending_qa_20260822",
        "generation_rule": "One source clip should show only this beat: setup action -> taught phrase moment -> visible response/result. Do not include neighboring beats.",
        "plot_function": "推車下層有點暗，Mia 需要 Leo 手邊的小手電筒看清楚標籤。Pass it here 來自這個明確的物件需求。",
        "visual_action": "Mia 指向 Leo 手邊的小手電筒；Leo 把手電筒遞給她，Mia 照向推車下層。",
        "dialogue": [
          {
            "speaker": "Mia",
            "line": "The lower shelf is too dark to see.",
            "line_zh_tw": "下層太暗，看不清楚。",
            "taught_phrase": false
          },
          {
            "speaker": "Mia",
            "line": "Pass it here.",
            "line_zh_tw": "把它遞給我。",
            "taught_phrase": true
          },
          {
            "speaker": "Leo",
            "line": "Here is the small flashlight.",
            "line_zh_tw": "小手電筒給你。",
            "taught_phrase": false
          },
          {
            "speaker": "Mia",
            "line": "Thanks. Now I can read the label.",
            "line_zh_tw": "謝謝，現在我看得到標籤了。",
            "taught_phrase": false
          }
        ],
        "status_note": "Paused before generation; prompt direction must be rewritten first.",
        "source_video": "",
        "contact_sheet": "",
        "prompt_file": "generated/video/final_story_bobo_20260822/beat_level_v1/05_beat05_pass_flashlight_p12/05_beat05_pass_flashlight_p12_prompt.txt",
        "generated_at": "2026-08-22T22:25:46"
      },
      {
        "id": "beat06_i_got_it_scarf_source_v1",
        "beat_id": "beat06_i_got_it_scarf",
        "phrase_id": "p13",
        "phrase": "I got it.",
        "camera_segment_id": "cam02_check_stage_cart",
        "duration_target": "5-6s source clip",
        "status": "source_candidate_pending_qa_20260822",
        "generation_rule": "One source clip should show only this beat: setup action -> taught phrase moment -> visible response/result. Do not include neighboring beats.",
        "plot_function": "Leo 在推車邊看到 Bobo 的紅圍巾角卡在布景板後方，拿到它並確認下一個檢查方向。I got it 對應拿到 Bobo 的圍巾標籤。",
        "visual_action": "Leo 從布景板後方拉出 Bobo 的紅圍巾角或名牌；Mia 看清楚上面寫著 Bobo。",
        "dialogue": [
          {
            "speaker": "Leo",
            "line": "I see something red behind the board.",
            "line_zh_tw": "我看到板子後面有紅色的東西。",
            "taught_phrase": false
          },
          {
            "speaker": "Leo",
            "line": "I got it.",
            "line_zh_tw": "我拿到了。",
            "taught_phrase": true
          },
          {
            "speaker": "Leo",
            "line": "It is Bobo’s scarf tag.",
            "line_zh_tw": "是 Bobo 的圍巾標籤。",
            "taught_phrase": false
          },
          {
            "speaker": "Mia",
            "line": "Then Bobo was moved with the props.",
            "line_zh_tw": "那 Bobo 真的被收到道具裡了。",
            "taught_phrase": false
          }
        ],
        "status_note": "Paused before generation; prompt direction must be rewritten first.",
        "source_video": "generated/video/final_story_bobo_20260822/beat_level_v1/06_beat06_i_got_it_scarf_p13/06_beat06_i_got_it_scarf_p13_source.mp4",
        "contact_sheet": "generated/video/final_story_bobo_20260822/beat_level_v1/06_beat06_i_got_it_scarf_p13/06_beat06_i_got_it_scarf_p13_contact.jpg",
        "prompt_file": "generated/video/final_story_bobo_20260822/beat_level_v1/06_beat06_i_got_it_scarf_p13/06_beat06_i_got_it_scarf_p13_prompt.txt",
        "generated_at": "2026-08-22T22:33:30"
      },
      {
        "id": "beat07_my_turn_propbox_source_v1",
        "beat_id": "beat07_my_turn_propbox",
        "phrase_id": "p03",
        "phrase": "My turn.",
        "camera_segment_id": "cam03_open_prop_box",
        "duration_target": "5-6s source clip",
        "status": "source_candidate_pending_qa_20260822",
        "generation_rule": "One source clip should show only this beat: setup action -> taught phrase moment -> visible response/result. Do not include neighboring beats.",
        "plot_function": "Mia 檢查完推車，下一個是輕的 prop box。Leo 想負責打開自己早上收的箱子，禮貌地說輪到他。",
        "visual_action": "Mia 把 checklist 指到 prop box；Leo 把手放在箱蓋上，等 Mia 同意。",
        "dialogue": [
          {
            "speaker": "Mia",
            "line": "The cart only has the scarf tag. Next is the prop box.",
            "line_zh_tw": "推車上只有圍巾標籤，下一個是道具箱。",
            "taught_phrase": false
          },
          {
            "speaker": "Leo",
            "line": "My turn.",
            "line_zh_tw": "換我了。",
            "taught_phrase": true
          },
          {
            "speaker": "Mia",
            "line": "Okay. Open the light box slowly.",
            "line_zh_tw": "好，慢慢打開那個輕的箱子。",
            "taught_phrase": false
          },
          {
            "speaker": "Leo",
            "line": "I packed this one, so I should check it carefully.",
            "line_zh_tw": "這個是我收的，所以我應該仔細檢查。",
            "taught_phrase": false
          }
        ],
        "status_note": "Paused before generation; prompt direction must be rewritten first.",
        "source_video": "generated/video/final_story_bobo_20260822/beat_level_v1/07_beat07_my_turn_propbox_p03/07_beat07_my_turn_propbox_p03_source.mp4",
        "contact_sheet": "generated/video/final_story_bobo_20260822/beat_level_v1/07_beat07_my_turn_propbox_p03/07_beat07_my_turn_propbox_p03_contact.jpg",
        "prompt_file": "generated/video/final_story_bobo_20260822/beat_level_v1/07_beat07_my_turn_propbox_p03/07_beat07_my_turn_propbox_p03_prompt.txt",
        "generated_at": "2026-08-22T22:41:15"
      },
      {
        "id": "beat08_slow_down_box_source_v1",
        "beat_id": "beat08_slow_down_box",
        "phrase_id": "p11",
        "phrase": "Slow down.",
        "camera_segment_id": "cam03_open_prop_box",
        "duration_target": "5-6s source clip",
        "status": "paused_before_generation_prompt_direction_wrong_20260822",
        "generation_rule": "One source clip should show only this beat: setup action -> taught phrase moment -> visible response/result. Do not include neighboring beats.",
        "plot_function": "Leo 太急著掀箱蓋，裡面的紙皇冠和小道具快掉出來；Mia 提醒慢一點。Slow down 服務於避免弄亂道具。",
        "visual_action": "Leo 掀箱蓋太快，小道具晃動；Mia 做放慢手勢，Leo 改成一手扶箱蓋、一手整理。",
        "dialogue": [
          {
            "speaker": "Leo",
            "line": "I hope Bobo is inside.",
            "line_zh_tw": "希望 Bobo 在裡面。",
            "taught_phrase": false
          },
          {
            "speaker": "Mia",
            "line": "Slow down.",
            "line_zh_tw": "慢一點。",
            "taught_phrase": true
          },
          {
            "speaker": "Mia",
            "line": "The small props may fall out.",
            "line_zh_tw": "小道具可能會掉出來。",
            "taught_phrase": false
          },
          {
            "speaker": "Leo",
            "line": "Okay. I will lift the lid gently.",
            "line_zh_tw": "好，我輕輕打開蓋子。",
            "taught_phrase": false
          }
        ],
        "status_note": "Paused before generation; prompt direction must be rewritten first."
      },
      {
        "id": "beat09_good_idea_sort_source_v1",
        "beat_id": "beat09_good_idea_sort",
        "phrase_id": "p07",
        "phrase": "Good idea.",
        "camera_segment_id": "cam03_open_prop_box",
        "duration_target": "5-6s source clip",
        "status": "paused_before_generation_prompt_direction_wrong_20260822",
        "generation_rule": "One source clip should show only this beat: setup action -> taught phrase moment -> visible response/result. Do not include neighboring beats.",
        "plot_function": "箱內沒有 Bobo，但有很多同類道具。Leo 提議把『表演用』和『裝飾用』分成兩堆，這能更快找錯放的布偶。Mia 認同。",
        "visual_action": "Leo 指向箱內混在一起的帽子、卡片、小布料；Mia 點頭，兩人開始分成兩堆。",
        "dialogue": [
          {
            "speaker": "Leo",
            "line": "What if we sort the props into two piles?",
            "line_zh_tw": "如果我們把道具分成兩堆呢？",
            "taught_phrase": false
          },
          {
            "speaker": "Leo",
            "line": "Show props here, decorations there.",
            "line_zh_tw": "表演道具放這邊，裝飾品放那邊。",
            "taught_phrase": false
          },
          {
            "speaker": "Mia",
            "line": "Good idea.",
            "line_zh_tw": "好主意。",
            "taught_phrase": true
          },
          {
            "speaker": "Mia",
            "line": "Then Bobo will not be hidden under everything.",
            "line_zh_tw": "這樣 Bobo 就不會被壓在東西下面。",
            "taught_phrase": false
          }
        ],
        "status_note": "Paused before generation; prompt direction must be rewritten first."
      },
      {
        "id": "beat10_almost_there_bell_source_v1",
        "beat_id": "beat10_almost_there_bell",
        "phrase_id": "p08",
        "phrase": "Almost there.",
        "camera_segment_id": "cam04_find_bobo_naturally",
        "duration_target": "5-6s source clip",
        "status": "candidate_ready_for_user_review_vocals_only_20260828",
        "generation_rule": "One source clip should show only this beat: setup action -> taught phrase moment -> visible response/result. Do not include neighboring beats.",
        "plot_function": "分類後，兩人聽到 Bobo 身上的小鈴鐺從布幕架附近傳來。Almost there 表示他們已接近找到 Bobo。",
        "visual_action": "兩人停下聽聲音；布幕架後方露出一點 Bobo 的紅圍巾或小鈴鐺聲。",
        "dialogue": [
          {
            "speaker": "Leo",
            "line": "Do you hear a little bell?",
            "line_zh_tw": "你有聽到小鈴鐺嗎？",
            "taught_phrase": false
          },
          {
            "speaker": "Mia",
            "line": "Almost there.",
            "line_zh_tw": "快到了。",
            "taught_phrase": true
          },
          {
            "speaker": "Mia",
            "line": "The sound is coming from the curtain shelf.",
            "line_zh_tw": "聲音從布幕架那邊來。",
            "taught_phrase": false
          },
          {
            "speaker": "Leo",
            "line": "That makes sense. I put the soft puppets near the curtain.",
            "line_zh_tw": "有道理，我把軟布偶放在布幕旁邊。",
            "taught_phrase": false
          }
        ],
        "status_note": "Paused before generation; prompt direction must be rewritten first."
      },
      {
        "id": "beat11_ready_move_curtain_source_v1",
        "beat_id": "beat11_ready_move_curtain",
        "phrase_id": "p14",
        "phrase": "Ready?",
        "camera_segment_id": "cam04_find_bobo_naturally",
        "duration_target": "5-6s source clip",
        "status": "paused_before_generation_prompt_direction_wrong_20260822",
        "generation_rule": "One source clip should show only this beat: setup action -> taught phrase moment -> visible response/result. Do not include neighboring beats.",
        "plot_function": "Bobo 可能被布幕壓住。兩人要一起慢慢拉開布幕，先確認彼此準備好。Ready? 是共同動作前的安全確認。",
        "visual_action": "Mia 和 Leo 各抓住布幕一角，下面有 Bobo 的腳或紅圍巾露出；兩人互看。",
        "dialogue": [
          {
            "speaker": "Mia",
            "line": "Let’s move the curtain together so Bobo does not fall.",
            "line_zh_tw": "我們一起移開布幕，免得 Bobo 掉下來。",
            "taught_phrase": false
          },
          {
            "speaker": "Mia",
            "line": "Ready?",
            "line_zh_tw": "準備好了嗎？",
            "taught_phrase": true
          },
          {
            "speaker": "Leo",
            "line": "Ready. I will hold this side.",
            "line_zh_tw": "準備好了，我扶這邊。",
            "taught_phrase": false
          },
          {
            "speaker": "Mia",
            "line": "Slow and gentle.",
            "line_zh_tw": "慢慢、輕輕地。",
            "taught_phrase": false
          }
        ],
        "status_note": "Paused before generation; prompt direction must be rewritten first."
      },
      {
        "id": "beat12_lets_go_stage_source_v1",
        "beat_id": "beat12_lets_go_stage",
        "phrase_id": "p09",
        "phrase": "Let’s go!",
        "camera_segment_id": "cam04_find_bobo_naturally",
        "duration_target": "5-6s source clip",
        "status": "candidate_ready_for_user_review_vocals_only_20260828",
        "generation_rule": "One source clip should show only this beat: setup action -> taught phrase moment -> visible response/result. Do not include neighboring beats.",
        "plot_function": "Bobo 找到了：他被收在布幕架旁的軟布偶袋裡。兩人帶他回舞台，準備彩排。",
        "visual_action": "Bobo 從布幕旁的軟袋中被拿出來；Mia 抱著 Bobo，Leo 拿著 checklist 往小舞台走。",
        "dialogue": [
          {
            "speaker": "Leo",
            "line": "There he is! Bobo was in the soft puppet bag.",
            "line_zh_tw": "他在這裡！Bobo 在軟布偶袋裡。",
            "taught_phrase": false
          },
          {
            "speaker": "Mia",
            "line": "Good. We found him before the class comes in.",
            "line_zh_tw": "太好了，同學進來前找到他了。",
            "taught_phrase": false
          },
          {
            "speaker": "Leo",
            "line": "Let’s go!",
            "line_zh_tw": "開始吧！",
            "taught_phrase": true
          },
          {
            "speaker": "Mia",
            "line": "To the stage for one quick practice.",
            "line_zh_tw": "去舞台快速彩排一次。",
            "taught_phrase": false
          }
        ],
        "status_note": "Paused before generation; prompt direction must be rewritten first."
      },
      {
        "id": "beat13_try_again_arm_source_v1",
        "beat_id": "beat13_try_again_arm",
        "phrase_id": "p05",
        "phrase": "Try again.",
        "camera_segment_id": "cam05_rehearse_fix",
        "duration_target": "5-6s source clip",
        "status": "paused_before_generation_prompt_direction_wrong_20260822",
        "generation_rule": "One source clip should show only this beat: setup action -> taught phrase moment -> visible response/result. Do not include neighboring beats.",
        "plot_function": "彩排時 Bobo 的手臂線被圍巾壓住，第一次揮手不成功。Mia 鼓勵 Leo 修正後再試。",
        "visual_action": "Leo 操作 Bobo 揮手，手臂沒抬起；Mia 指出圍巾壓住線。",
        "dialogue": [
          {
            "speaker": "Leo",
            "line": "Bobo’s arm is not waving.",
            "line_zh_tw": "Bobo 的手揮不起來。",
            "taught_phrase": false
          },
          {
            "speaker": "Mia",
            "line": "Try again.",
            "line_zh_tw": "再試一次。",
            "taught_phrase": true
          },
          {
            "speaker": "Mia",
            "line": "Move the scarf off the string first.",
            "line_zh_tw": "先把圍巾從線上移開。",
            "taught_phrase": false
          },
          {
            "speaker": "Leo",
            "line": "Okay. I can fix that.",
            "line_zh_tw": "好，我可以修好。",
            "taught_phrase": false
          }
        ],
        "status_note": "Paused before generation; prompt direction must be rewritten first."
      },
      {
        "id": "beat14_it_works_wave_source_v1",
        "beat_id": "beat14_it_works_wave",
        "phrase_id": "p15",
        "phrase": "It works!",
        "camera_segment_id": "cam05_rehearse_fix",
        "duration_target": "5-6s source clip",
        "status": "paused_before_generation_prompt_direction_wrong_20260822",
        "generation_rule": "One source clip should show only this beat: setup action -> taught phrase moment -> visible response/result. Do not include neighboring beats.",
        "plot_function": "整理線後，Bobo 順利揮手。It works 是布偶表演動作成功。",
        "visual_action": "Bobo 的手臂成功抬起並揮動；兩人放心微笑。",
        "dialogue": [
          {
            "speaker": "Leo",
            "line": "The string is free now.",
            "line_zh_tw": "線現在鬆開了。",
            "taught_phrase": false
          },
          {
            "speaker": "Mia",
            "line": "Try one small wave.",
            "line_zh_tw": "試試看小小揮手。",
            "taught_phrase": false
          },
          {
            "speaker": "Leo",
            "line": "It works!",
            "line_zh_tw": "成功了！",
            "taught_phrase": true
          },
          {
            "speaker": "Mia",
            "line": "Bobo can say hello to everyone.",
            "line_zh_tw": "Bobo 可以跟大家打招呼了。",
            "taught_phrase": false
          }
        ],
        "status_note": "Paused before generation; prompt direction must be rewritten first."
      },
      {
        "id": "beat15_high_five_showtime_source_v1",
        "beat_id": "beat15_high_five_showtime",
        "phrase_id": "p10",
        "phrase": "High five!",
        "camera_segment_id": "cam06_show_ready",
        "duration_target": "5-6s source clip",
        "status": "paused_before_generation_prompt_direction_wrong_20260822",
        "generation_rule": "One source clip should show only this beat: setup action -> taught phrase moment -> visible response/result. Do not include neighboring beats.",
        "plot_function": "收尾：Bobo 被找回，道具也整理好，兩人確認問題是早上收太快造成，現在靠合作修正。High five 是任務完成慶祝。",
        "visual_action": "小舞台上 Bobo 站好；旁邊有已整理好的道具箱與 checklist；Mia 和 Leo 清楚擊掌。",
        "dialogue": [
          {
            "speaker": "Mia",
            "line": "We found the mix-up and fixed the puppet.",
            "line_zh_tw": "我們找到收錯的原因，也修好布偶了。",
            "taught_phrase": false
          },
          {
            "speaker": "Leo",
            "line": "Next time I will check the labels before I pack.",
            "line_zh_tw": "下次收東西前，我會先看標籤。",
            "taught_phrase": false
          },
          {
            "speaker": "Mia",
            "line": "High five!",
            "line_zh_tw": "擊掌！",
            "taught_phrase": true
          },
          {
            "speaker": "Leo",
            "line": "High five! The puppet show is ready.",
            "line_zh_tw": "擊掌！布偶劇準備好了。",
            "taught_phrase": false
          }
        ],
        "status_note": "Paused before generation; prompt direction must be rewritten first."
      }
    ],
    "reference_assets_for_video_prompts": {
      "scene_ref": "",
      "bobo_character_ref": "images/reference/final_story_bobo/ep01_bobo_bobo_ref_20260822.png",
      "props_ref": "images/reference/final_story_bobo/ep01_bobo_props_ref_v2_plain_empty_box_20260822.png"
    },
    "bobo_box_design_rule": "Bobo mascot box is a plain empty open box only. No cushion, molded insert, silhouette, or puppet-shaped empty form inside.",
    "camera_sequence_summary": [
      {
        "order": "S01A",
        "label": "S01A｜原本已確認影片｜Let’s get Bobo",
        "title": "S01A｜原本已確認影片｜Let’s get Bobo",
        "segment": "hq_bobo_stepwise_regen",
        "file": "generated/video/hq_story_bobo_20260828/clip01A_get_bobo_open_box_3s/ep01_hq_story_clip01A_get_bobo_open_box_3s_vocals_only_no_bgm.mp4",
        "video": "generated/video/hq_story_bobo_20260828/clip01A_get_bobo_open_box_3s/ep01_hq_story_clip01A_get_bobo_open_box_3s_vocals_only_no_bgm.mp4",
        "source_video": "generated/video/hq_story_bobo_20260828/clip01A_get_bobo_open_box_3s/ep01_hq_story_clip01A_get_bobo_open_box_3s_vocals_only_no_bgm.mp4",
        "contact_sheet": "generated/video/hq_story_bobo_20260828/clip01A_get_bobo_open_box_3s/ep01_hq_story_clip01A_get_bobo_open_box_3s_vocals_only_no_bgm_contact.jpg",
        "review_sheet": "generated/video/hq_story_bobo_20260828/clip01A_get_bobo_open_box_3s/ep01_hq_story_clip01A_get_bobo_open_box_3s_vocals_only_no_bgm_contact.jpg",
        "start_key_image": "generated/video/hq_story_bobo_20260828/clip01A_get_bobo_open_box_3s/ep01_hq_story_clip01A_frame0.jpg",
        "end_key_image": "generated/video/hq_story_bobo_20260828/clip01A_get_bobo_open_box_3s/ep01_hq_story_clip01A_final_frame.jpg",
        "provider_prompt": "generated/video/hq_story_bobo_20260828/run_hq_story_clip01A_get_bobo_open_box_3s.py",
        "qa_file": "generated/video/hq_story_bobo_20260828/clip01A_get_bobo_open_box_3s/ep01_hq_story_clip01A_get_bobo_open_box_3s_vocals_only_no_bgm.qa.json",
        "note": "使用者已審核確認：目前更新上去的版本都可以使用。",
        "status": "user_approved_original_restored",
        "review_status": "approved",
        "review_label": "已確認",
        "review_note": "使用者已審核確認：目前更新上去的版本都可以使用。",
        "production_note_before_approval": "已改回原本影片；錯誤生成的 S01A rebuild1 不再作為目前版本。",
        "approved_at": "2026-09-19T13:45:05.071048+08:00",
        "approved_by": "user",
        "updated_at": "2026-09-19T13:45:05.071048+08:00"
      },
      {
        "order": "S01B",
        "label": "hq_story_clip01B_empty_box_no_way_3s",
        "segment": "hq_bobo_stepwise_regen",
        "file": "generated/video/hq_story_bobo_20260828/clip01B_empty_box_no_way_3s/ep01_hq_story_clip01B_empty_box_no_way_3s_vocals_only_no_bgm.mp4",
        "note": "使用者已審核確認：目前更新上去的版本都可以使用。",
        "review_status": "approved",
        "review_label": "已確認",
        "review_note": "使用者已審核確認：目前更新上去的版本都可以使用。",
        "production_note_before_approval": "等待你審核｜使用者確認：S01 段落可以。",
        "approved_at": "2026-09-19T13:45:05.071048+08:00",
        "approved_by": "user",
        "updated_at": "2026-09-19T13:45:05.071048+08:00"
      },
      {
        "order": "S01C",
        "label": "S01C｜retry6｜true S01B final frame｜What happened?",
        "file": "generated/video/hq_story_bobo_20260828/clip01C_true_s01b_final_no_paper_retry6_hands_away_3s/ep01_hq_story_clip01C_retry6_true_s01b_visual_old_mia_audio.mp4",
        "video": "generated/video/hq_story_bobo_20260828/clip01C_true_s01b_final_no_paper_retry6_hands_away_3s/ep01_hq_story_clip01C_retry6_true_s01b_visual_old_mia_audio.mp4",
        "source_video": "generated/video/hq_story_bobo_20260828/clip01C_true_s01b_final_no_paper_retry6_hands_away_3s/ep01_hq_story_clip01C_retry6_true_s01b_visual_old_mia_audio.mp4",
        "review_sheet": "generated/video/hq_story_bobo_20260828/clip01C_true_s01b_final_no_paper_retry6_hands_away_3s/ep01_hq_story_clip01C_retry6_true_s01b_contact.jpg",
        "contact_sheet": "generated/video/hq_story_bobo_20260828/clip01C_true_s01b_final_no_paper_retry6_hands_away_3s/ep01_hq_story_clip01C_retry6_true_s01b_contact.jpg",
        "start_key_image": "generated/video/hq_story_bobo_20260828/clip01C_true_s01b_final_no_paper_retry6_hands_away_3s/ep01_hq_story_clip01C_retry6_true_s01b_frame0.jpg",
        "end_key_image": "generated/video/hq_story_bobo_20260828/clip01C_true_s01b_final_no_paper_retry6_hands_away_3s/ep01_hq_story_clip01C_retry6_true_s01b_final_frame.png",
        "review_status": "approved",
        "review_label": "已確認",
        "note": "使用者已審核確認：目前更新上去的版本都可以使用。",
        "review_note": "使用者已審核確認：目前更新上去的版本都可以使用。",
        "approval_note": "使用者已確認：畫面可以，Leo 最後一句 ref-audio 修正版可以；S01C/S01D/S01-FULL 更新為已確認。",
        "approved_at": "2026-09-19T13:45:05.071048+08:00",
        "production_note_before_approval": "使用者已確認：畫面可以，Leo 最後一句 ref-audio 修正版可以；S01C/S01D/S01-FULL 更新為已確認。",
        "approved_by": "user",
        "updated_at": "2026-09-19T13:45:05.071048+08:00"
      },
      {
        "order": "S01D",
        "label": "S01D｜真首幀接續・Mia 安靜旁聽",
        "file": "generated/s01d_continuity_v1/review.mp4",
        "video": "generated/s01d_continuity_v1/review.mp4",
        "source_video": "generated/s01d_continuity_v1/review.mp4",
        "review_status": "approved",
        "review_label": "已確認",
        "note": "使用者已審核確認：目前更新上去的版本都可以使用。",
        "review_note": "使用者已審核確認：目前更新上去的版本都可以使用。",
        "status": "generated",
        "revision_history": [
          {
            "order": "S01D",
            "label": "S01D｜已剪除 Mia 無聲開口",
            "file": "generated/fixes/s01d_silent_mia_20260918/s01d_trim_silent_mia.mp4",
            "video": "generated/fixes/s01d_silent_mia_20260918/s01d_trim_silent_mia.mp4",
            "source_video": "generated/fixes/s01d_silent_mia_20260918/s01d_trim_silent_mia.mp4",
            "review_sheet": "generated/fixes/s01d_silent_mia_20260918/s01d_contact.jpg",
            "contact_sheet": "generated/fixes/s01d_silent_mia_20260918/s01d_contact.jpg",
            "start_key_image": "generated/fixes/s01d_silent_mia_20260918/s01d_first.jpg",
            "end_key_image": "generated/fixes/s01d_silent_mia_20260918/s01d_last.jpg",
            "review_status": "pending_review",
            "review_label": "待審核",
            "note": "依使用者回報剪除 S01D 開頭 1 秒 Mia 無聲開口動作；保留 Leo 完整台詞。新版待確認。",
            "review_note": "依使用者回報剪除 S01D 開頭 1 秒 Mia 無聲開口動作；保留 Leo 完整台詞。新版待確認。",
            "status": "generated",
            "frame0": "generated/fixes/s01d_silent_mia_20260918/s01d_first.jpg",
            "final_frame": "generated/fixes/s01d_silent_mia_20260918/s01d_last.jpg"
          }
        ],
        "title": "S01D｜真首幀接續・Mia 安靜旁聽",
        "display_title": "S01D｜真首幀接續・Mia 安靜旁聽",
        "provider": "ComfyUI / MiniMax H3",
        "quality": "1344 × 768 / 24 fps",
        "updated_at": "2026-09-19T13:45:05.071048+08:00",
        "frame0": "generated/s01d_continuity_v1/first.png",
        "actual_frame0": "generated/s01d_continuity_v1/first.png",
        "final_frame": "generated/s01d_continuity_v1/last.png",
        "contact_sheet": "generated/s01d_continuity_v1/contact.jpg",
        "prompt_en": "A continuous locked-camera shot of the same two clay children and open empty cardboard box. Preserve the input image composition, identities, hands and lighting. The girl on the left has finished her question. She listens quietly: lips gently together, neutral worried face, no speaking movements. Her body stays still. The boy on the right looks at the empty box. At 1.3 seconds, ONLY THE BOY says exactly \"Bobo is not in the box.\" in a young boy voice, finishing by 2.9 seconds. His mouth articulates the sentence. Girl stays silent and still throughout. No gestures, camera moves, added objects, music, subtitles or other speech. The scene continues naturally from the input first frame.",
        "first_frame_input": "images/s01c_exact_last_for_s01d.png",
        "production_note_before_approval": "已撤回剪掉 1 秒的版本。此版以 S01C 實際尾幀生成，保留完整 3 秒；Mia 收起前句表情後安靜旁聽，Leo 沿用原有聲音並對齊新畫面。接點和台詞已核對，整段表演／嘴型待確認。",
        "approved_at": "2026-09-19T13:45:05.071048+08:00",
        "approved_by": "user"
      },
      {
        "order": "S01-FULL",
        "label": "S01-FULL｜完整 3 秒接續修正版",
        "file": "generated/s01d_continuity_v1/s01_full.mp4",
        "video": "generated/s01d_continuity_v1/s01_full.mp4",
        "source_video": "generated/s01d_continuity_v1/s01_full.mp4",
        "review_status": "approved",
        "review_label": "已確認",
        "note": "使用者已審核確認：目前更新上去的版本都可以使用。",
        "review_note": "使用者已審核確認：目前更新上去的版本都可以使用。",
        "status": "generated",
        "revision_history": [
          {
            "order": "S01-FULL",
            "label": "S01-FULL｜Mia 無聲開口修正版",
            "file": "generated/fixes/s01d_silent_mia_20260918/s01_full_mia_fix.mp4",
            "video": "generated/fixes/s01d_silent_mia_20260918/s01_full_mia_fix.mp4",
            "source_video": "generated/fixes/s01d_silent_mia_20260918/s01_full_mia_fix.mp4",
            "review_sheet": "generated/fixes/s01d_silent_mia_20260918/s01_full_contact.jpg",
            "contact_sheet": "generated/fixes/s01d_silent_mia_20260918/s01_full_contact.jpg",
            "review_status": "pending_review",
            "review_label": "待審核",
            "note": "依使用者回報剪除 S01D 開頭 1 秒 Mia 無聲開口動作；保留 Leo 完整台詞。新版待確認。",
            "review_note": "依使用者回報剪除 S01D 開頭 1 秒 Mia 無聲開口動作；保留 Leo 完整台詞。新版待確認。",
            "status": "generated"
          }
        ],
        "title": "S01-FULL｜完整 3 秒接續修正版",
        "display_title": "S01-FULL｜完整 3 秒接續修正版",
        "provider": "ComfyUI / MiniMax H3",
        "quality": "1344 × 768 / 24 fps",
        "updated_at": "2026-09-19T13:45:05.071048+08:00",
        "contact_sheet": "generated/s01d_continuity_v1/s01_full_contact.jpg",
        "prompt_en": "A continuous locked-camera shot of the same two clay children and open empty cardboard box. Preserve the input image composition, identities, hands and lighting. The girl on the left has finished her question. She listens quietly: lips gently together, neutral worried face, no speaking movements. Her body stays still. The boy on the right looks at the empty box. At 1.3 seconds, ONLY THE BOY says exactly \"Bobo is not in the box.\" in a young boy voice, finishing by 2.9 seconds. His mouth articulates the sentence. Girl stays silent and still throughout. No gestures, camera moves, added objects, music, subtitles or other speech. The scene continues naturally from the input first frame.",
        "production_note_before_approval": "已撤回剪掉 1 秒的版本。此版以 S01C 實際尾幀生成，保留完整 3 秒；Mia 收起前句表情後安靜旁聽，Leo 沿用原有聲音並對齊新畫面。接點和台詞已核對，整段表演／嘴型待確認。",
        "approved_at": "2026-09-19T13:45:05.071048+08:00",
        "approved_by": "user"
      },
      {
        "order": "S02A",
        "label": "S02A｜顏色與亮度校正版",
        "segment": "hq_bobo_stepwise_regen",
        "file": "generated/s02a_color_v1/review.mp4",
        "note": "固定教室色彩參考，整段校正色偏與亮度；保留原動畫和對白，待確認。",
        "review_status": "pending_review",
        "review_label": "待確認",
        "review_note": "固定教室色彩參考，整段校正色偏與亮度；保留原動畫和對白，待確認。",
        "production_note_before_approval": "等待你審核",
        "updated_at": "2026-09-19T21:29:41.999468+08:00",
        "title": "S02A｜顏色與亮度校正版",
        "display_title": "S02A｜顏色與亮度校正版",
        "video": "generated/s02a_color_v1/review.mp4",
        "source_video": "generated/s02a_color_v1/review.mp4",
        "contact_sheet": "generated/s02a_color_v1/contact.jpg",
        "frame0": "generated/s02a_color_v1/first.png",
        "final_frame": "generated/s02a_color_v1/last.png",
        "qa_file": "generated/s02a_color_v1/qa.json",
        "duration_seconds": 3.041667,
        "status": "generated"
      },
      {
        "order": "S02B",
        "label": "S02B｜顏色與亮度校正版",
        "segment": "hq_bobo_stepwise_regen",
        "file": "generated/s02b_color_v1/review.mp4",
        "note": "固定教室色彩參考，整段校正色偏與亮度；保留原動畫和對白，待確認。",
        "review_status": "pending_review",
        "review_label": "待確認",
        "review_note": "固定教室色彩參考，整段校正色偏與亮度；保留原動畫和對白，待確認。",
        "production_note_before_approval": "等待你審核",
        "updated_at": "2026-09-19T21:29:41.999468+08:00",
        "title": "S02B｜顏色與亮度校正版",
        "display_title": "S02B｜顏色與亮度校正版",
        "video": "generated/s02b_color_v1/review.mp4",
        "source_video": "generated/s02b_color_v1/review.mp4",
        "contact_sheet": "generated/s02b_color_v1/contact.jpg",
        "frame0": "generated/s02b_color_v1/first.png",
        "final_frame": "generated/s02b_color_v1/last.png",
        "qa_file": "generated/s02b_color_v1/qa.json",
        "duration_seconds": 3.041667,
        "status": "generated"
      },
      {
        "order": "S02C",
        "label": "S02C｜顏色與亮度校正版",
        "segment": "hq_bobo_stepwise_regen",
        "file": "generated/s02c_color_v1/review.mp4",
        "note": "固定教室色彩參考，整段校正色偏與亮度；保留原動畫和對白，待確認。",
        "review_status": "pending_review",
        "review_label": "待確認",
        "review_note": "固定教室色彩參考，整段校正色偏與亮度；保留原動畫和對白，待確認。",
        "video": "generated/s02c_color_v1/review.mp4",
        "source_video": "generated/s02c_color_v1/review.mp4",
        "review_sheet": "generated/video/hq_story_bobo_20260828/clip02C_retry4_floor_gaze_leo_ref_3s/ep01_hq_story_clip02C_retry4_floor_gaze_leo_ref_3s_vocals_only_no_bgm_contact.jpg",
        "contact_sheet": "generated/s02c_color_v1/contact.jpg",
        "start_key_image": "generated/video/hq_story_bobo_20260828/clip02C_retry4_floor_gaze_leo_ref_3s/ep01_hq_story_clip02C_retry4_leo_ref_frame0.jpg",
        "end_key_image": "generated/video/hq_story_bobo_20260828/clip02C_retry4_floor_gaze_leo_ref_3s/ep01_hq_story_clip02C_retry4_leo_ref_final_frame.jpg",
        "provider_prompt": "generated/video/hq_story_bobo_20260828/clip02C_retry3_leo_ref_exact_continuity_3s/prompt.txt",
        "status": "generated",
        "status_note": "Retry4 replaces S02C original slot; no extra retry row.",
        "final_sequence": "story-clip-02C",
        "production_note_before_approval": "使用者確認：這版 S02C 可以。",
        "updated_at": "2026-09-19T21:29:41.999468+08:00",
        "title": "S02C｜顏色與亮度校正版",
        "display_title": "S02C｜顏色與亮度校正版",
        "frame0": "generated/s02c_color_v1/first.png",
        "final_frame": "generated/s02c_color_v1/last.png",
        "qa_file": "generated/s02c_color_v1/qa.json",
        "duration_seconds": 2.875
      },
      {
        "order": "S02D",
        "label": "S02D｜顏色與亮度校正版",
        "segment": "hq_bobo_stepwise_regen",
        "file": "generated/s02d_color_v1/review.mp4",
        "note": "固定教室色彩參考，整段校正色偏與亮度；保留原動畫和對白，待確認。",
        "review_status": "pending_review",
        "review_label": "待確認",
        "review_note": "固定教室色彩參考，整段校正色偏與亮度；保留原動畫和對白，待確認。",
        "status": "generated",
        "status_note": "Canonical slot moved from S03A to S02D; media file unchanged.",
        "title": "S02D｜顏色與亮度校正版",
        "video": "generated/s02d_color_v1/review.mp4",
        "source_video": "generated/s02d_color_v1/review.mp4",
        "review_sheet": "generated/video/hq_story_bobo_20260828/clip03A_rebuild1_put_ribbon_away_clear_floor_3s/ep01_hq_story_clip03A_rebuild1_contact.jpg",
        "contact_sheet": "generated/s02d_color_v1/contact.jpg",
        "start_key_image": "generated/video/hq_story_bobo_20260828/clip03A_rebuild1_put_ribbon_away_clear_floor_3s/ep01_hq_story_clip03A_rebuild1_frame0.jpg",
        "end_key_image": "generated/video/hq_story_bobo_20260828/clip03A_rebuild1_put_ribbon_away_clear_floor_3s/ep01_hq_story_clip03A_rebuild1_final_frame.jpg",
        "final_sequence": "story-clip-02D",
        "production_note_before_approval": "使用者要求：原 S03A 改為 S02D，跟 S02 串接。",
        "updated_at": "2026-09-19T21:29:41.999468+08:00",
        "display_title": "S02D｜顏色與亮度校正版",
        "frame0": "generated/s02d_color_v1/first.png",
        "final_frame": "generated/s02d_color_v1/last.png",
        "qa_file": "generated/s02d_color_v1/qa.json",
        "duration_seconds": 2.875
      },
      {
        "order": "S02E",
        "title": "S02E｜等一下，我有一個想法",
        "label": "S02E｜等一下，我有一個想法",
        "dialogue": [
          {
            "speaker": "Mia",
            "en": "Wait a second. I have an idea.",
            "zh_tw": "等一下，我有一個想法。"
          }
        ],
        "status": "pending_review",
        "review_status": "pending_review",
        "review_label": "音訊專用修復｜待確認",
        "note": "音訊專用修復：以既有原生 Mia 連續音訊移除中段硬切與 0.29 秒插入空檔；畫面逐幀不變，待確認。",
        "display_title": "S02E｜等一下，我有一個想法",
        "file": "generated/s02e_audiofix_20260921_v1/review.mp4",
        "video": "generated/s02e_audiofix_20260921_v1/review.mp4",
        "source_video": "generated/s02e_audiofix_20260921_v1/review.mp4",
        "contact_sheet": "generated/s02e_audiofix_20260921_v1/sync_contact.jpg",
        "frame0": "generated/s02e_audiofix_20260921_v1/first.png",
        "final_frame": "generated/s02e_audiofix_20260921_v1/last.png",
        "qa_file": "generated/s02e_audiofix_20260921_v1/audio_qa.json",
        "duration_seconds": 5.166667,
        "review_note": "音訊專用修復：以既有原生 Mia 連續音訊移除中段硬切與 0.29 秒插入空檔；畫面逐幀不變，待確認。",
        "updated_at": "2026-09-21T09:58:25.298630+08:00"
      },
      {
        "order": "S02-FULL",
        "label": "S02-FULL｜校色 A–E・Mia 提出想法",
        "segment": "hq_bobo_stepwise_regen",
        "file": "generated/s02_full_idea_v1/review.mp4",
        "status": "generated",
        "review_status": "pending_review",
        "review_label": "待確認",
        "review_note": "S02E 動畫已重新生成，修正 Mia 說完後持續張嘴的動作；固定角色配音重新對齊、校正顏色亮度，待確認。",
        "note": "已納入 S02E 嘴型與配音收尾修正；S05E 使用原版，待確認。",
        "video": "generated/s02_full_idea_v1/review.mp4",
        "source_video": "generated/s02_full_idea_v1/review.mp4",
        "contact_sheet": "generated/s02_full_idea_v1/contact.jpg",
        "review_sheet": "generated/video/hq_story_bobo_20260828/assembled/ep01_hq_story_clip02ABCD_assembled_with_s02d_contact.jpg",
        "end_key_image": "generated/video/hq_story_bobo_20260828/assembled/ep01_hq_story_clip02ABCD_assembled_with_s02d_final_frame.jpg",
        "title": "S02-FULL｜校色 A–E・Mia 提出想法",
        "qa": {
          "latest_verdict": "pending_human_review",
          "issue_fixed": "audio_resync_concat_filter_reencode",
          "stt": "I should check it now. Watch out. Oh, thanks. I was rushing. I’ll put it back.",
          "updated_at": "2026-09-04T10:56:11"
        },
        "history": [
          {
            "at": "2026-09-04T10:56:11",
            "action": "rejected_old_full_audio_misaligned",
            "old": {
              "file": "generated/video/hq_story_bobo_20260828/assembled/ep01_hq_story_clip02ABCD_assembled_with_s02d_from_old_s03a.mp4",
              "video": "generated/video/hq_story_bobo_20260828/assembled/ep01_hq_story_clip02ABCD_assembled_with_s02d_from_old_s03a.mp4",
              "source_video": "generated/video/hq_story_bobo_20260828/assembled/ep01_hq_story_clip02ABCD_assembled_with_s02d_from_old_s03a.mp4",
              "review_status": "needs_review",
              "review_label": "待審核",
              "review_note": "已改串 S02A–S02D（S02D 為原 S03A）；等待你審核。",
              "status": "candidate_ready_for_user_review_s02_full_abcd"
            }
          }
        ],
        "production_note_before_approval": "使用者指出上一版 S02-FULL 串接聲音位置不對；已退回舊串接版，改用 setpts/asetpts + concat filter 重新編碼重對齊音訊。Whisper: I should check it now. / Watch out. / Oh, thanks. / I was rushing. / I’ll put it back. 待確認聲畫位置。",
        "updated_at": "2026-09-19T22:15:01.298113+08:00",
        "display_title": "S02-FULL｜校色 A–E・Mia 提出想法",
        "frame0": "generated/s02_full_idea_v1/first.png",
        "final_frame": "generated/s02_full_idea_v1/last.png",
        "qa_file": "generated/s02_full_idea_v1/qa.json",
        "duration_seconds": 17.209
      },
      {
        "order": "S03A",
        "id": "ep01_s03a_combined_20260918",
        "label": "S03A｜Leo 提議、Mia 建議逐項檢查",
        "title": "S03A｜Leo 提議、Mia 建議逐項檢查",
        "segment": "hq_bobo_stepwise_regen",
        "final_order": "story-clip-03A",
        "file": "generated/s03a_combined_v1/review.mp4",
        "video": "generated/s03a_combined_v1/review.mp4",
        "source_video": "generated/s03a_combined_v1/review.mp4",
        "prompt_zh_tw": "使用 Flow 既有 Leo、Mia 角色與原教室參考，保留角色外觀及已存角色聲音。溫暖 3D 黏土風教室，中景雙人鏡頭，Mia 左、Leo 右，站在桌子與關閉的收納箱旁。Leo 只以小幅對話手勢表達想法，說一次「I can open every box and find him fast.」；Mia 閉嘴安靜旁聽。無人碰觸、開啟、搬動或搜尋箱子，箱蓋全程關閉；沒有 checklist 動作，Bobo 不出現。單一連續鏡頭，自然呼吸與眨眼，說完後閉嘴自然停留。原生同步對白，無旁白、額外台詞、音樂或字幕。",
        "provider": "ComfyUI / MiniMax H3",
        "status": "generated",
        "review_status": "approved",
        "review_label": "已確認",
        "review_note": "使用者已審核確認：目前更新上去的版本都可以使用。",
        "note": "使用者已審核確認：目前更新上去的版本都可以使用。",
        "quality": "1344 × 768 / 24 fps",
        "revision_history": [
          {
            "order": "S03A",
            "id": "hq_story_s03A_google_flow_approved_20260914",
            "label": "S03A｜Leo 表達開箱找 Bobo 的想法｜Google Flow",
            "title": "S03A｜Leo 表達開箱找 Bobo 的想法｜Google Flow",
            "segment": "hq_bobo_stepwise_regen",
            "final_order": "story-clip-03A",
            "file": "generated/video/hq_story_bobo_20260828/google_flow_s03A_retry_20260914/s03A_flow_retry1.mp4",
            "video": "generated/video/hq_story_bobo_20260828/google_flow_s03A_retry_20260914/s03A_flow_retry1.mp4",
            "source_video": "generated/video/hq_story_bobo_20260828/google_flow_s03A_retry_20260914/s03A_flow_retry1.mp4",
            "contact_sheet": "generated/video/hq_story_bobo_20260828/google_flow_s03A_retry_20260914/contact.jpg",
            "frame0": "generated/video/hq_story_bobo_20260828/google_flow_s03A_retry_20260914/frame0.png",
            "actual_frame0": "generated/video/hq_story_bobo_20260828/google_flow_s03A_retry_20260914/frame0.png",
            "first_frame": "",
            "first_frame_input": "",
            "final_frame": "generated/video/hq_story_bobo_20260828/google_flow_s03A_retry_20260914/final.png",
            "reference_images": [],
            "reference_audio": [],
            "workflow": "",
            "prompt_file": "generated/video/hq_story_bobo_20260828/google_flow_s03A_retry_20260914/prompt.txt",
            "prompt_en": "S03A - Leo expresses an intention only. Use the attached native Leo and Mia characters, preserving their saved character voices and exact approved faces, brown hairstyles, child proportions and outfits: Leo in a green sweater and jeans; Mia in a pink sweater, ponytail and jeans. Use the attached original classroom image for the same warm 3D clay-like classroom, wooden furniture, red-curtained puppet stage, window and storage shelves. Medium two-shot, Mia on the left, Leo on the right. Both stand naturally near the classroom table and closed storage boxes. Leo eagerly tells Mia his proposed plan, with a small conversational hand gesture only. Only Leo speaks, using his attached saved Puck custom character voice, clearly and naturally in English, exactly once: \"I can open every box and find him fast.\" This sentence is only his intention: nobody touches, opens, lifts, moves or searches any box; all lids stay fully closed throughout. Mia silently listens with her lips closed throughout, no speaking mouth motion. No checklist action. Bobo is still missing and completely absent from every frame; no doll, mascot or additional character appears. One continuous shot, gentle natural breathing and blinking, not a frozen still. After Leo finishes the sentence, his lips close and both hold a natural silent resting expression. Native synchronized character dialogue only, no additional words, narrator, music, singing or soundtrack. No subtitles, captions, speech bubbles, title cards, logos or visible written dialogue. Do not substitute voices or produce a silent video.",
            "prompt_zh_tw": "使用 Flow 既有 Leo、Mia 角色與原教室參考，保留角色外觀及已存角色聲音。溫暖 3D 黏土風教室，中景雙人鏡頭，Mia 左、Leo 右，站在桌子與關閉的收納箱旁。Leo 只以小幅對話手勢表達想法，說一次「I can open every box and find him fast.」；Mia 閉嘴安靜旁聽。無人碰觸、開啟、搬動或搜尋箱子，箱蓋全程關閉；沒有 checklist 動作，Bobo 不出現。單一連續鏡頭，自然呼吸與眨眼，說完後閉嘴自然停留。原生同步對白，無旁白、額外台詞、音樂或字幕。",
            "provider": "Google Flow",
            "generation_mode": "Flow 既有角色與原教室參考；原始輸入首幀未記錄。frame0 為實際輸出第一幀，非生成輸入。",
            "source_note": "本地 prompt.txt 記錄附加 Leo、Mia 原生角色及原教室參考；沒有可確認對應的本地參考原檔，因此參考檔案欄留空。Leo 聲音依提交 prompt 使用已存 Puck 自訂角色聲音。",
            "status": "approved",
            "review_status": "approved",
            "review_label": "已確認",
            "review_note": "2026-09-14 使用者明確通過 Google Flow 原速完整影片並要求保存發布；Leo 台詞：I can open every box and find him fast. Mia 旁聽。未套用 0.8 倍速 QA 音檔，未換音、未裁切。",
            "note": "2026-09-14 使用者明確通過 Google Flow 原速完整影片並要求保存發布；Leo 台詞：I can open every box and find him fast. Mia 旁聽。未套用 0.8 倍速 QA 音檔，未換音、未裁切。",
            "approval_note": "2026-09-14 使用者明確通過 Google Flow 原速完整影片並要求保存發布；Leo 台詞：I can open every box and find him fast. Mia 旁聽。未套用 0.8 倍速 QA 音檔，未換音、未裁切。",
            "approved_at": "2026-09-14T12:16:37+08:00",
            "quality": "Google Flow 1280×720 原速含原生音訊",
            "qa": {
              "sha256": "64d7ac36daf2a9d1f2297ffe2559248eb807b25959d5ce6f919e89abfad7913f",
              "duration_seconds": 6.016,
              "width": 1280,
              "height": 720,
              "audio_present": true,
              "approval": "user_approved",
              "speed": 1.0
            }
          }
        ],
        "display_title": "S03A｜Leo 提議、Mia 建議逐項檢查",
        "updated_at": "2026-09-19T13:45:05.071048+08:00",
        "dialogue": [
          {
            "speaker": "Leo",
            "en": "I can open every box and find him fast."
          },
          {
            "speaker": "Mia",
            "en": "Let's check one at a time."
          }
        ],
        "frame0": "generated/s03a_combined_v1/first.png",
        "actual_frame0": "generated/s03a_combined_v1/first.png",
        "final_frame": "generated/s03a_combined_v1/last.png",
        "contact_sheet": "generated/s03a_combined_v1/contact.jpg",
        "prompt_en": "Warm crisp 3D clay animation. Match the two children, classroom, open empty box and checklist in <Picture 1>. Locked medium two-shot, Mia left in pink holding the SAME checklist steadily in her left hand, Leo right in green. Natural continuous conversation. FIRST, Leo speaks with the young boy voice of <Audio 1>, exactly: \"I can open every box and find him fast.\" He only proposes his idea with a small hand gesture; he does not touch or open any boxes. Mia listens with lips closed. THEN Leo closes his mouth and listens while Mia replies using the young girl voice of <Audio 2>, exactly: \"Let's check one at a time.\" She gives one gentle calming palm gesture with her free right hand. The checklist remains in her left hand, not moving or changing design. Both finish with mouths closed and hands relaxed, ready to examine her list. Same light and camera throughout, no cuts or zoom. Bobo remains absent. Only the active speaker moves their mouth. No extra speech, text overlays, music or narrator. Do not read the checklist yet.",
        "production_note_before_approval": "原 S03A＋S03B 合併重新生成，同鏡頭輪流對話；待確認。",
        "approved_at": "2026-09-19T13:45:05.071048+08:00",
        "approved_by": "user"
      },
      {
        "order": "S03B",
        "label": "S03B｜先讀清單（原 S03C）",
        "title": "S03B｜先讀清單（原 S03C）",
        "segment": "hq_bobo_stepwise_regen",
        "file": "generated/s03b_continuation_v1/review.mp4",
        "video": "generated/s03b_continuation_v1/review.mp4",
        "source_video": "generated/s03b_continuation_v1/review.mp4",
        "note": "使用者已審核確認：目前更新上去的版本都可以使用。",
        "status": "generated",
        "review_status": "approved",
        "review_label": "已確認",
        "review_note": "使用者已審核確認：目前更新上去的版本都可以使用。",
        "quality": "1344 × 768 / 24 fps",
        "revision_history": [
          {
            "order": "S03B",
            "label": "S03C｜Mia 指 checklist：Read the checklist first（Mia 聲音修正版）",
            "title": "S03C｜Mia 指 checklist：Read the checklist first（Mia 聲音修正版）",
            "segment": "hq_bobo_stepwise_regen",
            "file": "generated/video/hq_story_bobo_20260828/clip03C_retry_voice_ref_mia_no_bgm_3s/ep01_hq_story_clip03C_original_visual_mia_voice_ref_audio_no_bgm.mp4",
            "video": "generated/video/hq_story_bobo_20260828/clip03C_retry_voice_ref_mia_no_bgm_3s/ep01_hq_story_clip03C_original_visual_mia_voice_ref_audio_no_bgm.mp4",
            "source_video": "generated/video/hq_story_bobo_20260828/clip03C_retry_voice_ref_mia_no_bgm_3s/ep01_hq_story_clip03C_original_visual_mia_voice_ref_audio_no_bgm.mp4",
            "contact_sheet": "generated/video/hq_story_bobo_20260828/clip03C_read_checklist_first_from_new_s03B_3s/ep01_hq_story_clip03C_contact.jpg",
            "note": "使用者先前反映怪怪的；本次僅批准新的 S03A，本段尚未重新批准，待複核／處理。",
            "status": "pending_review",
            "review_status": "pending_review",
            "review_label": "待複核",
            "review_note": "使用者先前反映怪怪的；本次僅批准新的 S03A，本段尚未重新批准，待複核／處理。",
            "quality": "HQ 1344x768 MiniMax H3"
          }
        ],
        "display_title": "S03B｜先讀清單（原 S03C）",
        "provider": "ComfyUI / MiniMax H3",
        "updated_at": "2026-09-19T13:45:05.071048+08:00",
        "dialogue": [
          {
            "speaker": "Mia",
            "en": "Read the checklist first."
          }
        ],
        "first_frame_input": "generated/s03a_combined_v1/last.png",
        "frame0": "generated/s03b_continuation_v1/first.png",
        "actual_frame0": "generated/s03b_continuation_v1/first.png",
        "final_frame": "generated/s03b_continuation_v1/last.png",
        "contact_sheet": "generated/s03b_continuation_v1/contact.jpg",
        "prompt_en": "Continue this exact image as a single continuous locked-camera clay animation shot. Same classroom, same lighting, same children, same open empty cardboard box and SAME checklist with same symbols. Mia, girl in pink on the left, is already holding the checklist in her left hand. She gently lifts her free right hand and points her index finger to the top item on that checklist. While pointing, ONLY MIA says exactly once in a clear young girl's voice: \"Read the checklist first.\" Start the line around 0.7 seconds and finish by 2.7 seconds. Leo, boy in green on the right, listens with mouth gently CLOSED for the entire shot, looking at the indicated list item. Mia finishes with lips closed, hand resting near the list. Minimal natural motion and gentle blinking. Do not move the camera or change composition. Do not move the box or invent props. No Bobo, extra speech, narrator, music, subtitles, titles or cuts.",
        "id": "ep01_s03b_original_c_20260918",
        "final_order": "story-clip-03B",
        "production_note_before_approval": "以新版 S03A 實際尾幀作真正首幀生成；Mia 指清單並說原 S03C 台詞。沿用原 Mia 聲音；待確認。",
        "approved_at": "2026-09-19T13:45:05.071048+08:00",
        "approved_by": "user"
      },
      {
        "order": "S03-FULL",
        "id": "hq_story_clip03ABC_full_no_s03d_20260902",
        "title": "S03-FULL｜新版 A＋B 連續對話",
        "label": "S03-FULL｜新版 A＋B 連續對話",
        "segment": "hq_bobo_stepwise_regen",
        "file": "generated/s03b_continuation_v1/s03_full.mp4",
        "video": "generated/s03b_continuation_v1/s03_full.mp4",
        "source_video": "generated/s03b_continuation_v1/s03_full.mp4",
        "status": "generated",
        "review_status": "approved",
        "review_label": "已確認",
        "review_note": "使用者已審核確認：目前更新上去的版本都可以使用。",
        "note": "使用者已審核確認：目前更新上去的版本都可以使用。",
        "revision_history": [
          {
            "order": "S03-FULL",
            "id": "hq_story_clip03ABC_full_no_s03d_20260902",
            "title": "S03-FULL｜舊串接未同步新 S03A｜待重組",
            "label": "S03-FULL｜舊串接未同步新 S03A｜待重組",
            "segment": "hq_bobo_stepwise_regen",
            "file": "generated/video/hq_story_bobo_20260828/assembled/ep01_hq_story_clip03ABC_full_no_s03d_20260902.mp4",
            "video": "generated/video/hq_story_bobo_20260828/assembled/ep01_hq_story_clip03ABC_full_no_s03d_20260902.mp4",
            "source_video": "generated/video/hq_story_bobo_20260828/assembled/ep01_hq_story_clip03ABC_full_no_s03d_20260902.mp4",
            "review_sheet": "generated/video/hq_story_bobo_20260828/assembled/ep01_hq_story_clip03ABC_full_no_s03d_20260902_contact.jpg",
            "contact_sheet": "generated/video/hq_story_bobo_20260828/assembled/ep01_hq_story_clip03ABC_full_no_s03d_20260902_contact.jpg",
            "status": "needs_reassembly",
            "review_status": "needs_reassembly",
            "review_label": "需更新／待重組",
            "review_note": "舊串接仍包含舊 S03A；新的 Google Flow S03A 已確認，但本次未重組。需更新／待重組，不代表已同步完成。",
            "note": "舊串接仍包含舊 S03A；新的 Google Flow S03A 已確認，但本次未重組。需更新／待重組，不代表已同步完成。"
          }
        ],
        "display_title": "S03-FULL｜新版 A＋B 連續對話",
        "provider": "ComfyUI / MiniMax H3",
        "quality": "1344 × 768 / 24 fps",
        "updated_at": "2026-09-19T13:45:05.071048+08:00",
        "contact_sheet": "generated/s03b_continuation_v1/s03_full_contact.jpg",
        "prompt_en": "Continue this exact image as a single continuous locked-camera clay animation shot. Same classroom, same lighting, same children, same open empty cardboard box and SAME checklist with same symbols. Mia, girl in pink on the left, is already holding the checklist in her left hand. She gently lifts her free right hand and points her index finger to the top item on that checklist. While pointing, ONLY MIA says exactly once in a clear young girl's voice: \"Read the checklist first.\" Start the line around 0.7 seconds and finish by 2.7 seconds. Leo, boy in green on the right, listens with mouth gently CLOSED for the entire shot, looking at the indicated list item. Mia finishes with lips closed, hand resting near the list. Minimal natural motion and gentle blinking. Do not move the camera or change composition. Do not move the box or invent props. No Bobo, extra speech, narrator, music, subtitles, titles or cuts.",
        "production_note_before_approval": "新版 S03A＋S03B 串接，原三段已整併為兩段；待確認。",
        "approved_at": "2026-09-19T13:45:05.071048+08:00",
        "approved_by": "user"
      },
      {
        "order": "S04A",
        "id": "ep01_s04a_redo_20260919",
        "title": "S04A｜開箱遇阻，隨即求助",
        "label": "S04A｜開箱遇阻，隨即求助",
        "display_title": "S04A｜開箱遇阻，隨即求助",
        "file": "generated/s04a_redo_v1/review.mp4",
        "video": "generated/s04a_redo_v1/review.mp4",
        "source_video": "generated/s04a_redo_v1/review.mp4",
        "frame0": "generated/s04a_redo_v1/first.png",
        "actual_frame0": "generated/s04a_redo_v1/first.png",
        "final_frame": "generated/s04a_redo_v1/last.png",
        "contact_sheet": "generated/s04a_redo_v1/contact.jpg",
        "status": "generated",
        "review_status": "approved",
        "review_label": "已確認",
        "review_note": "使用者已審核確認：目前更新上去的版本都可以使用。",
        "note": "使用者已審核確認：目前更新上去的版本都可以使用。",
        "provider": "ComfyUI / MiniMax H3",
        "quality": "1344 × 768 / 24 fps",
        "dialogue": [
          {
            "en": "It's stuck."
          }
        ],
        "prompt_en": "Crisp warm clay animation, continuous locked medium two-shot from this exact starting frame. Mia, the girl in pink on the left, tries once to lift the front edge of the taped blue box lid with both hands. The sealed lid resists and remains firmly closed. During this small frustrated tug she naturally says exactly \"It's stuck.\" in a clear young girl's voice. She immediately lets go and turns toward Leo for help, lowering both hands clear of the box. Leo, the boy in green on the right, watches with lips closed, then glances toward the small blue cutter lying on the table. Natural breathing, blinking and small responsive movements throughout. One fluid action, no repeated tugging, no frozen pauses, no slow motion. Box remains sealed with the same tape, cutter stays on table, no new objects. Preserve camera, room, colors and proportions. No subtitles, narrator, music, extra dialogue or speech from Leo.",
        "updated_at": "2026-09-19T13:45:05.071048+08:00",
        "production_note_before_approval": "全新生成畫面，無定格補秒；沿用既有角色配音重新對齊。台詞與接點已核對，表演／嘴型待確認。",
        "approved_at": "2026-09-19T13:45:05.071048+08:00",
        "approved_by": "user"
      },
      {
        "order": "S04B",
        "id": "ep01_s04b_redo_20260919",
        "title": "S04B｜先拿起美工刀・詢問是否幫忙",
        "label": "S04B｜先拿起美工刀・詢問是否幫忙",
        "display_title": "S04B｜先拿起美工刀・詢問是否幫忙",
        "file": "generated/s04b_tool_offer_v5/review.mp4",
        "video": "generated/s04b_tool_offer_v5/review.mp4",
        "source_video": "generated/s04b_tool_offer_v5/review.mp4",
        "frame0": "generated/s04b_tool_offer_v5/first.png",
        "actual_frame0": "generated/s04b_tool_offer_v5/first.png",
        "final_frame": "generated/s04b_tool_offer_v5/last.png",
        "contact_sheet": "generated/s04b_tool_offer_v5/contact.jpg",
        "status": "generated",
        "review_status": "pending_review",
        "review_label": "待確認",
        "review_note": "S04B 已重生成：Leo 先拿起美工刀向 Mia 示意，再問 Need help?；Mia 回答 Good idea. 後才割第一側膠帶。沿用最新原生配音，整段校色，首尾接續 S04A/S04C。新版待確認。",
        "note": "S04B 已重生成：Leo 先拿起美工刀向 Mia 示意，再問 Need help?；Mia 回答 Good idea. 後才割第一側膠帶。沿用最新原生配音，整段校色，首尾接續 S04A/S04C。新版待確認。",
        "provider": "ComfyUI / MiniMax H3",
        "quality": "1344 × 768 / 24 fps",
        "dialogue": [
          {
            "en": "Need help?"
          },
          {
            "en": "Good idea."
          }
        ],
        "prompt_en": "Single continuous locked medium camera shot in the same clay-animation classroom. Mia pink LEFT, Leo teal RIGHT, closed blue lidded box with two yellow tape strips on table, one blue utility cutter lying on table beside Leo as first frame. Keep the exact faces, clothes, framing, neutral warm daylight and exposure. No camera movement, no cuts. Clear causally ordered pantomime: FIRST, Leo looks down at the blue cutter and immediately reaches to grasp its BLUE HANDLE. He visibly lifts this one real cutter off the table, leaving its former table position EMPTY. By about 1 second the cutter is fully in his hand. SECOND, while HOLDING THE CUTTER clearly visible above the tabletop beside the box, Leo looks at Mia and offers the tool with a small calm lift, saying \"Need help?\" around 1.2 seconds. This means offering to use this cutter to open the tape. He must already be holding the cutter BEFORE asking, not an empty-handed gesture. Cutter points away from Mia, no waving, no passing. THIRD, Mia looks at the cutter in his hand, nods and smiles, saying \"Good idea.\" around 2.4 seconds. Leo listens mouth closed, still holding the tool. FOURTH, only after her answer, Leo looks down and carefully lowers the SAME cutter to the RIGHT-HAND visible tape at the box lid seam. He braces lid with free hand and draws blade horizontally across only this right tape. Finish in supplied last-frame position: cutter in his hand at right tape seam, other tape still intact, lid closed. Natural normal-speed movement, one cutter throughout, anatomically coherent hands, no duplicate tool, no extra objects. Only the actual speaking child moves lips. Clean English dialogue only those two sentences, NO music, NO additional speech. No orange color drift.",
        "updated_at": "2026-09-19T15:19:54.865188+08:00",
        "first_frame_input": "generated/s04a_redo_v1/last.png",
        "duration_seconds": 5.166666666666667,
        "reference_images": [
          "generated/s04a_redo_v1/last.png",
          "generated/s04b_color_v2/identity_target.png"
        ],
        "voice_reference_source": "S03 Mia/Leo fixed F5-TTS references",
        "prompt_zh_tw": "Leo 先從桌上拿起藍色美工刀，拿在手上向 Mia 示意並問 Need help?；Mia 看著工具點頭回答 Good idea.；Leo 才把刀移到箱子右側封條切開，另一側仍封住。",
        "qa": {
          "dialogue_exact": true,
          "audio_timing": {
            "start_time": 0.0,
            "decoded_duration": 5.184,
            "video_duration": 5.166667,
            "valid": true
          },
          "color_reference": "S04A",
          "color_error_before": 3.220878136200717,
          "color_error_after": 0.8991935483870968,
          "color_encoding": "BT.709",
          "voice_method": "Fixed S03 character references, F5-TTS"
        },
        "production_note_before_approval": "本段已重新生成，整段以 S04A 同一背景基準校正亮度與色偏，再取校正後尾幀接續；固定 S03 角色聲音參考。Leo 詢問是否需要幫忙，Mia 同意；Leo 拿起美工刀，割開右側可見箱面的膠帶。另一側仍封住。 成片待確認。",
        "action": "Leo 先從桌上拿起藍色美工刀，拿在手上向 Mia 示意並問 Need help?；Mia 看著工具點頭回答 Good idea.；Leo 才把刀移到箱子右側封條切開，另一側仍封住。",
        "target_seconds": 5.166666666666667
      },
      {
        "order": "S04C",
        "id": "ep01_s04c_redo_20260919",
        "title": "S04C｜割開另一側・收妥工具",
        "label": "S04C｜割開另一側・收妥工具",
        "display_title": "S04C｜割開另一側・收妥工具",
        "file": "generated/s04c_color_v2/review.mp4",
        "video": "generated/s04c_color_v2/review.mp4",
        "source_video": "generated/s04c_color_v2/review.mp4",
        "frame0": "generated/s04c_color_v2/first.png",
        "actual_frame0": "generated/s04c_color_v2/first.png",
        "final_frame": "generated/s04c_color_v2/last.png",
        "contact_sheet": "generated/s04c_color_v2/contact.jpg",
        "status": "generated",
        "review_status": "approved",
        "review_label": "已確認",
        "review_note": "使用者已審核確認：目前更新上去的版本都可以使用。",
        "note": "使用者已審核確認：目前更新上去的版本都可以使用。",
        "provider": "ComfyUI / MiniMax H3",
        "quality": "1344 × 768 / 24 fps",
        "dialogue": [
          {
            "en": "All set."
          }
        ],
        "prompt_en": "Single continuous locked-camera 3D animated classroom shot, same medium framing as first frame, no cut, no zoom, no camera motion. Mia pink LEFT, Leo teal green RIGHT. Exact original neutral warm daylight and stable beige walls, blue box, pink and teal sweaters. No progressive orange tint or exposure change. Natural gentle movement, no long pauses. NO MUSIC, clean English dialogue, no extra words. Continue immediately with Leo finishing the cut on the RIGHT tape from previous shot. In the first half, he carefully reaches the cutter ACROSS to the OTHER tape on the LEFT-HAND visible box face and draws its short blade horizontally through that SECOND yellow tape exactly at the lid seam. The blade must visibly touch and traverse this left tape. Both tape strips now have thin visible horizontal slits at lid seam. The lid stays CLOSED throughout. Leo retracts blade, sets blue cutter flat on table at right, releases it, and says \"All set.\" in the last second with a satisfied smile. Mia watches with hands safely clear, silent. Neither child opens lid yet. Keep box stationary; preserve two tape strips. This shot explicitly completes cutting the second tape, not repeating the first cut.",
        "updated_at": "2026-09-19T13:45:05.071048+08:00",
        "first_frame_input": "generated/s04b_color_v2/last.png",
        "duration_seconds": 5.166667,
        "reference_images": [
          "generated/s04a_redo_v1/last.png",
          "generated/s04c_color_v2/identity_target.png"
        ],
        "voice_reference_source": "S03 Mia/Leo fixed F5-TTS references",
        "prompt_zh_tw": "Leo 將刀移到左側可見箱面，割開第二條膠帶，收刀並放回桌面，才說 All set.。箱蓋保持關閉。",
        "qa": {
          "dialogue_exact": true,
          "audio_timing": {
            "start_time": 0.0,
            "decoded_duration": 5.184,
            "video_duration": 5.166667,
            "valid": true
          },
          "color_reference": "S04A",
          "color_error_before": 1.939068100358423,
          "color_error_after": 0.953405017921147,
          "color_encoding": "BT.709",
          "voice_method": "Fixed S03 character references, F5-TTS"
        },
        "production_note_before_approval": "本段已重新生成，整段以 S04A 同一背景基準校正亮度與色偏，再取校正後尾幀接續；固定 S03 角色聲音參考。Leo 將刀移到左側可見箱面，割開第二條膠帶，收刀並放回桌面，才說 All set.。箱蓋保持關閉。 成片待確認。",
        "approved_at": "2026-09-19T13:45:05.071048+08:00",
        "approved_by": "user"
      },
      {
        "order": "S04D",
        "id": "ep01_s04d_redo_20260919",
        "title": "S04D｜開箱找到 Bobo・擊掌",
        "label": "S04D｜開箱找到 Bobo・擊掌",
        "display_title": "S04D｜開箱找到 Bobo・擊掌",
        "file": "generated/s04d_color_v2/review.mp4",
        "video": "generated/s04d_color_v2/review.mp4",
        "source_video": "generated/s04d_color_v2/review.mp4",
        "frame0": "generated/s04d_color_v2/first.png",
        "actual_frame0": "generated/s04d_color_v2/first.png",
        "final_frame": "generated/s04d_color_v2/last.png",
        "contact_sheet": "generated/s04d_color_v2/contact.jpg",
        "status": "generated",
        "review_status": "approved",
        "review_label": "已確認",
        "review_note": "使用者已審核確認：目前更新上去的版本都可以使用。",
        "note": "使用者已審核確認：目前更新上去的版本都可以使用。",
        "provider": "ComfyUI / MiniMax H3",
        "quality": "1344 × 768 / 24 fps",
        "dialogue": [
          {
            "en": "Found it! High five!"
          }
        ],
        "prompt_en": "Single continuous locked-camera 3D animated classroom shot, same medium framing as first frame, no cut, no zoom, no camera motion. Mia pink LEFT, Leo teal green RIGHT. Exact original neutral warm daylight and stable beige walls, blue box, pink and teal sweaters. No progressive orange tint or exposure change. Natural gentle movement, no long pauses. NO MUSIC, clean English dialogue, no extra words. Both yellow tape strips have already been completely cut across lid seams, and the utility cutter is already set down safely at right and never touched. Leo lifts the loose blue lid fully off with both hands, puts it flat on the left foreground tabletop beside the checklist. Do NOT make lid disappear or morph into flaps. They lean eyes down into box. Bobo lies deep in box completely below the front wall, not visible from this low camera angle. No toy emerges, no autonomous motion or face. At about 2.5 seconds Leo smiles and says \"Found it! High five!\" They raise their near hands and meet palms for one happy high-five above box as in end frame. Box remains stationary. Physical sequence: remove loose lid, set lid left, look inside, speak, high five. Only Leo speaks.",
        "updated_at": "2026-09-19T13:45:05.071048+08:00",
        "first_frame_input": "generated/s04c_color_v2/last.png",
        "duration_seconds": 5.166667,
        "reference_images": [
          "generated/s04a_redo_v1/last.png",
          "generated/s04d_color_v2/identity_target.png",
          "images/reference/final_story_bobo/ep01_bobo_bobo_ref_20260822.png"
        ],
        "voice_reference_source": "S03 Mia/Leo fixed F5-TTS references",
        "prompt_zh_tw": "兩側封條均割斷、工具已放下後，兩人一起移開箱蓋，由 Mia 放到左邊桌上。兩人向箱內看，找到 Bobo 後擊掌。",
        "qa": {
          "dialogue_exact": true,
          "audio_timing": {
            "start_time": 0.0,
            "decoded_duration": 5.184,
            "video_duration": 5.166667,
            "valid": true
          },
          "color_reference": "S04A",
          "color_error_before": 3.1769713261648747,
          "color_error_after": 1.314964157706093,
          "color_encoding": "BT.709",
          "voice_method": "Fixed S03 character references, F5-TTS"
        },
        "production_note_before_approval": "本段已重新生成，整段以 S04A 同一背景基準校正亮度與色偏，再取校正後尾幀接續；固定 S03 角色聲音參考。兩側封條均割斷、工具已放下後，兩人一起移開箱蓋，由 Mia 放到左邊桌上。兩人向箱內看，找到 Bobo 後擊掌。 成片待確認。",
        "approved_at": "2026-09-19T13:45:05.071048+08:00",
        "approved_by": "user"
      },
      {
        "order": "S04E",
        "id": "ep01_s04e_redo_20260919",
        "title": "S04E｜提醒小心・雙手伸入箱內",
        "label": "S04E｜提醒小心・雙手伸入箱內",
        "display_title": "S04E｜提醒小心・雙手伸入箱內",
        "file": "generated/s04e_color_v2/review.mp4",
        "video": "generated/s04e_color_v2/review.mp4",
        "source_video": "generated/s04e_color_v2/review.mp4",
        "frame0": "generated/s04e_color_v2/first.png",
        "actual_frame0": "generated/s04e_color_v2/first.png",
        "final_frame": "generated/s04e_color_v2/last.png",
        "contact_sheet": "generated/s04e_color_v2/contact.jpg",
        "status": "generated",
        "review_status": "approved",
        "review_label": "已確認",
        "review_note": "使用者已審核確認：目前更新上去的版本都可以使用。",
        "note": "使用者已審核確認：目前更新上去的版本都可以使用。",
        "provider": "ComfyUI / MiniMax H3",
        "quality": "1344 × 768 / 24 fps",
        "dialogue": [
          {
            "en": "I'll take it out."
          },
          {
            "en": "Slow down. Be careful. It might break."
          }
        ],
        "prompt_en": "Single continuous locked-camera 3D animated classroom shot, same medium framing as first frame, no cut, no zoom, no camera motion. Mia pink LEFT, Leo teal green RIGHT. Exact original neutral warm daylight and stable beige walls, blue box, pink and teal sweaters. No progressive orange tint or exposure change. Natural gentle movement, no long pauses. NO MUSIC, clean English dialogue, no extra words. Starting from their high-five, they lower hands naturally. Leo looks down into open box and says \"I'll take it out.\" He slowly reaches BOTH hands down just inside box without lifting anything yet. Mia raises one gentle palm-down caution gesture, says clearly \"Slow down. Be careful. It might break.\" Leo pauses reaching and listens. The toy Bobo is COMPLETELY OCCLUDED beneath the front blue box wall the entire shot. No head or face above rim, no autonomous toy motion, no rising or jumping. The box, lid on left table, checklist and cutter on right stay absolutely stationary. By last frame Leo's hands are inside box ready to grasp the passive toy, Mia's caution hand near chest. Exact alternating speaker lip sync; Leo mouth still while Mia speaks.",
        "updated_at": "2026-09-19T13:45:05.071048+08:00",
        "first_frame_input": "generated/s04d_color_v2/last.png",
        "reference_images": [
          "generated/s04a_redo_v1/last.png",
          "generated/s04e_color_v2/identity_target.png",
          "images/reference/final_story_bobo/ep01_bobo_bobo_ref_20260822.png"
        ],
        "voice_reference_source": "S03 Mia/Leo fixed F5-TTS references",
        "duration_seconds": 5.166667,
        "prompt_zh_tw": "兩人放下擊掌的手；Leo 要伸手拿，Mia 提醒放慢、小心。Bobo 留在箱壁下方，沒有自行動作。",
        "qa": {
          "dialogue_exact": true,
          "audio_timing": {
            "start_time": 0.0,
            "decoded_duration": 5.184,
            "video_duration": 5.166667,
            "valid": true
          },
          "color_reference": "S04A",
          "color_error_before": 3.8264367816091953,
          "color_error_after": 0.7873563218390804,
          "color_encoding": "BT.709",
          "voice_method": "Fixed S03 character references, F5-TTS"
        },
        "production_note_before_approval": "本段已重新生成，整段以 S04A 同一背景基準校正亮度與色偏，再取校正後尾幀接續；固定 S03 角色聲音參考。兩人放下擊掌的手；Leo 要伸手拿，Mia 提醒放慢、小心。Bobo 留在箱壁下方，沒有自行動作。 成片待確認。",
        "approved_at": "2026-09-19T13:45:05.071048+08:00",
        "approved_by": "user"
      },
      {
        "order": "S04F",
        "id": "ep01_s04f_redo_20260919",
        "title": "S04F｜雙手慢慢抱出 Bobo",
        "label": "S04F｜雙手慢慢抱出 Bobo",
        "display_title": "S04F｜雙手慢慢抱出 Bobo",
        "file": "generated/s04f_character_v3/review.mp4",
        "video": "generated/s04f_character_v3/review.mp4",
        "source_video": "generated/s04f_character_v3/review.mp4",
        "frame0": "generated/s04f_character_v3/first.png",
        "actual_frame0": "generated/s04f_character_v3/first.png",
        "final_frame": "generated/s04f_character_v3/last.png",
        "contact_sheet": "generated/s04f_character_v3/contact.jpg",
        "status": "generated",
        "review_status": "approved",
        "review_label": "已確認",
        "review_note": "使用者已審核確認：目前更新上去的版本都可以使用。",
        "note": "使用者已審核確認：目前更新上去的版本都可以使用。",
        "provider": "ComfyUI / MiniMax H3",
        "quality": "1344 × 768 / 24 fps",
        "dialogue": [
          {
            "en": "Okay, I will take Bobo out slowly and carefully."
          }
        ],
        "prompt_en": "One continuous locked-camera 3D animated classroom shot. Picture 1 is the exact opening and Picture 2 the ending composition. Picture 3 is the authoritative Bobo character design, not a scene. Same Mia pink LEFT and Leo green RIGHT, blue open box and lid on table. Stable neutral warm daylight, no exposure drift, no orange tint, no camera motion, no cut. Leo says naturally and continuously: Okay, I will take Bobo out slowly and carefully. From inside the box he slowly lifts Bobo with BOTH hands supporting its bottom and sides, up to the position in Picture 2. Bobo faces the CAMERA as soon as it emerges. Preserve the official compact plump beige plush: very wide round fuzzy head, three short fat rounded tufts, solid BLACK BEAD EYES with no white sclera and NO eyelids, tiny stitched smile, plump pear-shaped body nearly as wide as head, no visible neck, very short stubby feet and short resting arms. Thick red KNITTED scarf wrapped around neck with ONE BROAD FRINGED TAIL and GOLD BELL on the FRONT. Bobo is a completely UNPOWERED inert stuffed toy, its stitched face is fixed, eyes never blink, no talking or independent head, arm or leg motion. Its position changes ONLY because Leo's two hands carry it. Leo lifts without squeezing or deforming the toy. Mia listens silently, mouth closed, hands settle near chest. Leo's mouth alone speaks. The box, lid, cutter and room remain stable. NO MUSIC, no other dialogue. Gentle continuous movement without unnatural freeze. Never transform into a skinny humanoid, long neck, long limbs, round white eyes or a narrow red ribbon.",
        "updated_at": "2026-09-19T13:45:05.071048+08:00",
        "first_frame_input": "generated/s04e_color_v2/last.png",
        "reference_images": [
          "generated/s04a_redo_v1/last.png",
          "generated/s04f_character_v3/identity_target.png",
          "images/reference/final_story_bobo/ep01_bobo_bobo_ref_20260822.png"
        ],
        "voice_reference_source": "S03 Mia/Leo fixed F5-TTS references",
        "duration_seconds": 5.166667,
        "prompt_zh_tw": "Leo 雙手托住 Bobo 底部與身體，慢慢從箱內抱出。Bobo 正面朝向鏡頭，尚未供電，只隨 Leo 的雙手移動。",
        "qa": {
          "dialogue_exact": true,
          "audio_timing": {
            "start_time": 0.0,
            "decoded_duration": 5.184,
            "video_duration": 5.166667,
            "valid": true
          },
          "color_reference": "generated/s04a_redo_v1/last.png",
          "color_error_before": 5.62486602357985,
          "color_error_after": 0.7845659163987139,
          "color_encoding": "BT.709",
          "identity_reference_method": "Qwen third image plus latent first/last frame anchors; not an R2V identity latent"
        },
        "production_note_before_approval": "已全新生成；整段對照固定場景母圖校正亮度與色偏，再取校正後尾幀接續。正式 Bobo 角色圖直接加入影像理解條件，另設首尾畫面約束；使用固定 S03 角色配音參考。Leo 雙手托住 Bobo 底部與身體，慢慢從箱內抱出。Bobo 正面朝向鏡頭，尚未供電，只隨 Leo 的雙手移動。 待確認。",
        "approved_at": "2026-09-19T13:45:05.071048+08:00",
        "approved_by": "user"
      },
      {
        "order": "S04-FULL",
        "title": "S04-FULL｜全新六段連續版",
        "file": "generated/s04_redo_full/review.mp4",
        "video": "generated/s04_redo_full/review.mp4",
        "source_video": "generated/s04_redo_full/review.mp4",
        "contact_sheet": "generated/s04_redo_full/contact.jpg",
        "status": "generated",
        "review_status": "pending_review",
        "review_label": "待確認",
        "review_note": "S04B 已重生成：Leo 先拿起美工刀向 Mia 示意，再問 Need help?；Mia 回答 Good idea. 後才割第一側膠帶。沿用最新原生配音，整段校色，首尾接續 S04A/S04C。新版待確認。",
        "updated_at": "2026-09-19T15:19:54.865188+08:00",
        "label": "S04-FULL｜全新六段連續版",
        "quality": "1344 × 768 / 24 fps",
        "provider": "ComfyUI / MiniMax H3",
        "duration_seconds": 28.875,
        "production_note_before_approval": "已納入新版 S04F 或 S05 五段；逐段整片校色、正式角色圖影像条件、固定角色配音。",
        "note": "S04B 已重生成：Leo 先拿起美工刀向 Mia 示意，再問 Need help?；Mia 回答 Good idea. 後才割第一側膠帶。沿用最新原生配音，整段校色，首尾接續 S04A/S04C。新版待確認。"
      },
      {
        "order": "S05A",
        "id": "ep01_s05a_redo_20260919",
        "title": "S05A｜檢查 Bobo・發現沒有電池",
        "label": "S05A｜檢查 Bobo・發現沒有電池",
        "display_title": "S05A｜檢查 Bobo・發現沒有電池",
        "file": "generated/s05a_color_v3/review.mp4",
        "video": "generated/s05a_color_v3/review.mp4",
        "source_video": "generated/s05a_color_v3/review.mp4",
        "frame0": "generated/s05a_color_v3/first.png",
        "actual_frame0": "generated/s05a_color_v3/first.png",
        "final_frame": "generated/s05a_color_v3/last.png",
        "contact_sheet": "generated/s05a_color_v3/contact.jpg",
        "status": "generated",
        "review_status": "approved",
        "review_label": "已確認",
        "review_note": "使用者已審核確認：目前更新上去的版本都可以使用。",
        "note": "使用者已審核確認：目前更新上去的版本都可以使用。",
        "provider": "ComfyUI / MiniMax H3",
        "quality": "1344 × 768 / 24 fps",
        "dialogue": [
          {
            "speaker": "Leo",
            "en": "Let's check Bobo."
          },
          {
            "speaker": "Leo",
            "en": "Bobo has no battery."
          }
        ],
        "prompt_en": "One continuous locked-camera 3D animated classroom shot, exact opening Picture 1 and ending Picture 2; Picture 3 official Bobo design reference only. Leo green LEFT, Mia pink RIGHT. Preserve camera, framing, neutral warm daylight, skin and sweater colors, no exposure or white balance shift. No cut, pan or zoom. Bobo is a compact plump beige fuzzy stuffed toy with broad round head, three fat short rounded tufts, no neck, very short oval feet, short resting arms, thick red knitted scarf. BACK has no scarf bow or tail; FRONT has one broad fringed tail and gold bell. No deformation, long limbs, human eyes or extra fingers. Natural continuous child movement, no unnatural pauses. NO MUSIC. Leo says \"Let's check Bobo.\" at the start. With one arm supporting Bobo, his free hand releases the small latch and slowly flips the battery cover DOWN on its lower hinge, exposing ONE completely EMPTY vertical AA slot. He looks inside and says \"Bobo has no battery.\" Only Leo speaks, Mia watches silently with closed mouth. The single yellow AA battery remains untouched on table in front of Mia. End with empty slot clearly visible and cover hanging down. Black power switch above remains OFF. Toy remains back-facing and passive. No insertion or extra batteries.",
        "updated_at": "2026-09-19T13:45:05.071048+08:00",
        "prompt_zh_tw": "Leo 托住 Bobo，打開背面電池蓋，露出空的單顆電池槽；桌上的唯一一顆電池尚未移動。",
        "replaces": [
          "S05A",
          "S05B"
        ],
        "first_frame_input": "images/reference/s05_color_master_v3.png",
        "duration_seconds": 5.166667,
        "reference_images": [
          "images/reference/s05_color_master_v3.png",
          "generated/s05a_color_v3/identity_target.png",
          "images/reference/final_story_bobo/ep01_bobo_bobo_ref_20260822.png"
        ],
        "voice_reference_source": "S03 Mia/Leo fixed F5-TTS references",
        "qa": {
          "dialogue_exact": true,
          "audio_timing": {
            "start_time": 0.0,
            "decoded_duration": 5.184,
            "video_duration": 5.166667,
            "valid": true
          },
          "color_reference": "images/reference/s05_color_master_v3.png",
          "color_error_before": 3.407258064516129,
          "color_error_after": 1.2056451612903225,
          "color_encoding": "BT.709",
          "identity_reference_method": "Qwen third image plus latent first/last frame anchors; not an R2V identity latent"
        },
        "production_note_before_approval": "已全新生成；整段對照固定場景母圖校正亮度與色偏，再取校正後尾幀接續。正式 Bobo 角色圖直接加入影像理解條件，另設首尾畫面約束；使用固定 S03 角色配音參考。Leo 托住 Bobo，打開背面電池蓋，露出空的單顆電池槽；桌上的唯一一顆電池尚未移動。 待確認。",
        "approved_at": "2026-09-19T13:45:05.071048+08:00",
        "approved_by": "user"
      },
      {
        "order": "S05B",
        "id": "ep01_s05b_redo_20260919",
        "title": "S05B｜傳遞電池",
        "label": "S05B｜傳遞電池",
        "display_title": "S05B｜傳遞電池",
        "file": "generated/s05b_color_v3/review.mp4",
        "video": "generated/s05b_color_v3/review.mp4",
        "source_video": "generated/s05b_color_v3/review.mp4",
        "frame0": "generated/s05b_color_v3/first.png",
        "actual_frame0": "generated/s05b_color_v3/first.png",
        "final_frame": "generated/s05b_color_v3/last.png",
        "contact_sheet": "generated/s05b_color_v3/contact.jpg",
        "status": "generated",
        "review_status": "approved",
        "review_label": "已確認",
        "review_note": "使用者已審核確認：目前更新上去的版本都可以使用。",
        "note": "使用者已審核確認：目前更新上去的版本都可以使用。",
        "provider": "ComfyUI / MiniMax H3",
        "quality": "1344 × 768 / 24 fps",
        "dialogue": [
          {
            "speaker": "Mia",
            "en": "I have a battery."
          },
          {
            "speaker": "Leo",
            "en": "Pass it here."
          }
        ],
        "prompt_en": "One continuous locked-camera 3D animated classroom shot, exact opening Picture 1 and ending Picture 2; Picture 3 official Bobo design reference only. Leo green LEFT, Mia pink RIGHT. Preserve camera, framing, neutral warm daylight, skin and sweater colors, no exposure or white balance shift. No cut, pan or zoom. Bobo is a compact plump beige fuzzy stuffed toy with broad round head, three fat short rounded tufts, no neck, very short oval feet, short resting arms, thick red knitted scarf. BACK has no scarf bow or tail; FRONT has one broad fringed tail and gold bell. No deformation, long limbs, human eyes or extra fingers. Natural continuous child movement, no unnatural pauses. NO MUSIC. Mia says \"I have a battery.\" while lifting the ONE yellow AA battery from the tabletop with her nearer hand. Leo looks at her and says \"Pass it here.\" while extending his free hand. Mia passes the battery directly into Leo's fingertips and RELEASES it; her empty hand then withdraws. Leo ends holding the sole battery beside the empty open slot, NOT inserted. His other arm supports Bobo the entire time. Battery is no longer on table. Show one clean handoff, no duplication, no floating battery. Bobo stays back-facing with cover open, switch off. The speaker alone moves their mouth.",
        "updated_at": "2026-09-19T13:45:05.071048+08:00",
        "first_frame_input": "generated/s05a_color_v3/last.png",
        "prompt_zh_tw": "Mia 拿起桌上的唯一一顆電池，交到 Leo 手中並鬆手；Leo 接住，尚未裝入。",
        "replaces": [
          "S05C",
          "S05D"
        ],
        "duration_seconds": 5.166667,
        "reference_images": [
          "images/reference/s05_color_master_v3.png",
          "generated/s05b_color_v3/identity_target.png",
          "images/reference/final_story_bobo/ep01_bobo_bobo_ref_20260822.png"
        ],
        "voice_reference_source": "S03 Mia/Leo fixed F5-TTS references",
        "qa": {
          "dialogue_exact": true,
          "audio_timing": {
            "start_time": 0.0,
            "decoded_duration": 5.184,
            "video_duration": 5.166667,
            "valid": true
          },
          "color_reference": "images/reference/s05_color_master_v3.png",
          "color_error_before": 4.373655913978495,
          "color_error_after": 1.2482078853046594,
          "color_encoding": "BT.709",
          "identity_reference_method": "Qwen third image plus latent first/last frame anchors; not an R2V identity latent"
        },
        "production_note_before_approval": "已全新生成；整段對照固定場景母圖校正亮度與色偏，再取校正後尾幀接續。正式 Bobo 角色圖直接加入影像理解條件，另設首尾畫面約束；使用固定 S03 角色配音參考。Mia 拿起桌上的唯一一顆電池，交到 Leo 手中並鬆手；Leo 接住，尚未裝入。 待確認。",
        "approved_at": "2026-09-19T13:45:05.071048+08:00",
        "approved_by": "user"
      },
      {
        "order": "S05C",
        "id": "ep01_s05c_redo_20260919",
        "title": "S05C｜裝入電池・關上背蓋",
        "label": "S05C｜裝入電池・關上背蓋",
        "display_title": "S05C｜裝入電池・關上背蓋",
        "file": "generated/s05c_color_v3/review.mp4",
        "video": "generated/s05c_color_v3/review.mp4",
        "source_video": "generated/s05c_color_v3/review.mp4",
        "frame0": "generated/s05c_color_v3/first.png",
        "actual_frame0": "generated/s05c_color_v3/first.png",
        "final_frame": "generated/s05c_color_v3/last.png",
        "contact_sheet": "generated/s05c_color_v3/contact.jpg",
        "status": "generated",
        "review_status": "approved",
        "review_label": "已確認",
        "review_note": "使用者已審核確認：目前更新上去的版本都可以使用。",
        "note": "使用者已審核確認：目前更新上去的版本都可以使用。",
        "provider": "ComfyUI / MiniMax H3",
        "quality": "1344 × 768 / 24 fps",
        "dialogue": [],
        "prompt_en": "One continuous locked-camera 3D animated classroom shot, exact opening Picture 1 and ending Picture 2; Picture 3 official Bobo design reference only. Leo green LEFT, Mia pink RIGHT. Preserve camera, framing, neutral warm daylight, skin and sweater colors, no exposure or white balance shift. No cut, pan or zoom. Bobo is a compact plump beige fuzzy stuffed toy with broad round head, three fat short rounded tufts, no neck, very short oval feet, short resting arms, thick red knitted scarf. BACK has no scarf bow or tail; FRONT has one broad fringed tail and gold bell. No deformation, long limbs, human eyes or extra fingers. Natural continuous child movement, no unnatural pauses. NO MUSIC. SILENT shot, both children mouths CLOSED throughout, NO dialogue or vocal sounds. Leo uses his free hand to rotate the ONE yellow AA battery vertical with positive button UP, align it with the single vertical slot in Bobo's back, then press it fully inside. He then lifts the hinged cover up and gently clicks it CLOSED FLUSH. Show battery entering slot BEFORE cover closes. The battery disappears only inside its compartment. Mia lowers her hand and quietly watches. Other arm supports Bobo. Switch above compartment stays OFF; toy remains completely passive, back-facing. No activation, no extra battery, no hand passing through toy.",
        "updated_at": "2026-09-19T13:45:05.071048+08:00",
        "first_frame_input": "generated/s05b_color_v3/last.png",
        "prompt_zh_tw": "Leo 將電池轉正、完全放入電池槽，再蓋好背蓋。此段無對話，Bobo 尚未啟動。",
        "replaces": [
          "S05E"
        ],
        "duration_seconds": 4.458333,
        "reference_images": [
          "images/reference/s05_color_master_v3.png",
          "generated/s05c_color_v3/identity_target.png",
          "images/reference/final_story_bobo/ep01_bobo_bobo_ref_20260822.png"
        ],
        "voice_reference_source": "S03 Mia/Leo fixed F5-TTS references",
        "qa": {
          "dialogue_exact": true,
          "audio_timing": {
            "start_time": 0.0,
            "decoded_duration": 4.4586875,
            "video_duration": 4.458333,
            "valid": true
          },
          "color_reference": "images/reference/s05_color_master_v3.png",
          "color_error_before": 5.215472481827622,
          "color_error_after": 1.539460020768432,
          "color_encoding": "BT.709",
          "identity_reference_method": "Qwen third image plus latent first/last frame anchors; not an R2V identity latent"
        },
        "production_note_before_approval": "已全新生成；整段對照固定場景母圖校正亮度與色偏，再取校正後尾幀接續。正式 Bobo 角色圖直接加入影像理解條件，另設首尾畫面約束；使用固定 S03 角色配音參考。Leo 將電池轉正、完全放入電池槽，再蓋好背蓋。此段無對話，Bobo 尚未啟動。 待確認。",
        "approved_at": "2026-09-19T13:45:05.071048+08:00",
        "approved_by": "user"
      },
      {
        "order": "S05D",
        "id": "ep01_s05d_redo_20260919",
        "title": "S05D｜啟動開關・轉正放穩 Bobo",
        "label": "S05D｜啟動開關・轉正放穩 Bobo",
        "display_title": "S05D｜啟動開關・轉正放穩 Bobo",
        "file": "generated/s05d_color_v4/review.mp4",
        "video": "generated/s05d_color_v4/review.mp4",
        "source_video": "generated/s05d_color_v4/review.mp4",
        "frame0": "generated/s05d_color_v4/first.png",
        "actual_frame0": "generated/s05d_color_v4/first.png",
        "final_frame": "generated/s05d_color_v4/last.png",
        "contact_sheet": "generated/s05d_color_v4/contact.jpg",
        "status": "generated",
        "review_status": "approved",
        "review_label": "已確認",
        "review_note": "使用者已審核確認：目前更新上去的版本都可以使用。",
        "note": "使用者已審核確認：目前更新上去的版本都可以使用。",
        "provider": "ComfyUI / MiniMax H3",
        "quality": "1344 × 768 / 24 fps",
        "dialogue": [
          {
            "speaker": "Leo",
            "en": "Ready? Go!"
          }
        ],
        "prompt_en": "One continuous locked-camera 3D animated classroom shot, exact opening Picture 1 and ending Picture 2; Picture 3 official Bobo design reference only. Leo green LEFT, Mia pink RIGHT. Preserve camera, framing, neutral warm daylight, skin and sweater colors, no exposure or white balance shift. No cut, pan or zoom. Bobo is a compact plump beige fuzzy stuffed toy with broad round head, three fat short rounded tufts, no neck, very short oval feet, short resting arms, thick red knitted scarf. BACK has no scarf bow or tail; FRONT has one broad fringed tail and gold bell. No deformation, long limbs, human eyes or extra fingers. Natural continuous child movement, no unnatural pauses. NO MUSIC. Bobo is a REAL INANIMATE PLUSH PROP, NOT an animated living character. Its glossy black eyes are solid SEWN-IN GLASS BEADS, fixed round solid objects, physically incapable of blinking or closing. Its mouth is a FIXED embroidered brown curved seam, incapable of opening. First, keep Bobo BACK FACING CAMERA exactly as Picture 1. Leo says \"Ready?\" while supporting its body. Then he moves his free index fingertip UP to the SMALL BLACK SWITCH visibly ABOVE the closed battery cover and BELOW the red scarf. He clearly slides that BLACK BACK SWITCH once while saying \"Go!\" at about 1.2 seconds. Never press the belly or battery cover. Only after operating the switch, Leo uses BOTH HANDS to physically rotate the entire toy around to face camera and lowers its tiny feet gently onto the table. All rotation is done by the child's hands, no morphing. End as Picture 2 with toy feet planted and Leo just withdrawing his hand. The toy face is visible only near the end, its glass bead eyes ALWAYS open and identical, fixed stitched smile, no facial animation at all. The toy is held steady while carried, then makes an almost imperceptible tiny motor wobble only after feet are planted. Leo and Mia may blink naturally but the toy NEVER blinks. Mia remains silent, mouth closed. No extra dialogue or music. Complete the switch operation BEFORE rotating the toy, so the real back switch contact is clearly seen.",
        "updated_at": "2026-09-19T13:45:05.071048+08:00",
        "first_frame_input": "generated/s05c_color_v3/last.png",
        "prompt_zh_tw": "Leo 先操作背面清楚可見的黑色開關，再用雙手轉正 Bobo 並放穩在桌上；啟動後才輕微機械擺動。",
        "replaces": [
          "S05F"
        ],
        "duration_seconds": 4.458333,
        "reference_images": [
          "images/reference/s05_color_master_v3.png",
          "generated/s05d_color_v4/identity_target.png",
          "images/reference/final_story_bobo/ep01_bobo_bobo_ref_20260822.png"
        ],
        "voice_reference_source": "S03 Mia/Leo fixed F5-TTS references",
        "qa": {
          "dialogue_exact": true,
          "audio_timing": {
            "start_time": 0.0,
            "decoded_duration": 4.4586875,
            "video_duration": 4.458333,
            "valid": true
          },
          "color_reference": "images/reference/s05_color_master_v3.png",
          "color_error_before": 6.872274143302181,
          "color_error_after": 1.4724818276220146,
          "color_encoding": "BT.709",
          "identity_reference_method": "Qwen third image plus latent first/last frame anchors; not an R2V identity latent",
          "local_eye_repair": "generated/s05d_color_v4/eye_repair.json"
        },
        "production_note_before_approval": "已全新生成；整段對照固定場景母圖校正亮度與色偏，再取校正後尾幀接續。正式 Bobo 角色圖直接加入影像理解條件，另設首尾畫面約束；使用固定 S03 角色配音參考。Leo 先操作背面清楚可見的黑色開關，再用雙手轉正 Bobo 並放穩在桌上；啟動後才輕微機械擺動。 待確認。 珠眼瑕疵已逐幀局部修補，保留人物、玩偶動作及原始時長。",
        "approved_at": "2026-09-19T13:45:05.071048+08:00",
        "approved_by": "user"
      },
      {
        "order": "S05E",
        "id": "ep01_s05e_redo_20260919",
        "title": "S05E｜成功啟動・互相鼓勵",
        "label": "S05E｜成功啟動・互相鼓勵",
        "display_title": "S05E｜成功啟動・互相鼓勵",
        "file": "generated/s05e_color_v3/review.mp4",
        "video": "generated/s05e_color_v3/review.mp4",
        "source_video": "generated/s05e_color_v3/review.mp4",
        "frame0": "generated/s05e_color_v3/first.png",
        "actual_frame0": "generated/s05e_color_v3/first.png",
        "final_frame": "generated/s05e_color_v3/last.png",
        "contact_sheet": "generated/s05e_color_v3/contact.jpg",
        "status": "generated",
        "review_status": "approved",
        "review_label": "已確認",
        "review_note": "使用者已審核確認：目前更新上去的版本都可以使用。",
        "note": "使用者已審核確認：目前更新上去的版本都可以使用。",
        "provider": "ComfyUI / MiniMax H3",
        "quality": "1344 × 768 / 24 fps",
        "dialogue": [
          {
            "speaker": "Leo",
            "en": "It works!"
          },
          {
            "speaker": "Mia",
            "en": "Good job!"
          }
        ],
        "prompt_en": "One continuous locked-camera 3D animated classroom shot, exact opening Picture 1 and ending Picture 2; Picture 3 official Bobo design reference only. Leo green LEFT, Mia pink RIGHT. Preserve camera, framing, neutral warm daylight, skin and sweater colors, no exposure or white balance shift. No cut, pan or zoom. Bobo is a compact plump beige fuzzy stuffed toy with broad round head, three fat short rounded tufts, no neck, very short oval feet, short resting arms, thick red knitted scarf. BACK has no scarf bow or tail; FRONT has one broad fringed tail and gold bell. No deformation, long limbs, human eyes or extra fingers. Natural continuous child movement, no unnatural pauses. NO MUSIC. Bobo is now powered, gently making a tiny slow mechanical side-to-side torso sway with both short feet planted firmly on table. Its bead eyes, stitched smile and head proportions remain FIXED, no blinking, mouth animation, waving or jumping. Leo smiles and says \"It works!\" Mia then looks at Leo and says \"Good job!\" and gives one small thumbs-up near chest. Leo lowers his hand to table. End with pleased shared smiles and Bobo still gently swaying. Only the speaking child's mouth moves, no overlap or extra speech. Bobo is an actual inanimate stuffed prop with two solid sewn-in GLASS BEADS for eyes, not an acting character. Those two round black beads stay identical and fully visible in EVERY FRAME; no eyelids exist, no blink, no eye squint or smile deformation. Embroidered mouth seam stays fixed. Only Mia and Leo have facial expressions. Tiny motor vibration affects the whole plush body only, never its face. Leo speaks first near 0.2 seconds; Mia answers near 1.5 seconds. Keep the final exchange concise and natural.",
        "updated_at": "2026-09-19T13:45:05.071048+08:00",
        "first_frame_input": "generated/s05d_color_v4/last.png",
        "prompt_zh_tw": "Bobo 雙腳留在桌面上輕微擺動；Leo 說 It works!，Mia 回 Good job!，兩人相視微笑。",
        "replaces": [
          "S05G",
          "S05H"
        ],
        "duration_seconds": 3.041667,
        "reference_images": [
          "images/reference/s05_color_master_v3.png",
          "generated/s05e_color_v3/identity_target.png",
          "images/reference/final_story_bobo/ep01_bobo_bobo_ref_20260822.png"
        ],
        "voice_reference_source": "S03 Mia/Leo fixed F5-TTS references",
        "qa": {
          "dialogue_exact": true,
          "audio_timing": {
            "start_time": 0.0,
            "decoded_duration": 3.0506875,
            "video_duration": 3.041667,
            "valid": true
          },
          "color_reference": "images/reference/s05_color_master_v3.png",
          "color_error_before": 5.493911719939117,
          "color_error_after": 1.52130898021309,
          "color_encoding": "BT.709",
          "identity_reference_method": "Qwen third image plus latent first/last frame anchors; not an R2V identity latent",
          "local_eye_repair": "generated/s05e_color_v3/eye_repair.json"
        },
        "production_note_before_approval": "已全新生成；整段對照固定場景母圖校正亮度與色偏，再取校正後尾幀接續。正式 Bobo 角色圖直接加入影像理解條件，另設首尾畫面約束；使用固定 S03 角色配音參考。Bobo 雙腳留在桌面上輕微擺動；Leo 說 It works!，Mia 回 Good job!，兩人相視微笑。 待確認。 珠眼瑕疵已逐幀局部修補，保留人物、玩偶動作及原始時長。",
        "approved_at": "2026-09-19T13:45:05.071048+08:00",
        "approved_by": "user"
      },
      {
        "order": "S05-FULL",
        "title": "S05-FULL｜全新五段整併版",
        "file": "generated/s05_redo_full/review.mp4",
        "video": "generated/s05_redo_full/review.mp4",
        "source_video": "generated/s05_redo_full/review.mp4",
        "contact_sheet": "generated/s05_redo_full/contact.jpg",
        "status": "generated",
        "review_status": "approved",
        "review_label": "已確認",
        "review_note": "使用者已審核確認：目前更新上去的版本都可以使用。",
        "updated_at": "2026-09-19T13:45:05.071048+08:00",
        "label": "S05-FULL｜全新五段整併版",
        "quality": "1344 × 768 / 24 fps",
        "provider": "ComfyUI / MiniMax H3",
        "duration_seconds": 22.291667,
        "production_note_before_approval": "已納入新版 S04F 或 S05 五段；逐段整片校色、正式角色圖影像条件、固定角色配音。",
        "note": "使用者已審核確認：目前更新上去的版本都可以使用。",
        "approved_at": "2026-09-19T13:45:05.071048+08:00",
        "approved_by": "user"
      }
    ],
    "video_segments": [],
    "current_focus": "目前上線的 S01–S05 故事片段、各段合輯與 85 秒完整影片，均已由使用者審核確認，可正式使用。",
    "current_workflow": "reference_only_new_camera_no_s04f_first_frame",
    "current_bobo_rescue_progress": {
      "progress_note": "generated/video/final_story_bobo_20260822/prompt_review_after_clipC_20260825/current_bobo_rescue_progress_20260825.md",
      "accepted": [
        "Clip C v7"
      ],
      "rejected": [
        "Clip D v7",
        "Clip D v8"
      ],
      "next": "Generate Clip D-G with Director plan B after user confirms workflow.",
      "segments": [
        {
          "order": "07",
          "label": "Clip C / p08 Almost there.：Bobo 從袋子救出",
          "segment": "cam03_bobo_rescue_power_check",
          "file": "generated/video/final_story_bobo_20260822/cam03_story_clipC_dialogue_timing_success_v7_12s_lowres/cam03_story_clipC_dialogue_timing_success_v7_12s_source.mp4",
          "note": "User accepted Clip C v7. Dialogue correct: It’s loose / Almost there / We got him. Bobo mostly passive enough for current candidate."
        },
        {
          "order": "08",
          "label": "Clip D / p14 Ready?：檢查 Bobo 電源開關",
          "segment": "cam03_bobo_rescue_power_check",
          "file": "",
          "note": "Previous D v7/v8 rejected: not continuous enough and Bobo still moved/changed expression. Next version will use Director plan B first_frame + segment continuity."
        },
        {
          "order": "09",
          "label": "Clip E / p09 Let’s go.：打開開關",
          "segment": "cam03_bobo_rescue_power_check",
          "file": "",
          "note": "Pending generation in Director plan B. Leo flips the switch; no autonomous Bobo reaction yet."
        },
        {
          "order": "10",
          "label": "Clip F / p15 It works!：指示燈亮，小機械反應",
          "segment": "cam03_bobo_rescue_power_check",
          "file": "",
          "note": "Pending generation in Director plan B. Only one tiny stiff mechanical response after power-on."
        },
        {
          "order": "11",
          "label": "Clip G / p10 High five!：Mia/Leo 慶祝",
          "segment": "cam03_bobo_rescue_power_check",
          "file": "",
          "note": "Pending generation in Director plan B. Mia and Leo high five; Bobo stays a supported toy."
        },
        {
          "id": "hq_story_clip09A_retry2_arm_not_waving_audio_lock_3s",
          "label": "09A retry2｜Bobo's arm is not waving.｜彩排時手臂不會揮動",
          "title": "S09A retry2｜Bobo's arm is not waving.",
          "status": "candidate_ready_for_user_review",
          "status_note": "S09A retry2 PASS: audio stutter fixed; Bobo arm remains down with scarf/string issue visible.",
          "final_sequence": "story-clip-09A",
          "final_order": "story-clip-09A",
          "duration_target": "3s",
          "main_action": "On the small stage, Leo tries the puppet control but Bobo’s arm stays down because the red scarf edge presses the string; problem remains unsolved.",
          "dialogue": [
            "Leo: Bobo's arm is not waving."
          ],
          "coverage_check": [
            "1344x768 / 24fps / 3.041667s",
            "STT pass: Bobo's arm is not waving.",
            "Demucs/BGM pass: no_vocals peak -35.64 dBFS / RMS -62.56 dBFS",
            "Refs verified in script: approved Mia, Leo, scene/stage, props, and Bobo refs; deliberate new camera cut, no previous first_frame.",
            "Visual PASS: only Mia/Leo and one Bobo puppet; arm stays down; scarf/control-string problem visible; no subtitles/text/extra child/duplicate puppet."
          ],
          "source_video": "generated/video/hq_story_bobo_20260828/clip09A_retry2_arm_not_waving_audio_lock_3s/ep01_hq_story_clip09A_retry2_arm_not_waving_audio_lock_3s_native_audio.mp4",
          "video": "generated/video/hq_story_bobo_20260828/clip09A_retry2_arm_not_waving_audio_lock_3s/ep01_hq_story_clip09A_retry2_arm_not_waving_audio_lock_3s_native_audio.mp4",
          "file": "generated/video/hq_story_bobo_20260828/clip09A_retry2_arm_not_waving_audio_lock_3s/ep01_hq_story_clip09A_retry2_arm_not_waving_audio_lock_3s_native_audio.mp4",
          "review_sheet": "generated/video/hq_story_bobo_20260828/clip09A_retry2_arm_not_waving_audio_lock_3s/ep01_hq_story_clip09A_contact.jpg",
          "contact_sheet": "generated/video/hq_story_bobo_20260828/clip09A_retry2_arm_not_waving_audio_lock_3s/ep01_hq_story_clip09A_contact.jpg",
          "frame0": "generated/video/hq_story_bobo_20260828/clip09A_retry2_arm_not_waving_audio_lock_3s/ep01_hq_story_clip09A_frame0.jpg",
          "start_key_image": "generated/video/hq_story_bobo_20260828/clip09A_retry2_arm_not_waving_audio_lock_3s/ep01_hq_story_clip09A_frame0.jpg",
          "final_frame": "generated/video/hq_story_bobo_20260828/clip09A_retry2_arm_not_waving_audio_lock_3s/ep01_hq_story_clip09A_final_frame.jpg",
          "end_key_image": "generated/video/hq_story_bobo_20260828/clip09A_retry2_arm_not_waving_audio_lock_3s/ep01_hq_story_clip09A_final_frame.jpg",
          "provider_prompt": "generated/video/hq_story_bobo_20260828/clip09A_retry2_arm_not_waving_audio_lock_3s/prompt.txt",
          "prompt_file": "generated/video/hq_story_bobo_20260828/clip09A_retry2_arm_not_waving_audio_lock_3s/prompt.txt",
          "qa_file": "generated/video/hq_story_bobo_20260828/clip09A_retry2_arm_not_waving_audio_lock_3s/ep01_hq_story_clip09A_retry2.qa.json",
          "summary_zh_tw": "切到小舞台彩排：Leo 操作 Bobo，但紅圍巾壓到控制線，Bobo 手臂沒有揮起來。",
          "qa_note": "Passed internal STT/BGM/visual review; ready for user review.",
          "review_status": "needs_review",
          "review_label": "待審核",
          "review_note": "等待你審核：S09A retry2，Bobo 手臂不會揮動，問題尚未修好。"
        },
        {
          "id": "hq_story_clip09B_try_again_free_string_audio_repair1",
          "label": "09B｜Try again.｜Mia 移開紅圍巾邊、準備再試",
          "title": "S09B｜Try again.｜free the control string",
          "status": "candidate_ready_for_user_review_voice_ref_audio_repaired",
          "status_note": "S09B visual PASS; native audio repeated line, replaced with one clean Try again line from approved no-BGM P05 source and silent tail.",
          "final_sequence": "story-clip-09B",
          "final_order": "story-clip-09B",
          "duration_target": "3s",
          "main_action": "Mia indicates/frees the red scarf edge from the control string while Leo holds the handle; Bobo is ready but has not waved yet.",
          "dialogue": [
            "Mia: Try again."
          ],
          "coverage_check": [
            "1344x768 / 24fps / 3.041667s",
            "Native STT failed with repeated Try again; repaired deliverable STT pass: Try again.",
            "Post-line tail silence: peak/RMS -inf after 1.65s",
            "Demucs/BGM pass on repaired deliverable: no_vocals peak -33.46 dBFS / RMS -63.67 dBFS",
            "Refs verified in script: true first_frame from S09A plus approved Mia, Leo, scene, props, and Bobo refs via MiniMaxH3DirectorConditioning.",
            "Visual PASS: only Mia/Leo/one Bobo puppet; red scarf/string/handle visible; Bobo arm remains down/no success wave; no subtitles/text/extra child/duplicate puppet."
          ],
          "source_video": "generated/video/hq_story_bobo_20260828/clip09B_try_again_free_string_3s/ep01_hq_story_clip09B_try_again_free_string_p05_audio_no_bgm_v2.mp4",
          "video": "generated/video/hq_story_bobo_20260828/clip09B_try_again_free_string_3s/ep01_hq_story_clip09B_try_again_free_string_p05_audio_no_bgm_v2.mp4",
          "file": "generated/video/hq_story_bobo_20260828/clip09B_try_again_free_string_3s/ep01_hq_story_clip09B_try_again_free_string_p05_audio_no_bgm_v2.mp4",
          "review_sheet": "generated/video/hq_story_bobo_20260828/clip09B_try_again_free_string_3s/ep01_hq_story_clip09B_contact.jpg",
          "contact_sheet": "generated/video/hq_story_bobo_20260828/clip09B_try_again_free_string_3s/ep01_hq_story_clip09B_contact.jpg",
          "frame0": "generated/video/hq_story_bobo_20260828/clip09B_try_again_free_string_3s/ep01_hq_story_clip09B_frame0.jpg",
          "start_key_image": "generated/video/hq_story_bobo_20260828/clip09B_try_again_free_string_3s/ep01_hq_story_clip09B_frame0.jpg",
          "final_frame": "generated/video/hq_story_bobo_20260828/clip09B_try_again_free_string_3s/ep01_hq_story_clip09B_final_frame.jpg",
          "end_key_image": "generated/video/hq_story_bobo_20260828/clip09B_try_again_free_string_3s/ep01_hq_story_clip09B_final_frame.jpg",
          "provider_prompt": "generated/video/hq_story_bobo_20260828/clip09B_try_again_free_string_3s/prompt.txt",
          "prompt_file": "generated/video/hq_story_bobo_20260828/clip09B_try_again_free_string_3s/prompt.txt",
          "qa_file": "generated/video/hq_story_bobo_20260828/clip09B_try_again_free_string_3s/ep01_hq_story_clip09B_audio_repair1.qa.json",
          "summary_zh_tw": "Mia 指出/移開壓住控制線的紅圍巾邊，鼓勵 Leo 再試一次；Bobo 還沒揮手。",
          "qa_note": "Passed internal STT/BGM/visual review after audio repair; ready for user review.",
          "review_status": "needs_review",
          "review_label": "待審核",
          "review_note": "等待你審核：S09B audio-repaired，Mia 說 Try again，控制線已可再試但 Bobo 尚未成功揮手。"
        }
      ]
    },
    "status_note": "S04A–S04D 與 S04-FULL 已依使用者確認標記完成；A→B、B→C 仍有些微跳動但可接受，C→D 無跳動。",
    "coverage_check": [
      "Visual: red block ahead before contact",
      "Visual: Mia raises stop hand before Leo touches block",
      "Visual: Leo stops/avoids safely",
      "Audio: Watch out starts around 0.33s",
      "Demucs no_vocals max -56.8 dBFS"
    ],
    "videos": [
      {
        "order": "S01-FULL",
        "label": "S01-FULL｜完整 3 秒接續修正版",
        "file": "generated/s01d_continuity_v1/s01_full.mp4",
        "video": "generated/s01d_continuity_v1/s01_full.mp4",
        "source_video": "generated/s01d_continuity_v1/s01_full.mp4",
        "review_status": "approved",
        "review_label": "已確認",
        "note": "使用者已審核確認：目前更新上去的版本都可以使用。",
        "review_note": "使用者已審核確認：目前更新上去的版本都可以使用。",
        "status": "generated",
        "revision_history": [
          {
            "order": "S01-FULL",
            "label": "S01-FULL｜Mia 無聲開口修正版",
            "file": "generated/fixes/s01d_silent_mia_20260918/s01_full_mia_fix.mp4",
            "video": "generated/fixes/s01d_silent_mia_20260918/s01_full_mia_fix.mp4",
            "source_video": "generated/fixes/s01d_silent_mia_20260918/s01_full_mia_fix.mp4",
            "review_sheet": "generated/fixes/s01d_silent_mia_20260918/s01_full_contact.jpg",
            "contact_sheet": "generated/fixes/s01d_silent_mia_20260918/s01_full_contact.jpg",
            "review_status": "pending_review",
            "review_label": "待審核",
            "note": "依使用者回報剪除 S01D 開頭 1 秒 Mia 無聲開口動作；保留 Leo 完整台詞。新版待確認。",
            "review_note": "依使用者回報剪除 S01D 開頭 1 秒 Mia 無聲開口動作；保留 Leo 完整台詞。新版待確認。",
            "status": "generated"
          }
        ],
        "title": "S01-FULL｜完整 3 秒接續修正版",
        "display_title": "S01-FULL｜完整 3 秒接續修正版",
        "provider": "ComfyUI / MiniMax H3",
        "quality": "1344 × 768 / 24 fps",
        "updated_at": "2026-09-19T13:45:05.071048+08:00",
        "contact_sheet": "generated/s01d_continuity_v1/s01_full_contact.jpg",
        "prompt_en": "A continuous locked-camera shot of the same two clay children and open empty cardboard box. Preserve the input image composition, identities, hands and lighting. The girl on the left has finished her question. She listens quietly: lips gently together, neutral worried face, no speaking movements. Her body stays still. The boy on the right looks at the empty box. At 1.3 seconds, ONLY THE BOY says exactly \"Bobo is not in the box.\" in a young boy voice, finishing by 2.9 seconds. His mouth articulates the sentence. Girl stays silent and still throughout. No gestures, camera moves, added objects, music, subtitles or other speech. The scene continues naturally from the input first frame.",
        "production_note_before_approval": "已撤回剪掉 1 秒的版本。此版以 S01C 實際尾幀生成，保留完整 3 秒；Mia 收起前句表情後安靜旁聽，Leo 沿用原有聲音並對齊新畫面。接點和台詞已核對，整段表演／嘴型待確認。",
        "approved_at": "2026-09-19T13:45:05.071048+08:00",
        "approved_by": "user"
      },
      {
        "order": "S01C",
        "label": "S01C｜retry6｜true S01B final frame｜What happened?",
        "file": "generated/video/hq_story_bobo_20260828/clip01C_true_s01b_final_no_paper_retry6_hands_away_3s/ep01_hq_story_clip01C_retry6_true_s01b_visual_old_mia_audio.mp4",
        "video": "generated/video/hq_story_bobo_20260828/clip01C_true_s01b_final_no_paper_retry6_hands_away_3s/ep01_hq_story_clip01C_retry6_true_s01b_visual_old_mia_audio.mp4",
        "source_video": "generated/video/hq_story_bobo_20260828/clip01C_true_s01b_final_no_paper_retry6_hands_away_3s/ep01_hq_story_clip01C_retry6_true_s01b_visual_old_mia_audio.mp4",
        "review_sheet": "generated/video/hq_story_bobo_20260828/clip01C_true_s01b_final_no_paper_retry6_hands_away_3s/ep01_hq_story_clip01C_retry6_true_s01b_contact.jpg",
        "contact_sheet": "generated/video/hq_story_bobo_20260828/clip01C_true_s01b_final_no_paper_retry6_hands_away_3s/ep01_hq_story_clip01C_retry6_true_s01b_contact.jpg",
        "start_key_image": "generated/video/hq_story_bobo_20260828/clip01C_true_s01b_final_no_paper_retry6_hands_away_3s/ep01_hq_story_clip01C_retry6_true_s01b_frame0.jpg",
        "end_key_image": "generated/video/hq_story_bobo_20260828/clip01C_true_s01b_final_no_paper_retry6_hands_away_3s/ep01_hq_story_clip01C_retry6_true_s01b_final_frame.png",
        "review_status": "approved",
        "review_label": "已確認",
        "note": "使用者已審核確認：目前更新上去的版本都可以使用。",
        "review_note": "使用者已審核確認：目前更新上去的版本都可以使用。",
        "approval_note": "使用者已確認：畫面可以，Leo 最後一句 ref-audio 修正版可以；S01C/S01D/S01-FULL 更新為已確認。",
        "approved_at": "2026-09-19T13:45:05.071048+08:00",
        "production_note_before_approval": "使用者已確認：畫面可以，Leo 最後一句 ref-audio 修正版可以；S01C/S01D/S01-FULL 更新為已確認。",
        "approved_by": "user",
        "updated_at": "2026-09-19T13:45:05.071048+08:00"
      },
      {
        "order": "S01D",
        "label": "S01D｜真首幀接續・Mia 安靜旁聽",
        "file": "generated/s01d_continuity_v1/review.mp4",
        "video": "generated/s01d_continuity_v1/review.mp4",
        "source_video": "generated/s01d_continuity_v1/review.mp4",
        "review_status": "approved",
        "review_label": "已確認",
        "note": "使用者已審核確認：目前更新上去的版本都可以使用。",
        "review_note": "使用者已審核確認：目前更新上去的版本都可以使用。",
        "status": "generated",
        "revision_history": [
          {
            "order": "S01D",
            "label": "S01D｜已剪除 Mia 無聲開口",
            "file": "generated/fixes/s01d_silent_mia_20260918/s01d_trim_silent_mia.mp4",
            "video": "generated/fixes/s01d_silent_mia_20260918/s01d_trim_silent_mia.mp4",
            "source_video": "generated/fixes/s01d_silent_mia_20260918/s01d_trim_silent_mia.mp4",
            "review_sheet": "generated/fixes/s01d_silent_mia_20260918/s01d_contact.jpg",
            "contact_sheet": "generated/fixes/s01d_silent_mia_20260918/s01d_contact.jpg",
            "start_key_image": "generated/fixes/s01d_silent_mia_20260918/s01d_first.jpg",
            "end_key_image": "generated/fixes/s01d_silent_mia_20260918/s01d_last.jpg",
            "review_status": "pending_review",
            "review_label": "待審核",
            "note": "依使用者回報剪除 S01D 開頭 1 秒 Mia 無聲開口動作；保留 Leo 完整台詞。新版待確認。",
            "review_note": "依使用者回報剪除 S01D 開頭 1 秒 Mia 無聲開口動作；保留 Leo 完整台詞。新版待確認。",
            "status": "generated",
            "frame0": "generated/fixes/s01d_silent_mia_20260918/s01d_first.jpg",
            "final_frame": "generated/fixes/s01d_silent_mia_20260918/s01d_last.jpg"
          }
        ],
        "title": "S01D｜真首幀接續・Mia 安靜旁聽",
        "display_title": "S01D｜真首幀接續・Mia 安靜旁聽",
        "provider": "ComfyUI / MiniMax H3",
        "quality": "1344 × 768 / 24 fps",
        "updated_at": "2026-09-19T13:45:05.071048+08:00",
        "frame0": "generated/s01d_continuity_v1/first.png",
        "actual_frame0": "generated/s01d_continuity_v1/first.png",
        "final_frame": "generated/s01d_continuity_v1/last.png",
        "contact_sheet": "generated/s01d_continuity_v1/contact.jpg",
        "prompt_en": "A continuous locked-camera shot of the same two clay children and open empty cardboard box. Preserve the input image composition, identities, hands and lighting. The girl on the left has finished her question. She listens quietly: lips gently together, neutral worried face, no speaking movements. Her body stays still. The boy on the right looks at the empty box. At 1.3 seconds, ONLY THE BOY says exactly \"Bobo is not in the box.\" in a young boy voice, finishing by 2.9 seconds. His mouth articulates the sentence. Girl stays silent and still throughout. No gestures, camera moves, added objects, music, subtitles or other speech. The scene continues naturally from the input first frame.",
        "first_frame_input": "images/s01c_exact_last_for_s01d.png",
        "production_note_before_approval": "已撤回剪掉 1 秒的版本。此版以 S01C 實際尾幀生成，保留完整 3 秒；Mia 收起前句表情後安靜旁聽，Leo 沿用原有聲音並對齊新畫面。接點和台詞已核對，整段表演／嘴型待確認。",
        "approved_at": "2026-09-19T13:45:05.071048+08:00",
        "approved_by": "user"
      },
      {
        "order": "S03A",
        "id": "ep01_s03a_combined_20260918",
        "label": "S03A｜Leo 提議、Mia 建議逐項檢查",
        "title": "S03A｜Leo 提議、Mia 建議逐項檢查",
        "segment": "hq_bobo_stepwise_regen",
        "final_order": "story-clip-03A",
        "file": "generated/s03a_combined_v1/review.mp4",
        "video": "generated/s03a_combined_v1/review.mp4",
        "source_video": "generated/s03a_combined_v1/review.mp4",
        "prompt_zh_tw": "使用 Flow 既有 Leo、Mia 角色與原教室參考，保留角色外觀及已存角色聲音。溫暖 3D 黏土風教室，中景雙人鏡頭，Mia 左、Leo 右，站在桌子與關閉的收納箱旁。Leo 只以小幅對話手勢表達想法，說一次「I can open every box and find him fast.」；Mia 閉嘴安靜旁聽。無人碰觸、開啟、搬動或搜尋箱子，箱蓋全程關閉；沒有 checklist 動作，Bobo 不出現。單一連續鏡頭，自然呼吸與眨眼，說完後閉嘴自然停留。原生同步對白，無旁白、額外台詞、音樂或字幕。",
        "provider": "ComfyUI / MiniMax H3",
        "status": "generated",
        "review_status": "approved",
        "review_label": "已確認",
        "review_note": "使用者已審核確認：目前更新上去的版本都可以使用。",
        "note": "使用者已審核確認：目前更新上去的版本都可以使用。",
        "quality": "1344 × 768 / 24 fps",
        "revision_history": [
          {
            "order": "S03A",
            "id": "hq_story_s03A_google_flow_approved_20260914",
            "label": "S03A｜Leo 表達開箱找 Bobo 的想法｜Google Flow",
            "title": "S03A｜Leo 表達開箱找 Bobo 的想法｜Google Flow",
            "segment": "hq_bobo_stepwise_regen",
            "final_order": "story-clip-03A",
            "file": "generated/video/hq_story_bobo_20260828/google_flow_s03A_retry_20260914/s03A_flow_retry1.mp4",
            "video": "generated/video/hq_story_bobo_20260828/google_flow_s03A_retry_20260914/s03A_flow_retry1.mp4",
            "source_video": "generated/video/hq_story_bobo_20260828/google_flow_s03A_retry_20260914/s03A_flow_retry1.mp4",
            "contact_sheet": "generated/video/hq_story_bobo_20260828/google_flow_s03A_retry_20260914/contact.jpg",
            "frame0": "generated/video/hq_story_bobo_20260828/google_flow_s03A_retry_20260914/frame0.png",
            "actual_frame0": "generated/video/hq_story_bobo_20260828/google_flow_s03A_retry_20260914/frame0.png",
            "first_frame": "",
            "first_frame_input": "",
            "final_frame": "generated/video/hq_story_bobo_20260828/google_flow_s03A_retry_20260914/final.png",
            "reference_images": [],
            "reference_audio": [],
            "workflow": "",
            "prompt_file": "generated/video/hq_story_bobo_20260828/google_flow_s03A_retry_20260914/prompt.txt",
            "prompt_en": "S03A - Leo expresses an intention only. Use the attached native Leo and Mia characters, preserving their saved character voices and exact approved faces, brown hairstyles, child proportions and outfits: Leo in a green sweater and jeans; Mia in a pink sweater, ponytail and jeans. Use the attached original classroom image for the same warm 3D clay-like classroom, wooden furniture, red-curtained puppet stage, window and storage shelves. Medium two-shot, Mia on the left, Leo on the right. Both stand naturally near the classroom table and closed storage boxes. Leo eagerly tells Mia his proposed plan, with a small conversational hand gesture only. Only Leo speaks, using his attached saved Puck custom character voice, clearly and naturally in English, exactly once: \"I can open every box and find him fast.\" This sentence is only his intention: nobody touches, opens, lifts, moves or searches any box; all lids stay fully closed throughout. Mia silently listens with her lips closed throughout, no speaking mouth motion. No checklist action. Bobo is still missing and completely absent from every frame; no doll, mascot or additional character appears. One continuous shot, gentle natural breathing and blinking, not a frozen still. After Leo finishes the sentence, his lips close and both hold a natural silent resting expression. Native synchronized character dialogue only, no additional words, narrator, music, singing or soundtrack. No subtitles, captions, speech bubbles, title cards, logos or visible written dialogue. Do not substitute voices or produce a silent video.",
            "prompt_zh_tw": "使用 Flow 既有 Leo、Mia 角色與原教室參考，保留角色外觀及已存角色聲音。溫暖 3D 黏土風教室，中景雙人鏡頭，Mia 左、Leo 右，站在桌子與關閉的收納箱旁。Leo 只以小幅對話手勢表達想法，說一次「I can open every box and find him fast.」；Mia 閉嘴安靜旁聽。無人碰觸、開啟、搬動或搜尋箱子，箱蓋全程關閉；沒有 checklist 動作，Bobo 不出現。單一連續鏡頭，自然呼吸與眨眼，說完後閉嘴自然停留。原生同步對白，無旁白、額外台詞、音樂或字幕。",
            "provider": "Google Flow",
            "generation_mode": "Flow 既有角色與原教室參考；原始輸入首幀未記錄。frame0 為實際輸出第一幀，非生成輸入。",
            "source_note": "本地 prompt.txt 記錄附加 Leo、Mia 原生角色及原教室參考；沒有可確認對應的本地參考原檔，因此參考檔案欄留空。Leo 聲音依提交 prompt 使用已存 Puck 自訂角色聲音。",
            "status": "approved",
            "review_status": "approved",
            "review_label": "已確認",
            "review_note": "2026-09-14 使用者明確通過 Google Flow 原速完整影片並要求保存發布；Leo 台詞：I can open every box and find him fast. Mia 旁聽。未套用 0.8 倍速 QA 音檔，未換音、未裁切。",
            "note": "2026-09-14 使用者明確通過 Google Flow 原速完整影片並要求保存發布；Leo 台詞：I can open every box and find him fast. Mia 旁聽。未套用 0.8 倍速 QA 音檔，未換音、未裁切。",
            "approval_note": "2026-09-14 使用者明確通過 Google Flow 原速完整影片並要求保存發布；Leo 台詞：I can open every box and find him fast. Mia 旁聽。未套用 0.8 倍速 QA 音檔，未換音、未裁切。",
            "approved_at": "2026-09-14T12:16:37+08:00",
            "quality": "Google Flow 1280×720 原速含原生音訊",
            "qa": {
              "sha256": "64d7ac36daf2a9d1f2297ffe2559248eb807b25959d5ce6f919e89abfad7913f",
              "duration_seconds": 6.016,
              "width": 1280,
              "height": 720,
              "audio_present": true,
              "approval": "user_approved",
              "speed": 1.0
            }
          }
        ],
        "display_title": "S03A｜Leo 提議、Mia 建議逐項檢查",
        "updated_at": "2026-09-19T13:45:05.071048+08:00",
        "dialogue": [
          {
            "speaker": "Leo",
            "en": "I can open every box and find him fast."
          },
          {
            "speaker": "Mia",
            "en": "Let's check one at a time."
          }
        ],
        "frame0": "generated/s03a_combined_v1/first.png",
        "actual_frame0": "generated/s03a_combined_v1/first.png",
        "final_frame": "generated/s03a_combined_v1/last.png",
        "contact_sheet": "generated/s03a_combined_v1/contact.jpg",
        "prompt_en": "Warm crisp 3D clay animation. Match the two children, classroom, open empty box and checklist in <Picture 1>. Locked medium two-shot, Mia left in pink holding the SAME checklist steadily in her left hand, Leo right in green. Natural continuous conversation. FIRST, Leo speaks with the young boy voice of <Audio 1>, exactly: \"I can open every box and find him fast.\" He only proposes his idea with a small hand gesture; he does not touch or open any boxes. Mia listens with lips closed. THEN Leo closes his mouth and listens while Mia replies using the young girl voice of <Audio 2>, exactly: \"Let's check one at a time.\" She gives one gentle calming palm gesture with her free right hand. The checklist remains in her left hand, not moving or changing design. Both finish with mouths closed and hands relaxed, ready to examine her list. Same light and camera throughout, no cuts or zoom. Bobo remains absent. Only the active speaker moves their mouth. No extra speech, text overlays, music or narrator. Do not read the checklist yet.",
        "production_note_before_approval": "原 S03A＋S03B 合併重新生成，同鏡頭輪流對話；待確認。",
        "approved_at": "2026-09-19T13:45:05.071048+08:00",
        "approved_by": "user"
      },
      {
        "order": "S03B",
        "label": "S03B｜先讀清單（原 S03C）",
        "title": "S03B｜先讀清單（原 S03C）",
        "segment": "hq_bobo_stepwise_regen",
        "file": "generated/s03b_continuation_v1/review.mp4",
        "video": "generated/s03b_continuation_v1/review.mp4",
        "source_video": "generated/s03b_continuation_v1/review.mp4",
        "note": "使用者已審核確認：目前更新上去的版本都可以使用。",
        "status": "generated",
        "review_status": "approved",
        "review_label": "已確認",
        "review_note": "使用者已審核確認：目前更新上去的版本都可以使用。",
        "quality": "1344 × 768 / 24 fps",
        "revision_history": [
          {
            "order": "S03B",
            "label": "S03C｜Mia 指 checklist：Read the checklist first（Mia 聲音修正版）",
            "title": "S03C｜Mia 指 checklist：Read the checklist first（Mia 聲音修正版）",
            "segment": "hq_bobo_stepwise_regen",
            "file": "generated/video/hq_story_bobo_20260828/clip03C_retry_voice_ref_mia_no_bgm_3s/ep01_hq_story_clip03C_original_visual_mia_voice_ref_audio_no_bgm.mp4",
            "video": "generated/video/hq_story_bobo_20260828/clip03C_retry_voice_ref_mia_no_bgm_3s/ep01_hq_story_clip03C_original_visual_mia_voice_ref_audio_no_bgm.mp4",
            "source_video": "generated/video/hq_story_bobo_20260828/clip03C_retry_voice_ref_mia_no_bgm_3s/ep01_hq_story_clip03C_original_visual_mia_voice_ref_audio_no_bgm.mp4",
            "contact_sheet": "generated/video/hq_story_bobo_20260828/clip03C_read_checklist_first_from_new_s03B_3s/ep01_hq_story_clip03C_contact.jpg",
            "note": "使用者先前反映怪怪的；本次僅批准新的 S03A，本段尚未重新批准，待複核／處理。",
            "status": "pending_review",
            "review_status": "pending_review",
            "review_label": "待複核",
            "review_note": "使用者先前反映怪怪的；本次僅批准新的 S03A，本段尚未重新批准，待複核／處理。",
            "quality": "HQ 1344x768 MiniMax H3"
          }
        ],
        "display_title": "S03B｜先讀清單（原 S03C）",
        "provider": "ComfyUI / MiniMax H3",
        "updated_at": "2026-09-19T13:45:05.071048+08:00",
        "dialogue": [
          {
            "speaker": "Mia",
            "en": "Read the checklist first."
          }
        ],
        "first_frame_input": "generated/s03a_combined_v1/last.png",
        "frame0": "generated/s03b_continuation_v1/first.png",
        "actual_frame0": "generated/s03b_continuation_v1/first.png",
        "final_frame": "generated/s03b_continuation_v1/last.png",
        "contact_sheet": "generated/s03b_continuation_v1/contact.jpg",
        "prompt_en": "Continue this exact image as a single continuous locked-camera clay animation shot. Same classroom, same lighting, same children, same open empty cardboard box and SAME checklist with same symbols. Mia, girl in pink on the left, is already holding the checklist in her left hand. She gently lifts her free right hand and points her index finger to the top item on that checklist. While pointing, ONLY MIA says exactly once in a clear young girl's voice: \"Read the checklist first.\" Start the line around 0.7 seconds and finish by 2.7 seconds. Leo, boy in green on the right, listens with mouth gently CLOSED for the entire shot, looking at the indicated list item. Mia finishes with lips closed, hand resting near the list. Minimal natural motion and gentle blinking. Do not move the camera or change composition. Do not move the box or invent props. No Bobo, extra speech, narrator, music, subtitles, titles or cuts.",
        "id": "ep01_s03b_original_c_20260918",
        "final_order": "story-clip-03B",
        "production_note_before_approval": "以新版 S03A 實際尾幀作真正首幀生成；Mia 指清單並說原 S03C 台詞。沿用原 Mia 聲音；待確認。",
        "approved_at": "2026-09-19T13:45:05.071048+08:00",
        "approved_by": "user"
      },
      {
        "order": "S03-FULL",
        "id": "hq_story_clip03ABC_full_no_s03d_20260902",
        "title": "S03-FULL｜新版 A＋B 連續對話",
        "label": "S03-FULL｜新版 A＋B 連續對話",
        "segment": "hq_bobo_stepwise_regen",
        "file": "generated/s03b_continuation_v1/s03_full.mp4",
        "video": "generated/s03b_continuation_v1/s03_full.mp4",
        "source_video": "generated/s03b_continuation_v1/s03_full.mp4",
        "status": "generated",
        "review_status": "approved",
        "review_label": "已確認",
        "review_note": "使用者已審核確認：目前更新上去的版本都可以使用。",
        "note": "使用者已審核確認：目前更新上去的版本都可以使用。",
        "revision_history": [
          {
            "order": "S03-FULL",
            "id": "hq_story_clip03ABC_full_no_s03d_20260902",
            "title": "S03-FULL｜舊串接未同步新 S03A｜待重組",
            "label": "S03-FULL｜舊串接未同步新 S03A｜待重組",
            "segment": "hq_bobo_stepwise_regen",
            "file": "generated/video/hq_story_bobo_20260828/assembled/ep01_hq_story_clip03ABC_full_no_s03d_20260902.mp4",
            "video": "generated/video/hq_story_bobo_20260828/assembled/ep01_hq_story_clip03ABC_full_no_s03d_20260902.mp4",
            "source_video": "generated/video/hq_story_bobo_20260828/assembled/ep01_hq_story_clip03ABC_full_no_s03d_20260902.mp4",
            "review_sheet": "generated/video/hq_story_bobo_20260828/assembled/ep01_hq_story_clip03ABC_full_no_s03d_20260902_contact.jpg",
            "contact_sheet": "generated/video/hq_story_bobo_20260828/assembled/ep01_hq_story_clip03ABC_full_no_s03d_20260902_contact.jpg",
            "status": "needs_reassembly",
            "review_status": "needs_reassembly",
            "review_label": "需更新／待重組",
            "review_note": "舊串接仍包含舊 S03A；新的 Google Flow S03A 已確認，但本次未重組。需更新／待重組，不代表已同步完成。",
            "note": "舊串接仍包含舊 S03A；新的 Google Flow S03A 已確認，但本次未重組。需更新／待重組，不代表已同步完成。"
          }
        ],
        "display_title": "S03-FULL｜新版 A＋B 連續對話",
        "provider": "ComfyUI / MiniMax H3",
        "quality": "1344 × 768 / 24 fps",
        "updated_at": "2026-09-19T13:45:05.071048+08:00",
        "contact_sheet": "generated/s03b_continuation_v1/s03_full_contact.jpg",
        "prompt_en": "Continue this exact image as a single continuous locked-camera clay animation shot. Same classroom, same lighting, same children, same open empty cardboard box and SAME checklist with same symbols. Mia, girl in pink on the left, is already holding the checklist in her left hand. She gently lifts her free right hand and points her index finger to the top item on that checklist. While pointing, ONLY MIA says exactly once in a clear young girl's voice: \"Read the checklist first.\" Start the line around 0.7 seconds and finish by 2.7 seconds. Leo, boy in green on the right, listens with mouth gently CLOSED for the entire shot, looking at the indicated list item. Mia finishes with lips closed, hand resting near the list. Minimal natural motion and gentle blinking. Do not move the camera or change composition. Do not move the box or invent props. No Bobo, extra speech, narrator, music, subtitles, titles or cuts.",
        "production_note_before_approval": "新版 S03A＋S03B 串接，原三段已整併為兩段；待確認。",
        "approved_at": "2026-09-19T13:45:05.071048+08:00",
        "approved_by": "user"
      },
      {
        "order": "S04A",
        "id": "ep01_s04a_redo_20260919",
        "title": "S04A｜開箱遇阻，隨即求助",
        "label": "S04A｜開箱遇阻，隨即求助",
        "display_title": "S04A｜開箱遇阻，隨即求助",
        "file": "generated/s04a_redo_v1/review.mp4",
        "video": "generated/s04a_redo_v1/review.mp4",
        "source_video": "generated/s04a_redo_v1/review.mp4",
        "frame0": "generated/s04a_redo_v1/first.png",
        "actual_frame0": "generated/s04a_redo_v1/first.png",
        "final_frame": "generated/s04a_redo_v1/last.png",
        "contact_sheet": "generated/s04a_redo_v1/contact.jpg",
        "status": "generated",
        "review_status": "approved",
        "review_label": "已確認",
        "review_note": "使用者已審核確認：目前更新上去的版本都可以使用。",
        "note": "使用者已審核確認：目前更新上去的版本都可以使用。",
        "provider": "ComfyUI / MiniMax H3",
        "quality": "1344 × 768 / 24 fps",
        "dialogue": [
          {
            "en": "It's stuck."
          }
        ],
        "prompt_en": "Crisp warm clay animation, continuous locked medium two-shot from this exact starting frame. Mia, the girl in pink on the left, tries once to lift the front edge of the taped blue box lid with both hands. The sealed lid resists and remains firmly closed. During this small frustrated tug she naturally says exactly \"It's stuck.\" in a clear young girl's voice. She immediately lets go and turns toward Leo for help, lowering both hands clear of the box. Leo, the boy in green on the right, watches with lips closed, then glances toward the small blue cutter lying on the table. Natural breathing, blinking and small responsive movements throughout. One fluid action, no repeated tugging, no frozen pauses, no slow motion. Box remains sealed with the same tape, cutter stays on table, no new objects. Preserve camera, room, colors and proportions. No subtitles, narrator, music, extra dialogue or speech from Leo.",
        "updated_at": "2026-09-19T13:45:05.071048+08:00",
        "production_note_before_approval": "全新生成畫面，無定格補秒；沿用既有角色配音重新對齊。台詞與接點已核對，表演／嘴型待確認。",
        "approved_at": "2026-09-19T13:45:05.071048+08:00",
        "approved_by": "user"
      },
      {
        "order": "S04B",
        "id": "ep01_s04b_redo_20260919",
        "title": "S04B｜Leo 提議幫忙，Mia 回應",
        "label": "S04B｜Leo 提議幫忙，Mia 回應",
        "display_title": "S04B｜Leo 提議幫忙，Mia 回應",
        "file": "generated/s04b_tool_offer_v5/review.mp4",
        "video": "generated/s04b_tool_offer_v5/review.mp4",
        "source_video": "generated/s04b_tool_offer_v5/review.mp4",
        "frame0": "generated/s04b_redo_v1/first.png",
        "actual_frame0": "generated/s04b_redo_v1/first.png",
        "final_frame": "generated/s04b_redo_v1/last.png",
        "contact_sheet": "generated/s04b_redo_v1/contact.jpg",
        "status": "generated",
        "review_status": "pending_review",
        "review_label": "待確認",
        "review_note": "S04B 已重生成：Leo 先拿起美工刀向 Mia 示意，再問 Need help?；Mia 回答 Good idea. 後才割第一側膠帶。沿用最新原生配音，整段校色，首尾接續 S04A/S04C。新版待確認。",
        "note": "S04B 已重生成：Leo 先拿起美工刀向 Mia 示意，再問 Need help?；Mia 回答 Good idea. 後才割第一側膠帶。沿用最新原生配音，整段校色，首尾接續 S04A/S04C。新版待確認。",
        "provider": "ComfyUI / MiniMax H3",
        "quality": "1344 × 768 / 24 fps",
        "dialogue": [
          {
            "en": "Need help?"
          },
          {
            "en": "Good idea."
          }
        ],
        "prompt_en": "Crisp warm clay animation. Continue seamlessly from this exact starting frame, same characters, clothing, room, lighting and camera. Locked medium two-shot. Leo, the boy on the right in green, immediately looks at Mia and says \"Need help?\" with a friendly young boy voice as he picks up the small blue utility cutter from the table. Mia, the girl on the left in pink, replies \"Good idea.\" with a clear young girl voice and a small nod. Her hands remain clear of the box. Each speaks only their own line and listens with their mouth closed during the other's line. Leo holds the cutter low beside the box at the end, ready to cut the tape. The blue box remains closed. Natural relaxed conversational pace, brief response gap, no waiting before speaking. Continuous gentle breathing, small eye movements and responsive expressions throughout. No cuts, zoom, music, narrator, captions, extra people or invented objects. Only the active speaker moves their mouth. Do not pause to pose at the beginning or end.",
        "updated_at": "2026-09-19T15:19:54.865188+08:00",
        "first_frame_input": "generated/s04a_redo_v1/last.png",
        "production_note_before_approval": "全新生成畫面，無定格補秒；沿用既有角色配音重新對齊。台詞與接點已核對，表演／嘴型待確認。",
        "duration_seconds": 5.166666666666667
      },
      {
        "order": "S04C",
        "id": "ep01_s04c_redo_20260919",
        "title": "S04C｜切開膠帶並放下工具",
        "label": "S04C｜切開膠帶並放下工具",
        "display_title": "S04C｜切開膠帶並放下工具",
        "file": "generated/s04c_color_v2/review.mp4",
        "video": "generated/s04c_color_v2/review.mp4",
        "source_video": "generated/s04c_color_v2/review.mp4",
        "frame0": "generated/s04c_redo_v1/first.png",
        "actual_frame0": "generated/s04c_redo_v1/first.png",
        "final_frame": "generated/s04c_redo_v1/last.png",
        "contact_sheet": "generated/s04c_redo_v1/contact.jpg",
        "status": "generated",
        "review_status": "approved",
        "review_label": "已確認",
        "review_note": "使用者已審核確認：目前更新上去的版本都可以使用。",
        "note": "使用者已審核確認：目前更新上去的版本都可以使用。",
        "provider": "ComfyUI / MiniMax H3",
        "quality": "1344 × 768 / 24 fps",
        "dialogue": [
          {
            "en": "All set."
          }
        ],
        "prompt_en": "Crisp warm clay animation. Continue seamlessly from this exact starting frame, same characters, clothing, room, lighting and camera. Locked medium two-shot. Leo, the boy on the right in green, uses the blue cutter in his hand for one short precise slice through the tan tape exactly at the front horizontal seam between the blue box lid and body. The blade cuts only the tape, not the box. He immediately lowers the cutter and places it flat on the table to the right of the box, then says \"All set.\" in a clear young boy voice. Mia in pink first takes her hand off the lid and quietly watches his work, hands safely away from the box before he cuts. The lid remains closed, now ready to lift. Keep the box solid and the same shape. One smooth cutting action followed by putting the tool down; no repeated sawing or frozen poses. Continuous gentle breathing, small eye movements and responsive expressions throughout. No cuts, zoom, music, narrator, captions, extra people or invented objects. Only the active speaker moves their mouth. Do not pause to pose at the beginning or end.",
        "updated_at": "2026-09-19T13:45:05.071048+08:00",
        "first_frame_input": "generated/s04b_redo_v1/last.png",
        "production_note_before_approval": "全新生成畫面，無定格補秒；沿用既有角色配音重新對齊。台詞與接點已核對，表演／嘴型待確認。",
        "approved_at": "2026-09-19T13:45:05.071048+08:00",
        "approved_by": "user"
      },
      {
        "order": "S04D",
        "id": "ep01_s04d_redo_20260919",
        "title": "S04D｜開蓋發現 Bobo，擊掌",
        "label": "S04D｜開蓋發現 Bobo，擊掌",
        "display_title": "S04D｜開蓋發現 Bobo，擊掌",
        "file": "generated/s04d_color_v2/review.mp4",
        "video": "generated/s04d_color_v2/review.mp4",
        "source_video": "generated/s04d_color_v2/review.mp4",
        "frame0": "generated/s04d_redo_v2/first.png",
        "actual_frame0": "generated/s04d_redo_v2/first.png",
        "final_frame": "generated/s04d_redo_v2/last.png",
        "contact_sheet": "generated/s04d_redo_v2/contact.jpg",
        "status": "generated",
        "review_status": "approved",
        "review_label": "已確認",
        "review_note": "使用者已審核確認：目前更新上去的版本都可以使用。",
        "note": "使用者已審核確認：目前更新上去的版本都可以使用。",
        "provider": "ComfyUI / MiniMax H3",
        "quality": "1344 × 768 / 24 fps",
        "dialogue": [
          {
            "en": "Found it! High five!"
          }
        ],
        "prompt_en": "Crisp warm clay animation, same locked medium two-shot and exact starting frame. Mia in pink on the left and Leo in green on the right stand beside the blue box. Leo lifts the blue lid smoothly and rests it upright. Inside the box, mostly hidden behind its high front wall, is ONLY a plain round cream-beige fabric bump, the top of a stuffed toy's head. The visible bump is smooth beige cloth with three tiny soft beige fabric tufts. The toy's face, eyes, mouth and body remain completely BELOW the front rim and are NEVER visible. Nothing metallic, no crown, no hat, no human face, no other contents in the box. The toy stays totally still. Leo looks into the box and says exactly \"Found it! High five!\" in a clear warm young boy voice. Mia and Leo share one quick palm-to-palm high five above the box, then both lower their hands. Mia stays silent with lips closed. End with both mouths closed, hands down, lid open. The plain beige fabric bump remains low inside the box throughout, never rising. Brisk natural connected actions, no waiting or frozen poses, no extra dialogue or repeated words. Preserve color, lighting, child faces and clothing. No camera cut, zoom, text, subtitles, music or narrator.",
        "updated_at": "2026-09-19T13:45:05.071048+08:00",
        "first_frame_input": "generated/s04c_redo_v1/last.png",
        "production_note_before_approval": "全新生成畫面，無定格補秒；沿用既有角色配音重新對齊。台詞與接點已核對，表演／嘴型待確認。",
        "approved_at": "2026-09-19T13:45:05.071048+08:00",
        "approved_by": "user"
      },
      {
        "order": "S04E",
        "id": "ep01_s04e_redo_20260919",
        "title": "S04E｜準備抱出，Mia 提醒小心",
        "label": "S04E｜準備抱出，Mia 提醒小心",
        "display_title": "S04E｜準備抱出，Mia 提醒小心",
        "file": "generated/s04e_color_v2/review.mp4",
        "video": "generated/s04e_color_v2/review.mp4",
        "source_video": "generated/s04e_color_v2/review.mp4",
        "frame0": "generated/s04e_redo_v1/first.png",
        "actual_frame0": "generated/s04e_redo_v1/first.png",
        "final_frame": "generated/s04e_redo_v1/last.png",
        "contact_sheet": "generated/s04e_redo_v1/contact.jpg",
        "status": "generated",
        "review_status": "approved",
        "review_label": "已確認",
        "review_note": "使用者已審核確認：目前更新上去的版本都可以使用。",
        "note": "使用者已審核確認：目前更新上去的版本都可以使用。",
        "provider": "ComfyUI / MiniMax H3",
        "quality": "1344 × 768 / 24 fps",
        "dialogue": [
          {
            "en": "I'll take it out."
          },
          {
            "en": "Slow down. Be careful. It might break."
          }
        ],
        "prompt_en": "Crisp warm clay animation. Continue seamlessly from this exact starting frame, same characters, clothing, room, lighting and camera. Locked medium two-shot. Leo, the boy on the right in green, looks into the open blue box and says \"I'll take it out.\" in a clear young boy voice while starting to reach toward it. Mia, the girl on the left in pink, promptly raises a gentle cautioning palm between his hand and the box and says \"Slow down. Be careful. It might break.\" in a clear caring young girl voice, one flowing sentence with only small natural phrase pauses. Leo responds to her warning by easing his hands back slightly and nodding, lips closed while she speaks. Mia lowers her hand as she finishes. No one touches or lifts the plush doll inside yet; its tiny beige crown stays at the same low height. The detached lid stays where Leo put it to the right, outside this closer framing. Do not add a lid back onto the box. Natural continuous responsive movement, no rigid holding poses or long silence. Continuous gentle breathing, small eye movements and responsive expressions throughout. No cuts, zoom, music, narrator, captions, extra people or invented objects. Only the active speaker moves their mouth. Do not pause to pose at the beginning or end.",
        "updated_at": "2026-09-19T13:45:05.071048+08:00",
        "first_frame_input": "generated/s04d_redo_v2/last.png",
        "production_note_before_approval": "全新生成畫面，無定格補秒；沿用既有角色配音重新對齊。台詞與接點已核對，表演／嘴型待確認。",
        "approved_at": "2026-09-19T13:45:05.071048+08:00",
        "approved_by": "user"
      },
      {
        "order": "S04F",
        "id": "ep01_s04f_redo_20260919",
        "title": "S04F｜邊回應邊輕輕抱出 Bobo",
        "label": "S04F｜邊回應邊輕輕抱出 Bobo",
        "display_title": "S04F｜邊回應邊輕輕抱出 Bobo",
        "file": "generated/s04f_character_v3/review.mp4",
        "video": "generated/s04f_character_v3/review.mp4",
        "source_video": "generated/s04f_character_v3/review.mp4",
        "frame0": "generated/s04f_redo_v2/first.png",
        "actual_frame0": "generated/s04f_redo_v2/first.png",
        "final_frame": "generated/s04f_redo_v2/last.png",
        "contact_sheet": "generated/s04f_redo_v2/contact.jpg",
        "status": "generated",
        "review_status": "approved",
        "review_label": "已確認",
        "review_note": "使用者已審核確認：目前更新上去的版本都可以使用。",
        "note": "使用者已審核確認：目前更新上去的版本都可以使用。",
        "provider": "ComfyUI / MiniMax H3",
        "quality": "1344 × 768 / 24 fps",
        "dialogue": [
          {
            "en": "Okay, I will take Bobo out slowly and carefully."
          }
        ],
        "prompt_en": "Crisp warm clay animation. Continue this exact starting frame, same close two-shot, Mia left in pink, Leo right in green, open blue box between them. Leo says exactly \"Okay, I will take Bobo out slowly and carefully.\" in a natural warm young boy voice while doing the action. He leans toward the box and gently reaches BOTH hands down around the small beige stuffed doll's BODY below the rim. He supports its body and smoothly lifts it out, naturally turning the toy to face HIM. IMPORTANT: the back of the doll's head and back of its body face the CAMERA during the entire lift and at the end. The doll's face is hidden from the viewer, directed toward Leo's chest. We see its plain beige fabric back, three short beige fabric tufts, the red scarf tied behind its neck, a small closed rectangular beige battery hatch on its lower back, and soft stubby limbs. It is a floppy inanimate plush, no independent motion. Leo's hands lift and support it, not its head. Mia watches quietly with her lips closed. Finish with Leo holding the toy securely at chest height, BACK toward the camera, FACE completely hidden. One fluid careful lift while speaking, no waiting until the sentence ends, no stopping midair, no extra gestures or speech. Bobo remains small, same size as its head inside the box. No camera cut, zoom, slow motion, subtitles, music or narrator. Both children's mouths close after the reply. Preserve light and colors.",
        "updated_at": "2026-09-19T13:45:05.071048+08:00",
        "first_frame_input": "generated/s04e_redo_v1/last.png",
        "production_note_before_approval": "全新生成畫面，無定格補秒；沿用既有角色配音重新對齊。台詞與接點已核對，表演／嘴型待確認。",
        "approved_at": "2026-09-19T13:45:05.071048+08:00",
        "approved_by": "user"
      },
      {
        "order": "S04-FULL",
        "title": "S04-FULL｜全新六段連續版",
        "file": "generated/s04_redo_full/review.mp4",
        "video": "generated/s04_redo_full/review.mp4",
        "source_video": "generated/s04_redo_full/review.mp4",
        "contact_sheet": "generated/s04_redo_full/contact.jpg",
        "status": "generated",
        "review_status": "pending_review",
        "review_label": "待確認",
        "review_note": "S04B 已重生成：Leo 先拿起美工刀向 Mia 示意，再問 Need help?；Mia 回答 Good idea. 後才割第一側膠帶。沿用最新原生配音，整段校色，首尾接續 S04A/S04C。新版待確認。",
        "updated_at": "2026-09-19T15:19:54.865188+08:00",
        "label": "S04-FULL｜全新六段連續版",
        "quality": "1344 × 768 / 24 fps",
        "provider": "ComfyUI / MiniMax H3",
        "production_note_before_approval": "所有小段均已重新生成並串接；請確認整段對話、動作及聲音。",
        "note": "S04B 已重生成：Leo 先拿起美工刀向 Mia 示意，再問 Need help?；Mia 回答 Good idea. 後才割第一側膠帶。沿用最新原生配音，整段校色，首尾接續 S04A/S04C。新版待確認。",
        "duration_seconds": 28.875
      },
      {
        "order": "S05A",
        "id": "ep01_s05a_redo_20260919",
        "title": "S05A｜檢查 Bobo，發現空電池槽",
        "label": "S05A｜檢查 Bobo，發現空電池槽",
        "display_title": "S05A｜檢查 Bobo，發現空電池槽",
        "file": "generated/s05a_color_v3/review.mp4",
        "video": "generated/s05a_color_v3/review.mp4",
        "source_video": "generated/s05a_color_v3/review.mp4",
        "frame0": "generated/s05a_redo_v2/first.png",
        "actual_frame0": "generated/s05a_redo_v2/first.png",
        "final_frame": "generated/s05a_redo_v2/last.png",
        "contact_sheet": "generated/s05a_redo_v2/contact.jpg",
        "status": "generated",
        "review_status": "approved",
        "review_label": "已確認",
        "review_note": "使用者已審核確認：目前更新上去的版本都可以使用。",
        "note": "使用者已審核確認：目前更新上去的版本都可以使用。",
        "provider": "ComfyUI / MiniMax H3",
        "quality": "1344 × 768 / 24 fps",
        "dialogue": [
          {
            "speaker": "Leo",
            "en": "Let's check Bobo."
          },
          {
            "speaker": "Leo",
            "en": "Bobo has no battery."
          }
        ],
        "prompt_en": "Warm crisp clay animation, exactly this first frame. Maintain a steady medium two-shot WIDE ENOUGH TO SHOW BOTH CHILDREN'S COMPLETE FACES, THEIR HANDS, BOBO AND THE BATTERY ON THE TABLE THROUGHOUT. Leo in green sits LEFT, Mia in pink sits RIGHT. Leo supports Bobo, a passive beige plush with red scarf, with its BACK facing the camera for the ENTIRE shot. Do not turn Bobo around; its face remains invisible. One continuous natural checking action: Leo immediately says \"Let's check Bobo.\" in a warm young boy voice while pressing the small black power switch on the toy's back once. The toy has NO RESPONSE. Still supporting it, Leo uses his free hand to open the small rectangular battery hatch below the switch. The cover hinges downward, showing one EMPTY dark cylindrical battery slot above the hanging cover. Leo notices the empty slot and naturally says \"Bobo has no battery.\" without a long pause. End with the hatch open and the slot empty, Bobo still BACK TO CAMERA, Leo supporting it with one hand and his free hand just below the open hatch. The single gold-and-black battery remains on the tabletop in front of Mia. Mia quietly watches, closed lips. Bobo is an inert stuffed object with no independent motion at all. Smooth connected action with gentle breathing and blinking only from the children. Same framing and lighting from beginning to end; no zoom or camera movement, no text, subtitles, music, narrator, extra dialogue, extra battery or invented objects.",
        "updated_at": "2026-09-19T13:45:05.071048+08:00",
        "prompt_zh_tw": "檢查桌新鏡位：Bobo 背面朝向鏡頭、電池蓋關閉。Leo 先試開關沒有反應，隨即打開背蓋看見空電池槽；桌上的唯一電池仍在 Mia 面前。",
        "replaces": [
          "S05A",
          "S05B"
        ],
        "production_note_before_approval": "全新生成畫面，無定格補秒；沿用既有角色配音重新對齊。台詞與接點已核對，表演／嘴型待確認。",
        "approved_at": "2026-09-19T13:45:05.071048+08:00",
        "approved_by": "user"
      },
      {
        "order": "S05B",
        "id": "ep01_s05b_redo_20260919",
        "title": "S05B｜找到電池，直接遞給 Leo",
        "label": "S05B｜找到電池，直接遞給 Leo",
        "display_title": "S05B｜找到電池，直接遞給 Leo",
        "file": "generated/s05b_color_v3/review.mp4",
        "video": "generated/s05b_color_v3/review.mp4",
        "source_video": "generated/s05b_color_v3/review.mp4",
        "frame0": "generated/s05b_redo_v1/first.png",
        "actual_frame0": "generated/s05b_redo_v1/first.png",
        "final_frame": "generated/s05b_redo_v1/last.png",
        "contact_sheet": "generated/s05b_redo_v1/contact.jpg",
        "status": "generated",
        "review_status": "approved",
        "review_label": "已確認",
        "review_note": "使用者已審核確認：目前更新上去的版本都可以使用。",
        "note": "使用者已審核確認：目前更新上去的版本都可以使用。",
        "provider": "ComfyUI / MiniMax H3",
        "quality": "1344 × 768 / 24 fps",
        "dialogue": [
          {
            "speaker": "Mia",
            "en": "I have a battery."
          },
          {
            "speaker": "Leo",
            "en": "Pass it here."
          }
        ],
        "prompt_en": "Crisp warm clay animation. Use this exact first frame and keep the same camera, characters, colors, lighting, clothing, toy and classroom table. Locked medium two-shot. Mia, the girl in pink on the RIGHT, picks up the single small gold-and-black battery from the table in front of her and says \"I have a battery.\" in a clear young girl voice. Leo, the boy in green on the LEFT, looks at her and promptly replies \"Pass it here.\" in a warm young boy voice while extending his free hand. Mia naturally places that SAME single battery directly into Leo's waiting hand. She releases it and withdraws her hand. End with Leo holding one battery outside Bobo, ready to insert it. Bobo remains supported by Leo's other hand with its back to the camera, its battery cover open and its SINGLE slot EMPTY throughout. Do not insert the battery yet. No duplicate battery or second battery on table. Each speaker's lips move only during their own line, with natural eye contact and small responses, no posed pauses. Continuous natural movement, breathing and blinking. No cut, zoom, slow motion, music, narrator, subtitles, readable text, added objects or extra dialogue.",
        "updated_at": "2026-09-19T13:45:05.071048+08:00",
        "first_frame_input": "generated/s05a_redo_v2/last.png",
        "prompt_zh_tw": "Mia 拿起桌上唯一電池，Leo 回應時伸出空手，Mia 順勢遞過去；不先各自定格等台詞。Bobo 電池槽保持打開且為空。",
        "replaces": [
          "S05C",
          "S05D"
        ],
        "production_note_before_approval": "全新生成畫面，無定格補秒；沿用既有角色配音重新對齊。台詞與接點已核對，表演／嘴型待確認。",
        "approved_at": "2026-09-19T13:45:05.071048+08:00",
        "approved_by": "user"
      },
      {
        "order": "S05C",
        "id": "ep01_s05c_redo_20260919",
        "title": "S05C｜裝入電池並關好背蓋",
        "label": "S05C｜裝入電池並關好背蓋",
        "display_title": "S05C｜裝入電池並關好背蓋",
        "file": "generated/s05c_color_v3/review.mp4",
        "video": "generated/s05c_color_v3/review.mp4",
        "source_video": "generated/s05c_color_v3/review.mp4",
        "frame0": "generated/s05c_redo_v1/first.png",
        "actual_frame0": "generated/s05c_redo_v1/first.png",
        "final_frame": "generated/s05c_redo_v1/last.png",
        "contact_sheet": "generated/s05c_redo_v1/contact.jpg",
        "status": "generated",
        "review_status": "approved",
        "review_label": "已確認",
        "review_note": "使用者已審核確認：目前更新上去的版本都可以使用。",
        "note": "使用者已審核確認：目前更新上去的版本都可以使用。",
        "provider": "ComfyUI / MiniMax H3",
        "quality": "1344 × 768 / 24 fps",
        "dialogue": [],
        "prompt_en": "Crisp warm clay animation. Use this exact first frame and keep the same camera, characters, colors, lighting, clothing, toy and classroom table. Locked medium two-shot. Silent continuous close physical action, both children keep their lips closed. Leo, the boy in green on the LEFT, supports the passive beige plush Bobo with one hand, back toward camera. With the other hand he brings the SINGLE small battery he is holding to the open empty battery slot on Bobo's back, aligns it lengthwise, presses it fully into the slot, then closes the rectangular cover flush. This is one fluid deliberate sequence: approach, insert, close cover. Show the battery briefly seated in the slot before closing. Only one battery; no battery remains outside. Mia in pink on the RIGHT watches his hands with a small encouraging smile. End with the cover fully closed, Bobo still facing away. No switch press or activation yet. Bobo stays completely inanimate, no movement except from Leo's hands. No talking, muttering, vocalization or dialogue. Do not add pauses between actions. Continuous natural movement, breathing and blinking. No cut, zoom, slow motion, music, narrator, subtitles, readable text, added objects or extra dialogue.",
        "updated_at": "2026-09-19T13:45:05.071048+08:00",
        "first_frame_input": "generated/s05b_redo_v1/last.png",
        "prompt_zh_tw": "Leo 將電池放入空槽並按牢，再關妥電池蓋。動作連續、短而清楚；不等待、不啟動 Bobo。",
        "replaces": [
          "S05E"
        ],
        "production_note_before_approval": "全新生成連續動作；此段為無台詞的裝電池及關蓋過程，待確認。",
        "approved_at": "2026-09-19T13:45:05.071048+08:00",
        "approved_by": "user"
      },
      {
        "order": "S05D",
        "id": "ep01_s05d_redo_20260919",
        "title": "S05D｜準備好，啟動 Bobo",
        "label": "S05D｜準備好，啟動 Bobo",
        "display_title": "S05D｜準備好，啟動 Bobo",
        "file": "generated/s05d_color_v4/review.mp4",
        "video": "generated/s05d_color_v4/review.mp4",
        "source_video": "generated/s05d_color_v4/review.mp4",
        "frame0": "generated/s05d_redo_v1/first.png",
        "actual_frame0": "generated/s05d_redo_v1/first.png",
        "final_frame": "generated/s05d_redo_v1/last.png",
        "contact_sheet": "generated/s05d_redo_v1/contact.jpg",
        "status": "generated",
        "review_status": "approved",
        "review_label": "已確認",
        "review_note": "使用者已審核確認：目前更新上去的版本都可以使用。",
        "note": "使用者已審核確認：目前更新上去的版本都可以使用。",
        "provider": "ComfyUI / MiniMax H3",
        "quality": "1344 × 768 / 24 fps",
        "dialogue": [
          {
            "speaker": "Leo",
            "en": "Ready? Go!"
          }
        ],
        "prompt_en": "Crisp warm clay animation. Use this exact first frame and keep the same camera, characters, colors, lighting, clothing, toy and classroom table. Locked medium two-shot. Leo, the boy in green on the LEFT, smoothly turns the passive beige plush Bobo to face the camera and sets its feet firmly on the table between the children. Bobo has black button eyes, a stitched smile, three small beige tufts and a red scarf with a gold bell. In a clear warm young boy voice Leo says \"Ready? Go!\" As he says \"Go!\", he reaches one hand around Bobo's side to press the small power switch on its back while his other hand steadies its body. Only AFTER pressing the switch Bobo begins a tiny gentle motorized side-to-side sway with its feet remaining on the table. Bobo is a battery toy, never speaking or changing its stitched face. Mia in pink on the RIGHT watches with closed lips. End with Bobo upright on the table. Keep actions brisk and natural, no waiting pose. Continuous natural movement, breathing and blinking. No cut, zoom, slow motion, music, narrator, subtitles, readable text, added objects or extra dialogue.",
        "updated_at": "2026-09-19T13:45:05.071048+08:00",
        "first_frame_input": "generated/s05c_redo_v1/last.png",
        "prompt_zh_tw": "Leo 將 Bobo 正面朝向鏡頭穩穩放在桌上，說 Go 時按背面開關，玩偶開始小幅機械擺動。",
        "replaces": [
          "S05F"
        ],
        "production_note_before_approval": "全新生成畫面，無定格補秒；沿用既有角色配音重新對齊。台詞與接點已核對，表演／嘴型待確認。",
        "approved_at": "2026-09-19T13:45:05.071048+08:00",
        "approved_by": "user"
      },
      {
        "order": "S05E",
        "id": "ep01_s05e_redo_20260919",
        "title": "S05E｜成功後自然互相回應",
        "label": "S05E｜成功後自然互相回應",
        "display_title": "S05E｜成功後自然互相回應",
        "file": "generated/s05e_color_v3/review.mp4",
        "video": "generated/s05e_color_v3/review.mp4",
        "source_video": "generated/s05e_color_v3/review.mp4",
        "frame0": "generated/s05e_redo_v1/first.png",
        "actual_frame0": "generated/s05e_redo_v1/first.png",
        "final_frame": "generated/s05e_redo_v1/last.png",
        "contact_sheet": "generated/s05e_redo_v1/contact.jpg",
        "status": "generated",
        "review_status": "approved",
        "review_label": "已確認",
        "review_note": "使用者已審核確認：目前更新上去的版本都可以使用。",
        "note": "使用者已審核確認：目前更新上去的版本都可以使用。",
        "provider": "ComfyUI / MiniMax H3",
        "quality": "1344 × 768 / 24 fps",
        "dialogue": [
          {
            "speaker": "Leo",
            "en": "It works!"
          },
          {
            "speaker": "Mia",
            "en": "Good job!"
          }
        ],
        "prompt_en": "Crisp warm clay animation. Use this exact first frame and keep the same camera, characters, colors, lighting, clothing, toy and classroom table. Locked medium two-shot. Bobo, the small beige plush battery toy with red scarf between the children, continues a tiny gentle motorized sway while its feet stay planted on the table. Leo, the boy in green on the LEFT, sees it working and immediately says \"It works!\" in a delighted warm young boy voice, then turns to Mia. Mia, the girl in pink on the RIGHT, naturally smiles back and replies \"Good job!\" in a clear warm young girl voice. They look back at Bobo together. Only the active speaker moves their mouth. Bobo's button eyes and stitched smile never change; it never speaks or hops. Natural brief conversational response, small expressive gestures, no stiff holding or extended empty ending. Continuous natural movement, breathing and blinking. No cut, zoom, slow motion, music, narrator, subtitles, readable text, added objects or extra dialogue.",
        "updated_at": "2026-09-19T13:45:05.071048+08:00",
        "first_frame_input": "generated/s05d_redo_v1/last.png",
        "prompt_zh_tw": "Leo 看見 Bobo 運作便笑著說 It works，Mia 接著回應 Good job；兩人一起看著桌上小幅擺動的玩偶，自然收尾。",
        "replaces": [
          "S05G",
          "S05H"
        ],
        "production_note_before_approval": "全新生成畫面，無定格補秒；沿用既有角色配音重新對齊。台詞與接點已核對，表演／嘴型待確認。",
        "approved_at": "2026-09-19T13:45:05.071048+08:00",
        "approved_by": "user"
      },
      {
        "order": "S05-FULL",
        "title": "S05-FULL｜全新五段整併版",
        "file": "generated/s05_redo_full/review.mp4",
        "video": "generated/s05_redo_full/review.mp4",
        "source_video": "generated/s05_redo_full/review.mp4",
        "contact_sheet": "generated/s05_redo_full/contact.jpg",
        "status": "generated",
        "review_status": "approved",
        "review_label": "已確認",
        "review_note": "使用者已審核確認：目前更新上去的版本都可以使用。",
        "updated_at": "2026-09-19T13:45:05.071048+08:00",
        "label": "S05-FULL｜全新五段整併版",
        "quality": "1344 × 768 / 24 fps",
        "provider": "ComfyUI / MiniMax H3",
        "production_note_before_approval": "所有小段均已重新生成並串接；請確認整段對話、動作及聲音。",
        "note": "使用者已審核確認：目前更新上去的版本都可以使用。",
        "approved_at": "2026-09-19T13:45:05.071048+08:00",
        "approved_by": "user"
      },
      {
        "id": "hq_story_clip09A_retry2_arm_not_waving_audio_lock_3s",
        "title": "S09A retry2｜Bobo's arm is not waving.",
        "final_order": "story-clip-09A",
        "status": "candidate_ready_for_user_review",
        "file": "generated/video/hq_story_bobo_20260828/clip09A_retry2_arm_not_waving_audio_lock_3s/ep01_hq_story_clip09A_retry2_arm_not_waving_audio_lock_3s_native_audio.mp4",
        "video": "generated/video/hq_story_bobo_20260828/clip09A_retry2_arm_not_waving_audio_lock_3s/ep01_hq_story_clip09A_retry2_arm_not_waving_audio_lock_3s_native_audio.mp4",
        "review_status": "needs_review",
        "review_label": "待審核",
        "review_note": "等待你審核：S09A retry2，Bobo 手臂不會揮動，問題尚未修好。",
        "contact_sheet": "generated/video/hq_story_bobo_20260828/clip09A_retry2_arm_not_waving_audio_lock_3s/ep01_hq_story_clip09A_contact.jpg"
      },
      {
        "id": "hq_story_clip09B_try_again_free_string_audio_repair1",
        "title": "S09B｜Try again.｜free the control string",
        "final_order": "story-clip-09B",
        "status": "candidate_ready_for_user_review_voice_ref_audio_repaired",
        "file": "generated/video/hq_story_bobo_20260828/clip09B_try_again_free_string_3s/ep01_hq_story_clip09B_try_again_free_string_p05_audio_no_bgm_v2.mp4",
        "video": "generated/video/hq_story_bobo_20260828/clip09B_try_again_free_string_3s/ep01_hq_story_clip09B_try_again_free_string_p05_audio_no_bgm_v2.mp4",
        "review_status": "needs_review",
        "review_label": "待審核",
        "review_note": "等待你審核：S09B audio-repaired，Mia 說 Try again，控制線已可再試但 Bobo 尚未成功揮手。",
        "contact_sheet": "generated/video/hq_story_bobo_20260828/clip09B_try_again_free_string_3s/ep01_hq_story_clip09B_contact.jpg"
      },
      {
        "id": "hq_story_clip09C_it_works_wave_retry1_vocals_only_no_bgm",
        "title": "S09C retry1｜It works!｜Bobo 成功揮手（audio repaired）",
        "final_order": "story-clip-09C",
        "status": "candidate_ready_for_user_review_voice_ref_audio_repaired",
        "file": "generated/video/hq_story_bobo_20260828/clip09C_it_works_wave_retry1_3s/ep01_hq_story_clip09C_it_works_wave_retry1_vocals_only_no_bgm.mp4",
        "video": "generated/video/hq_story_bobo_20260828/clip09C_it_works_wave_retry1_3s/ep01_hq_story_clip09C_it_works_wave_retry1_vocals_only_no_bgm.mp4",
        "contact_sheet": "generated/video/hq_story_bobo_20260828/clip09C_it_works_wave_retry1_3s/ep01_hq_story_clip09C_it_works_wave_retry1_vocals_only_no_bgm_contact.jpg",
        "qa_file": "generated/video/hq_story_bobo_20260828/clip09C_it_works_wave_retry1_3s/ep01_hq_story_clip09C_it_works_wave_retry1_vocals_only_no_bgm.qa.json",
        "review_status": "needs_review",
        "review_label": "待審核",
        "review_note": "等待你審核：S09C audio-repaired，Leo 說 It works!；Bobo 手臂已抬起/揮動，無字幕文字。"
      },
      {
        "id": "hq_story_clip09ABC_assembled",
        "title": "09ABC 串接版｜小故事第 9 組完整段落",
        "final_order": "story-clip-09-full",
        "status": "candidate_ready_for_user_review_assembled",
        "file": "generated/video/hq_story_bobo_20260828/assembled/ep01_hq_story_clip09ABC_assembled_candidate.mp4",
        "video": "generated/video/hq_story_bobo_20260828/assembled/ep01_hq_story_clip09ABC_assembled_candidate.mp4",
        "contact_sheet": "generated/video/hq_story_bobo_20260828/assembled/ep01_hq_story_clip09ABC_assembled_contact.jpg",
        "qa_file": "generated/video/hq_story_bobo_20260828/assembled/ep01_hq_story_clip09ABC_assembled.qa.json",
        "review_status": "needs_review",
        "review_label": "待審核",
        "review_note": "等待你審核：S09A–S09C 串接，Bobo 手臂問題→再試一次→成功揮手。"
      },
      {
        "id": "hq_story_clip10A_high_five_retry1_vocals_only_no_bgm",
        "title": "S10A retry1｜High five! 慶祝 Bobo 手臂修好",
        "final_order": "story-clip-10A",
        "status": "Candidate ready for user review (audio repaired).",
        "file": "generated/video/hq_story_bobo_20260828/clip10A_high_five_retry1_3s/ep01_hq_story_clip10A_high_five_retry1_vocals_only_no_bgm.mp4",
        "video": "generated/video/hq_story_bobo_20260828/clip10A_high_five_retry1_3s/ep01_hq_story_clip10A_high_five_retry1_vocals_only_no_bgm.mp4",
        "review_status": "needs_review",
        "review_label": "待審核",
        "review_note": "等待你審核：S10A audio-repaired，Mia/Leo 擊掌說 High five!；Bobo 安全在盒/舞台上，無字幕文字。"
      },
      {
        "id": "hq_story_clip10B_puppet_show_ready_retry2_vocals_only_no_bgm",
        "title": "S10B retry2｜The puppet show is ready.｜音訊修復版",
        "final_order": "story-clip-10B",
        "status": "candidate_ready_for_user_review_voice_ref_audio_repaired",
        "file": "generated/video/hq_story_bobo_20260828/clip10B_puppet_show_ready_retry2_audio_clear_puppet_3s/ep01_hq_story_clip10B_retry2_vocals_only_no_bgm.mp4",
        "video": "generated/video/hq_story_bobo_20260828/clip10B_puppet_show_ready_retry2_audio_clear_puppet_3s/ep01_hq_story_clip10B_retry2_vocals_only_no_bgm.mp4",
        "review_status": "needs_review",
        "review_label": "待審核",
        "review_note": "等待你審核：S10B audio-repaired，Leo 說 The puppet show is ready；Bobo 安全在藍盒/舞台中，無字幕文字。",
        "contact_sheet": "generated/video/hq_story_bobo_20260828/clip10B_puppet_show_ready_retry2_audio_clear_puppet_3s/ep01_hq_story_clip10B_retry2_contact.jpg"
      },
      {
        "id": "hq_story_clip10AB_assembled_candidate",
        "title": "S10-FULL｜小故事第 10 組串接版",
        "final_order": "story-clip-10-FULL",
        "status": "candidate_ready_for_user_review",
        "file": "generated/video/hq_story_bobo_20260828/assembled/ep01_hq_story_clip10AB_assembled_candidate.mp4",
        "video": "generated/video/hq_story_bobo_20260828/assembled/ep01_hq_story_clip10AB_assembled_candidate.mp4",
        "review_status": "needs_review",
        "review_label": "待審核",
        "review_note": "等待你審核：S10A–S10B 串接，High five! → The puppet show is ready.",
        "contact_sheet": "generated/video/hq_story_bobo_20260828/assembled/ep01_hq_story_clip10AB_assembled_candidate_contact.jpg"
      }
    ],
    "dashboard_slot_policy": "Story regenerated microsegments replace their original slot in the main sequence table; retry/new/fixed suffix is recorded in notes, not shown as an extra row.",
    "review_status": "pending_review",
    "review_label": "待確認",
    "review_note": "S02E 動畫已重新生成，修正 Mia 說完後持續張嘴的動作；固定角色配音重新對齊、校正顏色亮度，待確認。",
    "note": "已納入 S02E 嘴型與配音收尾修正；S05E 使用原版，待確認。",
    "s05_five_shot_revision": {
      "episode": "EP01_HQ",
      "reason": "使用者要求 S05 最多五段，整併內容後全部重新生成。",
      "shots": [
        {
          "order": "S05A",
          "replaces": [
            "S05A",
            "S05B"
          ],
          "title": "檢查 Bobo，發現空電池槽",
          "seconds": 5,
          "dialogue": [
            {
              "speaker": "Leo",
              "en": "Let's check Bobo."
            },
            {
              "speaker": "Leo",
              "en": "Bobo has no battery."
            }
          ],
          "action": "檢查桌新鏡位：Bobo 背面朝向鏡頭、電池蓋關閉。Leo 先試開關沒有反應，隨即打開背蓋看見空電池槽；桌上的唯一電池仍在 Mia 面前。"
        },
        {
          "order": "S05B",
          "replaces": [
            "S05C",
            "S05D"
          ],
          "title": "找到電池，直接遞給 Leo",
          "seconds": 4,
          "dialogue": [
            {
              "speaker": "Mia",
              "en": "I have a battery."
            },
            {
              "speaker": "Leo",
              "en": "Pass it here."
            }
          ],
          "action": "Mia 拿起桌上唯一電池，Leo 回應時伸出空手，Mia 順勢遞過去；不先各自定格等台詞。Bobo 電池槽保持打開且為空。"
        },
        {
          "order": "S05C",
          "replaces": [
            "S05E"
          ],
          "title": "裝入電池並關好背蓋",
          "seconds": 3,
          "dialogue": [],
          "action": "Leo 將電池放入空槽並按牢，再關妥電池蓋。動作連續、短而清楚；不等待、不啟動 Bobo。"
        },
        {
          "order": "S05D",
          "replaces": [
            "S05F"
          ],
          "title": "準備好，啟動 Bobo",
          "seconds": 3,
          "dialogue": [
            {
              "speaker": "Leo",
              "en": "Ready? Go!"
            }
          ],
          "action": "Leo 將 Bobo 正面朝向鏡頭穩穩放在桌上，說 Go 時按背面開關，玩偶開始小幅機械擺動。"
        },
        {
          "order": "S05E",
          "replaces": [
            "S05G",
            "S05H"
          ],
          "title": "成功後自然互相回應",
          "seconds": 3,
          "dialogue": [
            {
              "speaker": "Leo",
              "en": "It works!"
            },
            {
              "speaker": "Mia",
              "en": "Good job!"
            }
          ],
          "action": "Leo 看見 Bobo 運作便笑著說 It works，Mia 接著回應 Good job；兩人一起看著桌上小幅擺動的玩偶，自然收尾。"
        }
      ],
      "continuity": "S05A 是檢查桌的新鏡位，B–E 從各前段的實際尾幀接續。無定格補秒、無背景音樂。",
      "status": "generated_pending_review"
    },
    "full_review_video": "generated/story_s01_s05_20260919/review.mp4",
    "production_note_before_approval": "使用者退回 S04B：開頭 Mia 又去拉膠帶很奇怪；這段 Mia 不需要再動膠帶，應停手看著 Leo 拿小美工刀。"
  },
  "final_assembly": {
    "id": "ep01_complete_phrases_story_20260921_v1",
    "title": "EP01 完整高畫質成片｜短句 P01–P15 → 故事 S01–S05",
    "file": "generated/ep01_complete_phrases_story_20260921_v1/review.mp4",
    "video": "generated/ep01_complete_phrases_story_20260921_v1/review.mp4",
    "master_file": "generated/ep01_complete_phrases_story_20260921_v1/master.mp4",
    "contact_sheet": "generated/ep01_complete_phrases_story_20260921_v1/contact.jpg",
    "qa_file": "generated/ep01_complete_phrases_story_20260921_v1/qa.json",
    "quality": "1344 × 768 / 24 fps；高畫質 master.mp4 已存 Hermes",
    "status": "pending_review",
    "review_status": "pending_review",
    "review_label": "完整成片待確認",
    "duration_seconds": 310.666667,
    "updated_at": "2026-09-21T16:38:50.209162+08:00",
    "notes": "先播放 P01–P15（每句既有三遍版）後直接接 S01–S05；已替換 P05 三遍版及 S02E 音訊修復版，QA 未檢出黑畫面。",
    "videos": [
      {
        "id": "ep01_phrases_p01_p15_20260921_v1",
        "title": "EP01 高畫質短句合輯｜P01–P15・每句三遍",
        "file": "generated/phrases_p01_p15_20260921_v1/review.mp4",
        "video": "generated/phrases_p01_p15_20260921_v1/review.mp4",
        "master_file": "generated/phrases_p01_p15_20260921_v1/master.mp4",
        "contact_sheet": "generated/phrases_p01_p15_20260921_v1/contact.jpg",
        "qa_file": "generated/phrases_p01_p15_20260921_v1/qa.json",
        "quality": "1344 × 768 / 24 fps",
        "status": "generated",
        "review_status": "pending_review",
        "review_label": "合輯完成",
        "duration_seconds": 224.166667,
        "updated_at": "2026-09-21T16:38:50.209162+08:00"
      },
      {
        "id": "ep01_story_s01_s05_audiofix_20260921_v1",
        "title": "EP01 完整故事｜S01–S05・含 S02 音訊修復",
        "file": "generated/story_s01_s05_audiofix_20260921_v1/review.mp4",
        "video": "generated/story_s01_s05_audiofix_20260921_v1/review.mp4",
        "master_file": "generated/story_s01_s05_audiofix_20260921_v1/master.mp4",
        "contact_sheet": "generated/story_s01_s05_audiofix_20260921_v1/contact.jpg",
        "qa_file": "generated/story_s01_s05_audiofix_20260921_v1/qa.json",
        "quality": "1344 × 768 / 24 fps",
        "status": "generated",
        "review_status": "pending_review",
        "review_label": "合輯完成",
        "duration_seconds": 90.25,
        "updated_at": "2026-09-21T16:38:50.209162+08:00"
      }
    ]
  },
  "full_story_zh_tw": "今天是教室的「小小作品展示日」。Mia 和 Leo 要一起準備一張星空圖、一個小紙風車、一條玩具道路，還有幾個小模型，等一下要帶到門口的展示桌給大家看。桌上東西很多：藍色蠟筆、黃色蠟筆、紙張、小球、玩具車、兔子和烏龜玩具，還有一個需要放穩的小火箭模型。Mia 先把材料分成幾區，Leo 則抱著大箱子走進來。\n\nLeo 一邊走一邊問：「I found the big box. Where should I put it?」他只看著桌面，沒有注意腳邊的小零件。Mia 馬上伸手指向地上說：Watch out! 接著補了一句：「There is a small piece by your foot. Step back slowly.」Leo 停下來，看見自己差點踩到零件，鬆了一口氣說：「Oh, I almost stepped on it. Thanks.」他把箱子放到桌邊，又急著推玩具車試道路，車子一下子衝向小杯子。Mia 舉起手，用比較低的聲音提醒：Slow down. 她說：「Fast is not helpful if the car bumps everything.」Leo 點頭，把車子改成慢慢推：「Okay. I will push it gently.」\n\n整理到一半，Leo 看見桌上的按鈕和展示道具，又想立刻開始測試。他問：「Can I press it now?」Mia 把手掌停在他前面說：Hold on. 她指著還沒清好的桌面說：「The table is not clear yet, and we still need the blue crayon.」Leo 把手收回來：「Right. I will wait.」這次他沒有搶快，而是站在旁邊看 Mia 還需要什麼。\n\nMia 想把星空圖壓平，可是紙角一直翹起來。她一手壓著紙，一手又想拿遠一點的材料，手有點不夠用。Leo 看見她皺眉，先問：Need help? Mia 馬上說：「Yes, please. Hold the paper flat for me.」Leo 用兩隻手壓住紙的右邊：「I can hold this side.」紙終於平了。Mia 看著 Leo 那邊的藍色蠟筆說：「The sky needs one blue line here.」她打開手，說：Pass it here. Leo 說：「Here comes the blue crayon.」然後把同一支藍色蠟筆從右邊慢慢推到 Mia 手裡。Mia 接住後說：「Got it. Thank you.」\n\n就在他們把蠟筆放好時，一顆小藍球從材料籃旁邊滾出來，往桌邊靠近。Mia 指著球說：「The ball is rolling to the edge!」Leo 立刻伸出雙手接住，笑著說：I got it. 他把球捧好給 Mia 看：「It is safe in my hands.」Mia 笑了：「Nice catch. Put it in the basket.」Leo 把球放進籃子，桌面又恢復安全。\n\n接著，他們開始輪流完成作品。Mia 先示範怎麼固定第一邊，然後把工具放到桌子中央。她說：「I fixed the first side. The second side still needs a gentle turn.」Leo 禮貌地拿起工具說：My turn. Mia 沒有搶回來，只提醒：「Okay. Keep your wrist slow and steady.」Leo 小心地轉了一下，問：「Like this?」他又想到一個方法：「What if we put the small pieces in a row first? Then we will not lose them.」Mia 看了看桌面，點頭說：Good idea. 她補充：「Let’s make a little parts line next to the picture.」Leo 說：「Then we can see what is missing.」\n\n星空圖快完成時，月亮、雲和大部分星星都已經塗好。Leo 看著圖說：「We colored the moon, the clouds, and all these stars.」Mia 指向右上角那顆還是白色空心的小星星說：Almost there. 她說：「Only that little star is still empty.」Leo 把黃色蠟筆放在旁邊，沒有急著塗：「I will keep the crayon beside it until we are ready.」兩個人都知道，只差最後一步，但最後一步也要慢慢來。\n\n展示前，他們做一次小彩排。Mia 把膠帶貼成起跑線，兔子和烏龜玩具都放在線後。Mia 拿起小旗說：「Before we show everyone, let’s do one tiny practice race.」她看向 Leo 問：Ready? Leo 認真點頭：「Ready. My bunny will wait behind the line.」Mia 笑著提醒：「Good. No jumping early.」接著 Leo 看著門口的圖示地圖說：「The map says the display table is by the door.」Mia 檢查手上的作品：「Then we should bring the picture and the pinwheel.」Leo 背上小包，開心地說：Let’s go! Mia 馬上補一句：「Walk, don’t run. We have all the pieces.」\n\n他們把作品搬到展示桌前，先把小火箭模型輕輕放在軟墊上。Mia 說：「Set it down gently on the soft mat.」可是模型還是歪了一下。Leo 睜大眼睛：No way! 他低頭看著倒下的模型說：「It tipped over again.」Mia 沒有責怪他，只說：「That means we found the problem before the show.」Leo 小聲說：「Maybe we should stop.」Mia 指著一小條移位的紙片，溫和地說：Try again. 她補充：「Look, only this small strip moved. We can fix that.」Leo 重新扶好模型：「Okay. I will hold it steady this time.」\n\n最後，他們改測小紙風車。Leo 說：「I will blow gently, not too hard.」Mia 看著風車葉片：「The paper is moving. Keep it steady.」風車先輕輕晃動，接著順利轉起來。Mia 指著風車開心地說：It works! Leo 也笑了：「The pinwheel is spinning. We fixed it together.」他們把星空圖、風車和小模型排在展示桌上，桌面乾淨，材料也都放回盒子裡。\n\nMia 看著完整的展示桌說：「We listened, helped, and fixed each little problem.」Leo 點頭：「And we did not rush at the end.」Mia 伸出手掌說：High five! Leo 也伸出手，和她清楚擊掌：「High five! Our display is ready.」兩個人笑著看向門口，準備把今天的作品介紹給大家。",
  "last_updated": "2026-09-14T12:16:37+08:00",
  "hq_policy": {
    "separate_from": "EP01_2026-05-22_restart-project",
    "do_not_overwrite_draft": true,
    "accepted_draft_clips_are_reference_only": true,
    "native_hd_required": true,
    "continuity_rule": "Each HQ clip must start from the previous accepted HQ clip final frame; keep Mia/Leo/scene/Bobo refs wired."
  },
  "videos": [
    {
      "order": "S01-FULL",
      "id": "hq_story_clip01A_to_01D_no_paper_c4_d7_old_voices",
      "title": "S01-FULL｜01A–01D｜C/D 無紙本、Leo/Mia 原聲",
      "label": "S01-FULL｜01A–01D｜C/D 無紙本、Leo/Mia 原聲",
      "segment": "hq_bobo_stepwise_regen",
      "file": "generated/video/hq_story_bobo_20260828/assembled/ep01_hq_story_clip01A_to_01D_no_paper_camera_cut_c_retry4_d_retry7_old_voices.mp4",
      "video": "generated/video/hq_story_bobo_20260828/assembled/ep01_hq_story_clip01A_to_01D_no_paper_camera_cut_c_retry4_d_retry7_old_voices.mp4",
      "source_video": "generated/video/hq_story_bobo_20260828/assembled/ep01_hq_story_clip01A_to_01D_no_paper_camera_cut_c_retry4_d_retry7_old_voices.mp4",
      "review_sheet": "generated/video/hq_story_bobo_20260828/assembled/ep01_hq_story_clip01A_to_01D_no_paper_camera_cut_c_retry4_d_retry7_contact.jpg",
      "contact_sheet": "generated/video/hq_story_bobo_20260828/assembled/ep01_hq_story_clip01A_to_01D_no_paper_camera_cut_c_retry4_d_retry7_contact.jpg",
      "status": "approved",
      "review_status": "approved",
      "review_label": "已確認",
      "note": "使用者指出目前 S01C/S01D 版本違反既定影片規則：下一段必須使用上一段最後一幀作為真 first_frame；camera cut / 非精準連續版本撤下。",
      "review_note": "使用者已確認：畫面可以，Leo 最後一句 ref-audio 修正版可以；S01C/S01D/S01-FULL 更新為已確認。",
      "approval_note": "使用者已確認：畫面可以，Leo 最後一句 ref-audio 修正版可以；S01C/S01D/S01-FULL 更新為已確認。",
      "approved_at": "2026-09-02T17:16:33"
    },
    {
      "order": "S01C",
      "label": "S01C｜重生版 retry4｜What happened?｜無紙本",
      "segment": "hq_bobo_stepwise_regen",
      "file": "generated/video/hq_story_bobo_20260828/clip01C_no_paper_camera_cut_empty_hands_retry4_3s/ep01_hq_story_clip01C_no_paper_retry4_visual_old_mia_audio.mp4",
      "video": "generated/video/hq_story_bobo_20260828/clip01C_no_paper_camera_cut_empty_hands_retry4_3s/ep01_hq_story_clip01C_no_paper_retry4_visual_old_mia_audio.mp4",
      "source_video": "generated/video/hq_story_bobo_20260828/clip01C_no_paper_camera_cut_empty_hands_retry4_3s/ep01_hq_story_clip01C_no_paper_retry4_visual_old_mia_audio.mp4",
      "review_sheet": "generated/video/hq_story_bobo_20260828/clip01C_no_paper_camera_cut_empty_hands_retry4_3s/ep01_hq_story_clip01C_no_paper_retry4_contact.jpg",
      "contact_sheet": "generated/video/hq_story_bobo_20260828/clip01C_no_paper_camera_cut_empty_hands_retry4_3s/ep01_hq_story_clip01C_no_paper_retry4_contact.jpg",
      "start_key_image": "generated/video/hq_story_bobo_20260828/clip01C_no_paper_camera_cut_empty_hands_retry4_3s/ep01_hq_story_clip01C_no_paper_retry4_frame0.jpg",
      "end_key_image": "generated/video/hq_story_bobo_20260828/clip01C_no_paper_camera_cut_empty_hands_retry4_3s/ep01_hq_story_clip01C_no_paper_retry4_final_frame.png",
      "provider_prompt": "generated/video/hq_story_bobo_20260828/clip01C_no_paper_camera_cut_empty_hands_retry4_3s/prompt.txt",
      "note": "使用者指出目前 S01C/S01D 版本違反既定影片規則：下一段必須使用上一段最後一幀作為真 first_frame；camera cut / 非精準連續版本撤下。",
      "review_status": "approved",
      "review_label": "已確認",
      "review_note": "使用者已確認：畫面可以，Leo 最後一句 ref-audio 修正版可以；S01C/S01D/S01-FULL 更新為已確認。",
      "status": "approved",
      "approval_note": "使用者已確認：畫面可以，Leo 最後一句 ref-audio 修正版可以；S01C/S01D/S01-FULL 更新為已確認。",
      "approved_at": "2026-09-02T17:16:33"
    },
    {
      "order": "S01D",
      "label": "S01D｜重生版 retry7｜Bobo is not in the box｜Leo 原聲",
      "segment": "hq_bobo_stepwise_regen",
      "file": "generated/video/hq_story_bobo_20260828/clip01D_no_paper_from_retry4C_old_leo_audio_retry7_face_only_3s/ep01_hq_story_clip01D_no_paper_retry7_visual_old_leo_audio.mp4",
      "video": "generated/video/hq_story_bobo_20260828/clip01D_no_paper_from_retry4C_old_leo_audio_retry7_face_only_3s/ep01_hq_story_clip01D_no_paper_retry7_visual_old_leo_audio.mp4",
      "source_video": "generated/video/hq_story_bobo_20260828/clip01D_no_paper_from_retry4C_old_leo_audio_retry7_face_only_3s/ep01_hq_story_clip01D_no_paper_retry7_visual_old_leo_audio.mp4",
      "review_sheet": "generated/video/hq_story_bobo_20260828/clip01D_no_paper_from_retry4C_old_leo_audio_retry7_face_only_3s/ep01_hq_story_clip01D_no_paper_retry7_contact.jpg",
      "contact_sheet": "generated/video/hq_story_bobo_20260828/clip01D_no_paper_from_retry4C_old_leo_audio_retry7_face_only_3s/ep01_hq_story_clip01D_no_paper_retry7_contact.jpg",
      "start_key_image": "generated/video/hq_story_bobo_20260828/clip01D_no_paper_from_retry4C_old_leo_audio_retry7_face_only_3s/ep01_hq_story_clip01D_no_paper_retry7_frame0.jpg",
      "end_key_image": "generated/video/hq_story_bobo_20260828/clip01D_no_paper_from_retry4C_old_leo_audio_retry7_face_only_3s/ep01_hq_story_clip01D_no_paper_retry7_final_frame.png",
      "provider_prompt": "generated/video/hq_story_bobo_20260828/clip01D_no_paper_from_retry4C_old_leo_audio_retry7_face_only_3s/prompt.txt",
      "note": "使用者指出目前 S01C/S01D 版本違反既定影片規則：下一段必須使用上一段最後一幀作為真 first_frame；camera cut / 非精準連續版本撤下。",
      "review_status": "approved",
      "review_label": "已確認",
      "review_note": "使用者已確認：畫面可以，Leo 最後一句 ref-audio 修正版可以；S01C/S01D/S01-FULL 更新為已確認。",
      "status": "approved",
      "approval_note": "使用者已確認：畫面可以，Leo 最後一句 ref-audio 修正版可以；S01C/S01D/S01-FULL 更新為已確認。",
      "approved_at": "2026-09-02T17:16:33"
    },
    {
      "id": "hq_story_clip05E_retry3_keep_tiny_yellow_edge_true_silent",
      "title": "S05E retry3｜近景保留小黃布邊",
      "final_order": "story-clip-05E",
      "status": "Candidate ready for user review.",
      "file": "generated/video/hq_story_bobo_20260828/clip05E_keep_tiny_yellow_edge_retry3_closeup_silent_visual_3s/ep01_hq_story_clip05E_keep_tiny_yellow_edge_true_silent.mp4",
      "video": "generated/video/hq_story_bobo_20260828/clip05E_keep_tiny_yellow_edge_retry3_closeup_silent_visual_3s/ep01_hq_story_clip05E_keep_tiny_yellow_edge_true_silent.mp4",
      "review_status": "needs_review",
      "review_label": "待審核",
      "review_note": "等待你審核：S05E true-silent，近景只露小紅 tag 與一小片黃色布邊；尚未露出 Bobo。"
    },
    {
      "id": "hq_story_clip05F_retry1_notice_tiny_yellow_cloth_true_silent",
      "title": "S05F retry1｜注意黃色布邊線索",
      "final_order": "story-clip-05F",
      "status": "Candidate ready for user review.",
      "file": "generated/video/hq_story_bobo_20260828/clip05F_notice_tiny_yellow_cloth_retry1_silent_visual_3s/ep01_hq_story_clip05F_notice_tiny_yellow_cloth_true_silent.mp4",
      "video": "generated/video/hq_story_bobo_20260828/clip05F_notice_tiny_yellow_cloth_retry1_silent_visual_3s/ep01_hq_story_clip05F_notice_tiny_yellow_cloth_true_silent.mp4",
      "review_status": "needs_review",
      "review_label": "待審核",
      "review_note": "等待你審核：S05F true-silent，紅 tag 旁只多看到黃色布邊，仍未露出 Bobo。"
    },
    {
      "id": "hq_story_clip05ABCDEF_assembled",
      "title": "S05-FULL｜05A–05F 串接版｜scarf tag/yellow cloth clue",
      "final_order": "story-clip-05-full",
      "status": "assembled_candidate_ready_for_user_review",
      "file": "generated/video/hq_story_bobo_20260828/assembled/ep01_hq_story_clip05ABCDEF_assembled_candidate.mp4",
      "video": "generated/video/hq_story_bobo_20260828/assembled/ep01_hq_story_clip05ABCDEF_assembled_candidate.mp4",
      "review_status": "needs_review",
      "review_label": "待審核",
      "review_note": "等待你審核：S05A–S05F 串接，只有 S05A 有台詞，其餘為真靜音線索段。"
    },
    {
      "id": "hq_story_clip09A_retry2_arm_not_waving_audio_lock_3s",
      "title": "S09A retry2｜Bobo's arm is not waving.",
      "final_order": "story-clip-09A",
      "status": "candidate_ready_for_user_review",
      "file": "generated/video/hq_story_bobo_20260828/clip09A_retry2_arm_not_waving_audio_lock_3s/ep01_hq_story_clip09A_retry2_arm_not_waving_audio_lock_3s_native_audio.mp4",
      "video": "generated/video/hq_story_bobo_20260828/clip09A_retry2_arm_not_waving_audio_lock_3s/ep01_hq_story_clip09A_retry2_arm_not_waving_audio_lock_3s_native_audio.mp4",
      "review_status": "needs_review",
      "review_label": "待審核",
      "review_note": "等待你審核：S09A retry2，Bobo 手臂不會揮動，問題尚未修好。",
      "contact_sheet": "generated/video/hq_story_bobo_20260828/clip09A_retry2_arm_not_waving_audio_lock_3s/ep01_hq_story_clip09A_contact.jpg"
    },
    {
      "id": "hq_story_clip09B_try_again_free_string_audio_repair1",
      "title": "S09B｜Try again.｜free the control string",
      "final_order": "story-clip-09B",
      "status": "candidate_ready_for_user_review_voice_ref_audio_repaired",
      "file": "generated/video/hq_story_bobo_20260828/clip09B_try_again_free_string_3s/ep01_hq_story_clip09B_try_again_free_string_p05_audio_no_bgm_v2.mp4",
      "video": "generated/video/hq_story_bobo_20260828/clip09B_try_again_free_string_3s/ep01_hq_story_clip09B_try_again_free_string_p05_audio_no_bgm_v2.mp4",
      "review_status": "needs_review",
      "review_label": "待審核",
      "review_note": "等待你審核：S09B audio-repaired，Mia 說 Try again，控制線已可再試但 Bobo 尚未成功揮手。",
      "contact_sheet": "generated/video/hq_story_bobo_20260828/clip09B_try_again_free_string_3s/ep01_hq_story_clip09B_contact.jpg"
    },
    {
      "id": "ep01_hq_story_all_groups_review_candidate",
      "title": "EP01 HQ 全小故事串接版｜S01–S10 current review candidate",
      "final_order": "STORY-FULL",
      "status": "Candidate ready for user review.",
      "file": "generated/video/hq_story_bobo_20260828/final_assembly/ep01_hq_story_all_groups_review_candidate.mp4",
      "video": "generated/video/hq_story_bobo_20260828/final_assembly/ep01_hq_story_all_groups_review_candidate.mp4",
      "contact_sheet": "generated/video/hq_story_bobo_20260828/final_assembly/ep01_hq_story_all_groups_review_candidate_contact.jpg",
      "qa_file": "generated/video/hq_story_bobo_20260828/final_assembly/ep01_hq_story_all_groups_review_candidate.qa.json",
      "review_status": "needs_review",
      "review_label": "待審核",
      "review_note": "等待你審核：S01–S10 全小故事串接版，使用目前 dashboard 各組 FULL 候選串接；Whisper base 完整辨識主要台詞，靜音段幻聽視為 advisory。"
    },
    {
      "order": "S03A",
      "id": "ep01_s03a_combined_20260918",
      "label": "S03A｜Leo 提議、Mia 建議逐項檢查",
      "title": "S03A｜Leo 提議、Mia 建議逐項檢查",
      "segment": "hq_bobo_stepwise_regen",
      "final_order": "story-clip-03A",
      "file": "generated/s03a_combined_v1/review.mp4",
      "video": "generated/s03a_combined_v1/review.mp4",
      "source_video": "generated/s03a_combined_v1/review.mp4",
      "prompt_zh_tw": "使用 Flow 既有 Leo、Mia 角色與原教室參考，保留角色外觀及已存角色聲音。溫暖 3D 黏土風教室，中景雙人鏡頭，Mia 左、Leo 右，站在桌子與關閉的收納箱旁。Leo 只以小幅對話手勢表達想法，說一次「I can open every box and find him fast.」；Mia 閉嘴安靜旁聽。無人碰觸、開啟、搬動或搜尋箱子，箱蓋全程關閉；沒有 checklist 動作，Bobo 不出現。單一連續鏡頭，自然呼吸與眨眼，說完後閉嘴自然停留。原生同步對白，無旁白、額外台詞、音樂或字幕。",
      "provider": "ComfyUI / MiniMax H3",
      "status": "generated",
      "review_status": "approved",
      "review_label": "已確認",
      "review_note": "使用者已審核確認：目前更新上去的版本都可以使用。",
      "note": "使用者已審核確認：目前更新上去的版本都可以使用。",
      "quality": "1344 × 768 / 24 fps",
      "revision_history": [
        {
          "order": "S03A",
          "id": "hq_story_s03A_google_flow_approved_20260914",
          "label": "S03A｜Leo 表達開箱找 Bobo 的想法｜Google Flow",
          "title": "S03A｜Leo 表達開箱找 Bobo 的想法｜Google Flow",
          "segment": "hq_bobo_stepwise_regen",
          "final_order": "story-clip-03A",
          "file": "generated/video/hq_story_bobo_20260828/google_flow_s03A_retry_20260914/s03A_flow_retry1.mp4",
          "video": "generated/video/hq_story_bobo_20260828/google_flow_s03A_retry_20260914/s03A_flow_retry1.mp4",
          "source_video": "generated/video/hq_story_bobo_20260828/google_flow_s03A_retry_20260914/s03A_flow_retry1.mp4",
          "contact_sheet": "generated/video/hq_story_bobo_20260828/google_flow_s03A_retry_20260914/contact.jpg",
          "frame0": "generated/video/hq_story_bobo_20260828/google_flow_s03A_retry_20260914/frame0.png",
          "actual_frame0": "generated/video/hq_story_bobo_20260828/google_flow_s03A_retry_20260914/frame0.png",
          "first_frame": "",
          "first_frame_input": "",
          "final_frame": "generated/video/hq_story_bobo_20260828/google_flow_s03A_retry_20260914/final.png",
          "reference_images": [],
          "reference_audio": [],
          "workflow": "",
          "prompt_file": "generated/video/hq_story_bobo_20260828/google_flow_s03A_retry_20260914/prompt.txt",
          "prompt_en": "S03A - Leo expresses an intention only. Use the attached native Leo and Mia characters, preserving their saved character voices and exact approved faces, brown hairstyles, child proportions and outfits: Leo in a green sweater and jeans; Mia in a pink sweater, ponytail and jeans. Use the attached original classroom image for the same warm 3D clay-like classroom, wooden furniture, red-curtained puppet stage, window and storage shelves. Medium two-shot, Mia on the left, Leo on the right. Both stand naturally near the classroom table and closed storage boxes. Leo eagerly tells Mia his proposed plan, with a small conversational hand gesture only. Only Leo speaks, using his attached saved Puck custom character voice, clearly and naturally in English, exactly once: \"I can open every box and find him fast.\" This sentence is only his intention: nobody touches, opens, lifts, moves or searches any box; all lids stay fully closed throughout. Mia silently listens with her lips closed throughout, no speaking mouth motion. No checklist action. Bobo is still missing and completely absent from every frame; no doll, mascot or additional character appears. One continuous shot, gentle natural breathing and blinking, not a frozen still. After Leo finishes the sentence, his lips close and both hold a natural silent resting expression. Native synchronized character dialogue only, no additional words, narrator, music, singing or soundtrack. No subtitles, captions, speech bubbles, title cards, logos or visible written dialogue. Do not substitute voices or produce a silent video.",
          "prompt_zh_tw": "使用 Flow 既有 Leo、Mia 角色與原教室參考，保留角色外觀及已存角色聲音。溫暖 3D 黏土風教室，中景雙人鏡頭，Mia 左、Leo 右，站在桌子與關閉的收納箱旁。Leo 只以小幅對話手勢表達想法，說一次「I can open every box and find him fast.」；Mia 閉嘴安靜旁聽。無人碰觸、開啟、搬動或搜尋箱子，箱蓋全程關閉；沒有 checklist 動作，Bobo 不出現。單一連續鏡頭，自然呼吸與眨眼，說完後閉嘴自然停留。原生同步對白，無旁白、額外台詞、音樂或字幕。",
          "provider": "Google Flow",
          "generation_mode": "Flow 既有角色與原教室參考；原始輸入首幀未記錄。frame0 為實際輸出第一幀，非生成輸入。",
          "source_note": "本地 prompt.txt 記錄附加 Leo、Mia 原生角色及原教室參考；沒有可確認對應的本地參考原檔，因此參考檔案欄留空。Leo 聲音依提交 prompt 使用已存 Puck 自訂角色聲音。",
          "status": "approved",
          "review_status": "approved",
          "review_label": "已確認",
          "review_note": "2026-09-14 使用者明確通過 Google Flow 原速完整影片並要求保存發布；Leo 台詞：I can open every box and find him fast. Mia 旁聽。未套用 0.8 倍速 QA 音檔，未換音、未裁切。",
          "note": "2026-09-14 使用者明確通過 Google Flow 原速完整影片並要求保存發布；Leo 台詞：I can open every box and find him fast. Mia 旁聽。未套用 0.8 倍速 QA 音檔，未換音、未裁切。",
          "approval_note": "2026-09-14 使用者明確通過 Google Flow 原速完整影片並要求保存發布；Leo 台詞：I can open every box and find him fast. Mia 旁聽。未套用 0.8 倍速 QA 音檔，未換音、未裁切。",
          "approved_at": "2026-09-14T12:16:37+08:00",
          "quality": "Google Flow 1280×720 原速含原生音訊",
          "qa": {
            "sha256": "64d7ac36daf2a9d1f2297ffe2559248eb807b25959d5ce6f919e89abfad7913f",
            "duration_seconds": 6.016,
            "width": 1280,
            "height": 720,
            "audio_present": true,
            "approval": "user_approved",
            "speed": 1.0
          }
        }
      ],
      "display_title": "S03A｜Leo 提議、Mia 建議逐項檢查",
      "updated_at": "2026-09-19T13:45:05.071048+08:00",
      "dialogue": [
        {
          "speaker": "Leo",
          "en": "I can open every box and find him fast."
        },
        {
          "speaker": "Mia",
          "en": "Let's check one at a time."
        }
      ],
      "frame0": "generated/s03a_combined_v1/first.png",
      "actual_frame0": "generated/s03a_combined_v1/first.png",
      "final_frame": "generated/s03a_combined_v1/last.png",
      "contact_sheet": "generated/s03a_combined_v1/contact.jpg",
      "prompt_en": "Warm crisp 3D clay animation. Match the two children, classroom, open empty box and checklist in <Picture 1>. Locked medium two-shot, Mia left in pink holding the SAME checklist steadily in her left hand, Leo right in green. Natural continuous conversation. FIRST, Leo speaks with the young boy voice of <Audio 1>, exactly: \"I can open every box and find him fast.\" He only proposes his idea with a small hand gesture; he does not touch or open any boxes. Mia listens with lips closed. THEN Leo closes his mouth and listens while Mia replies using the young girl voice of <Audio 2>, exactly: \"Let's check one at a time.\" She gives one gentle calming palm gesture with her free right hand. The checklist remains in her left hand, not moving or changing design. Both finish with mouths closed and hands relaxed, ready to examine her list. Same light and camera throughout, no cuts or zoom. Bobo remains absent. Only the active speaker moves their mouth. No extra speech, text overlays, music or narrator. Do not read the checklist yet.",
      "production_note_before_approval": "原 S03A＋S03B 合併重新生成，同鏡頭輪流對話；待確認。",
      "approved_at": "2026-09-19T13:45:05.071048+08:00",
      "approved_by": "user"
    },
    {
      "order": "S03-FULL",
      "id": "hq_story_clip03ABC_full_no_s03d_20260902",
      "title": "S03-FULL｜新版 A＋B 連續對話",
      "label": "S03-FULL｜新版 A＋B 連續對話",
      "segment": "hq_bobo_stepwise_regen",
      "file": "generated/s03b_continuation_v1/s03_full.mp4",
      "video": "generated/s03b_continuation_v1/s03_full.mp4",
      "source_video": "generated/s03b_continuation_v1/s03_full.mp4",
      "status": "generated",
      "review_status": "approved",
      "review_label": "已確認",
      "review_note": "使用者已審核確認：目前更新上去的版本都可以使用。",
      "note": "使用者已審核確認：目前更新上去的版本都可以使用。",
      "revision_history": [
        {
          "order": "S03-FULL",
          "id": "hq_story_clip03ABC_full_no_s03d_20260902",
          "title": "S03-FULL｜舊串接未同步新 S03A｜待重組",
          "label": "S03-FULL｜舊串接未同步新 S03A｜待重組",
          "segment": "hq_bobo_stepwise_regen",
          "file": "generated/video/hq_story_bobo_20260828/assembled/ep01_hq_story_clip03ABC_full_no_s03d_20260902.mp4",
          "video": "generated/video/hq_story_bobo_20260828/assembled/ep01_hq_story_clip03ABC_full_no_s03d_20260902.mp4",
          "source_video": "generated/video/hq_story_bobo_20260828/assembled/ep01_hq_story_clip03ABC_full_no_s03d_20260902.mp4",
          "review_sheet": "generated/video/hq_story_bobo_20260828/assembled/ep01_hq_story_clip03ABC_full_no_s03d_20260902_contact.jpg",
          "contact_sheet": "generated/video/hq_story_bobo_20260828/assembled/ep01_hq_story_clip03ABC_full_no_s03d_20260902_contact.jpg",
          "status": "needs_reassembly",
          "review_status": "needs_reassembly",
          "review_label": "需更新／待重組",
          "review_note": "舊串接仍包含舊 S03A；新的 Google Flow S03A 已確認，但本次未重組。需更新／待重組，不代表已同步完成。",
          "note": "舊串接仍包含舊 S03A；新的 Google Flow S03A 已確認，但本次未重組。需更新／待重組，不代表已同步完成。"
        }
      ],
      "display_title": "S03-FULL｜新版 A＋B 連續對話",
      "provider": "ComfyUI / MiniMax H3",
      "quality": "1344 × 768 / 24 fps",
      "updated_at": "2026-09-19T13:45:05.071048+08:00",
      "contact_sheet": "generated/s03b_continuation_v1/s03_full_contact.jpg",
      "prompt_en": "Continue this exact image as a single continuous locked-camera clay animation shot. Same classroom, same lighting, same children, same open empty cardboard box and SAME checklist with same symbols. Mia, girl in pink on the left, is already holding the checklist in her left hand. She gently lifts her free right hand and points her index finger to the top item on that checklist. While pointing, ONLY MIA says exactly once in a clear young girl's voice: \"Read the checklist first.\" Start the line around 0.7 seconds and finish by 2.7 seconds. Leo, boy in green on the right, listens with mouth gently CLOSED for the entire shot, looking at the indicated list item. Mia finishes with lips closed, hand resting near the list. Minimal natural motion and gentle blinking. Do not move the camera or change composition. Do not move the box or invent props. No Bobo, extra speech, narrator, music, subtitles, titles or cuts.",
      "production_note_before_approval": "新版 S03A＋S03B 串接，原三段已整併為兩段；待確認。",
      "approved_at": "2026-09-19T13:45:05.071048+08:00",
      "approved_by": "user"
    },
    {
      "order": "S04A",
      "id": "ep01_s04a_redo_20260919",
      "title": "S04A｜開箱遇阻，隨即求助",
      "label": "S04A｜開箱遇阻，隨即求助",
      "display_title": "S04A｜開箱遇阻，隨即求助",
      "file": "generated/s04a_redo_v1/review.mp4",
      "video": "generated/s04a_redo_v1/review.mp4",
      "source_video": "generated/s04a_redo_v1/review.mp4",
      "frame0": "generated/s04a_redo_v1/first.png",
      "actual_frame0": "generated/s04a_redo_v1/first.png",
      "final_frame": "generated/s04a_redo_v1/last.png",
      "contact_sheet": "generated/s04a_redo_v1/contact.jpg",
      "status": "generated",
      "review_status": "approved",
      "review_label": "已確認",
      "review_note": "使用者已審核確認：目前更新上去的版本都可以使用。",
      "note": "使用者已審核確認：目前更新上去的版本都可以使用。",
      "provider": "ComfyUI / MiniMax H3",
      "quality": "1344 × 768 / 24 fps",
      "dialogue": [
        {
          "en": "It's stuck."
        }
      ],
      "prompt_en": "Crisp warm clay animation, continuous locked medium two-shot from this exact starting frame. Mia, the girl in pink on the left, tries once to lift the front edge of the taped blue box lid with both hands. The sealed lid resists and remains firmly closed. During this small frustrated tug she naturally says exactly \"It's stuck.\" in a clear young girl's voice. She immediately lets go and turns toward Leo for help, lowering both hands clear of the box. Leo, the boy in green on the right, watches with lips closed, then glances toward the small blue cutter lying on the table. Natural breathing, blinking and small responsive movements throughout. One fluid action, no repeated tugging, no frozen pauses, no slow motion. Box remains sealed with the same tape, cutter stays on table, no new objects. Preserve camera, room, colors and proportions. No subtitles, narrator, music, extra dialogue or speech from Leo.",
      "updated_at": "2026-09-19T13:45:05.071048+08:00",
      "production_note_before_approval": "全新生成畫面，無定格補秒；沿用既有角色配音重新對齊。台詞與接點已核對，表演／嘴型待確認。",
      "approved_at": "2026-09-19T13:45:05.071048+08:00",
      "approved_by": "user"
    },
    {
      "order": "S04B",
      "id": "ep01_s04b_redo_20260919",
      "title": "S04B｜Leo 提議幫忙，Mia 回應",
      "label": "S04B｜Leo 提議幫忙，Mia 回應",
      "display_title": "S04B｜Leo 提議幫忙，Mia 回應",
      "file": "generated/s04b_tool_offer_v5/review.mp4",
      "video": "generated/s04b_tool_offer_v5/review.mp4",
      "source_video": "generated/s04b_tool_offer_v5/review.mp4",
      "frame0": "generated/s04b_redo_v1/first.png",
      "actual_frame0": "generated/s04b_redo_v1/first.png",
      "final_frame": "generated/s04b_redo_v1/last.png",
      "contact_sheet": "generated/s04b_redo_v1/contact.jpg",
      "status": "generated",
      "review_status": "pending_review",
      "review_label": "待確認",
      "review_note": "S04B 已重生成：Leo 先拿起美工刀向 Mia 示意，再問 Need help?；Mia 回答 Good idea. 後才割第一側膠帶。沿用最新原生配音，整段校色，首尾接續 S04A/S04C。新版待確認。",
      "note": "S04B 已重生成：Leo 先拿起美工刀向 Mia 示意，再問 Need help?；Mia 回答 Good idea. 後才割第一側膠帶。沿用最新原生配音，整段校色，首尾接續 S04A/S04C。新版待確認。",
      "provider": "ComfyUI / MiniMax H3",
      "quality": "1344 × 768 / 24 fps",
      "dialogue": [
        {
          "en": "Need help?"
        },
        {
          "en": "Good idea."
        }
      ],
      "prompt_en": "Crisp warm clay animation. Continue seamlessly from this exact starting frame, same characters, clothing, room, lighting and camera. Locked medium two-shot. Leo, the boy on the right in green, immediately looks at Mia and says \"Need help?\" with a friendly young boy voice as he picks up the small blue utility cutter from the table. Mia, the girl on the left in pink, replies \"Good idea.\" with a clear young girl voice and a small nod. Her hands remain clear of the box. Each speaks only their own line and listens with their mouth closed during the other's line. Leo holds the cutter low beside the box at the end, ready to cut the tape. The blue box remains closed. Natural relaxed conversational pace, brief response gap, no waiting before speaking. Continuous gentle breathing, small eye movements and responsive expressions throughout. No cuts, zoom, music, narrator, captions, extra people or invented objects. Only the active speaker moves their mouth. Do not pause to pose at the beginning or end.",
      "updated_at": "2026-09-19T15:19:54.865188+08:00",
      "first_frame_input": "generated/s04a_redo_v1/last.png",
      "production_note_before_approval": "全新生成畫面，無定格補秒；沿用既有角色配音重新對齊。台詞與接點已核對，表演／嘴型待確認。",
      "duration_seconds": 5.166666666666667
    },
    {
      "order": "S04C",
      "id": "ep01_s04c_redo_20260919",
      "title": "S04C｜切開膠帶並放下工具",
      "label": "S04C｜切開膠帶並放下工具",
      "display_title": "S04C｜切開膠帶並放下工具",
      "file": "generated/s04c_color_v2/review.mp4",
      "video": "generated/s04c_color_v2/review.mp4",
      "source_video": "generated/s04c_color_v2/review.mp4",
      "frame0": "generated/s04c_redo_v1/first.png",
      "actual_frame0": "generated/s04c_redo_v1/first.png",
      "final_frame": "generated/s04c_redo_v1/last.png",
      "contact_sheet": "generated/s04c_redo_v1/contact.jpg",
      "status": "generated",
      "review_status": "approved",
      "review_label": "已確認",
      "review_note": "使用者已審核確認：目前更新上去的版本都可以使用。",
      "note": "使用者已審核確認：目前更新上去的版本都可以使用。",
      "provider": "ComfyUI / MiniMax H3",
      "quality": "1344 × 768 / 24 fps",
      "dialogue": [
        {
          "en": "All set."
        }
      ],
      "prompt_en": "Crisp warm clay animation. Continue seamlessly from this exact starting frame, same characters, clothing, room, lighting and camera. Locked medium two-shot. Leo, the boy on the right in green, uses the blue cutter in his hand for one short precise slice through the tan tape exactly at the front horizontal seam between the blue box lid and body. The blade cuts only the tape, not the box. He immediately lowers the cutter and places it flat on the table to the right of the box, then says \"All set.\" in a clear young boy voice. Mia in pink first takes her hand off the lid and quietly watches his work, hands safely away from the box before he cuts. The lid remains closed, now ready to lift. Keep the box solid and the same shape. One smooth cutting action followed by putting the tool down; no repeated sawing or frozen poses. Continuous gentle breathing, small eye movements and responsive expressions throughout. No cuts, zoom, music, narrator, captions, extra people or invented objects. Only the active speaker moves their mouth. Do not pause to pose at the beginning or end.",
      "updated_at": "2026-09-19T13:45:05.071048+08:00",
      "first_frame_input": "generated/s04b_redo_v1/last.png",
      "production_note_before_approval": "全新生成畫面，無定格補秒；沿用既有角色配音重新對齊。台詞與接點已核對，表演／嘴型待確認。",
      "approved_at": "2026-09-19T13:45:05.071048+08:00",
      "approved_by": "user"
    },
    {
      "order": "S04D",
      "id": "ep01_s04d_redo_20260919",
      "title": "S04D｜開蓋發現 Bobo，擊掌",
      "label": "S04D｜開蓋發現 Bobo，擊掌",
      "display_title": "S04D｜開蓋發現 Bobo，擊掌",
      "file": "generated/s04d_color_v2/review.mp4",
      "video": "generated/s04d_color_v2/review.mp4",
      "source_video": "generated/s04d_color_v2/review.mp4",
      "frame0": "generated/s04d_redo_v2/first.png",
      "actual_frame0": "generated/s04d_redo_v2/first.png",
      "final_frame": "generated/s04d_redo_v2/last.png",
      "contact_sheet": "generated/s04d_redo_v2/contact.jpg",
      "status": "generated",
      "review_status": "approved",
      "review_label": "已確認",
      "review_note": "使用者已審核確認：目前更新上去的版本都可以使用。",
      "note": "使用者已審核確認：目前更新上去的版本都可以使用。",
      "provider": "ComfyUI / MiniMax H3",
      "quality": "1344 × 768 / 24 fps",
      "dialogue": [
        {
          "en": "Found it! High five!"
        }
      ],
      "prompt_en": "Crisp warm clay animation, same locked medium two-shot and exact starting frame. Mia in pink on the left and Leo in green on the right stand beside the blue box. Leo lifts the blue lid smoothly and rests it upright. Inside the box, mostly hidden behind its high front wall, is ONLY a plain round cream-beige fabric bump, the top of a stuffed toy's head. The visible bump is smooth beige cloth with three tiny soft beige fabric tufts. The toy's face, eyes, mouth and body remain completely BELOW the front rim and are NEVER visible. Nothing metallic, no crown, no hat, no human face, no other contents in the box. The toy stays totally still. Leo looks into the box and says exactly \"Found it! High five!\" in a clear warm young boy voice. Mia and Leo share one quick palm-to-palm high five above the box, then both lower their hands. Mia stays silent with lips closed. End with both mouths closed, hands down, lid open. The plain beige fabric bump remains low inside the box throughout, never rising. Brisk natural connected actions, no waiting or frozen poses, no extra dialogue or repeated words. Preserve color, lighting, child faces and clothing. No camera cut, zoom, text, subtitles, music or narrator.",
      "updated_at": "2026-09-19T13:45:05.071048+08:00",
      "first_frame_input": "generated/s04c_redo_v1/last.png",
      "production_note_before_approval": "全新生成畫面，無定格補秒；沿用既有角色配音重新對齊。台詞與接點已核對，表演／嘴型待確認。",
      "approved_at": "2026-09-19T13:45:05.071048+08:00",
      "approved_by": "user"
    },
    {
      "order": "S04E",
      "id": "ep01_s04e_redo_20260919",
      "title": "S04E｜準備抱出，Mia 提醒小心",
      "label": "S04E｜準備抱出，Mia 提醒小心",
      "display_title": "S04E｜準備抱出，Mia 提醒小心",
      "file": "generated/s04e_color_v2/review.mp4",
      "video": "generated/s04e_color_v2/review.mp4",
      "source_video": "generated/s04e_color_v2/review.mp4",
      "frame0": "generated/s04e_redo_v1/first.png",
      "actual_frame0": "generated/s04e_redo_v1/first.png",
      "final_frame": "generated/s04e_redo_v1/last.png",
      "contact_sheet": "generated/s04e_redo_v1/contact.jpg",
      "status": "generated",
      "review_status": "approved",
      "review_label": "已確認",
      "review_note": "使用者已審核確認：目前更新上去的版本都可以使用。",
      "note": "使用者已審核確認：目前更新上去的版本都可以使用。",
      "provider": "ComfyUI / MiniMax H3",
      "quality": "1344 × 768 / 24 fps",
      "dialogue": [
        {
          "en": "I'll take it out."
        },
        {
          "en": "Slow down. Be careful. It might break."
        }
      ],
      "prompt_en": "Crisp warm clay animation. Continue seamlessly from this exact starting frame, same characters, clothing, room, lighting and camera. Locked medium two-shot. Leo, the boy on the right in green, looks into the open blue box and says \"I'll take it out.\" in a clear young boy voice while starting to reach toward it. Mia, the girl on the left in pink, promptly raises a gentle cautioning palm between his hand and the box and says \"Slow down. Be careful. It might break.\" in a clear caring young girl voice, one flowing sentence with only small natural phrase pauses. Leo responds to her warning by easing his hands back slightly and nodding, lips closed while she speaks. Mia lowers her hand as she finishes. No one touches or lifts the plush doll inside yet; its tiny beige crown stays at the same low height. The detached lid stays where Leo put it to the right, outside this closer framing. Do not add a lid back onto the box. Natural continuous responsive movement, no rigid holding poses or long silence. Continuous gentle breathing, small eye movements and responsive expressions throughout. No cuts, zoom, music, narrator, captions, extra people or invented objects. Only the active speaker moves their mouth. Do not pause to pose at the beginning or end.",
      "updated_at": "2026-09-19T13:45:05.071048+08:00",
      "first_frame_input": "generated/s04d_redo_v2/last.png",
      "production_note_before_approval": "全新生成畫面，無定格補秒；沿用既有角色配音重新對齊。台詞與接點已核對，表演／嘴型待確認。",
      "approved_at": "2026-09-19T13:45:05.071048+08:00",
      "approved_by": "user"
    },
    {
      "order": "S04F",
      "id": "ep01_s04f_redo_20260919",
      "title": "S04F｜邊回應邊輕輕抱出 Bobo",
      "label": "S04F｜邊回應邊輕輕抱出 Bobo",
      "display_title": "S04F｜邊回應邊輕輕抱出 Bobo",
      "file": "generated/s04f_character_v3/review.mp4",
      "video": "generated/s04f_character_v3/review.mp4",
      "source_video": "generated/s04f_character_v3/review.mp4",
      "frame0": "generated/s04f_redo_v2/first.png",
      "actual_frame0": "generated/s04f_redo_v2/first.png",
      "final_frame": "generated/s04f_redo_v2/last.png",
      "contact_sheet": "generated/s04f_redo_v2/contact.jpg",
      "status": "generated",
      "review_status": "approved",
      "review_label": "已確認",
      "review_note": "使用者已審核確認：目前更新上去的版本都可以使用。",
      "note": "使用者已審核確認：目前更新上去的版本都可以使用。",
      "provider": "ComfyUI / MiniMax H3",
      "quality": "1344 × 768 / 24 fps",
      "dialogue": [
        {
          "en": "Okay, I will take Bobo out slowly and carefully."
        }
      ],
      "prompt_en": "Crisp warm clay animation. Continue this exact starting frame, same close two-shot, Mia left in pink, Leo right in green, open blue box between them. Leo says exactly \"Okay, I will take Bobo out slowly and carefully.\" in a natural warm young boy voice while doing the action. He leans toward the box and gently reaches BOTH hands down around the small beige stuffed doll's BODY below the rim. He supports its body and smoothly lifts it out, naturally turning the toy to face HIM. IMPORTANT: the back of the doll's head and back of its body face the CAMERA during the entire lift and at the end. The doll's face is hidden from the viewer, directed toward Leo's chest. We see its plain beige fabric back, three short beige fabric tufts, the red scarf tied behind its neck, a small closed rectangular beige battery hatch on its lower back, and soft stubby limbs. It is a floppy inanimate plush, no independent motion. Leo's hands lift and support it, not its head. Mia watches quietly with her lips closed. Finish with Leo holding the toy securely at chest height, BACK toward the camera, FACE completely hidden. One fluid careful lift while speaking, no waiting until the sentence ends, no stopping midair, no extra gestures or speech. Bobo remains small, same size as its head inside the box. No camera cut, zoom, slow motion, subtitles, music or narrator. Both children's mouths close after the reply. Preserve light and colors.",
      "updated_at": "2026-09-19T13:45:05.071048+08:00",
      "first_frame_input": "generated/s04e_redo_v1/last.png",
      "production_note_before_approval": "全新生成畫面，無定格補秒；沿用既有角色配音重新對齊。台詞與接點已核對，表演／嘴型待確認。",
      "approved_at": "2026-09-19T13:45:05.071048+08:00",
      "approved_by": "user"
    },
    {
      "order": "S04-FULL",
      "title": "S04-FULL｜全新六段連續版",
      "file": "generated/s04_redo_full/review.mp4",
      "video": "generated/s04_redo_full/review.mp4",
      "source_video": "generated/s04_redo_full/review.mp4",
      "contact_sheet": "generated/s04_redo_full/contact.jpg",
      "status": "generated",
      "review_status": "pending_review",
      "review_label": "待確認",
      "review_note": "S04B 已重生成：Leo 先拿起美工刀向 Mia 示意，再問 Need help?；Mia 回答 Good idea. 後才割第一側膠帶。沿用最新原生配音，整段校色，首尾接續 S04A/S04C。新版待確認。",
      "updated_at": "2026-09-19T15:19:54.865188+08:00",
      "label": "S04-FULL｜全新六段連續版",
      "quality": "1344 × 768 / 24 fps",
      "provider": "ComfyUI / MiniMax H3",
      "production_note_before_approval": "所有小段均已重新生成並串接；請確認整段對話、動作及聲音。",
      "note": "S04B 已重生成：Leo 先拿起美工刀向 Mia 示意，再問 Need help?；Mia 回答 Good idea. 後才割第一側膠帶。沿用最新原生配音，整段校色，首尾接續 S04A/S04C。新版待確認。",
      "duration_seconds": 28.875
    }
  ],
  "review_status": "pending_review",
  "review_label": "待審核",
  "review_note": "S04B no-repull v2 已更新，待使用者審核。",
  "note": "使用者退回 S04B：開頭 Mia 又去拉膠帶很奇怪；這段 Mia 不需要再動膠帶，應停手看著 Leo 拿小美工刀。",
  "shot_revision_history": [
    {
      "at": "2026-09-18T23:26:22.439653+08:00",
      "reason": "依要求原 A+B 合併為新 A，原 C 改為新 B",
      "shots": [
        {
          "order": "S03A",
          "id": "ep01_s03a_combined_20260918",
          "label": "S03A｜Leo 提議、Mia 建議逐項檢查",
          "title": "S03A｜Leo 提議、Mia 建議逐項檢查",
          "segment": "hq_bobo_stepwise_regen",
          "final_order": "story-clip-03A",
          "file": "generated/s03a_combined_v1/review.mp4",
          "video": "generated/s03a_combined_v1/review.mp4",
          "source_video": "generated/s03a_combined_v1/review.mp4",
          "prompt_zh_tw": "使用 Flow 既有 Leo、Mia 角色與原教室參考，保留角色外觀及已存角色聲音。溫暖 3D 黏土風教室，中景雙人鏡頭，Mia 左、Leo 右，站在桌子與關閉的收納箱旁。Leo 只以小幅對話手勢表達想法，說一次「I can open every box and find him fast.」；Mia 閉嘴安靜旁聽。無人碰觸、開啟、搬動或搜尋箱子，箱蓋全程關閉；沒有 checklist 動作，Bobo 不出現。單一連續鏡頭，自然呼吸與眨眼，說完後閉嘴自然停留。原生同步對白，無旁白、額外台詞、音樂或字幕。",
          "provider": "ComfyUI / MiniMax H3",
          "status": "generated",
          "review_status": "pending_review",
          "review_label": "待確認",
          "review_note": "原 S03A＋S03B 合併重新生成，同鏡頭輪流對話；待確認。",
          "note": "原 S03A＋S03B 合併重新生成，同鏡頭輪流對話；待確認。",
          "quality": "1344 × 768 / 24 fps",
          "revision_history": [
            {
              "order": "S03A",
              "id": "hq_story_s03A_google_flow_approved_20260914",
              "label": "S03A｜Leo 表達開箱找 Bobo 的想法｜Google Flow",
              "title": "S03A｜Leo 表達開箱找 Bobo 的想法｜Google Flow",
              "segment": "hq_bobo_stepwise_regen",
              "final_order": "story-clip-03A",
              "file": "generated/video/hq_story_bobo_20260828/google_flow_s03A_retry_20260914/s03A_flow_retry1.mp4",
              "video": "generated/video/hq_story_bobo_20260828/google_flow_s03A_retry_20260914/s03A_flow_retry1.mp4",
              "source_video": "generated/video/hq_story_bobo_20260828/google_flow_s03A_retry_20260914/s03A_flow_retry1.mp4",
              "contact_sheet": "generated/video/hq_story_bobo_20260828/google_flow_s03A_retry_20260914/contact.jpg",
              "frame0": "generated/video/hq_story_bobo_20260828/google_flow_s03A_retry_20260914/frame0.png",
              "actual_frame0": "generated/video/hq_story_bobo_20260828/google_flow_s03A_retry_20260914/frame0.png",
              "first_frame": "",
              "first_frame_input": "",
              "final_frame": "generated/video/hq_story_bobo_20260828/google_flow_s03A_retry_20260914/final.png",
              "reference_images": [],
              "reference_audio": [],
              "workflow": "",
              "prompt_file": "generated/video/hq_story_bobo_20260828/google_flow_s03A_retry_20260914/prompt.txt",
              "prompt_en": "S03A - Leo expresses an intention only. Use the attached native Leo and Mia characters, preserving their saved character voices and exact approved faces, brown hairstyles, child proportions and outfits: Leo in a green sweater and jeans; Mia in a pink sweater, ponytail and jeans. Use the attached original classroom image for the same warm 3D clay-like classroom, wooden furniture, red-curtained puppet stage, window and storage shelves. Medium two-shot, Mia on the left, Leo on the right. Both stand naturally near the classroom table and closed storage boxes. Leo eagerly tells Mia his proposed plan, with a small conversational hand gesture only. Only Leo speaks, using his attached saved Puck custom character voice, clearly and naturally in English, exactly once: \"I can open every box and find him fast.\" This sentence is only his intention: nobody touches, opens, lifts, moves or searches any box; all lids stay fully closed throughout. Mia silently listens with her lips closed throughout, no speaking mouth motion. No checklist action. Bobo is still missing and completely absent from every frame; no doll, mascot or additional character appears. One continuous shot, gentle natural breathing and blinking, not a frozen still. After Leo finishes the sentence, his lips close and both hold a natural silent resting expression. Native synchronized character dialogue only, no additional words, narrator, music, singing or soundtrack. No subtitles, captions, speech bubbles, title cards, logos or visible written dialogue. Do not substitute voices or produce a silent video.",
              "prompt_zh_tw": "使用 Flow 既有 Leo、Mia 角色與原教室參考，保留角色外觀及已存角色聲音。溫暖 3D 黏土風教室，中景雙人鏡頭，Mia 左、Leo 右，站在桌子與關閉的收納箱旁。Leo 只以小幅對話手勢表達想法，說一次「I can open every box and find him fast.」；Mia 閉嘴安靜旁聽。無人碰觸、開啟、搬動或搜尋箱子，箱蓋全程關閉；沒有 checklist 動作，Bobo 不出現。單一連續鏡頭，自然呼吸與眨眼，說完後閉嘴自然停留。原生同步對白，無旁白、額外台詞、音樂或字幕。",
              "provider": "Google Flow",
              "generation_mode": "Flow 既有角色與原教室參考；原始輸入首幀未記錄。frame0 為實際輸出第一幀，非生成輸入。",
              "source_note": "本地 prompt.txt 記錄附加 Leo、Mia 原生角色及原教室參考；沒有可確認對應的本地參考原檔，因此參考檔案欄留空。Leo 聲音依提交 prompt 使用已存 Puck 自訂角色聲音。",
              "status": "approved",
              "review_status": "approved",
              "review_label": "已確認",
              "review_note": "2026-09-14 使用者明確通過 Google Flow 原速完整影片並要求保存發布；Leo 台詞：I can open every box and find him fast. Mia 旁聽。未套用 0.8 倍速 QA 音檔，未換音、未裁切。",
              "note": "2026-09-14 使用者明確通過 Google Flow 原速完整影片並要求保存發布；Leo 台詞：I can open every box and find him fast. Mia 旁聽。未套用 0.8 倍速 QA 音檔，未換音、未裁切。",
              "approval_note": "2026-09-14 使用者明確通過 Google Flow 原速完整影片並要求保存發布；Leo 台詞：I can open every box and find him fast. Mia 旁聽。未套用 0.8 倍速 QA 音檔，未換音、未裁切。",
              "approved_at": "2026-09-14T12:16:37+08:00",
              "quality": "Google Flow 1280×720 原速含原生音訊",
              "qa": {
                "sha256": "64d7ac36daf2a9d1f2297ffe2559248eb807b25959d5ce6f919e89abfad7913f",
                "duration_seconds": 6.016,
                "width": 1280,
                "height": 720,
                "audio_present": true,
                "approval": "user_approved",
                "speed": 1.0
              }
            }
          ],
          "display_title": "S03A｜Leo 提議、Mia 建議逐項檢查",
          "updated_at": "2026-09-18T23:26:22.439653+08:00",
          "dialogue": [
            {
              "speaker": "Leo",
              "en": "I can open every box and find him fast."
            },
            {
              "speaker": "Mia",
              "en": "Let's check one at a time."
            }
          ],
          "frame0": "generated/s03a_combined_v1/first.png",
          "actual_frame0": "generated/s03a_combined_v1/first.png",
          "final_frame": "generated/s03a_combined_v1/last.png",
          "contact_sheet": "generated/s03a_combined_v1/contact.jpg",
          "prompt_en": "Warm crisp 3D clay animation. Match the two children, classroom, open empty box and checklist in <Picture 1>. Locked medium two-shot, Mia left in pink holding the SAME checklist steadily in her left hand, Leo right in green. Natural continuous conversation. FIRST, Leo speaks with the young boy voice of <Audio 1>, exactly: \"I can open every box and find him fast.\" He only proposes his idea with a small hand gesture; he does not touch or open any boxes. Mia listens with lips closed. THEN Leo closes his mouth and listens while Mia replies using the young girl voice of <Audio 2>, exactly: \"Let's check one at a time.\" She gives one gentle calming palm gesture with her free right hand. The checklist remains in her left hand, not moving or changing design. Both finish with mouths closed and hands relaxed, ready to examine her list. Same light and camera throughout, no cuts or zoom. Bobo remains absent. Only the active speaker moves their mouth. No extra speech, text overlays, music or narrator. Do not read the checklist yet."
        },
        {
          "order": "S03B",
          "label": "S03B｜先讀清單（原 S03C）",
          "title": "S03B｜先讀清單（原 S03C）",
          "segment": "hq_bobo_stepwise_regen",
          "file": "generated/s03b_continuation_v1/review.mp4",
          "video": "generated/s03b_continuation_v1/review.mp4",
          "source_video": "generated/s03b_continuation_v1/review.mp4",
          "note": "以新版 S03A 實際尾幀作真正首幀生成；Mia 指清單並說原 S03C 台詞。沿用原 Mia 聲音；待確認。",
          "status": "generated",
          "review_status": "pending_review",
          "review_label": "待確認",
          "review_note": "以新版 S03A 實際尾幀作真正首幀生成；Mia 指清單並說原 S03C 台詞。沿用原 Mia 聲音；待確認。",
          "quality": "1344 × 768 / 24 fps",
          "revision_history": [
            {
              "order": "S03B",
              "label": "S03C｜Mia 指 checklist：Read the checklist first（Mia 聲音修正版）",
              "title": "S03C｜Mia 指 checklist：Read the checklist first（Mia 聲音修正版）",
              "segment": "hq_bobo_stepwise_regen",
              "file": "generated/video/hq_story_bobo_20260828/clip03C_retry_voice_ref_mia_no_bgm_3s/ep01_hq_story_clip03C_original_visual_mia_voice_ref_audio_no_bgm.mp4",
              "video": "generated/video/hq_story_bobo_20260828/clip03C_retry_voice_ref_mia_no_bgm_3s/ep01_hq_story_clip03C_original_visual_mia_voice_ref_audio_no_bgm.mp4",
              "source_video": "generated/video/hq_story_bobo_20260828/clip03C_retry_voice_ref_mia_no_bgm_3s/ep01_hq_story_clip03C_original_visual_mia_voice_ref_audio_no_bgm.mp4",
              "contact_sheet": "generated/video/hq_story_bobo_20260828/clip03C_read_checklist_first_from_new_s03B_3s/ep01_hq_story_clip03C_contact.jpg",
              "note": "使用者先前反映怪怪的；本次僅批准新的 S03A，本段尚未重新批准，待複核／處理。",
              "status": "pending_review",
              "review_status": "pending_review",
              "review_label": "待複核",
              "review_note": "使用者先前反映怪怪的；本次僅批准新的 S03A，本段尚未重新批准，待複核／處理。",
              "quality": "HQ 1344x768 MiniMax H3"
            }
          ],
          "display_title": "S03B｜先讀清單（原 S03C）",
          "provider": "ComfyUI / MiniMax H3",
          "updated_at": "2026-09-18T23:26:22.439653+08:00",
          "dialogue": [
            {
              "speaker": "Mia",
              "en": "Read the checklist first."
            }
          ],
          "first_frame_input": "generated/s03a_combined_v1/last.png",
          "frame0": "generated/s03b_continuation_v1/first.png",
          "actual_frame0": "generated/s03b_continuation_v1/first.png",
          "final_frame": "generated/s03b_continuation_v1/last.png",
          "contact_sheet": "generated/s03b_continuation_v1/contact.jpg",
          "prompt_en": "Continue this exact image as a single continuous locked-camera clay animation shot. Same classroom, same lighting, same children, same open empty cardboard box and SAME checklist with same symbols. Mia, girl in pink on the left, is already holding the checklist in her left hand. She gently lifts her free right hand and points her index finger to the top item on that checklist. While pointing, ONLY MIA says exactly once in a clear young girl's voice: \"Read the checklist first.\" Start the line around 0.7 seconds and finish by 2.7 seconds. Leo, boy in green on the right, listens with mouth gently CLOSED for the entire shot, looking at the indicated list item. Mia finishes with lips closed, hand resting near the list. Minimal natural motion and gentle blinking. Do not move the camera or change composition. Do not move the box or invent props. No Bobo, extra speech, narrator, music, subtitles, titles or cuts.",
          "id": "ep01_s03b_original_c_20260918",
          "final_order": "story-clip-03B"
        },
        {
          "order": "S03-FULL",
          "id": "hq_story_clip03ABC_full_no_s03d_20260902",
          "title": "S03-FULL｜新版 A＋B 連續對話",
          "label": "S03-FULL｜新版 A＋B 連續對話",
          "segment": "hq_bobo_stepwise_regen",
          "file": "generated/s03b_continuation_v1/s03_full.mp4",
          "video": "generated/s03b_continuation_v1/s03_full.mp4",
          "source_video": "generated/s03b_continuation_v1/s03_full.mp4",
          "status": "generated",
          "review_status": "pending_review",
          "review_label": "待確認",
          "review_note": "新版 S03A＋S03B 串接，原三段已整併為兩段；待確認。",
          "note": "新版 S03A＋S03B 串接，原三段已整併為兩段；待確認。",
          "revision_history": [
            {
              "order": "S03-FULL",
              "id": "hq_story_clip03ABC_full_no_s03d_20260902",
              "title": "S03-FULL｜舊串接未同步新 S03A｜待重組",
              "label": "S03-FULL｜舊串接未同步新 S03A｜待重組",
              "segment": "hq_bobo_stepwise_regen",
              "file": "generated/video/hq_story_bobo_20260828/assembled/ep01_hq_story_clip03ABC_full_no_s03d_20260902.mp4",
              "video": "generated/video/hq_story_bobo_20260828/assembled/ep01_hq_story_clip03ABC_full_no_s03d_20260902.mp4",
              "source_video": "generated/video/hq_story_bobo_20260828/assembled/ep01_hq_story_clip03ABC_full_no_s03d_20260902.mp4",
              "review_sheet": "generated/video/hq_story_bobo_20260828/assembled/ep01_hq_story_clip03ABC_full_no_s03d_20260902_contact.jpg",
              "contact_sheet": "generated/video/hq_story_bobo_20260828/assembled/ep01_hq_story_clip03ABC_full_no_s03d_20260902_contact.jpg",
              "status": "needs_reassembly",
              "review_status": "needs_reassembly",
              "review_label": "需更新／待重組",
              "review_note": "舊串接仍包含舊 S03A；新的 Google Flow S03A 已確認，但本次未重組。需更新／待重組，不代表已同步完成。",
              "note": "舊串接仍包含舊 S03A；新的 Google Flow S03A 已確認，但本次未重組。需更新／待重組，不代表已同步完成。"
            }
          ],
          "display_title": "S03-FULL｜新版 A＋B 連續對話",
          "provider": "ComfyUI / MiniMax H3",
          "quality": "1344 × 768 / 24 fps",
          "updated_at": "2026-09-18T23:26:22.439653+08:00",
          "contact_sheet": "generated/s03b_continuation_v1/s03_full_contact.jpg",
          "prompt_en": "Continue this exact image as a single continuous locked-camera clay animation shot. Same classroom, same lighting, same children, same open empty cardboard box and SAME checklist with same symbols. Mia, girl in pink on the left, is already holding the checklist in her left hand. She gently lifts her free right hand and points her index finger to the top item on that checklist. While pointing, ONLY MIA says exactly once in a clear young girl's voice: \"Read the checklist first.\" Start the line around 0.7 seconds and finish by 2.7 seconds. Leo, boy in green on the right, listens with mouth gently CLOSED for the entire shot, looking at the indicated list item. Mia finishes with lips closed, hand resting near the list. Minimal natural motion and gentle blinking. Do not move the camera or change composition. Do not move the box or invent props. No Bobo, extra speech, narrator, music, subtitles, titles or cuts."
        }
      ]
    },
    {
      "at": "2026-09-19T01:36:06.544518+08:00",
      "reason": "使用者要求全段重製；S05 整併為五段。",
      "shots": [
        {
          "order": "S04A",
          "label": "S04A｜膠帶很難撕｜Mia 最後才說一次",
          "title": "S04A｜膠帶很難撕｜Mia 最後才說一次",
          "file": "generated/video/hq_story_bobo_20260828/clip04A_mia_struggles_tape_cutter_retry5_no_scissors_5s/ep01_hq_story_clip04A_mia_struggles_tape_cutter_retry5_no_scissors_5s_vocals_only_no_bgm.mp4",
          "video": "generated/video/hq_story_bobo_20260828/clip04A_mia_struggles_tape_cutter_retry5_no_scissors_5s/ep01_hq_story_clip04A_mia_struggles_tape_cutter_retry5_no_scissors_5s_vocals_only_no_bgm.mp4",
          "source_video": "generated/video/hq_story_bobo_20260828/clip04A_mia_struggles_tape_cutter_retry5_no_scissors_5s/ep01_hq_story_clip04A_mia_struggles_tape_cutter_retry5_no_scissors_5s_vocals_only_no_bgm.mp4",
          "contact_sheet": "generated/video/hq_story_bobo_20260828/clip04A_mia_struggles_tape_cutter_retry5_no_scissors_5s/ep01_hq_story_clip04A_mia_struggle_cutter_retry5_vocals_no_bgm_contact.jpg",
          "status": "approved_20260904",
          "review_status": "approved",
          "review_label": "已確認",
          "review_note": "使用者接受 S04 整組先完成；A→B 仍有微跳但可接受。STT: It’s stuck.",
          "qa": {
            "latest_verdict": "approved_by_user",
            "approved_at": "2026-09-04T15:12:43"
          }
        },
        {
          "order": "S04B",
          "label": "S04B｜Mia 停手｜Leo 小美工刀問 Need help?",
          "title": "S04B｜Mia 停手｜Leo 小美工刀問 Need help?",
          "file": "generated/video/hq_story_bobo_20260828/clip04B_mia_hands_off_leo_cutter_need_help_retry3_4s/ep01_hq_story_clip04B_mia_hands_off_leo_cutter_need_help_retry3_no_repull_v2_freeze3s_vocals_no_bgm.mp4",
          "video": "generated/video/hq_story_bobo_20260828/clip04B_mia_hands_off_leo_cutter_need_help_retry3_4s/ep01_hq_story_clip04B_mia_hands_off_leo_cutter_need_help_retry3_no_repull_v2_freeze3s_vocals_no_bgm.mp4",
          "source_video": "generated/video/hq_story_bobo_20260828/clip04B_mia_hands_off_leo_cutter_need_help_retry3_4s/ep01_hq_story_clip04B_mia_hands_off_leo_cutter_need_help_retry3_no_repull_v2_freeze3s_vocals_no_bgm.mp4",
          "contact_sheet": "generated/video/hq_story_bobo_20260828/clip04B_mia_hands_off_leo_cutter_need_help_retry3_4s/ep01_hq_story_clip04B_no_repull_v2_contact.jpg",
          "status": "approved_20260904",
          "review_status": "approved",
          "review_label": "已確認",
          "review_note": "使用者接受 S04 整組先完成；B 使用目前 no-repull v2。STT: Need help? / Good idea.",
          "qa": {
            "latest_verdict": "approved_by_user",
            "approved_at": "2026-09-04T15:12:43"
          }
        },
        {
          "order": "S04C",
          "label": "S04C｜Leo 切膠帶｜All set.",
          "title": "S04C｜Leo 切膠帶｜All set.",
          "file": "generated/video/hq_story_bobo_20260828/clip04C_cut_front_lid_body_seam_retry6_b_leo_voice_ref_4s/ep01_hq_story_clip04C_retry6_b_leo_voice_ref_vocals_only_no_bgm.mp4",
          "video": "generated/video/hq_story_bobo_20260828/clip04C_cut_front_lid_body_seam_retry6_b_leo_voice_ref_4s/ep01_hq_story_clip04C_retry6_b_leo_voice_ref_vocals_only_no_bgm.mp4",
          "source_video": "generated/video/hq_story_bobo_20260828/clip04C_cut_front_lid_body_seam_retry6_b_leo_voice_ref_4s/ep01_hq_story_clip04C_retry6_b_leo_voice_ref_vocals_only_no_bgm.mp4",
          "contact_sheet": "generated/video/hq_story_bobo_20260828/clip04C_cut_front_lid_body_seam_retry6_b_leo_voice_ref_4s/ep01_hq_story_clip04C_cut_tape_center_seam_no_lid_damage_retry6_contact.jpg",
          "status": "approved_20260904",
          "review_status": "approved",
          "review_label": "已確認",
          "review_note": "使用者已確認。STT: All set.；箱子仍關閉、無 Bobo/線索/字幕。",
          "qa": {
            "latest_verdict": "approved_by_user",
            "approved_at": "2026-09-04T15:12:43"
          }
        },
        {
          "order": "S04D",
          "label": "S04D｜開蓋看到 Bobo 頭頂｜Found it, high five",
          "title": "S04D｜開蓋看到 Bobo 頭頂｜Found it, high five",
          "file": "generated/video/hq_story_bobo_20260828/clip04D_open_lid_bobo_crown_only_retry3_4s/ep01_hq_story_clip04D_crown_only_retry3_s04b_leo_voice_candidate.mp4",
          "video": "generated/video/hq_story_bobo_20260828/clip04D_open_lid_bobo_crown_only_retry3_4s/ep01_hq_story_clip04D_crown_only_retry3_s04b_leo_voice_candidate.mp4",
          "source_video": "generated/video/hq_story_bobo_20260828/clip04D_open_lid_bobo_crown_only_retry3_4s/ep01_hq_story_clip04D_crown_only_retry3_s04b_leo_voice_candidate.mp4",
          "contact_sheet": "generated/video/hq_story_bobo_20260828/clip04D_open_lid_bobo_crown_only_retry3_4s/ep01_hq_story_clip04D_open_lid_bobo_crown_only_retry3_contact.jpg",
          "status": "approved_20260904",
          "review_status": "approved",
          "review_label": "已確認",
          "review_note": "使用者確認聲音候選可用；Leo 使用 S04B Need help ref audio 候選，Bobo 為靜止人偶、只露頭頂。",
          "qa": {
            "latest_verdict": "approved_by_user",
            "approved_at": "2026-09-04T15:12:43"
          }
        },
        {
          "order": "S04E",
          "label": "S04E｜Mia 提醒 Leo 慢慢來｜Slow down",
          "title": "S04E｜Mia 提醒 Leo 慢慢來｜Slow down",
          "file": "generated/video/hq_story_bobo_20260828/clip04E_leo_take_out_mia_slow_down_retry14_mia_blocks_box_focus_children/ep01_hq_story_clip04E_leo_take_out_mia_slow_down_retry14_mia_blocks_box_focus_children_native_audio.mp4",
          "video": "generated/video/hq_story_bobo_20260828/clip04E_leo_take_out_mia_slow_down_retry14_mia_blocks_box_focus_children/ep01_hq_story_clip04E_leo_take_out_mia_slow_down_retry14_mia_blocks_box_focus_children_native_audio.mp4",
          "source_video": "generated/video/hq_story_bobo_20260828/clip04E_leo_take_out_mia_slow_down_retry14_mia_blocks_box_focus_children/ep01_hq_story_clip04E_leo_take_out_mia_slow_down_retry14_mia_blocks_box_focus_children_native_audio.mp4",
          "contact_sheet": "generated/video/hq_story_bobo_20260828/clip04E_leo_take_out_mia_slow_down_retry14_mia_blocks_box_focus_children/ep01_hq_story_clip04E_leo_take_out_mia_slow_down_retry14_contact.jpg",
          "status": "approved_20260906",
          "review_status": "approved",
          "review_label": "已確認",
          "review_note": "使用者確認 S04E retry14 可用；S04D final → S04E frame0 通過；Bobo 保持被動布偶，Leo 未拿出。STT: I’ll take it out / Slow down / be careful / it might break.",
          "qa": {
            "latest_verdict": "approved_by_user",
            "approved_at": "2026-09-06T00:00:00"
          },
          "first_frame": "generated/video/hq_story_bobo_20260828/clip04E_leo_take_out_mia_slow_down_retry14_mia_blocks_box_focus_children/ep01_hq_story_clip04E_leo_take_out_mia_slow_down_retry14_frame0.jpg",
          "final_frame": "generated/video/hq_story_bobo_20260828/clip04E_leo_take_out_mia_slow_down_retry14_mia_blocks_box_focus_children/ep01_hq_story_clip04E_leo_take_out_mia_slow_down_retry14_final_frame.jpg",
          "prompt_file": "generated/video/hq_story_bobo_20260828/clip04E_leo_take_out_mia_slow_down_retry14_mia_blocks_box_focus_children/prompt.txt",
          "workflow": "generated/video/hq_story_bobo_20260828/clip04E_leo_take_out_mia_slow_down_retry14_mia_blocks_box_focus_children/workflow_api.json",
          "reference_images": [
            "images/character/mia_ref_v1.png",
            "images/character/leo_ref_v1.png",
            "images/reference/final_story_bobo/ep01_bobo_bobo_ref_20260822.png",
            "generated/video/hq_story_bobo_20260828/_s04_refs/ep01_hq_story_first_frame_from_approved_s01a.png"
          ],
          "reference_audio": [],
          "generation_mode": "same_shot_director_first_frame_from_s04d_final_verified_frame0"
        },
        {
          "order": "S04F",
          "label": "S04F｜Leo 小心慢慢拿出 Bobo｜Okay, I will take Bobo out slowly and carefully",
          "title": "S04F｜Leo 小心慢慢拿出 Bobo｜Okay, I will take Bobo out slowly and carefully",
          "file": "generated/video/hq_story_bobo_20260828/clip04F_leo_carefully_take_bobo_out_retry1b_120f/audio_retry2_leo_ref_remux/ep01_hq_story_clip04F_retry1b_visual_retry2_leo_refaudio_B_delay310ms.mp4",
          "video": "generated/video/hq_story_bobo_20260828/clip04F_leo_carefully_take_bobo_out_retry1b_120f/audio_retry2_leo_ref_remux/ep01_hq_story_clip04F_retry1b_visual_retry2_leo_refaudio_B_delay310ms.mp4",
          "source_video": "generated/video/hq_story_bobo_20260828/clip04F_leo_carefully_take_bobo_out_retry1b_120f/audio_retry2_leo_ref_remux/ep01_hq_story_clip04F_retry1b_visual_retry2_leo_refaudio_B_delay310ms.mp4",
          "contact_sheet": "generated/video/hq_story_bobo_20260828/clip04F_leo_carefully_take_bobo_out_retry1b_120f/audio_retry2_leo_ref_remux/contact_2fps.jpg",
          "status": "approved_20260906",
          "review_status": "approved",
          "review_label": "已確認",
          "review_note": "使用者選 B 版：沿用 retry1b 通過連續/動作畫面，替換為 retry2 Leo ref-audio，延後 0.31s；STT 完整，無音效/無音樂。",
          "qa": {
            "latest_verdict": "approved_by_user",
            "approved_at": "2026-09-06T00:00:00"
          },
          "first_frame": "generated/video/hq_story_bobo_20260828/clip04F_leo_carefully_take_bobo_out_retry1b_120f/qa/s04e_final_vs_s04f_retry1b_frame0.png",
          "final_frame": "generated/video/hq_story_bobo_20260828/clip04F_leo_carefully_take_bobo_out_retry1b_120f/ep01_hq_story_clip04F_take_bobo_retry1b_120f_final_frame.jpg",
          "prompt_file": "generated/video/hq_story_bobo_20260828/clip04F_leo_carefully_take_bobo_out_retry1b_120f/prompt.txt",
          "workflow": "generated/video/hq_story_bobo_20260828/clip04F_leo_carefully_take_bobo_out_retry1b_120f/workflow_api.json",
          "reference_images": [
            "images/character/mia_ref_v1.png",
            "images/character/leo_ref_v1.png",
            "images/reference/final_story_bobo/ep01_bobo_bobo_ref_20260822.png",
            "generated/video/hq_story_bobo_20260828/_s04_refs/ep01_hq_story_first_frame_from_approved_s01a.png"
          ],
          "reference_audio": [
            "C:/Users/blacklin/Documents/ComfyUI/input/ep01_hq_s04b_leo_voice_ref_need_help_long.wav",
            "generated/video/hq_story_bobo_20260828/clip04F_leo_carefully_take_bobo_out_retry2_leo_refaudio_120f/qa/retry2_leo_refaudio.wav"
          ],
          "generation_mode": "visual: same_shot_director_first_frame_from_s04e_final; audio: retry2_leo_refaudio_B_delay310ms_remux"
        },
        {
          "order": "S04-FULL",
          "label": "S04-FULL｜04A–04F 串接版｜含 S04E/S04F",
          "title": "S04-FULL｜04A–04F 串接版｜含 S04E/S04F",
          "file": "generated/video/hq_story_bobo_20260828/assembled/ep01_hq_story_clip04ABCDEF_full_review_20260906.mp4",
          "video": "generated/video/hq_story_bobo_20260828/assembled/ep01_hq_story_clip04ABCDEF_full_review_20260906.mp4",
          "source_video": "generated/video/hq_story_bobo_20260828/assembled/ep01_hq_story_clip04ABCDEF_full_review_20260906.mp4",
          "contact_sheet": "generated/video/hq_story_bobo_20260828/assembled/ep01_hq_story_clip04ABCDEF_full_review_20260906_contact.jpg",
          "status": "review_20260906",
          "review_status": "pending",
          "review_label": "待審核",
          "review_note": "依使用者要求將 S04A–S04F 串接成 FULL；STT: It’s stuck / Need help / Good idea / All set / Found it high five / I’ll take it out / Slow down / be careful it might break / Okay, I will take Bobo out slowly and carefully.",
          "qa": {
            "latest_verdict": "pending_user_review",
            "created_at": "2026-09-06T00:00:00",
            "duration_sec": 28.505
          }
        }
      ]
    },
    {
      "at": "2026-09-19T01:36:06.544518+08:00",
      "reason": "使用者要求全段重製；S05 整併為五段。",
      "shots": [
        {
          "order": "S05A",
          "label": "S05A｜待審核｜Leo聲線 ref r2・800ms・無BGM",
          "title": "S05A｜待審核｜Leo聲線 ref r2・800ms・無BGM",
          "file": "generated/video/hq_story_bobo_20260828/s05A_bgm_repair_20260908/confirmed_leo_ref_r2/ep01_hq_story_clip05A_lets_check_bobo_confirmed_leo_r2_tailkept_800ms_remux.mp4",
          "video": "generated/video/hq_story_bobo_20260828/s05A_bgm_repair_20260908/confirmed_leo_ref_r2/ep01_hq_story_clip05A_lets_check_bobo_confirmed_leo_r2_tailkept_800ms_remux.mp4",
          "source_video": "generated/video/hq_story_bobo_20260828/s05A_only_front_flip_closed_lid_v4_20260907/ep01_hq_story_clip05A_front_flip_back_closed_lid_silent_v4/ep01_hq_story_clip05A_front_flip_back_closed_lid_silent_v4_repaired_click_no_speech.mp4",
          "contact_sheet": "generated/video/hq_story_bobo_20260828/s05A_only_front_flip_closed_lid_v4_20260907/ep01_hq_story_clip05A_front_flip_back_closed_lid_silent_v4/ep01_hq_story_clip05A_front_flip_back_closed_lid_silent_v4_contact.jpg",
          "review_sheet": "generated/video/hq_story_bobo_20260828/s05A_only_front_flip_closed_lid_v4_20260907/ep01_hq_story_clip05A_front_flip_back_closed_lid_silent_v4/ep01_hq_story_clip05A_front_flip_back_closed_lid_silent_v4_contact.jpg",
          "frame0": "generated/video/hq_story_bobo_20260828/s05A_only_front_flip_closed_lid_v4_20260907/ep01_hq_story_clip05A_front_flip_back_closed_lid_silent_v4/ep01_hq_story_clip05A_front_flip_back_closed_lid_silent_v4_frame0.jpg",
          "final_frame": "generated/video/hq_story_bobo_20260828/s05A_only_front_flip_closed_lid_v4_20260907/ep01_hq_story_clip05A_front_flip_back_closed_lid_silent_v4/ep01_hq_story_clip05A_front_flip_back_closed_lid_silent_v4_final_frame.jpg",
          "review_status": "needs_review",
          "review_label": "待審核",
          "status": "needs_review",
          "review_note": "使用已確認 Leo ref 重新生成 Let’s check Bobo，800ms 起音；前導真靜音，待使用者確認聲線。",
          "prompt_zh_tw": "Leo 將 Bobo 翻到背面，在電池蓋關閉狀態下按開關，Bobo 沒有反應；桌上可見一顆電池。",
          "qa": {
            "audio_repair": "Leo ref-audio candidate; STT Let’s check Boba; voice identity pending user confirmation"
          }
        },
        {
          "order": "S05B",
          "label": "S05B｜已確認｜打開電池蓋發現空槽",
          "title": "S05B｜已確認｜打開電池蓋發現空槽",
          "file": "generated/video/hq_story_bobo_20260828/s05B_only_after_s05A_v4qa_empty_slot_retry4_plain_battery_20260907/ep01_hq_story_clip05B_empty_slot_no_battery_retry4_after_s05A_v4qa/ep01_hq_story_clip05B_empty_slot_no_battery_retry4_after_s05A_v4qa_repaired_keep_line_only.mp4",
          "video": "generated/video/hq_story_bobo_20260828/s05B_only_after_s05A_v4qa_empty_slot_retry4_plain_battery_20260907/ep01_hq_story_clip05B_empty_slot_no_battery_retry4_after_s05A_v4qa/ep01_hq_story_clip05B_empty_slot_no_battery_retry4_after_s05A_v4qa_repaired_keep_line_only.mp4",
          "source_video": "generated/video/hq_story_bobo_20260828/s05B_only_after_s05A_v4qa_empty_slot_retry4_plain_battery_20260907/ep01_hq_story_clip05B_empty_slot_no_battery_retry4_after_s05A_v4qa/ep01_hq_story_clip05B_empty_slot_no_battery_retry4_after_s05A_v4qa_repaired_keep_line_only.mp4",
          "contact_sheet": "generated/video/hq_story_bobo_20260828/s05B_only_after_s05A_v4qa_empty_slot_retry4_plain_battery_20260907/ep01_hq_story_clip05B_empty_slot_no_battery_retry4_after_s05A_v4qa/ep01_hq_story_clip05B_empty_slot_no_battery_retry4_after_s05A_v4qa_dense_contact.jpg",
          "review_sheet": "generated/video/hq_story_bobo_20260828/s05B_only_after_s05A_v4qa_empty_slot_retry4_plain_battery_20260907/ep01_hq_story_clip05B_empty_slot_no_battery_retry4_after_s05A_v4qa/ep01_hq_story_clip05B_empty_slot_no_battery_retry4_after_s05A_v4qa_dense_contact.jpg",
          "frame0": "generated/video/hq_story_bobo_20260828/s05B_only_after_s05A_v4qa_empty_slot_retry4_plain_battery_20260907/ep01_hq_story_clip05B_empty_slot_no_battery_retry4_after_s05A_v4qa/ep01_hq_story_clip05B_empty_slot_no_battery_retry4_after_s05A_v4qa_frame0.jpg",
          "final_frame": "generated/video/hq_story_bobo_20260828/s05B_only_after_s05A_v4qa_empty_slot_retry4_plain_battery_20260907/ep01_hq_story_clip05B_empty_slot_no_battery_retry4_after_s05A_v4qa/ep01_hq_story_clip05B_empty_slot_no_battery_retry4_after_s05A_v4qa_final_frame.jpg",
          "review_status": "approved",
          "review_label": "已確認",
          "status": "approved",
          "review_note": "S05B 採用：使用者確認畫面可；電池蓋打開、槽內空、電池仍在外面桌上。已修掉開頭怪話，STT 只剩 Bobo has no battery. 電池小字依使用者指示可接受。",
          "prompt_zh_tw": "Leo/Mia 檢查 Bobo 背面，打開電池蓋，發現空的 AAA 電池槽；Leo 說 Bobo has no battery."
        },
        {
          "order": "S05C",
          "label": "S05C｜已確認｜Mia 拿起電池",
          "title": "S05C｜已確認｜Mia 拿起電池",
          "file": "generated/video/hq_story_bobo_20260828/s05C_only_after_s05B_retry4_useraccepted_20260907/ep01_hq_story_clip05C_mia_has_battery_after_s05B_retry4_useraccepted/ep01_hq_story_clip05C_mia_has_battery_after_s05B_retry4_useraccepted_vocals_only_no_bgm.mp4",
          "video": "generated/video/hq_story_bobo_20260828/s05C_only_after_s05B_retry4_useraccepted_20260907/ep01_hq_story_clip05C_mia_has_battery_after_s05B_retry4_useraccepted/ep01_hq_story_clip05C_mia_has_battery_after_s05B_retry4_useraccepted_vocals_only_no_bgm.mp4",
          "source_video": "generated/video/hq_story_bobo_20260828/s05C_only_after_s05B_retry4_useraccepted_20260907/ep01_hq_story_clip05C_mia_has_battery_after_s05B_retry4_useraccepted/ep01_hq_story_clip05C_mia_has_battery_after_s05B_retry4_useraccepted_vocals_only_no_bgm.mp4",
          "contact_sheet": "generated/video/hq_story_bobo_20260828/s05C_only_after_s05B_retry4_useraccepted_20260907/ep01_hq_story_clip05C_mia_has_battery_after_s05B_retry4_useraccepted/ep01_hq_story_clip05C_mia_has_battery_after_s05B_retry4_useraccepted_dense_contact.jpg",
          "review_sheet": "generated/video/hq_story_bobo_20260828/s05C_only_after_s05B_retry4_useraccepted_20260907/ep01_hq_story_clip05C_mia_has_battery_after_s05B_retry4_useraccepted/ep01_hq_story_clip05C_mia_has_battery_after_s05B_retry4_useraccepted_dense_contact.jpg",
          "frame0": "generated/video/hq_story_bobo_20260828/s05C_only_after_s05B_retry4_useraccepted_20260907/ep01_hq_story_clip05C_mia_has_battery_after_s05B_retry4_useraccepted/ep01_hq_story_clip05C_mia_has_battery_after_s05B_retry4_useraccepted_frame0.jpg",
          "final_frame": "generated/video/hq_story_bobo_20260828/s05C_only_after_s05B_retry4_useraccepted_20260907/ep01_hq_story_clip05C_mia_has_battery_after_s05B_retry4_useraccepted/accepted_s05c_repaired_final_frame.png",
          "review_status": "approved",
          "review_label": "已確認",
          "status": "approved",
          "review_note": "S05C 採用：使用者確認畫面可；Mia 拿起電池，Bobo 背蓋仍打開、槽內空。已用 Demucs 去背景音樂，STT：I have a battery.",
          "prompt_zh_tw": "Mia 拿起桌上的那顆電池，對 Leo 說 I have a battery；電池尚未裝入 Bobo。"
        },
        {
          "order": "S05D",
          "label": "S05D｜已確認｜Leo先說後Mia靜默遞電池",
          "title": "S05D｜已確認｜Leo先說後Mia靜默遞電池",
          "file": "generated/video/hq_story_bobo_20260828/s05D_only_after_s05Cqa_retry13_no_text_leo_first_then_mia_silent_20260907/ep01_hq_story_clip05D_retry13_no_text_leo_first_then_mia_silent/ep01_hq_story_clip05D_retry13_visual_leo_refaudio_r3_oldleo_start0_no_bgm_remux.mp4",
          "video": "generated/video/hq_story_bobo_20260828/s05D_only_after_s05Cqa_retry13_no_text_leo_first_then_mia_silent_20260907/ep01_hq_story_clip05D_retry13_no_text_leo_first_then_mia_silent/ep01_hq_story_clip05D_retry13_visual_leo_refaudio_r3_oldleo_start0_no_bgm_remux.mp4",
          "contact_sheet": "generated/video/hq_story_bobo_20260828/s05D_only_after_s05Cqa_retry13_no_text_leo_first_then_mia_silent_20260907/ep01_hq_story_clip05D_retry13_no_text_leo_first_then_mia_silent/ep01_hq_story_clip05D_retry13_no_text_leo_first_then_mia_silent_contact.jpg",
          "review_sheet": "generated/video/hq_story_bobo_20260828/s05D_only_after_s05Cqa_retry13_no_text_leo_first_then_mia_silent_20260907/ep01_hq_story_clip05D_retry13_no_text_leo_first_then_mia_silent/ep01_hq_story_clip05D_retry13_no_text_leo_first_then_mia_silent_dense_contact.jpg",
          "frame0": "generated/video/hq_story_bobo_20260828/s05D_only_after_s05Cqa_retry13_no_text_leo_first_then_mia_silent_20260907/ep01_hq_story_clip05D_retry13_no_text_leo_first_then_mia_silent/ep01_hq_story_clip05D_retry13_no_text_leo_first_then_mia_silent_frame0.jpg",
          "review_status": "approved",
          "review_label": "已確認",
          "status": "approved",
          "review_note": "使用者確認此版可以。S05D 採用 retry13 視覺 + r3 old Leo ref 音訊：無字幕，Leo 先說 Pass it here，Mia 靜默遞電池；STT=Pass it here；Demucs no-vocals peak 約 -63 dB，BGM gate 通過。",
          "prompt_zh_tw": "Leo 先短暫動口說出 Pass it here，之後 Mia 不說話、不動口，把唯一電池拿給 Leo。電池仍在外面，尚未裝入 Bobo；Bobo 背蓋開、槽內空；無字幕/無畫面文字。",
          "first_frame": "generated/video/hq_story_bobo_20260828/s05D_only_after_s05Cqa_retry13_no_text_leo_first_then_mia_silent_20260907/ep01_hq_story_clip05D_retry13_no_text_leo_first_then_mia_silent/ep01_hq_story_clip05D_retry13_no_text_leo_first_then_mia_silent_frame0.jpg",
          "prompt_en": "S05D retry13 visual-only, no written dialogue in the prompt. Continue from the accepted S05C final frame with the same classroom table composition. Leo holds the passive Bobo plush with Bobo's back facing the camera. Bobo's battery lid remains open and the battery slot remains empty. Mia holds the single battery.\n\nTiming and acting: First, Leo looks toward the battery in Mia's hand and is the only child who briefly moves his mouth, as if making a short spoken request. Mia stays silent during this first moment. After Leo's short mouth movement, Mia silently hands the single battery directly to Leo. Mia uses only her hand and arm, keeps her mouth closed or hidden, and does not make any speaking mouth movement. Leo receives the battery.\n\nState lock: the battery stays outside Bobo for the entire clip. Do not install the battery in this segment. Keep Bobo's back lid open and the slot empty through the final frame. Bobo remains an inanimate plush doll; any Bobo motion is only from Leo holding it.\n\nReference policy: use S05C accepted final as the S05D first frame, plus Mia/Leo/S01A scene references only. Do not use the separate open-lid-empty-slot still reference.\n\nClean screen: plain image only. No subtitles, no captions, no speech bubbles, no printed dialogue, no readable words, no floating text, no on-screen text, no watermark.",
          "actual_prompt": "S05D retry13 visual-only, no written dialogue in the prompt. Continue from the accepted S05C final frame with the same classroom table composition. Leo holds the passive Bobo plush with Bobo's back facing the camera. Bobo's battery lid remains open and the battery slot remains empty. Mia holds the single battery.\n\nTiming and acting: First, Leo looks toward the battery in Mia's hand and is the only child who briefly moves his mouth, as if making a short spoken request. Mia stays silent during this first moment. After Leo's short mouth movement, Mia silently hands the single battery directly to Leo. Mia uses only her hand and arm, keeps her mouth closed or hidden, and does not make any speaking mouth movement. Leo receives the battery.\n\nState lock: the battery stays outside Bobo for the entire clip. Do not install the battery in this segment. Keep Bobo's back lid open and the slot empty through the final frame. Bobo remains an inanimate plush doll; any Bobo motion is only from Leo holding it.\n\nReference policy: use S05C accepted final as the S05D first frame, plus Mia/Leo/S01A scene references only. Do not use the separate open-lid-empty-slot still reference.\n\nClean screen: plain image only. No subtitles, no captions, no speech bubbles, no printed dialogue, no readable words, no floating text, no on-screen text, no watermark.",
          "prompt_file": "generated/video/hq_story_bobo_20260828/s05D_only_after_s05Cqa_retry13_no_text_leo_first_then_mia_silent_20260907/ep01_hq_story_clip05D_retry13_no_text_leo_first_then_mia_silent/prompt.txt",
          "workflow": "generated/video/hq_story_bobo_20260828/s05D_only_after_s05Cqa_retry13_no_text_leo_first_then_mia_silent_20260907/ep01_hq_story_clip05D_retry13_no_text_leo_first_then_mia_silent/workflow_api.json",
          "reference_images": [
            "generated/video/hq_story_bobo_20260828/s05D_planned_leo_first_mia_silent_handoff_20260907/refs/mia_ref.png",
            "generated/video/hq_story_bobo_20260828/s05D_planned_leo_first_mia_silent_handoff_20260907/refs/leo_ref.png",
            "generated/video/hq_story_bobo_20260828/s05D_planned_leo_first_mia_silent_handoff_20260907/refs/s01a_scene_ref.png"
          ],
          "reference_audio": [
            "C:/Users/blacklin/Documents/ComfyUI/input/ep01_leo_voice_ref_need_help.wav"
          ],
          "first_frame_mode": "same-shot continuation from accepted S05C final; retry13 visual prompt omitted literal dialogue text to avoid subtitles; no open-slot still ref; final audio remux uses Leo ref ep01_leo_voice_ref_need_help.wav from r3, aligned at 0s.",
          "qa": {
            "user_confirmation": "accepted by user",
            "frame0": "PASS: continues from S05C accepted final",
            "visual": "PASS: no subtitles; Leo first mouth movement then Mia silent handoff; battery remains outside Bobo",
            "audio": "PASS after r3 remux; STT Pass it here; user accepted Leo voice",
            "bgm": "PASS: final no-vocals peak approx -63 dB / RMS approx -85.6 dB",
            "omitted_ref": "separate open-lid-empty-slot still ref not used"
          },
          "workflow_path": "",
          "final_frame": "generated/video/hq_story_bobo_20260828/s05D_only_after_s05Cqa_retry13_no_text_leo_first_then_mia_silent_20260907/ep01_hq_story_clip05D_retry13_no_text_leo_first_then_mia_silent/ep01_hq_story_clip05D_retry13_no_text_leo_first_then_mia_silent_final_frame.jpg"
        },
        {
          "order": "S05E",
          "label": "S05E｜待審核｜retry8 視覺可用・真靜音",
          "title": "S05E｜待審核｜retry8 視覺可用・真靜音",
          "file": "generated/video/hq_story_bobo_20260828/s05E_only_after_s05D_confirmed_remux_retry8_firstframe_only_20260907/ep01_hq_story_clip05E_insert_battery_after_s05D_confirmed_remux_retry8_firstframe_only/ep01_hq_story_clip05E_insert_battery_after_s05D_confirmed_remux_retry8_firstframe_only_true_silence_user_visual_ok.mp4",
          "video": "generated/video/hq_story_bobo_20260828/s05E_only_after_s05D_confirmed_remux_retry8_firstframe_only_20260907/ep01_hq_story_clip05E_insert_battery_after_s05D_confirmed_remux_retry8_firstframe_only/ep01_hq_story_clip05E_insert_battery_after_s05D_confirmed_remux_retry8_firstframe_only_true_silence_user_visual_ok.mp4",
          "review_status": "needs_review",
          "review_label": "待審核",
          "status": "needs_review",
          "review_note": "待使用者審核/確認。使用者看過 retry8 視覺後表示可以，只是有背景音樂。已停止 retry9，採用 retry8 視覺並 remux 成 true silence；astats Peak/RMS=-inf。第一幀硬 QA 已通過：S05D confirmed final input vs retry8 actual frame0 diff mean 4.16、RMS 5.98，視覺為同構圖同狀態。",
          "prompt_zh_tw": "S05E retry8：first_frame-only。S05D 最後確定版 final frame 只作為 first_frame，沒有 reference images。使用者確認視覺看起來可以；原生音訊有背景音樂，已改真靜音版。",
          "native_video": "generated/video/hq_story_bobo_20260828/s05E_only_after_s05D_confirmed_remux_retry8_firstframe_only_20260907/ep01_hq_story_clip05E_insert_battery_after_s05D_confirmed_remux_retry8_firstframe_only/ep01_hq_story_clip05E_insert_battery_after_s05D_confirmed_remux_retry8_firstframe_only_native_audio.mp4",
          "contact_sheet": "generated/video/hq_story_bobo_20260828/s05E_only_after_s05D_confirmed_remux_retry8_firstframe_only_20260907/ep01_hq_story_clip05E_insert_battery_after_s05D_confirmed_remux_retry8_firstframe_only/ep01_hq_story_clip05E_insert_battery_after_s05D_confirmed_remux_retry8_firstframe_only_contact.jpg",
          "review_sheet": "generated/video/hq_story_bobo_20260828/s05E_only_after_s05D_confirmed_remux_retry8_firstframe_only_20260907/ep01_hq_story_clip05E_insert_battery_after_s05D_confirmed_remux_retry8_firstframe_only/ep01_hq_story_clip05E_insert_battery_after_s05D_confirmed_remux_retry8_firstframe_only_dense_contact.jpg",
          "frame0": "generated/video/hq_story_bobo_20260828/s05E_only_after_s05D_confirmed_remux_retry8_firstframe_only_20260907/ep01_hq_story_clip05E_insert_battery_after_s05D_confirmed_remux_retry8_firstframe_only/ep01_hq_story_clip05E_insert_battery_after_s05D_confirmed_remux_retry8_firstframe_only_frame0.jpg",
          "first_frame": "generated/video/hq_story_bobo_20260828/s05D_only_after_s05Cqa_retry13_no_text_leo_first_then_mia_silent_20260907/ep01_hq_story_clip05D_retry13_no_text_leo_first_then_mia_silent/ep01_hq_story_clip05D_CONFIRMED_REMUX_final_frame_for_s05E.png",
          "final_frame": "generated/video/hq_story_bobo_20260828/s05E_only_after_s05D_confirmed_remux_retry8_firstframe_only_20260907/ep01_hq_story_clip05E_insert_battery_after_s05D_confirmed_remux_retry8_firstframe_only/ep01_hq_story_clip05E_insert_battery_after_s05D_confirmed_remux_retry8_firstframe_only_final_frame.jpg",
          "prompt_en": "S05E silent visual action. The supplied first_frame is the exact starting image and must remain the first visible frame. Do not recompose the shot and do not introduce a new camera angle. Keep the same classroom table, same children, same Bobo position, same open back cover, and same battery position from the first_frame. Leo holds the passive Bobo plush with Bobo's back facing the camera. The back battery cover is already open. The single plain battery is already near the open slot, aligned at the entrance of the compartment. Mia watches quietly from the side.\n\nFirst-frame continuity is mandatory: frame 0 must match the supplied first_frame. Begin with a tiny still hold, then Leo's nearby fingers gently push the single battery into the open slot on Bobo's back. Keep camera and character layout stable. The final frame should show one battery seated in the open compartment while the cover remains open. Do not close the cover. Do not press the switch.\n\nState lock: keep the battery cover open through the final frame. Do not close the cover in this segment. Do not press the switch. Bobo does not activate, does not blink, does not talk, and does not move by itself. Any Bobo movement is only from Leo's hands holding it. Mia stays silent with a closed mouth and does not touch Bobo.\n\nClean screen only: no subtitles, no captions, no speech bubbles, no printed dialogue, no readable text, no floating words, no on-screen text, no watermark. Silent physical action; no dialogue is needed.",
          "actual_prompt": "S05E silent visual action. The supplied first_frame is the exact starting image and must remain the first visible frame. Do not recompose the shot and do not introduce a new camera angle. Keep the same classroom table, same children, same Bobo position, same open back cover, and same battery position from the first_frame. Leo holds the passive Bobo plush with Bobo's back facing the camera. The back battery cover is already open. The single plain battery is already near the open slot, aligned at the entrance of the compartment. Mia watches quietly from the side.\n\nFirst-frame continuity is mandatory: frame 0 must match the supplied first_frame. Begin with a tiny still hold, then Leo's nearby fingers gently push the single battery into the open slot on Bobo's back. Keep camera and character layout stable. The final frame should show one battery seated in the open compartment while the cover remains open. Do not close the cover. Do not press the switch.\n\nState lock: keep the battery cover open through the final frame. Do not close the cover in this segment. Do not press the switch. Bobo does not activate, does not blink, does not talk, and does not move by itself. Any Bobo movement is only from Leo's hands holding it. Mia stays silent with a closed mouth and does not touch Bobo.\n\nClean screen only: no subtitles, no captions, no speech bubbles, no printed dialogue, no readable text, no floating words, no on-screen text, no watermark. Silent physical action; no dialogue is needed.",
          "prompt_file": "generated/video/hq_story_bobo_20260828/s05E_only_after_s05D_confirmed_remux_retry8_firstframe_only_20260907/ep01_hq_story_clip05E_insert_battery_after_s05D_confirmed_remux_retry8_firstframe_only/prompt.txt",
          "workflow": "generated/video/hq_story_bobo_20260828/s05E_only_after_s05D_confirmed_remux_retry8_firstframe_only_20260907/ep01_hq_story_clip05E_insert_battery_after_s05D_confirmed_remux_retry8_firstframe_only/workflow_api.json",
          "reference_images": [],
          "reference_audio": [],
          "first_frame_mode": "Retry8: first_frame-only. S05D confirmed remux final is wired as first_frame; no reference_images. First-frame hard QA passed: diff mean 4.16, RMS 5.98, visually same composition/state.",
          "qa": {
            "review": "needs_user_review",
            "user_visual_feedback": "User said retry8 visual looks acceptable; issue is only background music",
            "frame0": "PASS: diff mean 4.16, rms 5.98; same composition/state",
            "audio": "PASS after true silence remux: Peak/RMS -inf",
            "native_audio": "rejected: background music/noise",
            "workflow": "first_frame only, no references"
          },
          "first_frame_input": "generated/video/hq_story_bobo_20260828/s05D_only_after_s05Cqa_retry13_no_text_leo_first_then_mia_silent_20260907/ep01_hq_story_clip05D_retry13_no_text_leo_first_then_mia_silent/ep01_hq_story_clip05D_CONFIRMED_REMUX_final_frame_for_s05E.png",
          "actual_frame0": "generated/video/hq_story_bobo_20260828/s05E_only_after_s05D_confirmed_remux_retry8_firstframe_only_20260907/ep01_hq_story_clip05E_insert_battery_after_s05D_confirmed_remux_retry8_firstframe_only/ep01_hq_story_clip05E_insert_battery_after_s05D_confirmed_remux_retry8_firstframe_only_frame0.jpg",
          "firstframe_compare": "generated/video/hq_story_bobo_20260828/s05E_firstframe_QA_retry8_20260907/s05e_retry8_firstframe_compare_input_vs_actual_frame0.jpg"
        },
        {
          "order": "S05F",
          "label": "S05F｜已確認｜Ready, go 按下開關",
          "title": "S05F｜已確認｜Ready, go 按下開關",
          "file": "generated/video/hq_story_bobo_20260828/s05F_retry6_front_table_visible_wrap_press_20260908/ep01_hq_story_clip05F_retry6_front_table_visible_wrap_press/s05f_retry6_ready_go_confirmed_s05D_r3_remux_20260908/ep01_hq_story_clip05F_retry6_front_table_visible_wrap_press_leo_ready_go_confirmed_s05D_r3_600ms_stronger_go_remux.mp4",
          "video": "generated/video/hq_story_bobo_20260828/s05F_retry6_front_table_visible_wrap_press_20260908/ep01_hq_story_clip05F_retry6_front_table_visible_wrap_press/s05f_retry6_ready_go_confirmed_s05D_r3_remux_20260908/ep01_hq_story_clip05F_retry6_front_table_visible_wrap_press_leo_ready_go_confirmed_s05D_r3_600ms_stronger_go_remux.mp4",
          "review_status": "approved",
          "review_label": "已確認",
          "status": "needs_review",
          "review_note": "使用者確認：視覺可、候選1 600ms 聲音可。S05E final → S05F retry6 frame0 接續 PASS：mean 4.55 / RMS 6.51。Bobo 正面放桌上，Leo 側後方手勢按開關，Bobo 小幅機械反應，無字幕/文字。音訊使用已確認 S05D Leo 聲音來源重生 Ready, go；600ms stronger-go 版已接受。",
          "prompt_zh_tw": "S05F：Leo 將 Bobo 轉到正面放在桌面，一手穩住 Bobo、另一手從側邊繞到背後開關；說 Ready, go，go 同時按下開關，Bobo 小幅機械玩具反應。",
          "native_video": "generated/video/hq_story_bobo_20260828/s05F_retry6_front_table_visible_wrap_press_20260908/ep01_hq_story_clip05F_retry6_front_table_visible_wrap_press/ep01_hq_story_clip05F_retry6_front_table_visible_wrap_press_native_audio.mp4",
          "contact_sheet": "generated/video/hq_story_bobo_20260828/s05F_retry6_QA_20260908/s05f_retry6_dense_every8_12frames.jpg",
          "review_sheet": "generated/video/hq_story_bobo_20260828/s05F_retry6_QA_20260908/s05f_retry6_dense_0_12_24_36_48_60_72.jpg",
          "first_frame": "generated/video/hq_story_bobo_20260828/s05E_only_after_s05D_confirmed_remux_retry8_firstframe_only_20260907/ep01_hq_story_clip05E_insert_battery_after_s05D_confirmed_remux_retry8_firstframe_only/ep01_hq_story_clip05E_insert_battery_after_s05D_confirmed_remux_retry8_firstframe_only_final_frame.jpg",
          "first_frame_input": "generated/video/hq_story_bobo_20260828/s05E_only_after_s05D_confirmed_remux_retry8_firstframe_only_20260907/ep01_hq_story_clip05E_insert_battery_after_s05D_confirmed_remux_retry8_firstframe_only/ep01_hq_story_clip05E_insert_battery_after_s05D_confirmed_remux_retry8_firstframe_only_final_frame.jpg",
          "frame0": "generated/video/hq_story_bobo_20260828/s05F_retry6_front_table_visible_wrap_press_20260908/ep01_hq_story_clip05F_retry6_front_table_visible_wrap_press/ep01_hq_story_clip05F_retry6_front_table_visible_wrap_press_frame0.jpg",
          "actual_frame0": "generated/video/hq_story_bobo_20260828/s05F_retry6_front_table_visible_wrap_press_20260908/ep01_hq_story_clip05F_retry6_front_table_visible_wrap_press/ep01_hq_story_clip05F_retry6_front_table_visible_wrap_press_frame0.jpg",
          "final_frame": "generated/video/hq_story_bobo_20260828/s05F_retry6_front_table_visible_wrap_press_20260908/ep01_hq_story_clip05F_retry6_front_table_visible_wrap_press/ep01_hq_story_clip05F_retry6_front_table_visible_wrap_press_final_frame.jpg",
          "firstframe_compare": "generated/video/hq_story_bobo_20260828/s05F_retry6_QA_20260908/s05f_retry6_firstframe_compare_s05e_retry8_final_vs_frame0.jpg",
          "qa": {
            "firstframe_mean": 4.545197663483797,
            "firstframe_rms": 6.512035860154652,
            "audio_stt": "Ready? Go!",
            "audio_peak_db": -2.911805,
            "audio_rms_db": -13.473012,
            "user_confirmed": true
          },
          "prompt_path": "generated/video/hq_story_bobo_20260828/run_hq_story_s05F_retry6_front_table_visible_wrap_press_20260908.py",
          "workflow_path": "generated/video/hq_story_bobo_20260828/s05F_retry6_front_table_visible_wrap_press_20260908/ep01_hq_story_clip05F_retry6_front_table_visible_wrap_press/workflow_api.json",
          "voice_audio": "generated/video/hq_story_bobo_20260828/s05F_audio_refs_20260908/leo_ref_from_confirmed_s05D_pass_it_here.wav",
          "remux_audio_source": "generated/video/hq_story_bobo_20260828/s05F_audioonly_leo_ready_go_ref_confirmed_s05D_retry3_20260908/ep01_hq_story_clip05F_audioonly_leo_ready_go_ref_confirmed_s05D_r3/ep01_hq_story_clip05F_audioonly_leo_ready_go_ref_confirmed_s05D_r3_native_audio.mp4"
        },
        {
          "order": "S05G",
          "label": "S05G｜已確認｜It works 啟動成功",
          "title": "S05G｜已確認｜It works 啟動成功",
          "review_status": "approved",
          "review_label": "已確認",
          "status": "needs_review",
          "review_note": "使用者確認採用候選2（1300ms）。S05F final → S05G retry5 frame0 接續 PASS：mean 4.59 / RMS 6.69。Bobo 正面桌上小幅機械反應，Leo 說 It works!，無字幕文字；Mia 靜默觀看。",
          "prompt_zh_tw": "S05G：接 S05F 按下開關後，Bobo 正面在桌上做小幅機械啟動反應；Leo 開心說 It works!；Mia 靜默看著。",
          "first_frame": "generated/video/hq_story_bobo_20260828/s05F_retry6_front_table_visible_wrap_press_20260908/ep01_hq_story_clip05F_retry6_front_table_visible_wrap_press/ep01_hq_story_clip05F_retry6_front_table_visible_wrap_press_final_frame.jpg",
          "first_frame_input": "generated/video/hq_story_bobo_20260828/s05F_retry6_front_table_visible_wrap_press_20260908/ep01_hq_story_clip05F_retry6_front_table_visible_wrap_press/ep01_hq_story_clip05F_retry6_front_table_visible_wrap_press_final_frame.jpg",
          "qa": {
            "firstframe_mean": 4.5851324172247026,
            "firstframe_rms": 6.691939898407485,
            "audio_stt": "It works!",
            "user_confirmed_candidate": "1300ms"
          },
          "file": "generated/video/hq_story_bobo_20260828/s05G_retry5_after_s05F_retry6_front_powered_reaction_20260908/ep01_hq_story_clip05G_retry5_front_powered_reaction_after_s05F_retry6/s05g_retry5_itworks_confirmed_s05D_r1_remux_20260908/ep01_hq_story_clip05G_retry5_front_powered_reaction_after_s05F_retry6_leo_it_works_confirmed_s05D_r1_1300ms_remux.mp4",
          "video": "generated/video/hq_story_bobo_20260828/s05G_retry5_after_s05F_retry6_front_powered_reaction_20260908/ep01_hq_story_clip05G_retry5_front_powered_reaction_after_s05F_retry6/s05g_retry5_itworks_confirmed_s05D_r1_remux_20260908/ep01_hq_story_clip05G_retry5_front_powered_reaction_after_s05F_retry6_leo_it_works_confirmed_s05D_r1_1300ms_remux.mp4",
          "native_video": "generated/video/hq_story_bobo_20260828/s05G_retry5_after_s05F_retry6_front_powered_reaction_20260908/ep01_hq_story_clip05G_retry5_front_powered_reaction_after_s05F_retry6/ep01_hq_story_clip05G_retry5_front_powered_reaction_after_s05F_retry6_native_audio.mp4",
          "contact_sheet": "generated/video/hq_story_bobo_20260828/s05G_retry5_after_s05F_retry6_front_powered_reaction_20260908/ep01_hq_story_clip05G_retry5_front_powered_reaction_after_s05F_retry6/ep01_hq_story_clip05G_retry5_contact.jpg",
          "review_sheet": "generated/video/hq_story_bobo_20260828/s05G_retry5_after_s05F_retry6_front_powered_reaction_20260908/ep01_hq_story_clip05G_retry5_front_powered_reaction_after_s05F_retry6/ep01_hq_story_clip05G_retry5_dense_every8.jpg",
          "frame0": "generated/video/hq_story_bobo_20260828/s05G_retry5_after_s05F_retry6_front_powered_reaction_20260908/ep01_hq_story_clip05G_retry5_front_powered_reaction_after_s05F_retry6/ep01_hq_story_clip05G_retry5_front_powered_reaction_after_s05F_retry6_frame0.jpg",
          "actual_frame0": "generated/video/hq_story_bobo_20260828/s05G_retry5_after_s05F_retry6_front_powered_reaction_20260908/ep01_hq_story_clip05G_retry5_front_powered_reaction_after_s05F_retry6/ep01_hq_story_clip05G_retry5_front_powered_reaction_after_s05F_retry6_frame0.jpg",
          "final_frame": "generated/video/hq_story_bobo_20260828/s05G_retry5_after_s05F_retry6_front_powered_reaction_20260908/ep01_hq_story_clip05G_retry5_front_powered_reaction_after_s05F_retry6/ep01_hq_story_clip05G_retry5_front_powered_reaction_after_s05F_retry6_final_frame.jpg",
          "firstframe_compare": "generated/video/hq_story_bobo_20260828/s05G_retry5_after_s05F_retry6_front_powered_reaction_20260908/ep01_hq_story_clip05G_retry5_front_powered_reaction_after_s05F_retry6/s05g_retry5_firstframe_compare_s05f_retry6_final_vs_frame0.jpg",
          "voice_audio": "generated/video/hq_story_bobo_20260828/s05F_audio_refs_20260908/leo_ref_from_confirmed_s05D_pass_it_here.wav"
        },
        {
          "order": "S05H",
          "label": "S05H｜待審核｜Mia：Good job 結尾・clean 650ms",
          "title": "S05H｜待審核｜Mia：Good job 結尾・clean 650ms",
          "review_status": "needs_review",
          "review_label": "待審核",
          "review_note": "retry22 視覺：首幀接續 PASS；Mia Good job clean remux，前導 0–620ms 真靜音。",
          "prompt_zh_tw": "S05H：Mia 微笑看著 Leo 和成功啟動的 Bobo，說 Good job! 作為結尾；Leo 靜默開心，Bobo 保持坐在桌上、被動小玩具狀態。",
          "first_frame": "generated/video/hq_story_bobo_20260828/s05G_retry5_after_s05F_retry6_front_powered_reaction_20260908/ep01_hq_story_clip05G_retry5_front_powered_reaction_after_s05F_retry6/ep01_hq_story_clip05G_retry5_front_powered_reaction_after_s05F_retry6_final_frame.jpg",
          "first_frame_input": "generated/video/hq_story_bobo_20260828/s05G_retry5_after_s05F_retry6_front_powered_reaction_20260908/ep01_hq_story_clip05G_retry5_front_powered_reaction_after_s05F_retry6/ep01_hq_story_clip05G_retry5_front_powered_reaction_after_s05F_retry6_final_frame.jpg",
          "file": "generated/video/hq_story_bobo_20260828/s05H_after_s05G_retry22_leo_closes_then_mia_20260908/ep01_hq_story_clip05H_retry22_leo_closes_then_mia/s05h_retry22_mia_good_job_clean_remux_20260908/ep01_hq_story_clip05H_retry22_mia_good_job_clean_650ms_remux.mp4",
          "video": "generated/video/hq_story_bobo_20260828/s05H_after_s05G_retry22_leo_closes_then_mia_20260908/ep01_hq_story_clip05H_retry22_leo_closes_then_mia/s05h_retry22_mia_good_job_clean_remux_20260908/ep01_hq_story_clip05H_retry22_mia_good_job_clean_650ms_remux.mp4",
          "status": "needs_review",
          "contact_sheet": "generated/video/hq_story_bobo_20260828/s05H_after_s05G_retry22_leo_closes_then_mia_20260908/ep01_hq_story_clip05H_retry22_leo_closes_then_mia/ep01_hq_story_clip05H_retry22_contact.jpg",
          "frame0": "generated/video/hq_story_bobo_20260828/s05H_after_s05G_retry22_leo_closes_then_mia_20260908/ep01_hq_story_clip05H_retry22_leo_closes_then_mia/ep01_hq_story_clip05H_retry22_frame0.jpg",
          "final_frame": "generated/video/hq_story_bobo_20260828/s05H_after_s05G_retry22_leo_closes_then_mia_20260908/ep01_hq_story_clip05H_retry22_leo_closes_then_mia/ep01_hq_story_clip05H_retry22_final_frame.jpg"
        },
        {
          "order": "S05-FULL",
          "label": "S05-FULL｜待審核｜A–H・S05A Leo ref 800ms・目前版調色",
          "title": "S05-FULL｜待審核｜A–H・S05A Leo ref 800ms・目前版調色",
          "file": "generated/video/hq_story_bobo_20260828/s05_FULL_review_20260908_colorfix_current_v2_clean_goodjob_s05A_leoref800/ep01_hq_story_S05_FULL_A_to_H_colorfix_current_v2_s05A_leoref800_clean_goodjob_review_20260908.mp4",
          "video": "generated/video/hq_story_bobo_20260828/s05_FULL_review_20260908_colorfix_current_v2_clean_goodjob_s05A_leoref800/ep01_hq_story_S05_FULL_A_to_H_colorfix_current_v2_s05A_leoref800_clean_goodjob_review_20260908.mp4",
          "review_status": "needs_review",
          "review_label": "待審核",
          "status": "needs_review",
          "review_note": "S05A 改用已確認 Leo ref r2 800ms；S05F 起目前版調色；S05H clean Good job 前導真靜音。",
          "prompt_zh_tw": "待 S05A–S05G 全部通過後重組完整 S05。",
          "contact_sheet": "generated/video/hq_story_bobo_20260828/s05_FULL_review_20260908_colorfix_current_v2_clean_goodjob_s05A_leoref800/contact_1fps.jpg",
          "dense_contact": "generated/video/hq_story_bobo_20260828/s05_FULL_review_20260908_colorfix_current_v2_clean_goodjob_s05A_leoref800/dense_every24.jpg"
        }
      ]
    },
    {
      "at": "2026-09-19T09:52:29.152366+08:00",
      "reason": "使用者回報 S04E/F Bobo 外型及角色聲線錯誤；改為參考圖衍生首尾幀與固定角色配音。",
      "shots": [
        {
          "order": "S04E",
          "id": "ep01_s04e_redo_20260919",
          "title": "S04E｜準備抱出，Mia 提醒小心",
          "label": "S04E｜準備抱出，Mia 提醒小心",
          "display_title": "S04E｜準備抱出，Mia 提醒小心",
          "file": "generated/s04e_redo_v1/review.mp4",
          "video": "generated/s04e_redo_v1/review.mp4",
          "source_video": "generated/s04e_redo_v1/review.mp4",
          "frame0": "generated/s04e_redo_v1/first.png",
          "actual_frame0": "generated/s04e_redo_v1/first.png",
          "final_frame": "generated/s04e_redo_v1/last.png",
          "contact_sheet": "generated/s04e_redo_v1/contact.jpg",
          "status": "generated",
          "review_status": "pending_review",
          "review_label": "待確認",
          "review_note": "全新生成畫面，無定格補秒；沿用既有角色配音重新對齊。台詞與接點已核對，表演／嘴型待確認。",
          "note": "全新生成畫面，無定格補秒；沿用既有角色配音重新對齊。台詞與接點已核對，表演／嘴型待確認。",
          "provider": "ComfyUI / MiniMax H3",
          "quality": "1344 × 768 / 24 fps",
          "dialogue": [
            {
              "en": "I'll take it out."
            },
            {
              "en": "Slow down. Be careful. It might break."
            }
          ],
          "prompt_en": "Crisp warm clay animation. Continue seamlessly from this exact starting frame, same characters, clothing, room, lighting and camera. Locked medium two-shot. Leo, the boy on the right in green, looks into the open blue box and says \"I'll take it out.\" in a clear young boy voice while starting to reach toward it. Mia, the girl on the left in pink, promptly raises a gentle cautioning palm between his hand and the box and says \"Slow down. Be careful. It might break.\" in a clear caring young girl voice, one flowing sentence with only small natural phrase pauses. Leo responds to her warning by easing his hands back slightly and nodding, lips closed while she speaks. Mia lowers her hand as she finishes. No one touches or lifts the plush doll inside yet; its tiny beige crown stays at the same low height. The detached lid stays where Leo put it to the right, outside this closer framing. Do not add a lid back onto the box. Natural continuous responsive movement, no rigid holding poses or long silence. Continuous gentle breathing, small eye movements and responsive expressions throughout. No cuts, zoom, music, narrator, captions, extra people or invented objects. Only the active speaker moves their mouth. Do not pause to pose at the beginning or end.",
          "updated_at": "2026-09-19T01:36:06.544518+08:00",
          "first_frame_input": "generated/s04d_redo_v2/last.png"
        },
        {
          "order": "S04F",
          "id": "ep01_s04f_redo_20260919",
          "title": "S04F｜邊回應邊輕輕抱出 Bobo",
          "label": "S04F｜邊回應邊輕輕抱出 Bobo",
          "display_title": "S04F｜邊回應邊輕輕抱出 Bobo",
          "file": "generated/s04f_redo_v2/review.mp4",
          "video": "generated/s04f_redo_v2/review.mp4",
          "source_video": "generated/s04f_redo_v2/review.mp4",
          "frame0": "generated/s04f_redo_v2/first.png",
          "actual_frame0": "generated/s04f_redo_v2/first.png",
          "final_frame": "generated/s04f_redo_v2/last.png",
          "contact_sheet": "generated/s04f_redo_v2/contact.jpg",
          "status": "generated",
          "review_status": "pending_review",
          "review_label": "待確認",
          "review_note": "全新生成畫面，無定格補秒；沿用既有角色配音重新對齊。台詞與接點已核對，表演／嘴型待確認。",
          "note": "全新生成畫面，無定格補秒；沿用既有角色配音重新對齊。台詞與接點已核對，表演／嘴型待確認。",
          "provider": "ComfyUI / MiniMax H3",
          "quality": "1344 × 768 / 24 fps",
          "dialogue": [
            {
              "en": "Okay, I will take Bobo out slowly and carefully."
            }
          ],
          "prompt_en": "Crisp warm clay animation. Continue this exact starting frame, same close two-shot, Mia left in pink, Leo right in green, open blue box between them. Leo says exactly \"Okay, I will take Bobo out slowly and carefully.\" in a natural warm young boy voice while doing the action. He leans toward the box and gently reaches BOTH hands down around the small beige stuffed doll's BODY below the rim. He supports its body and smoothly lifts it out, naturally turning the toy to face HIM. IMPORTANT: the back of the doll's head and back of its body face the CAMERA during the entire lift and at the end. The doll's face is hidden from the viewer, directed toward Leo's chest. We see its plain beige fabric back, three short beige fabric tufts, the red scarf tied behind its neck, a small closed rectangular beige battery hatch on its lower back, and soft stubby limbs. It is a floppy inanimate plush, no independent motion. Leo's hands lift and support it, not its head. Mia watches quietly with her lips closed. Finish with Leo holding the toy securely at chest height, BACK toward the camera, FACE completely hidden. One fluid careful lift while speaking, no waiting until the sentence ends, no stopping midair, no extra gestures or speech. Bobo remains small, same size as its head inside the box. No camera cut, zoom, slow motion, subtitles, music or narrator. Both children's mouths close after the reply. Preserve light and colors.",
          "updated_at": "2026-09-19T01:36:06.544518+08:00",
          "first_frame_input": "generated/s04e_redo_v1/last.png"
        }
      ]
    },
    {
      "at": "2026-09-19T11:03:24.847924+08:00",
      "reason": "S04B–F 全重做：逐段校色後才接續、割斷兩側封條、無電 Bobo 保持被動。",
      "shots": [
        {
          "order": "S04B",
          "id": "ep01_s04b_redo_20260919",
          "title": "S04B｜Leo 提議幫忙，Mia 回應",
          "label": "S04B｜Leo 提議幫忙，Mia 回應",
          "display_title": "S04B｜Leo 提議幫忙，Mia 回應",
          "file": "generated/s04b_redo_v1/review.mp4",
          "video": "generated/s04b_redo_v1/review.mp4",
          "source_video": "generated/s04b_redo_v1/review.mp4",
          "frame0": "generated/s04b_redo_v1/first.png",
          "actual_frame0": "generated/s04b_redo_v1/first.png",
          "final_frame": "generated/s04b_redo_v1/last.png",
          "contact_sheet": "generated/s04b_redo_v1/contact.jpg",
          "status": "generated",
          "review_status": "pending_review",
          "review_label": "待確認",
          "review_note": "全新生成畫面，無定格補秒；沿用既有角色配音重新對齊。台詞與接點已核對，表演／嘴型待確認。",
          "note": "全新生成畫面，無定格補秒；沿用既有角色配音重新對齊。台詞與接點已核對，表演／嘴型待確認。",
          "provider": "ComfyUI / MiniMax H3",
          "quality": "1344 × 768 / 24 fps",
          "dialogue": [
            {
              "en": "Need help?"
            },
            {
              "en": "Good idea."
            }
          ],
          "prompt_en": "Crisp warm clay animation. Continue seamlessly from this exact starting frame, same characters, clothing, room, lighting and camera. Locked medium two-shot. Leo, the boy on the right in green, immediately looks at Mia and says \"Need help?\" with a friendly young boy voice as he picks up the small blue utility cutter from the table. Mia, the girl on the left in pink, replies \"Good idea.\" with a clear young girl voice and a small nod. Her hands remain clear of the box. Each speaks only their own line and listens with their mouth closed during the other's line. Leo holds the cutter low beside the box at the end, ready to cut the tape. The blue box remains closed. Natural relaxed conversational pace, brief response gap, no waiting before speaking. Continuous gentle breathing, small eye movements and responsive expressions throughout. No cuts, zoom, music, narrator, captions, extra people or invented objects. Only the active speaker moves their mouth. Do not pause to pose at the beginning or end.",
          "updated_at": "2026-09-19T01:36:06.544518+08:00",
          "first_frame_input": "generated/s04a_redo_v1/last.png"
        },
        {
          "order": "S04C",
          "id": "ep01_s04c_redo_20260919",
          "title": "S04C｜切開膠帶並放下工具",
          "label": "S04C｜切開膠帶並放下工具",
          "display_title": "S04C｜切開膠帶並放下工具",
          "file": "generated/s04c_redo_v1/review.mp4",
          "video": "generated/s04c_redo_v1/review.mp4",
          "source_video": "generated/s04c_redo_v1/review.mp4",
          "frame0": "generated/s04c_redo_v1/first.png",
          "actual_frame0": "generated/s04c_redo_v1/first.png",
          "final_frame": "generated/s04c_redo_v1/last.png",
          "contact_sheet": "generated/s04c_redo_v1/contact.jpg",
          "status": "generated",
          "review_status": "pending_review",
          "review_label": "待確認",
          "review_note": "全新生成畫面，無定格補秒；沿用既有角色配音重新對齊。台詞與接點已核對，表演／嘴型待確認。",
          "note": "全新生成畫面，無定格補秒；沿用既有角色配音重新對齊。台詞與接點已核對，表演／嘴型待確認。",
          "provider": "ComfyUI / MiniMax H3",
          "quality": "1344 × 768 / 24 fps",
          "dialogue": [
            {
              "en": "All set."
            }
          ],
          "prompt_en": "Crisp warm clay animation. Continue seamlessly from this exact starting frame, same characters, clothing, room, lighting and camera. Locked medium two-shot. Leo, the boy on the right in green, uses the blue cutter in his hand for one short precise slice through the tan tape exactly at the front horizontal seam between the blue box lid and body. The blade cuts only the tape, not the box. He immediately lowers the cutter and places it flat on the table to the right of the box, then says \"All set.\" in a clear young boy voice. Mia in pink first takes her hand off the lid and quietly watches his work, hands safely away from the box before he cuts. The lid remains closed, now ready to lift. Keep the box solid and the same shape. One smooth cutting action followed by putting the tool down; no repeated sawing or frozen poses. Continuous gentle breathing, small eye movements and responsive expressions throughout. No cuts, zoom, music, narrator, captions, extra people or invented objects. Only the active speaker moves their mouth. Do not pause to pose at the beginning or end.",
          "updated_at": "2026-09-19T01:36:06.544518+08:00",
          "first_frame_input": "generated/s04b_redo_v1/last.png"
        },
        {
          "order": "S04D",
          "id": "ep01_s04d_redo_20260919",
          "title": "S04D｜開蓋發現 Bobo，擊掌",
          "label": "S04D｜開蓋發現 Bobo，擊掌",
          "display_title": "S04D｜開蓋發現 Bobo，擊掌",
          "file": "generated/s04d_redo_v2/review.mp4",
          "video": "generated/s04d_redo_v2/review.mp4",
          "source_video": "generated/s04d_redo_v2/review.mp4",
          "frame0": "generated/s04d_redo_v2/first.png",
          "actual_frame0": "generated/s04d_redo_v2/first.png",
          "final_frame": "generated/s04d_redo_v2/last.png",
          "contact_sheet": "generated/s04d_redo_v2/contact.jpg",
          "status": "generated",
          "review_status": "pending_review",
          "review_label": "待確認",
          "review_note": "全新生成畫面，無定格補秒；沿用既有角色配音重新對齊。台詞與接點已核對，表演／嘴型待確認。",
          "note": "全新生成畫面，無定格補秒；沿用既有角色配音重新對齊。台詞與接點已核對，表演／嘴型待確認。",
          "provider": "ComfyUI / MiniMax H3",
          "quality": "1344 × 768 / 24 fps",
          "dialogue": [
            {
              "en": "Found it! High five!"
            }
          ],
          "prompt_en": "Crisp warm clay animation, same locked medium two-shot and exact starting frame. Mia in pink on the left and Leo in green on the right stand beside the blue box. Leo lifts the blue lid smoothly and rests it upright. Inside the box, mostly hidden behind its high front wall, is ONLY a plain round cream-beige fabric bump, the top of a stuffed toy's head. The visible bump is smooth beige cloth with three tiny soft beige fabric tufts. The toy's face, eyes, mouth and body remain completely BELOW the front rim and are NEVER visible. Nothing metallic, no crown, no hat, no human face, no other contents in the box. The toy stays totally still. Leo looks into the box and says exactly \"Found it! High five!\" in a clear warm young boy voice. Mia and Leo share one quick palm-to-palm high five above the box, then both lower their hands. Mia stays silent with lips closed. End with both mouths closed, hands down, lid open. The plain beige fabric bump remains low inside the box throughout, never rising. Brisk natural connected actions, no waiting or frozen poses, no extra dialogue or repeated words. Preserve color, lighting, child faces and clothing. No camera cut, zoom, text, subtitles, music or narrator.",
          "updated_at": "2026-09-19T01:36:06.544518+08:00",
          "first_frame_input": "generated/s04c_redo_v1/last.png"
        },
        {
          "order": "S04E",
          "id": "ep01_s04e_redo_20260919",
          "title": "S04E｜提醒小心・角色與聲線修正版",
          "label": "S04E｜提醒小心・角色與聲線修正版",
          "display_title": "S04E｜提醒小心・角色與聲線修正版",
          "file": "generated/s04e_identity_v1/review.mp4",
          "video": "generated/s04e_identity_v1/review.mp4",
          "source_video": "generated/s04e_identity_v1/review.mp4",
          "frame0": "generated/s04e_identity_v1/first.png",
          "actual_frame0": "generated/s04e_identity_v1/first.png",
          "final_frame": "generated/s04e_identity_v1/last.png",
          "contact_sheet": "generated/s04e_identity_v1/contact.jpg",
          "status": "generated",
          "review_status": "pending_review",
          "review_label": "待確認",
          "review_note": "依正式 Bobo 參考修正關鍵畫面，首尾幀約束接續。改用同集 S03 固定角色聲音參考重製配音；聲線與嘴型待聽看確認。",
          "note": "依正式 Bobo 參考修正關鍵畫面，首尾幀約束接續。改用同集 S03 固定角色聲音參考重製配音；聲線與嘴型待聽看確認。",
          "provider": "ComfyUI / MiniMax H3",
          "quality": "1344 × 768 / 24 fps",
          "dialogue": [
            {
              "en": "I'll take it out."
            },
            {
              "en": "Slow down. Be careful. It might break."
            }
          ],
          "prompt_en": "Sharp warm clay animation. Continuous first-to-last-keyframe shot with the exact same children and classroom. Leo, boy on RIGHT in green, promptly says \"I'll take it out.\" while reaching gently toward the open blue box. Mia, girl on LEFT in pink, responds immediately \"Slow down. Be careful. It might break.\" in one natural caring sentence while raising a small cautioning palm. Leo slows his reaching movement, briefly looks at her and listens with his mouth closed. Mia lowers her hand. Bobo stays INSIDE the box: only the soft rounded crown and three short fuzzy fabric tufts are visible above the rim. No eyes, body or limbs appear yet. Both finish with lips closed as in the ending keyframe. Keep the existing composition exactly, no camera movement. No waiting between lines. Only the active speaker moves their mouth. Natural English child dialogue at conversational speed, no music, narrator, additional words, text, fade or slow motion.",
          "updated_at": "2026-09-19T09:52:29.152366+08:00",
          "first_frame_input": "generated/s04d_redo_v2/last.png",
          "reference_images": [
            "images/reference/final_story_bobo/ep01_bobo_bobo_ref_20260822.png",
            "generated/s04e_identity_v1/identity_target.png"
          ],
          "voice_reference_source": "S03A current Mia/Leo takes"
        },
        {
          "order": "S04F",
          "id": "ep01_s04f_redo_20260919",
          "title": "S04F｜抱出 Bobo・正式參考外型修正版",
          "label": "S04F｜抱出 Bobo・正式參考外型修正版",
          "display_title": "S04F｜抱出 Bobo・正式參考外型修正版",
          "file": "generated/s04f_identity_v2/review.mp4",
          "video": "generated/s04f_identity_v2/review.mp4",
          "source_video": "generated/s04f_identity_v2/review.mp4",
          "frame0": "generated/s04f_identity_v2/first.png",
          "actual_frame0": "generated/s04f_identity_v2/first.png",
          "final_frame": "generated/s04f_identity_v2/last.png",
          "contact_sheet": "generated/s04f_identity_v2/contact.jpg",
          "status": "generated",
          "review_status": "pending_review",
          "review_label": "待確認",
          "review_note": "依正式 Bobo 參考修正關鍵畫面，首尾幀約束接續。改用同集 S03 固定角色聲音參考重製配音；聲線與嘴型待聽看確認。",
          "note": "依正式 Bobo 參考修正關鍵畫面，首尾幀約束接續。改用同集 S03 固定角色聲音參考重製配音；聲線與嘴型待聽看確認。",
          "provider": "ComfyUI / MiniMax H3",
          "quality": "1344 × 768 / 24 fps",
          "dialogue": [
            {
              "en": "Okay, I will take Bobo out slowly and carefully."
            }
          ],
          "prompt_en": "Sharp warm clay animation. Exact first-to-last keyframe scene, no camera movement or change of children. Leo on RIGHT in green answers immediately: \"Okay, I will take Bobo out slowly and carefully.\" As he speaks he reaches BOTH hands down into the blue box around the toy BODY and smoothly lifts Bobo, supporting it at both sides. The ENDING IMAGE defines the exact toy appearance and orientation for the ENTIRE lift. The back of its round beige head faces the CAMERA from the moment it rises; its face points toward Leo and is NEVER visible. Its plain fuzzy beige back has no face, no eyes or mouth. Maintain the same large round soft head, three short soft tufts, compact PLUMP belly, VERY SHORT oval feet, short rounded arms, thick wide red knitted scarf wrapped around the neck, and small CLOSED beige battery hatch. No thin ribbon bow or long legs. The scarf fringes and bell are on its hidden front and stay hidden. It is a passive stuffed toy moved only by Leo's hands. No self-movement or head turn. One smooth careful lift while speaking, arrive in the ending pose naturally. Mia on LEFT in pink watches quietly with lips closed. Only Leo speaks; his lips close after his single sentence. No music, narrator, extra words, text, zoom, slow motion or pose pauses.",
          "updated_at": "2026-09-19T09:52:29.152366+08:00",
          "first_frame_input": "generated/s04e_identity_v1/last.png",
          "reference_images": [
            "images/reference/final_story_bobo/ep01_bobo_bobo_ref_20260822.png",
            "generated/s04f_identity_v2/identity_target.png"
          ],
          "voice_reference_source": "S03A current Mia/Leo takes"
        }
      ]
    },
    {
      "at": "2026-09-19T12:50:35.207525+08:00",
      "reason": "S04F 角色一致性與 S05 五段逐段校色重製。",
      "shots": [
        {
          "order": "S04F",
          "id": "ep01_s04f_redo_20260919",
          "title": "S04F｜雙手托住・慢慢抱出 Bobo",
          "label": "S04F｜雙手托住・慢慢抱出 Bobo",
          "display_title": "S04F｜雙手托住・慢慢抱出 Bobo",
          "file": "generated/s04f_color_v2/review.mp4",
          "video": "generated/s04f_color_v2/review.mp4",
          "source_video": "generated/s04f_color_v2/review.mp4",
          "frame0": "generated/s04f_color_v2/first.png",
          "actual_frame0": "generated/s04f_color_v2/first.png",
          "final_frame": "generated/s04f_color_v2/last.png",
          "contact_sheet": "generated/s04f_color_v2/contact.jpg",
          "status": "generated",
          "review_status": "pending_review",
          "review_label": "待確認",
          "review_note": "本段已重新生成，整段以 S04A 同一背景基準校正亮度與色偏，再取校正後尾幀接續；固定 S03 角色聲音參考。Leo 邊回應邊以雙手托住 Bobo 底部與身體，慢慢抱出；Bobo 全程被動，背向鏡頭，只隨雙手移動。 成片待確認。",
          "note": "本段已重新生成，整段以 S04A 同一背景基準校正亮度與色偏，再取校正後尾幀接續；固定 S03 角色聲音參考。Leo 邊回應邊以雙手托住 Bobo 底部與身體，慢慢抱出；Bobo 全程被動，背向鏡頭，只隨雙手移動。 成片待確認。",
          "provider": "ComfyUI / MiniMax H3",
          "quality": "1344 × 768 / 24 fps",
          "dialogue": [
            {
              "en": "Okay, I will take Bobo out slowly and carefully."
            }
          ],
          "prompt_en": "Single continuous locked-camera 3D animated classroom shot, same medium framing as first frame, no cut, no zoom, no camera motion. Mia pink LEFT, Leo teal green RIGHT. Exact original neutral warm daylight and stable beige walls, blue box, pink and teal sweaters. No progressive orange tint or exposure change. Natural gentle movement, no long pauses. NO MUSIC, clean English dialogue, no extra words. Leo says \"Okay, I will take Bobo out slowly and carefully.\" He gradually lifts the small completely UNPOWERED stuffed robot Bobo up from deep below box rim, supporting it with BOTH hands at base and torso at every moment. The toy does not float, jump or move its own limbs. It only moves as a rigid passive plush prop carried by Leo's hands. Its BACK faces the camera the entire time, face toward Leo; no toy eyes, mouth or face ever seen, no autonomous head turns. Its short floppy arms rest naturally downward, no waving. Match last frame toy design: beige fuzzy round broad head, three short rounded tufts, thick RED KNITTED scarf, plump compact rounded pear body, tiny stubby feet. It is small enough to fit fully in box. Leo raises it to lower chest and settles hands gently without a long freeze. Mia listens with closed mouth and lowers her hand. Box/lid/cutter/checklist are stationary. No zoom. Only Leo's mouth speaks, not Mia or toy.",
          "updated_at": "2026-09-19T11:03:24.847924+08:00",
          "first_frame_input": "generated/s04e_color_v2/last.png",
          "reference_images": [
            "generated/s04a_redo_v1/last.png",
            "generated/s04f_color_v2/identity_target.png",
            "images/reference/final_story_bobo/ep01_bobo_bobo_ref_20260822.png"
          ],
          "voice_reference_source": "S03 Mia/Leo fixed F5-TTS references",
          "duration_seconds": 5.166667,
          "prompt_zh_tw": "Leo 邊回應邊以雙手托住 Bobo 底部與身體，慢慢抱出；Bobo 全程被動，背向鏡頭，只隨雙手移動。",
          "qa": {
            "dialogue_exact": true,
            "audio_timing": {
              "start_time": 0.0,
              "decoded_duration": 5.184,
              "video_duration": 5.166667,
              "valid": true
            },
            "color_reference": "S04A",
            "color_error_before": 4.2087227414330215,
            "color_error_after": 0.9148494288681205,
            "color_encoding": "BT.709",
            "voice_method": "Fixed S03 character references, F5-TTS"
          }
        },
        {
          "order": "S05A",
          "id": "ep01_s05a_redo_20260919",
          "title": "S05A｜檢查 Bobo，發現空電池槽",
          "label": "S05A｜檢查 Bobo，發現空電池槽",
          "display_title": "S05A｜檢查 Bobo，發現空電池槽",
          "file": "generated/s05a_redo_v2/review.mp4",
          "video": "generated/s05a_redo_v2/review.mp4",
          "source_video": "generated/s05a_redo_v2/review.mp4",
          "frame0": "generated/s05a_redo_v2/first.png",
          "actual_frame0": "generated/s05a_redo_v2/first.png",
          "final_frame": "generated/s05a_redo_v2/last.png",
          "contact_sheet": "generated/s05a_redo_v2/contact.jpg",
          "status": "generated",
          "review_status": "pending_review",
          "review_label": "待確認",
          "review_note": "全新生成畫面，無定格補秒；沿用既有角色配音重新對齊。台詞與接點已核對，表演／嘴型待確認。",
          "note": "全新生成畫面，無定格補秒；沿用既有角色配音重新對齊。台詞與接點已核對，表演／嘴型待確認。",
          "provider": "ComfyUI / MiniMax H3",
          "quality": "1344 × 768 / 24 fps",
          "dialogue": [
            {
              "speaker": "Leo",
              "en": "Let's check Bobo."
            },
            {
              "speaker": "Leo",
              "en": "Bobo has no battery."
            }
          ],
          "prompt_en": "Warm crisp clay animation, exactly this first frame. Maintain a steady medium two-shot WIDE ENOUGH TO SHOW BOTH CHILDREN'S COMPLETE FACES, THEIR HANDS, BOBO AND THE BATTERY ON THE TABLE THROUGHOUT. Leo in green sits LEFT, Mia in pink sits RIGHT. Leo supports Bobo, a passive beige plush with red scarf, with its BACK facing the camera for the ENTIRE shot. Do not turn Bobo around; its face remains invisible. One continuous natural checking action: Leo immediately says \"Let's check Bobo.\" in a warm young boy voice while pressing the small black power switch on the toy's back once. The toy has NO RESPONSE. Still supporting it, Leo uses his free hand to open the small rectangular battery hatch below the switch. The cover hinges downward, showing one EMPTY dark cylindrical battery slot above the hanging cover. Leo notices the empty slot and naturally says \"Bobo has no battery.\" without a long pause. End with the hatch open and the slot empty, Bobo still BACK TO CAMERA, Leo supporting it with one hand and his free hand just below the open hatch. The single gold-and-black battery remains on the tabletop in front of Mia. Mia quietly watches, closed lips. Bobo is an inert stuffed object with no independent motion at all. Smooth connected action with gentle breathing and blinking only from the children. Same framing and lighting from beginning to end; no zoom or camera movement, no text, subtitles, music, narrator, extra dialogue, extra battery or invented objects.",
          "updated_at": "2026-09-19T01:36:06.544518+08:00",
          "prompt_zh_tw": "檢查桌新鏡位：Bobo 背面朝向鏡頭、電池蓋關閉。Leo 先試開關沒有反應，隨即打開背蓋看見空電池槽；桌上的唯一電池仍在 Mia 面前。",
          "replaces": [
            "S05A",
            "S05B"
          ]
        },
        {
          "order": "S05B",
          "id": "ep01_s05b_redo_20260919",
          "title": "S05B｜找到電池，直接遞給 Leo",
          "label": "S05B｜找到電池，直接遞給 Leo",
          "display_title": "S05B｜找到電池，直接遞給 Leo",
          "file": "generated/s05b_redo_v1/review.mp4",
          "video": "generated/s05b_redo_v1/review.mp4",
          "source_video": "generated/s05b_redo_v1/review.mp4",
          "frame0": "generated/s05b_redo_v1/first.png",
          "actual_frame0": "generated/s05b_redo_v1/first.png",
          "final_frame": "generated/s05b_redo_v1/last.png",
          "contact_sheet": "generated/s05b_redo_v1/contact.jpg",
          "status": "generated",
          "review_status": "pending_review",
          "review_label": "待確認",
          "review_note": "全新生成畫面，無定格補秒；沿用既有角色配音重新對齊。台詞與接點已核對，表演／嘴型待確認。",
          "note": "全新生成畫面，無定格補秒；沿用既有角色配音重新對齊。台詞與接點已核對，表演／嘴型待確認。",
          "provider": "ComfyUI / MiniMax H3",
          "quality": "1344 × 768 / 24 fps",
          "dialogue": [
            {
              "speaker": "Mia",
              "en": "I have a battery."
            },
            {
              "speaker": "Leo",
              "en": "Pass it here."
            }
          ],
          "prompt_en": "Crisp warm clay animation. Use this exact first frame and keep the same camera, characters, colors, lighting, clothing, toy and classroom table. Locked medium two-shot. Mia, the girl in pink on the RIGHT, picks up the single small gold-and-black battery from the table in front of her and says \"I have a battery.\" in a clear young girl voice. Leo, the boy in green on the LEFT, looks at her and promptly replies \"Pass it here.\" in a warm young boy voice while extending his free hand. Mia naturally places that SAME single battery directly into Leo's waiting hand. She releases it and withdraws her hand. End with Leo holding one battery outside Bobo, ready to insert it. Bobo remains supported by Leo's other hand with its back to the camera, its battery cover open and its SINGLE slot EMPTY throughout. Do not insert the battery yet. No duplicate battery or second battery on table. Each speaker's lips move only during their own line, with natural eye contact and small responses, no posed pauses. Continuous natural movement, breathing and blinking. No cut, zoom, slow motion, music, narrator, subtitles, readable text, added objects or extra dialogue.",
          "updated_at": "2026-09-19T01:36:06.544518+08:00",
          "first_frame_input": "generated/s05a_redo_v2/last.png",
          "prompt_zh_tw": "Mia 拿起桌上唯一電池，Leo 回應時伸出空手，Mia 順勢遞過去；不先各自定格等台詞。Bobo 電池槽保持打開且為空。",
          "replaces": [
            "S05C",
            "S05D"
          ]
        },
        {
          "order": "S05C",
          "id": "ep01_s05c_redo_20260919",
          "title": "S05C｜裝入電池並關好背蓋",
          "label": "S05C｜裝入電池並關好背蓋",
          "display_title": "S05C｜裝入電池並關好背蓋",
          "file": "generated/s05c_redo_v1/review.mp4",
          "video": "generated/s05c_redo_v1/review.mp4",
          "source_video": "generated/s05c_redo_v1/review.mp4",
          "frame0": "generated/s05c_redo_v1/first.png",
          "actual_frame0": "generated/s05c_redo_v1/first.png",
          "final_frame": "generated/s05c_redo_v1/last.png",
          "contact_sheet": "generated/s05c_redo_v1/contact.jpg",
          "status": "generated",
          "review_status": "pending_review",
          "review_label": "待確認",
          "review_note": "全新生成連續動作；此段為無台詞的裝電池及關蓋過程，待確認。",
          "note": "全新生成連續動作；此段為無台詞的裝電池及關蓋過程，待確認。",
          "provider": "ComfyUI / MiniMax H3",
          "quality": "1344 × 768 / 24 fps",
          "dialogue": [],
          "prompt_en": "Crisp warm clay animation. Use this exact first frame and keep the same camera, characters, colors, lighting, clothing, toy and classroom table. Locked medium two-shot. Silent continuous close physical action, both children keep their lips closed. Leo, the boy in green on the LEFT, supports the passive beige plush Bobo with one hand, back toward camera. With the other hand he brings the SINGLE small battery he is holding to the open empty battery slot on Bobo's back, aligns it lengthwise, presses it fully into the slot, then closes the rectangular cover flush. This is one fluid deliberate sequence: approach, insert, close cover. Show the battery briefly seated in the slot before closing. Only one battery; no battery remains outside. Mia in pink on the RIGHT watches his hands with a small encouraging smile. End with the cover fully closed, Bobo still facing away. No switch press or activation yet. Bobo stays completely inanimate, no movement except from Leo's hands. No talking, muttering, vocalization or dialogue. Do not add pauses between actions. Continuous natural movement, breathing and blinking. No cut, zoom, slow motion, music, narrator, subtitles, readable text, added objects or extra dialogue.",
          "updated_at": "2026-09-19T01:36:06.544518+08:00",
          "first_frame_input": "generated/s05b_redo_v1/last.png",
          "prompt_zh_tw": "Leo 將電池放入空槽並按牢，再關妥電池蓋。動作連續、短而清楚；不等待、不啟動 Bobo。",
          "replaces": [
            "S05E"
          ]
        },
        {
          "order": "S05D",
          "id": "ep01_s05d_redo_20260919",
          "title": "S05D｜準備好，啟動 Bobo",
          "label": "S05D｜準備好，啟動 Bobo",
          "display_title": "S05D｜準備好，啟動 Bobo",
          "file": "generated/s05d_redo_v1/review.mp4",
          "video": "generated/s05d_redo_v1/review.mp4",
          "source_video": "generated/s05d_redo_v1/review.mp4",
          "frame0": "generated/s05d_redo_v1/first.png",
          "actual_frame0": "generated/s05d_redo_v1/first.png",
          "final_frame": "generated/s05d_redo_v1/last.png",
          "contact_sheet": "generated/s05d_redo_v1/contact.jpg",
          "status": "generated",
          "review_status": "pending_review",
          "review_label": "待確認",
          "review_note": "全新生成畫面，無定格補秒；沿用既有角色配音重新對齊。台詞與接點已核對，表演／嘴型待確認。",
          "note": "全新生成畫面，無定格補秒；沿用既有角色配音重新對齊。台詞與接點已核對，表演／嘴型待確認。",
          "provider": "ComfyUI / MiniMax H3",
          "quality": "1344 × 768 / 24 fps",
          "dialogue": [
            {
              "speaker": "Leo",
              "en": "Ready? Go!"
            }
          ],
          "prompt_en": "Crisp warm clay animation. Use this exact first frame and keep the same camera, characters, colors, lighting, clothing, toy and classroom table. Locked medium two-shot. Leo, the boy in green on the LEFT, smoothly turns the passive beige plush Bobo to face the camera and sets its feet firmly on the table between the children. Bobo has black button eyes, a stitched smile, three small beige tufts and a red scarf with a gold bell. In a clear warm young boy voice Leo says \"Ready? Go!\" As he says \"Go!\", he reaches one hand around Bobo's side to press the small power switch on its back while his other hand steadies its body. Only AFTER pressing the switch Bobo begins a tiny gentle motorized side-to-side sway with its feet remaining on the table. Bobo is a battery toy, never speaking or changing its stitched face. Mia in pink on the RIGHT watches with closed lips. End with Bobo upright on the table. Keep actions brisk and natural, no waiting pose. Continuous natural movement, breathing and blinking. No cut, zoom, slow motion, music, narrator, subtitles, readable text, added objects or extra dialogue.",
          "updated_at": "2026-09-19T01:36:06.544518+08:00",
          "first_frame_input": "generated/s05c_redo_v1/last.png",
          "prompt_zh_tw": "Leo 將 Bobo 正面朝向鏡頭穩穩放在桌上，說 Go 時按背面開關，玩偶開始小幅機械擺動。",
          "replaces": [
            "S05F"
          ]
        },
        {
          "order": "S05E",
          "id": "ep01_s05e_redo_20260919",
          "title": "S05E｜成功後自然互相回應",
          "label": "S05E｜成功後自然互相回應",
          "display_title": "S05E｜成功後自然互相回應",
          "file": "generated/s05e_redo_v1/review.mp4",
          "video": "generated/s05e_redo_v1/review.mp4",
          "source_video": "generated/s05e_redo_v1/review.mp4",
          "frame0": "generated/s05e_redo_v1/first.png",
          "actual_frame0": "generated/s05e_redo_v1/first.png",
          "final_frame": "generated/s05e_redo_v1/last.png",
          "contact_sheet": "generated/s05e_redo_v1/contact.jpg",
          "status": "generated",
          "review_status": "pending_review",
          "review_label": "待確認",
          "review_note": "全新生成畫面，無定格補秒；沿用既有角色配音重新對齊。台詞與接點已核對，表演／嘴型待確認。",
          "note": "全新生成畫面，無定格補秒；沿用既有角色配音重新對齊。台詞與接點已核對，表演／嘴型待確認。",
          "provider": "ComfyUI / MiniMax H3",
          "quality": "1344 × 768 / 24 fps",
          "dialogue": [
            {
              "speaker": "Leo",
              "en": "It works!"
            },
            {
              "speaker": "Mia",
              "en": "Good job!"
            }
          ],
          "prompt_en": "Crisp warm clay animation. Use this exact first frame and keep the same camera, characters, colors, lighting, clothing, toy and classroom table. Locked medium two-shot. Bobo, the small beige plush battery toy with red scarf between the children, continues a tiny gentle motorized sway while its feet stay planted on the table. Leo, the boy in green on the LEFT, sees it working and immediately says \"It works!\" in a delighted warm young boy voice, then turns to Mia. Mia, the girl in pink on the RIGHT, naturally smiles back and replies \"Good job!\" in a clear warm young girl voice. They look back at Bobo together. Only the active speaker moves their mouth. Bobo's button eyes and stitched smile never change; it never speaks or hops. Natural brief conversational response, small expressive gestures, no stiff holding or extended empty ending. Continuous natural movement, breathing and blinking. No cut, zoom, slow motion, music, narrator, subtitles, readable text, added objects or extra dialogue.",
          "updated_at": "2026-09-19T01:36:06.544518+08:00",
          "first_frame_input": "generated/s05d_redo_v1/last.png",
          "prompt_zh_tw": "Leo 看見 Bobo 運作便笑著說 It works，Mia 接著回應 Good job；兩人一起看著桌上小幅擺動的玩偶，自然收尾。",
          "replaces": [
            "S05G",
            "S05H"
          ]
        }
      ]
    }
  ],
  "review_history": [
    {
      "at": "2026-09-19T13:45:05.071048+08:00",
      "scope": "Currently published EP01 story clips S01–S05, five scene assemblies and full 85-second story; approval is bound to these video hashes.",
      "user_message": "我審核過了，目前更新上去的都可以用了",
      "record_file": "current_story_approval.json"
    }
  ],
  "current_focus": "完整高畫質成片已完成；請播放「完整成片」確認短句接故事的整體節奏。",
  "latest_teaching_preview": "generated/phrases_p01_p15_20260921_v1/review.mp4"
}