H3 Video:AI 短劇全流程
這套流程來自幾部真實片子的返工經驗。核心思路:先規劃,每個關卡讓人確認,錯了只修出錯的那一層。
總流程(按順序,不跳步)
| 步 | 做什麼 | 關卡 |
|---|---|---|
| 0 | 研究:先看同類優秀作品和別人的做法,記下手法 | — |
| 1 | 寫規劃:基調與風格、台詞表、分段、生成清單(模板見 templates/規劃模板.md) | 用戶確認規劃 |
| 2 | 配音:旁白和畫外音用 TTS 單獨出,量真實時長 | 用戶試聽確認音色 |
| 3 | 角色母版:每人一張正面全身圖,在故事的世界裡拍 | 用戶確認母版 |
| 4 | 首幀:每段一張,只到動作剛開始 | 用戶確認首幀前不准生成影片 |
| 5 | 生成:先用最快設定出草稿 | — |
| 6 | 逐句說話人檢查、視線檢查、接縫檢查 | 錯了只重做那一段 |
| 7 | 放大、字幕、響度、封面 | 用戶驗收 |
| 8 | 復盤:對照規劃裡的「要驗證的做法」逐條打分,把教訓寫進知識庫 | — |
七條硬規則
- 風格服從故事基調。 動手畫任何東西前,先寫「基調與風格」一節:光源和暗度、色調、衣物新舊髒污、表情、背景氛圍。母版也在這個世界裡拍,不用攝影棚灰背景。每張圖先問「它屬於這個故事嗎」,再看細節。黑暗故事配乾淨漂亮的偶像臉,是最常見的翻車。
- 一次生成只有一個發聲來源。 旁白、畫外音絕不進 H3,否則畫面裡的人會對著旁白對口型,提示詞裡寫「閉嘴」也壓不住。旁白段生成無台詞影片,聲音後期疊上。
- 在場但不說話的角色: 生成時不給台詞;說話人需要藏起來時拍背影或過肩。
- 台詞表是唯一來源。 每句記類型(對白/畫外音)、說話人、看向誰、原文。按約 3 字/秒預算,每句在本段內說完。後續步驟不准改台詞。
- 視線: 說話人看聽者,聽者看說話人。提示詞裡每句都寫清楚誰看誰。
- 首幀有錯就重做首幀, 不靠提示詞補救。檢查要放大到原圖解析度看手、眼、嘴、飾品、多餘物體。
- 逐句說話人檢查不過不交付。 每句台詞的時間段抽密集幀網格(
scripts/speaker_grid.py),只回答一個封閉題:「誰的嘴在動:A / B / 都動 / 都不動」,再和台詞表對。稀疏抽 4 幀會漏。
生成與返工的原則
- 先草稿再放大: 用最快能看的解析度出片,確認後只放大通過的版本。
- 失敗先歸因: 判斷問題出在提示詞、首幀、腳本還是後期,再決定改哪一層。多段同錯修共享參考(母版),單段錯只修本段,一次只改一項。
- 提示詞寫正向描述, 不堆「不要……」。想避免的東西回到輸入(首幀、母版)去修。
- 記錄每段用的首幀、母版、種子、提示詞, 方便只重做一段。
- 片頭 2 秒測試: 只看前 2 秒,觀眾要知道在看什麼。
參考資料
references/流程細節與教訓.md:每一步的具體做法和踩過的坑。references/ComfyUI節點與參數.md:Qwen-Image 出母版、Qwen-Image-Edit 改圖、VoxCPM2 克隆配音、H3 Ref2VA 的節點和參數,以及已知故障的解決辦法。references/開源流水線調研.md:9 個開源 AI 影片項目的做法對比,哪些值得搬、哪些不搬。templates/規劃模板.md:規劃文檔模板,含台詞表和驗證表。
腳本
全部腳本通過環境變數 COMFY_URL 連 ComfyUI(預設 http://127.0.0.1:8188)。用法見 scripts/README.md。
| 腳本 | 作用 |
|---|---|
t2i_masters.py | Qwen-Image 批量出角色母版(風格前綴 + 每人描述) |
edit_image.py | Qwen-Image-Edit 局部改圖,其餘保持不變 |
voice_design.py | VoxCPM2 按文字描述設計角色聲音,每人出 A/B 兩條試聽 |
tts_clone.py | VoxCPM2 用一段參考音克隆音色,批量出旁白 |
h3_ref2va.py | 組裝並提交 H3 Ref2VA 工作流(參考圖、參考音、首幀錨定) |
wait_download.py | 等任務結束並下載全部輸出 |
ws_progress.py | 看任務進度(必須用提交時的 client_id) |
asr.py | faster-whisper 轉寫,核對配音一字不差 |
speaker_grid.py | 按台詞表逐句出密集幀網格,做說話人檢查 |
upscale_video.py | RealESRGAN 逐幀放大影片 |
post_subtitle_loud.py | 燒字幕 + 兩遍 loudnorm 到 -14 LUFS |
make_cover.py | 出 3:4 和 9:16 兩版封面 |