h3-storyboard について
h3-storyboardは、MiniMax H3による動画生成のショットと演技を計画する中国語の演出ガイドです。構図、ショット構成、動作、プロンプトの書き方について、実測に基づく知見を示します。
主な機能
- 01観客に与える印象を決めてから構図を選択
- 02表情の演技を短く焦点の定まったショットに分割
- 03表情や人物の特徴を支えるフレーミング
- 04動作する身体部位を主語にして記述
- 05形状と比率の指定に参照画像を活用
- 06接触や液体表現におけるモデルの限界を考慮
活用シーン
- 01人物の感情表現に向けたショット計画
- 02短い表情の節目に沿ったH3プロンプトの構成
- 03見える人物の特徴を保つフレーミング
- 04不確実な接触動作を避けた物体のやり取りの演出
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ phileiny/ h3-storyboard-skill --skill h3-storyboardインストール後、Claude Code で/h3-storyboardを入力して読み込まれたか確認します。
同梱ファイルSOURCES.md
詳細
プロジェクトの README よりH3 分鏡與表演
minimax-h3 那份 skill 教你怎麼把已經想好的東西寫成 H3 格式。
這份教你怎麼想——劇本怎麼拆成鏡頭、情緒怎麼變成模型演得出來的動作。
官方和社群的 skill 都停在翻譯層,沒有人做這段(instann/minimax-h3-director
把「自動拆鏡」列在 roadmap,還沒做)。下面全部是實拍歸納出來的,
每一條都標了驗證狀態。
零之二、⭐⭐⭐ 寫每一顆之前:先問【這顆要呈現什麼】,再決定構圖,最後才寫內容
構圖不是「內容寫完之後順手決定的東西」。它是第一個決定,因為它決定了其他東西演不演得出來。
✗ 常見的寫法(也是最容易失敗的)
內容 → 表演 → 對白 → ……最後順手填一個景別
結果:景別永遠是最中性的那個(置中、平視、正面),
而中性構圖 = 訪談感、證件照感 —— 它不會傳達任何情緒強度
✅ 正確的順序
① 這一顆在戲裡要達成什麼?(一句話,用觀眾的感受寫,不是用動作寫)
「讓人覺得這是他這輩子最高的一刻」而不是「他抬頭看大家」
② 什麼構圖能達成它? ← 機位高度、景別、人在畫面裡的位置、前景、視線方向
③ 然後才寫表演、光、對白、道具
為什麼這個順序不能顛倒
表演 臉佔畫面 1/7 時,「下眼瞼微抬」無處可畫 → 先有景別,表情才有地方發生
特徵 體格、骨相在遠景會被抹平 → 先有景別,幾何描述才守得住
情緒 「高光時刻」「被排除在外」「他一個人」這些都是【構圖講的】,不是表情講的:
仰角=主導 俯角=被壓 置中=中性 偏置+前方留空=有去向
前景有人=被包圍 背景空曠=孤立
光 先知道機位在哪,才知道光從哪來;反過來寫一定會打架
⭐ 一句話:先決定觀眾要「感覺到什麼」,再決定他們「從哪裡看」,最後才決定畫面裡「發生什麼」。
⚠️ 檢查的方法也要跟著改:驗收一顆鏡頭時,先問「它有沒有達成它在戲裡的目的」, 再問「它有沒有照分鏡拍出來」。後者是檢查表,前者才是導演。 一顆可以完全照分鏡拍出來,而完全沒有達成目的 —— 那時要改的是構圖,不是提示詞的細節。
一、🔴 第一定律:一顆鏡頭裝不下太多節拍
在一顆鏡頭裡塞太多表情節拍,模型會往「平均運動」收斂,把它們全部抹平。 寫了睜眼、揚眉、咬下唇,畫面上什麼都沒發生——而且不會有任何報錯。
三個版本的對照實驗,同一顆震驚戲、同一顆 seed、同樣的臉部節拍:
| 鏡頭結構 | 對白 | 情緒峰值的 PSNR | 結果 | |
|---|---|---|---|---|
| A | 一顆 7 秒特寫,9 個節拍 | 無 | 37–42 dB | 臉完全沒動 |
| B | 拆成三顆 2–3 秒,各一個主節拍 | 無 | 22–23 dB | 表情全部到位 |
| C | 同 B | 加 <d> | 19 dB | 表演幅度再大一些 |
(PSNR 越低表示畫面變化越大。42 dB 等於凍結幀。)
A → B 是主因:拆鏡頭。 從 40 掉到 23,絕大部分的效果在這一步。 B → C 是加成:對白。 從 23 再到 19,有幫助但不是機制。
所以怎麼做
① 先數節拍。 一顆鏡頭超過兩三個表情節拍就要拆。
② 拆成 2–3 秒的短鏡頭,每顆一個主節拍。
③ 有台詞就寫進去(見下),沒有也能成立。
切鏡本身就是表演——觀眾在切點會自動重新讀取角色狀態, 所以拆開不只是為了讓模型執行得到,也是為了讓觀眾看得到。
驗證:2026-08-26,Ref2VA 243 幀,三版對照,seed 固定。 這是隔離過的:A→B 只改鏡頭結構,B→C 只改一句台詞。
旁證:B 站有支純本地實測是「統一首幀 · 10 種情緒 · 一支 6 秒一種情緒」, 同一個結論——一支只裝一種情緒。
⚠️ 這條管的是【臉】—— 大肢體動作的節拍密度上限高很多(2026-10-03,武俠測試)
徒手武打,雙人中遠景(兩人從頭到鞋入鏡)、107 幀、無剪點
一顆約 3 秒寫了 8–9 拍:直拳 → 閃 → 低踢 → 抬腿避 → 再一拳 → 格擋 → 側踢 → 被踢退三步 → 逼近
→ 4 份提示詞 × 2 seed,8 顆都照順序打出來,真速度、不是慢動作;動態量在整段動作期間一直維持高檔
⭐ 被平均掉的是【表情】那種小幅度、要像素才畫得出來的節拍;拳腳、重心轉移、被打退這類全身位移不會。 → 拆武打戲時不要套「兩三拍就拆」—— 一顆 3 秒塞滿招式是可行的,拆鏡的理由改成【換角度】而不是【節拍太多】。 ⚠️ partly:一個專案、一場戲、每份提示詞 2 seed;接觸(拳腳真的打到)沒有逐格驗。
<d> 的角色:它偷時間
有台詞的鏡頭表演幅度更大,但機制不是「對白讓臉會動」—— 是 H3 把整支影片的時間重新分配,多給了有台詞的那一鏡。
同一支 243 幀的四鏡影片,只差一句 VO 對白(其餘完全相同:同 seed、
同參考圖、同 ref_image_size=max):
Shot 1 Shot 2 Shot 3(有台詞) Shot 4
提示詞規格 77 幀 48 幀 74 幀 44 幀
無台詞 89 43 55 ❌ 56
有台詞 88 29 84 42
無台詞版把情緒峰值那鏡壓縮到 55 幀,比規格少了 19 幀,演到一半就切走。 有台詞版給了 84 幀,臉部最大變化 28.5 dB(無台詞 30.2 dB)。
代價在別的鏡頭身上。 Shot 4 被壓到 42 幀之後:
無台詞:配角在落地窗外還在走動,陽台雨遮、欄杆都保留
有台詞:配角完全不存在,落地窗退化成一扇普通窗戶
Shot 1 建立的場景元素,有台詞版沒有延續到 Shot 4。
所以:
- 要表演的鏡頭 → 寫台詞(內心獨白也算,寫成旁白版)
- 要背景延續性的鏡頭 → 不要跟台詞放在同一支影片裡,或者兩版都跑再剪
內心獨白的寫法:
the young woman, in a small unsteady voice that catches once partway through (S1),
says in an off-screen voiceover: <d>[Chinese]……</d>
while her lips remain completely closed.
情緒寫在 delivery 欄位,不是寫在 <d> 裡面。
官方規格:識別語、ID、動作、delivery 都在 <d> 外面,<d> 內只放語言標籤和逐字台詞。
但不要為了表演硬塞台詞。 設計上就不說話的角色(在聽、在迴避、在生悶氣), 拆短鏡頭就夠了——B 組證明沒有台詞一樣演得出來。
⚠️ 背景垮掉這條的信心度低一階:兩支有台詞版都掉了配角,無台詞版只有一支。 方向一致但 n 太小,不排除是生成變異。
⚠️ 官方無此記載。MiniMax 的 H3 提示詞指南(base/ref 兩份)完全沒有表情章節。 網路上「H3 擅長微表情」講的多半是 Hailuo 02/2.3——託管 API 的不同模型, 而且託管版前面掛了提示詞改寫器,開源權重這條路沒有。
沉默的角色
沒有台詞的角色,臉部節拍照樣可以寫(B 組驗證過),但大肢體更保險:
| 臉部(風險較高) | 大肢體(很穩) |
|---|---|
| 咬肌鼓起一次 | 鼻子長長呼氣,肩膀跟著落下 |
| 眨眼、視線落到地板 | 手抹過褲子 → 抓住後頸 → 頭往前垂 |
| 上眼瞼全開 | 頭往後退三公分 |
| 下唇往內收 | 握著的東西鬆開、往下傾斜 |
locomotion(坐起、站立、走向某處)幾乎沒失敗過,是最可靠的一類。
二、⛔ 不要寫「什麼都不變」
❌ From 00:04.800 to 00:05.300 nothing about her changes:
her eyes stay where they are, her mouth stays where it is, her head does not move.
這是很強的「不要動」指令,會外溢到整顆鏡頭——結果是該動的地方也不動了。
那個「還沒反應過來」的空檔要留,但變成剪接點:
Shot A 收在「動作停止」
── 剪接點 ── ← 停頓在這裡,後製定格要多久有多久
Shot B 從「反應開始」
停頓是剪接的活,不是生成的活。 交給後製 100% 可控。
⚠️ 這條未隔離:寫了那句的版本同時也有「九個節拍擠一鏡」的問題(見 §一), 兩個變因沒有分開測。所以「不要寫」是安全的做法,但它是不是主因還不確定。 反正停頓交給剪接本來就更可控,沒有理由冒這個險。
⭐ 但要分清楚三種「不動」,它們的規則不一樣
物件的不動 ✅ 要寫,而且寫成【正面狀態】
「筆保持與桌面接觸,筆與資料夾的距離從第一格到最後一格都一樣」
(寫「筆不要動」沒用 —— H3 沒有否定通道)
人的不動 ⚠️ 不要寫成「什麼都不變」(本節),改成寫【他在做的小事】:
呼吸、眨眼、重心微沉(見 §六之二③)
攝影機的不動 ⚠️ 只需要一句 static, on a tripod, with no camera movement whatsoever
🛑 多寫會【反過來】:我為了確保硬切,加寫了 no push in/no zoom/
no dissolve/no intermediate framing,結果剪點連兩次漂到 3.5 秒以後
(見 §七之二③)
⭐ 判準:描述「畫面裡有什麼」可以寫細;描述「拍法」只能寫一句。
一之二、要外掛真人配音的話,台詞長度是硬約束
H3 自己配音時,它會自己講快一點把台詞塞進去。
一旦你打算丟掉它的音軌換成真人實錄,時間就變成硬約束了——
真人的語速你改不動(atempo 壓超過 5% 就聽得出來)。
先量你的配音員的語速。方法:拿一集已完成的字幕,總字數 ÷ 總秒數。 (本專案的配音員是 4.30 字/秒,含句內停頓。)
台詞字數 ÷ 語速 = 需要的秒數,拿去跟「台詞所在那一鏡的長度」比。
⚠️ 這條只適用於「嘴要對上」的台詞。旁白(VO)鏡頭不受它約束 —— 嘴全程閉著的鏡頭,配音是後製疊上去的,畫面長度該由畫面本身決定。 我在一顆 VO 鏡頭上踩過這個坑:為了讓某張臉「撐滿旁白的 3.2 秒」, 多給了 1.4 秒一個人幾乎不動的畫面 —— 導演選了 1.8 秒那一版(見 §六之二⑤)。 一張臉要被讀懂只需要 1.5–2 秒;旁白長度不是理由。
⚠️ 不是跟「到下一拍的距離」比。實拍證實:台詞標在 3.400、下一拍在 4.000, 但嘴巴從 2.17s 就開始動、一路動到影片結束的 5.12s。 H3 把整個鏡頭都當成那個人在講話,不會在下一拍收嘴。
所以真正會出事的是這個
同一鏡裡放了跟講話衝突的拍子:
❌ At 00:03.200 台詞開始
At 00:04.600 she finishes speaking ← 逼 H3 在這裡收嘴
At 00:05.200 眨眼
At 00:05.800 吞嚥 ← 不可能發生在句子中間
講完話之後的拍子,放到下一鏡去。 那一鏡從頭到尾只有「他在講話」,嘴型就會鋪滿整鏡,時間自然夠。
畫外音(VO)不受限——後製要多長就多長,可以跨鏡頭甚至跨影片。
二之一、⛔ 不要拍碰撞,也不要拍液體的量
H3 做不到接觸驅動的因果,也守不住液體的體積。實拍證據: 要它拍「手撞倒咖啡杯、咖啡漫開淹到桌上的小物件」,結果是——
手全程沒碰到杯子 杯子懸空自己轉倒,沒有任何一幀是接觸的
咖啡量超過一杯 兩秒鋪滿大半張桌子,倒完了還在繼續流
液體不像液體 邊緣是硬的扇貝狀,像貼紙,不順著木紋流
關鍵拍沒發生 液體從頭到尾沒碰到那個小物件
把提示詞寫細沒有用——它不是沒讀懂,是做不到。
解法:不拍那一刻
Shot 1 手臂從畫面邊緣掃過鏡頭,貼近到蓋滿整個畫面
Shot 2 切 —— 事情已經發生了,杯子倒著,水漬已經漫開並且停住
H3 只要「延續一個已經存在的狀態」,不用「發動一次碰撞」
撞擊聲掛音軌,觀眾自己補因果
手臂掃過鏡頭本身就是天然的切點,而且那是 locomotion——最可靠的一類。
液體的量要寫死界線
✅ spread about as far as the width of a hand and no further, its leading edge
a few centimetres short of the base
❌ runs out across the wood in a widening dark sheet
「widening」「spreading」這類詞沒有終點,H3 就會一直長大。 跟尺寸那條同一個道理:講可觀察的界線,不要講抽象的過程。
物件「被切成兩半」也拍不好 —— 拍光一閃+物件離開(2026-09-26,武俠測試)
同一個家族:一個完整的物件在鏡頭前分裂,H3 做不出來。兩種構圖、五顆 seed:
近拍斗笠、塞滿畫面 光線切開 → 兩半像翅膀往上張開、切口留著霓虹光(導演:「看起來怪」)
越肩、斗笠只佔一角 整頂滑下、套在脖子上像衣領 ×1;光一閃、前緣錯位、碎片從肩上滑落 ✅ ×1
另一顆:「半頂斗笠」躺在沙上 → 兩輪都被畫成完整的一頂或缺角的一頂
✅ 能用的是光一閃(一閃即逝,不要留在切口上)+物件離開畫面,不是「兩半分開」本身。 ✅ 讀不出來時,剪接端推近(數位放大)比重拍便宜。 ⚠️ n 小、一個專案;「一閃即逝」「帶重量往下掉」的寫法有幫助,但兩半分開仍然不可靠。
二之二、動作要讓【做動作的身體部位】當主詞
導演筆記:「檔案夾闔起來的樣子要有手,否則看起來像是自己闔起來的。」
第一版我補了一句狀態(「手要抓著封面、全程在畫面內」)—— 再跑一次,手還是沒跟著動。
原因是句子的主詞還是道具:the hand takes the cover and swings it over,
H3 執行的是「封面翻過去」,手只是一個同時存在的物件。
🛑 手抓著封面把它翻過去(+「手全程可見」)
✅ ⓐ 先宣告主詞:「這顆鏡頭裡【動的是手】,資料夾只是手帶著的東西」
ⓑ 寫手的關節路徑:手腕轉 → 指節抬起往前越過折線 → 前臂翻 → 指尖最後落下
ⓒ 補【距離恆為零】:掌心與卡紙的距離在 0.8→2.0 秒之間是零,
封面的邊緣從不離開拇指與其他指頭之間的皺摺
ⓓ 補一句反例:「沒有任何一格是封面動了而手沒動,也沒有任何一格封面自己立在空中」
⭐ 手要在鏡頭的第一格就已經接觸道具,不要從畫外進來 —— 少一次「生出一隻手」的機會。
兩隻手比一隻手可靠,但要分工
導演的第二個筆記是「可以用兩隻手」。結果比單手穩,因為兩隻手互相當錨點:
左手=【按住的那隻】 平放在近側那半、按住紙,「闔的過程中它不在桌上移動」
右手=【闔的那隻】 拇指扣住遠側封面的外緣,手指攤在封面上
⭐ 讓開的動作才是賣物理性的關鍵:
「封面壓過來時,左手往桌子近緣【滑開】,全程貼著卡紙,直到手指離開封面的落點
—— 封面落在紙上,不是落在左手上」
+ 收尾也要交代:兩隻手一起把資料夾【推正對齊】→ 壓平一次 → 兩手退出畫面,
之後「資料夾獨自躺在桌上,完全靜止」
⭐ 通則:「A 帶著 B 動」要寫成 A 的關節怎麼動,再加一句 A 與 B 的距離恆為零。 只描述 B 的位移,H3 會給你一個 B 自己會動的世界。
三、尺寸:講裁切關係,不要講分數
分數會被無視。 實測:
寫 about two thirds as tall as the frame → 生出來 45–52%
改成描述構圖本身,模型躲不掉:
✅ 耳尖離畫面頂端只剩一個手掌寬
✅ 底座往左右兩邊都溢出畫面,兩側都看不到完整的底
✅ 畫面下緣從底座前緣下方切過
✅ 它是畫面裡遠遠最大的東西,其他都只是周邊的小細節
實測從 45% → 52% → 69%(目標三分之二)一次到位。
控制配角的大小,用「限制入鏡範圍」比「指定尺寸」可靠:
❌ her open palm is about as wide as the distance between its two ears → 實際 1.66 倍
✅ 只有手指和手掌前緣進畫面,手腕和手掌後半留在框外
露得少,主體自然就大。
直幅裡的尺寸有幾何上限
一個寬≈高的角色,在 9:16 直幅裡整隻入鏡時:
寬度填滿畫面 → 高度 = 768 ÷ (寬高比) ≈ 畫面高的 50–60%
實測三次:52%、61%、61%。這不是提示詞寫不好,是畫面比例的上限。
要更大就必須裁掉一部分。裁掉的通常是底部(底座、下半身), 因為上半部比較窄,能在畫面裡站得更高:
✅ only its upper part is in the picture: its cheeks reach out past both the left
and the right edge of the frame, the tips of its ears sit just under the top edge,
and the bottom edge of the frame cuts straight across its glowing belly so that
its base is entirely out of shot below
同一招在另一集做到 69–70%。「整隻都要在畫面裡」和「要很大」在直幅裡是互斥的。
距離也一樣,不要寫單位
分數會被忽略,帶單位的距離同樣會被忽略。實拍:寫
its leading edge a hand's width short of the base,
生出來液體直接淹到底座旁邊。
改成拿畫面裡的東西當尺:
❌ a hand's width short of its base
❌ stops about five centimetres away
✅ between the near edge of the pool and its base there is a band of bare dry wood
as wide as the figurine is tall
同一個道理:模型算不動抽象的量,但看得懂「A 和 B 之間空著一個 C 那麼寬」。
俯視角會拆掉角色
從正上方拍,角色的臉、耳朵、輪廓全部消失,只剩一團色塊; 而且沒有縱深參照,物件之間的大小關係會亂——實拍時一個馬克杯被畫得比 一個 16 公分的公仔還大。
要拍桌面上的東西,把鏡頭放在桌面高度往前看,不要往下看。 臉留得住,液體的範圍被前縮壓扁(不會看起來像一片湖),比例也有參照。
尺寸三招要三招都寫
- 跟已知物體比——about the same size as a woman's hand from wrist to fingertips
- 絕對尺寸——roughly 16 centimetres tall
- 在畫面中佔多少——用裁切關係寫,見上
前兩招管物理正確,第三招管觀感。只寫前兩招,東西會「比例正確但看起來很小」。
四、形狀和比例交給參考圖
文字寫比例連三版都失敗(要 1.75:1,生出 0.96 的正方形)。 餵一張參考圖,一次解決。
需要特定形狀的元素(光板、螢幕、看板)
→ 做一張「空白版」參考圖:形狀、圓角、邊緣光暈都對,裡面是空的
→ 內容後製合成
空白版的好處:模型拿到的是純幾何,沒有內容可以畫壞。
⛔ 不要直接餵有內容的圖(例如塔羅牌、UI 截圖)——符號和文字一定被畫成亂碼。
⚠️ 幾張臉就要寫幾個人 —— 人數也是硬約束
一個角色接了兩張臉(正面+四分之三),在一顆有運鏡的鏡頭裡被生成了兩個人: 主角左後方多出一個穿同樣襯衫的人,還附帶一張多出來的椅子。
✅ 共用段固定加一段 people_count:
「這個房間整支片只有兩個人 —— A 和 B —— 沒有別人。
沒有第三個人出現:沒有人坐著、沒有人站著、沒有人走進來、
沒有人坐在他們後面或旁邊,也沒有人影出現在 B 的肩膀後面。
⭐ <Picture 3> 和 <Picture 4> 是【同一個人】的兩個角度 —— 是一個人,不是兩個,
B 絕不可以被複製成畫面裡的第二個人。
B 的左後方是空的:只有淡色牆與擦過的白板,前面沒有別的東西。」
⭐ 這條和「場景圖裡有幾個人就放幾張椅子」是一組的: 空的座位=候選座位,多出來的臉=候選人物。 ⚠️ 運鏡讓出來的空間也算空位:鏡頭推進時把另一個人推出畫面 → 那塊空間要被重新填滿 → H3 填空間的方式是生人(見 §七之二②)。
⭐ 服裝參考圖不要帶臉 —— 用「隱形人台」(2026-09-25,武俠測試+外部佐證)
服裝要佔一個參考槽時,那張圖裡的人臉就是【多出來的一張臉】。
✅ 用生圖模型做「隱形人台」:衣服撐成有人穿著的立體形狀,領口與袖口是空的,裡面沒有人。
提示詞寫明「
四之一、⛔ 品牌角色不可以髒、破、變形
拍一個「陶瓷公仔被打翻的咖啡淹到」的鏡頭,提示詞寫了
coffee glistening around its base、the amber light glowing through the wet film。
H3 照做了,而且往上蔓延到整張臉——變成公仔在流泥淚。
如果那個角色是產品/品牌資產,這種畫面不能用,沒有例外。
問題不在模型,在提示詞。 只要句子把液體和角色的表面連在一起
(on、around、through、soaks into、film),它就會畫上去,而且會超量。
改法:保留張力,切斷接觸
❌ coffee glistening around its base, the light glowing through the wet film
✅ a dark pool lies on the wood behind it, a hand's width back from its base,
holding the amber light as a long reflection across its surface
(再加一句正面敘述:its cream-white surface is dry and matte all over)
液體還在畫面裡、逼近的張力還在、角色乾淨,而且倒影比濕膜好看。
通則:不要用介系詞把「會弄髒的東西」和「不能髒的表面」綁在同一個名詞片語裡。 給它們一個明確的空間距離。
四之一之二、⭐⭐ 表演讀不讀得到,先看鏡頭【夠不夠近】
這是所有表演問題最常見的根,而且最容易被誤診成三個各自獨立的問題。
一場戲拍出來如果是這樣 ——
角色的表情節拍沒有被執行(寫了「2.0 秒低頭、4.5 秒抬頭」,他卻從頭到尾同一個表情)
角色的體格/特徵被抹平(寫了「壯」「寬下顎」,生出來卻是一般身材)
畫面看起來很雜,人物和環境搶
—— 直覺會分頭去修:表情寫更細、體格寫成幾何、背景寫成深色。 但這三件事常常只有一個原因:鏡頭太遠。
對照組(2026-09-19,同一顆鏡頭、同一組參考圖,只改景別)
遠景版 兩人從膝上入鏡、頭佔畫面高 1/7
→ 表情節拍沒出來、體格被生瘦、前景一排背影擋住主體
近景版 兩人從胸以上入鏡、頭佔畫面高 1/3
→ 同一段表情描述【自己演出來了】、體格守住了、畫面乾淨
兩版之間只改了景別的數字與「人群在鏡頭後面」一句,表情與體格的文字一個字沒動。
為什麼
畫面裡佔不到幾個像素的東西,模型沒有理由花算力去做。 一張佔畫面高 1/7 的臉,上面「下眼瞼微抬」這種動作根本無處可畫; 一個佔畫面高 1/8 的身體,下顎寬與頸寬的比例也撐不出來。 寫得再細都一樣 —— 細節需要地方才長得出來。
表演與特徵是【空間】的函數,不是【文字】的函數。 文字只決定要演什麼,景別決定演不演得出來。
怎麼用
1. 一顆鏡頭如果有【指定的表情節拍】,臉至少要佔畫面高的 1/3
2. 一顆鏡頭如果要守住【體格或外型特徵】,那個部位要佔得夠大 ——
遠景就不要指望,改用剪影、輪廓、站位去區分人
3. 情緒的落點(「他低頭」「他抬頭看這一屋子的人」)一律給近景。
落點的戲是靠景別給的,不是靠演的
4. 覺得「表情不夠」時,先問【鏡頭能不能再近一點】,再考慮改文字
⚠️ 反過來也成立:群戲的遠景【不要寫表情】,寫大肢體(鼓掌、舉杯、拍肩)就好。 把演技要求放在一顆演不出來的景別裡,只會讓模型在別的地方亂動。
⭐⭐ 但「想要近」寫在提示詞裡沒有用 —— 框是被【畫面裡必須容納什麼】撐開的
把數字寫緊一級(想要胸以上就寫肩以上)在很多鏡頭有效, 但有些鏡頭怎麼寫都拉不近。差別不在數字,在這一顆同時要求了什麼東西入鏡。
同一場、同一組參考圖、同一句「數字故意寫緊」的提醒:
✅ 有效 兩人並肩講話,畫面裡除了他們什麼都不需要 → 確實縮到胸以上
✗ 無效 同一個人,但提示詞(含共用段)要求看得到他手上的杯子、手上的道具、
以及兩個杯緣相碰 → 那些東西都在腰的高度,框一定被撐回腰以上
模型的選擇是對的:動作必須成立。是我把互斥的要求寫在同一顆裡。
景別不是形容詞決定的,也不是分數決定的,是【內容物】決定的。 要近,就得先把不必要的東西趕出畫面。
怎麼做
1. 寫每一顆之前先列:這一顆【非在畫面裡不可】的東西有哪些?
2. 那張清單裡最低(或最外側)的那一樣,就決定了這顆的景別下限
3. 想要更近 → 把清單上的東西移到別顆去,或明寫它在畫面外
「他手上的東西在畫面下緣之外;這一顆畫面裡除了他的頭與肩膀,不需要容納任何東西 ——
這就是它能這麼近的原因」
4. ⚠️ 特別注意【共用段】裡的道具描述:它會套用到每一顆,
包含那些其實不需要看到道具的鏡頭,於是整場的景別都被撐開
5. 一顆鏡頭一件事:互動用中景、道具用 INS、情緒落點用特寫。不要一顆全包
6. ⭐⭐ **接線也算內容物**:接了某個道具的參考圖,模型就一定要把它放進畫面。
文字裡把它趕出去沒有用 —— 要連那張參考圖一起拿掉,否則圖會贏過文字
7. ⭐ **道具的【狀態】也是圖決定的**:參考圖裡刀身是裸的(刀與鞘分開並排),
文字寫「整顆都在鞘裡」→ 刀從第一格就拔出三分之一。換成「完整入鞘」的參考圖 → 六顆都乖乖在鞘裡
→ 同一件道具的不同狀態做成不同的參考圖,每一顆接它【在這一顆的狀態】(武俠測試 2026-09-25,partly)
⭐ 狀態也包括【翻開到哪一頁】:掛曆往後翻到五月那顆,只給十一月那頁 → 掀開露出的還是一頁「十一月」;
多給一張五月那頁 → 掀起、露出五月、放手落回,一次就對(矽谷之戀 H413 c→d,2026-09-26,partly)
框的下限 = 這一顆「必須容納的東西」的總和,而那個總和包括【你接的每一張參考圖】。 想要特寫,文字要乾淨,接線也要乾淨。
📎 外部佐證:遠景扛不住身分,是【模型的限制】不是寫法的問題
上面「遠景就不要指望」那條,外部把它講得更死。
小而遠的主體一定糊,MiniMax 團隊已確認這是系統級問題 —— 不只是 VAE 壓縮, 也不是某一個訓練階段造成的。今天沒有任何提示詞修得好它。
⭐ 它多給了一條我們沒寫的:加步數、加解析度都沒用,不要為這件事燒一次長算圖。
所以遠景只有一個正確用法:做空間,不做身分。 要認得出是誰,就切中景或近景;構圖非得留在遠景,就讓人退成剪影或色塊, 讓遠景去做它擅長的事。
⚠️ 這條沒有我們自己的對照組,是採納外部說法(見 SOURCES.md「外部來源」)。
⭐⭐ 遠景裡的身分要綁在【畫面位置】上,不要綁在名字上
既然遠景扛不住身分(見上),那「哪個人做哪件事」就不能靠名字指派 —— 模型讀不到誰是誰,只能從剪影和在畫面的哪一側判斷。
實測(2026-09-20,同一顆廣角,兩人相距幾十個像素):
✗ 「<Subject 1>(老闆)是舉著香檳的那一個」
→ 瓶子跑到另一個人手上,而且那個人穿著另一位的衣服
✅ 「左邊那個是【矮而寬】的,右邊那個是【高而窄】的、高一整顆頭;
舉著瓶子的手臂屬於【左邊那個】,而且這面牆前【恰好只有一隻舉起的手臂】」
→ 一次就對
三個可用的錨,依可靠度排序:
① 在畫面的哪一側(左/右)—— 最可靠
② 剪影(高/矮、寬/窄、頭的相對高度)—— 可靠,而且順便把身高差講出來
③ 衣服的【品類】而不是顏色 —— 「素面 button-down 只屬於那兩個人,
其他人一律針織、刷毛、格紋法蘭絨」比「他們是唯一的淺色」可靠得多
(比較級的宣告要模型自己比對全畫面,品類是逐個決定的)
④ ⭐ 再加一個【可以數的】約束收尾:「那裡恰好只有一隻舉起的手臂」
⭐⭐ 群戲的【人數與站位】是圖決定的,文字改不動
這是「畫面裡有什麼是圖決定的」最貴的一個特例,因為它看起來很像是文字該管的事。
實測(2026-09-20,同一顆群戲廣角,場景圖是一間【空房間】):
① 寫數字 「大約十五人,不是密集的一群」 → 生出 20+
② 寫數頭 「除了被切掉的兩個,畫面裡約十三顆頭」 → 生出 25 左右,兩三排深
③ 寫面積 「中央空地超過一半是空的,比所有人加起來還大」→ 生出 25–30
④ 寫幾何 「馬蹄形恰好一人深,人與人之間空一個人寬,
每個人從肩膀到鞋子都完整露出來」 → 仍是 25–30、兩三排深
⑤ ⭐ 換成一張【人群已經站好】的場景圖,提示詞只留動作 → 一次就對
⭐ 換板之後那顆的提示詞從 16,000 字縮到 6,900 字 —— 字少不是副作用,是證據: 原本那一萬字都在做圖該做的事。
✅ 提示詞該寫的:他們【做什麼】(鼓掌、舉杯、拍肩、往前半步)
✅ 提示詞該寫的:什麼【不准變】(人數不變、沒有人換位置、不排出第二排、沒有人坐下)
🛑 提示詞不該寫的:有幾個人、站成什麼形狀、誰站哪裡、間隔多寬 —— 那些放進圖裡
⭐⭐ 續篇:連【角色】也是圖決定的 —— 參考圖要餵給「決定他存在」的那一步
把群眾放進場景圖之後,下一個問題緊接著來:那張圖裡被慶祝的那兩個人, 看得出不是我們的角色。在鏡頭那一顆接他們的臉,一點用都沒有。
✗ 在鏡頭的提示詞裡接 兩張臉 + 那張滿板
→ 沒用。滿板上站的是誰,模型就動誰;而且那個距離臉本來就讀不到(§四之一之二)
✅ 在【生成那張滿板】的時候,就把兩張臉一起餵給生圖模型
→ 剪影、身高差、體型、髮量一次到位
⭐ 參考圖要餵給「決定那個東西存在」的那一步,不是餵給「讓它動起來」的那一步。
場景圖決定「畫面裡有誰、在哪裡」→ 角色要在【生場景圖】時就放進去
鏡頭的參考圖只在那個人【夠大】的時候才有效(中景、近景)
⚠️ 就算餵了照片,那個距離仍然認不出臉 —— 買到的是不會看起來像別人: 身高差、胖瘦、髮量、衣服顏色。那四樣讀得到,觀眾就接受了。
⚠️ 一個容易漏的:家具也會被文字推回去。 同一批失敗的版本裡, 靠牆的長桌每次都跑回畫面中間 —— 因為空房間的圖裡它本來就在那裡。 把桌子放對位置的那張圖一進來,這件事就不用再寫了。
四之二、⭐ 先決定機位,再寫表情
角色要看的東西不在畫面裡的時候,H3 會讓他們看鏡頭。
這是同一個病最常見的形態,而且它有兩種症狀:
沒寫視線方向 → 角色直視鏡頭說話,像在演舞台劇
寫了視線方向 → 但那個方向跟「要看得到臉」互相牴觸,模型只能挑一個
三個實例,同一個解法
角色低頭看桌上的小東西
❌ 加「抬起頭讓臉朝向鏡頭」 —— 跟「看那個東西」互斥,抬頭就看不到它
✅ 把鏡頭放到桌面高度、那個東西旁邊,往上仰拍
她低頭看它 = 看向鏡頭方向,低頭和露臉不再互斥
角色對蹲在地上的人說話
❌ 什麼都不寫 —— 她正對鏡頭講話,舞台劇感
✅ 鏡頭放低到蹲著那人的位置,往上拍
他在近景背對鏡頭,她在他後方低頭看他
角色在看側面的電視
❌ 特寫鏡頭裡沒有電視、也沒寫看哪裡 —— 直視鏡頭
✅ 鏡頭放在電視【旁邊】,她看螢幕 = 看向稍微偏鏡頭一側
這是訪談的標準機位
三次的解法都一樣:把鏡頭移到角色看的方向去。
為什麼「加動作」會失敗
想讓臉被看見,直覺是叫角色轉頭、抬頭、面向鏡頭。 但角色的姿態通常已經被劇情鎖死了 —— 她必須看那個東西, 那是這場戲的意思。加一個相反的動作只會製造矛盾, 而模型面對矛盾時會挑一個做,通常挑劇情那個(那是對的)。
角色的姿態被劇情鎖死時,要動的是鏡頭,不是角色。
⚠️ 同一條的反面:角色在看的東西,不能同時出現在他背後
🛑 症狀 一群人在為他鼓掌,但他們出現在【他的背後】
→ 觀眾讀到的不是「大家在為他喝采」,而是「有一群人在為別的事鼓掌,他剛好站在前面」
(導演原話:「為他喝采的人還在他後面,好像和他無關」)
⭐ 原因 他在看他們 → 他們就只能在【鏡頭這一側】。出現在背後,視線邏輯就矛盾了
✅ 解法 讓他們留在鏡頭後面:畫面裡只有他,他們活在【聲音】裡
更常見的版本是:這顆鏡頭根本不需要他們。 一個場合只要在某顆廣角鏡頭裡建立過,觀眾腦子裡就一直有那群人。 情緒落點的特寫再把人塞進背景,只會分掉畫面面積,還會製造上面那個矛盾。
群眾建立一次就好。之後他們活在聲音裡,不必活在畫面裡。
寫的時候的順序
1. 這一鏡裡角色在看什麼?
2. 那個東西在畫面裡嗎?
在 → 照常寫
不在 → 先決定機位(把鏡頭放到那個方向),寫進鏡頭描述裡
3. 然後才寫表情
第 2 步跳過的話,後面寫得再細都會被「她在看鏡頭」毀掉。
⚠️ 順帶:機位寫清楚之後,還要明講不可以直視鏡頭。 「看向鏡頭旁邊」和「看鏡頭」對模型是很接近的兩件事,要把後者擋掉。
四之二之二、⭐⭐ 場景圖釘死的是【站在哪裡】,不是【站多高】
參考的場景圖決定機位 —— 這條大家都知道。但它不是整個機位都釘死: 高度改得動,左右位置改不動。
對照組(2026-09-20,同一張場景圖、同一份提示詞、同一顆種子,只改鏡頭那一段)
A 「站在門口那一端,平視,看向對面那道牆」 → 平視廣角,前景一整排背影擋住主體
B 「鏡頭抬到所有人頭上(離地約 2.5 公尺),俯角 20 度,
移到房間的【左上角】,對角線看過去,主牆因此偏【右】」
B 的結果:
✅ 高度 聽懂了 —— 明顯抬到所有人頭上,看得到地板、看得到人群站成什麼形狀
✅ 俯角 有,約 10–15 度(寫 20 度)
🛑 左右 沒聽 —— 鏡頭還在原來的中軸上
🛑 對角線 沒聽 —— 主牆還在畫面正中央,不是偏右
✅ 房間 完全保持:材質、窗在哪一側、家具位置全部沒動
怎麼用
1. 想換【高度/俯仰】→ 寫文字就好,不必重做場景圖
2. 想換【左右位置/軸線/對角線】→ 只能重做場景圖。寫多用力都沒有用
3. ⭐ 抬高鏡頭是解決【前景擋住主體】最便宜的一招 ——
鏡頭在所有人頭上,就沒有人擋得住,不必再跟群眾的站位角力
4. ⚠️ 但俯角會壓低主體(§零之二)。用在【交代空間】的廣角可以,
用在情緒落點就要想清楚
⚠️ 這條修正了一個較早的說法「H3 對機位高度與左右位置服從度都很低」—— 那是把兩件事混在一起看了。左右確實很低,高度其實不低。
🛑 但圖換成【構圖錨點】(板上已經站著人)時,高度也改不動,運鏡也不會出現(2026-10-03,武俠測試):
錨點:兩人在沙地對峙、腰高平視
文字寫「camera tracks right」+(另一份)「camera is lower, at knee height, looking slightly up」
→ 8 顆(4 份提示詞 × 2 seed)全部是錨點的固定機位:沒有橫移、沒有降低
→ 上面「高度寫文字就好」只對【空場景圖】成立。錨點釘死的是整個機位,要換高度、角度、運鏡都得換板。 ⚠️ partly:上面那條是空房間+群戲、這條是有人的錨點,兩者差在圖的種類,沒有同一張圖的對照。
場景圖也釘死【環境的強度】(2026-09-26,武俠測試)
場景圖是薄沙霧 + 文字寫「猛烈沙暴、濃到遮住地平線」 → 薄沙霧(文字完全沒生效)
同構圖、用 Gemini 只把天氣改成沙暴的場景圖(同一顆 seed)→ 濃密沙暴 ✅
→ 風雨沙霧的【強度】跟左右位置一樣,寫不動,要改圖。改法:拿原場景圖當參考,叫生圖模型【只改天氣】,構圖就不會跑。 ⚠️ 兩次之間場景的描述句也跟著改了,不是完全乾淨的單變因(partly)。
四之二之三、⭐⭐ 空間要在【生板】那一步定死:平面圖 → 3D 灰模 → 圖像模型(2026-09-26)
§四之二之二說場景圖決定左右位置 —— 那麼當一場戲需要好幾個機位時,好幾張場景圖之間也必須是同一個空間。 各自生的板(裁切一張、純文字生反向一張、再裁一張)沒有共同的 3D 真相,H3 就會拍出互相矛盾的空間。
症狀(矽谷之戀 S4 廚房,導演逐條指出)
電話跟電鍋平行、還在牆後 月曆掛在柱子的窄邊 角色接電話時穿過吧台 下一顆的電話又換到另一面牆
做法
① 平面圖:一個座標檔(牆、門窗、家具、道具、每個人的站位、每個機位的位置與朝向)→ 畫成俯視圖給導演確認
② 3D 灰模:同一個座標檔用 Blender 背景腳本搭出方塊模型,每個機位算一張灰模圖
③ 圖像模型(Gemini)把灰模轉成寫實照片 → 圖像模型「死守餵進去的構圖」,在這裡正好是保證
④ 局部修:換道具的樣子、補漏掉的東西
結果
第三輪起 H3 在各機位的空間一致(電話、月曆、電鍋、吧台的相對位置每顆都對)
灰模轉寫實的規矩(每條都有當天的反例):
① 不要同時餵舊板當「材質參考」→ 它照抄舊板的【配置】。材質改用文字寫
② 文字只寫【這個機位看得到的東西】→ 寫了「白色冰箱」就長一台冰箱(同 §五)
③ 灰模裡【幾乎看不到】的東西(側看只剩一條邊)不要泛泛地提 → 會被搬到看得見的地方;
要它在,就明寫「斜看、壓成窄窄一條、在 X 的右邊」
④ 灰模要有參照物:只拍到一面空白牆 → 圖像模型自己編一個角落。轉一點讓兩面牆、門窗入鏡
⑤ 局部修換圖案要寫「位置不動、只換圖案」→ 否則換海報會連位置一起搬
⑥ 道具在各板長得不一樣 → 從【一張】板裁出來做道具圖,再局部修換到其他板
⑦ 圖像模型修小區域(拿掉一個櫃子)常留一塊 → 沒跟物件重疊的區域用程式補像素;
跟物件重疊的回圖像模型,範圍寫到「只有 X 右邊那一條」
📎 對照組:《HELL GRIND》的 GEO SPATIAL LAYOUT(把空間寫成文字地圖貼進每一顆)在 H3 上【壓不過】場景圖 ——
同 seed A/B,加了地圖的那顆左右配置與沒加的一樣(見 SOURCES.md)。空間只能在圖裡定。
⚠️ 一個專案、一場戲(兩個房間:公寓、教會);H3 端驗證了公寓,教會待驗。
四之二之四、⭐⭐ 多人場:同框只交代關係,台詞一律單人正反打(2026-10-02)
人一多,每張臉、每個人的位置、誰在對誰說話都會各自出錯,失敗率是疊加的。 這不是寫法磨得不夠,是模型的現況。 做得好的 AI 劇多半用分鏡繞過去,不是正面解決。
實例(矽谷之戀 S5,教會裡四五個人互相介紹;v7→v9 三輪導演回饋)
導演挑出來的問題幾乎都在多人鏡頭:別人跑到主角背後傻笑、前景多一個小孩的頭、
左邊冒出「不知道是誰」的人、兩個女主角的相對位置跟上一顆對不上、介紹時沒有那個人的特寫
每一次真正修好的做法都一樣:拆成單人、從另一個人的視線拍
✅ 拆法
① 同框只留一兩顆中景,用來交代「這是一群人、誰站在誰旁邊」;不在同框裡放台詞以外的戲
② 每句台詞、每個反應都是單人鏡頭,正反打輪流切;台詞的聲音用 L-cut 延到反應鏡頭上
③ 單人鏡頭的機位放在【聽的那個人】的視線上:在灰模(§四之二之三)加一個機位、生自己的板
🛑 不要從群戲板硬切近 —— 切出來的錨點保留了群戲的空間,H3 會把旁邊的人擺到主角背後、
或補出跟平面圖對不上的背景(窗跑到錯的牆)
④ 檢查視線:說話對象離鏡頭軸線 25–40° = 自然的四分之三;小於 15° = 像在看觀眾
(實例:從矮個子的位置仰拍高個子,他往下看她 = 視線貼著鏡頭 →「反應有點怪」)
⑤ 單人鏡頭的前景不放人:路人的肩、別人的頭髮或袖子 → 觀眾問「那是誰」
越肩的前景如果是主角 = 讀成「是他在看」(主觀鏡頭要放路人或不放)
⚠️ 生板寫「前景沒有人」擋不住,圖像模型愛加越肩 → 生完再拿掉
⚠️ 一個專案、一場戲(三輪看片);方向與外部對 AI 劇的觀察一致(多人同框改正反打、同框只做遠景交代關係)。
四之三、📎 跨鏡頭的「同一個人」:宣告沒有用,每一顆都要重新供給
每一顆鏡頭都是一次獨立的 conditioning pass —— 模型每一顆都在【從文字重新建造】這個人。
所以下面這些寫法等於沒寫:
✗ 「同一個女人」
✗ 「跟第 1 顆一樣的衣服」
✗ 「與 Shot 1 完全相同」
它們宣告了連戲,卻沒有供給重建所需要的資訊。臉就漂了。
怎麼做
① 每一顆都把 6–8 個具體特徵【整段重寫一遍】:
眼睛顏色、頭髮顏色+長度+造型、可辨識的記號(雀斑、疤)、
配件(眼鏡、耳環)、那件衣服本身與它的顏色
② ⚠️ 逐字一樣 —— **換句話說(paraphrase)就會重骰一次臉**
③ 聲音同理:一句具體的描述(「一個清亮溫暖的年輕女聲,語氣隨意」),每顆照抄
⭐ 這條也解釋了共用段為什麼有效,以及它的邊界: 共用段管用不是因為它「宣告了一致」,而是因為它讓每一顆都拿到一模一樣的那幾句話。 只要有人為了通順去潤飾其中一顆,那一顆就會漂。
⚠️ 外部來源,我們沒有做對照組(見 SOURCES.md)。
五、提示詞裡不要出現不該入鏡的物件名稱
H3 提到什麼就容易長出什麼(幻影物件)。
❌ a tall upright rectangle with the proportions of a phone screen held vertically
^^^^^^^^^^^^ 可能真的長出一支手機
✅ 用畫面邊界把長寬都框死,完全不提物件
✅ 或直接餵參考圖(見上)
同理,比喻和參照也要小心——「像塔羅牌的比例」會誘使模型去畫牌面符號。
🔴🔴 共用段、服裝段、光的描述都算「提到」(2026-09-26)
提到什麼就長什麼 —— 這條對【每一顆都會 include 的共用段】一樣成立,而且更危險,因為你寫共用段時沒在想「這一顆」:
共用段的服裝段寫了主角的衣服 → 一顆只有室友的廣角,走廊口多了一個穿那件衣服的主角
光的段落寫「電視在鏡頭旁」「落地燈的暖光」→ 廚房的中景多出一台電視、一盞燈;電話的特寫整顆變成有電視的客廳
(矽谷之戀 S4,同一天六顆壞在這裡;拆成「只有 A」「只有 B」「只有手(INS)」三份共用段後全部修好)
✅ 共用段只放【每一顆都成立】的東西(年代、質感、光的方向與色溫);人、服裝、會發光或會被看見的物件, 只寫進它真的入鏡的那一顆。光要寫成「暖光從一側來」,不要寫成「落地燈的光」。
📎 但有一個例外:聲音的【安靜】要明寫
「說不要等於把它寫進去」這條在外部被覆述,但多了一個我們沒寫的例外:
聲音是例外 —— 安靜必須被陳述,不能用省略的。 要把它寫成關於這一軌的肯定事實。
畫面的規則是「寫有什麼、不寫不要什麼」;音軌相反:要無聲就得明講無聲, 不寫的話 H3 會自己配一軌上去。
⭐⭐ 規則外溢不只發生在共用段,也發生在【同一份提示詞內部】
一句全稱的規則會套到畫面裡每一個符合描述的對象,包括你心裡沒算進去的那一個。
實測(2026-09-20):
構圖段寫「⭐ 房間裡【每一個人】的身體都朝向那個匯聚點」
而被慶祝的主角就站在【那個匯聚點上】
→ 他也轉過去了,變成背對鏡頭,儘管另一段明寫他面對鏡頭
兩段互相矛盾時,模型挑了全稱的那一句。
✗ 加一句更用力的反向指令去覆蓋
✅ 把規則的【適用範圍】縮小,讓那個對象讀不到它:
「站在【馬蹄形裡】的每一個人 —— 也就是除了匯聚點那兩人以外的所有人 —— 身體朝向它」
✅ 再補一句正面的例外說明:「那條規則是講馬蹄形的;這兩個人【就是】匯聚點,他們朝相反方向」
→ 一次就對
⭐ 寫完一段全稱規則,回頭問一次:畫面裡有沒有哪個角色,我其實不想讓他適用這一條?
第三種形態:規則本身的【射程】比你想的寬
前兩種是規則套到了不該套的對象。第三種是規則做對了事,但同時殺掉了你要的別的東西。
實測(2026-09-20,一顆高速公路的空景):
原意:不要有車急煞或切線,那會搶走注意力(這是一顆空景,不該有東西跳出來)
寫法:「車流以均速前進,**間隔平均**,沒有人煞車、沒有人切線,車流不會變稀也不會塞住」
結果:全部照做了 —— 車子排成一個【圖案】,不像車流。
真實的車流是成團的:三四台擠在一起,然後一大段空著,而且各線道不同步
⭐ 「間隔平均」是正面描述,所以它被非常忠實地執行了。 這提醒一件事:正面描述比否定句可靠 —— 代價是寫錯的正面描述也會被忠實執行。
✅ 改法:把「不要有干擾」和「要有不規則」分開寫,不要用一句話同時處理
「車流是【成團】的,不是平均分布的:某些地方三四台幾乎車尾接車頭,
中間隔著好幾個車身長的空檔。各線道彼此【不同步】,也跑不同的速度。
⚠️ 沒有人急煞、沒有人切線切得很急。」
⭐ 檢查的方法:每寫一句抑制性的規則,問一次 「這句話除了擋掉我不要的,還會擋掉什麼?」
五之二、🔴🔴 改規格之前,先 grep 整份提示詞 —— 舊文字不會自己消失
這是實務上最花錢的一條,而且它不是提示詞技巧,是操作紀律。
一份提示詞是一天一天累積出來的。你為了修一件事加了一段新規格, 舊的那一段還在,而模型會忠實執行【兩段】。
實測(2026-09-20,同一天之內三次):
① 構圖段寫「房間裡【每一個人】的身體朝向匯聚點」,另一段寫「那兩人面對鏡頭」
→ 站在匯聚點上的主角背對鏡頭
② 為了做出「老闆把他往前送」,加了一段站位幾何(一隻手繞到遠側肩膀、另一隻垂著)。
但 summary 還寫著「手放在他【上臂】」,detailed_description 還寫著
「右手放在上臂,全程不動」+「另一隻手做小幅度的開放手勢」
→ 老闆兩隻手都在他身上,像架著他。連改兩版都沒解決,因為我每次只改一處
③ 服裝段寫「兩側各一片失焦背影」,另一段已經改成「只剩右邊一片」
⭐⭐ 一句都不是模型不聽話。 它每次都執行了所有指令 —— 只是那些指令互相矛盾。
操作規則
1. 改任何一項規格之前,先在【整份提示詞】裡搜那個東西的所有說法
手 → grep hand / arm / shoulder / hold / touch
位置 → grep left / right / behind / in front / nearer
朝向 → grep face / turn / toward / look
景別 → grep frame / framed / edge / above the / below the
2. ⚠️ 別忘了 summary 與 retention_analysis —— 它們讀起來像「摘要」,
但模型一視同仁,它們和 detailed_description 一樣有效
3. ⚠️ 也別忘了 include 進來的共用段
4. 全部改成同一種說法,不要留下「比較舊但還算對」的版本
⭐ 續篇:景別一變,原本無害的句子會【活過來】
005 的 detailed_description 是為一個【更緊】的景別寫的:
「兩人從鎖骨以下入鏡 —— 胸、腰、手都在畫面下緣之外,看不見」
在那個景別下,寫「老闆的手放在他上臂」是無害的(反正看不到)。
🛑 但實際輸出一向比寫的鬆(提示詞自己也警告過),手就進了畫面 —— 那句就生效了。
一句描述是不是無害,取決於當時的景別。景別變了,要回頭重讀每一句。
五之三、📖 禁用字對照表:模型會照字面執行、或會誤讀的寫法
這一節只是索引 —— 每一條的證據在括號裡那一節。寫提示詞時照著改,驗收時照著 grep。 📎 做法借自 Higgsfield《HELL GRIND》的 ban dictionary:製作中每發現一個被誤讀的字,就記一筆,不要靠記憶。
| ❌ 寫法 | 模型怎麼做 | ✅ 改成 | 出處 |
|---|---|---|---|
nothing about her changes、completely still、his face is doing nothing | 整顆凍結,該動的也不動 | 寫他在做的小事:呼吸、眨眼、重心微沉 | §二、§六之二③ |
no push in, no zoom, no dissolve…(為了確保硬切) | 剪點漂到很後面,反而運鏡 | 只寫一句 static, on a tripod, with no camera movement whatsoever | §二、§七之二③ |
widening、spreading(液體) | 沒有終點地一直擴大 | 寫界線:as far as X and no further | §二之一 |
about two thirds as tall as the frame(分數) | 被忽略 | 寫裁切關係:頭頂離上緣一個手掌、下緣切過… | §三 |
a hand's width short of、five centimetres(帶單位的距離) | 被忽略 | 拿畫面裡的東西當尺:「中間空著一個 X 那麼寬」 | §三 |
glistening around、through the wet film(液體+角色表面) | 把角色弄髒 | 給空間距離,再補一句「表面是乾的」 | §四之一 |
the proportions of a phone screen、「像塔羅牌」(比喻) | 真的長出那個物件 | 用畫框的邊界界定,不提物件 | §五 |
evenly spaced(要車流不要干擾) | 排成規律的圖案 | 「成團、不同步」+另寫一句「沒有急煞」 | §五 |
its eyelids come down again(參考圖有半闔眼) | 被拉去半闔 | 寫閉眼的形狀:「每隻眼睛是一條平滑的弧線」 | §六之一 |
continuing、says the rest of it、台詞以 And 開頭 | 假起頭:先補一段前文 | 拿掉接續字眼;summary 寫「他說兩句話:…」 | §六之二④之二 |
unhurried、slow、measured(與共用段的語速衝突) | 兩種語速都執行 | 全片統一一種說法 | §六之二④之二 |
旁白裡的 say、sentence、word、line(有 <d> 的鏡頭) | 被唸出來 | 台詞以外不寫說話;要表達「沒說出口」就寫身體 | §六之二④之二 |
lips parted as if about to speak | 真的開口講 2 秒 | 雙唇抿緊、吞嚥一次 | §六之二④之二 |
knees bent, weight sunk low, like a drawn bow(要微蹲) | 深馬步,像坐在看不見的椅子上 | 寫對照關係:「臀部在膝蓋上方」(武俠測試,n=1) | §六之二① |
she holds the camera | 相機被畫成道具 | 運鏡用官方運鏡詞,手臂另起一句 | minimax-h3 skill |
| 共用段寫「落地燈的暖光」「電視在鏡頭旁」、服裝段寫別人的衣服 | 每一顆都長出那盞燈、那台電視、那個人 | 光寫方向與色溫;人與物件只寫進它入鏡的那一顆 | §五 |
📎 motion blur、particle trails(要速度感) | 外部建議:避免特效術語 | 寫因果:袖子被甩直、沙被刀風掃平 | ayase0307/h3-video-prompting(未自測) |
生參考圖(Gemini/Qwen,不是 H3)也有同一種問題:
「圓形護手+纏繩握柄」 → 被畫成日本脇差(要中國刀:環首+盤形護手+麻繩螺旋纏柄)
「deep-set eyes, strong straight nose」且沒寫族裔 → 西方臉孔
「沙暴」寫在文字、但參考的場景圖是薄沙霧 → 圖贏(§四之二之二)
六、情緒的生理順序
節拍密度對了之後,臉部節拍才有意義。順序寫錯會變成假表情:
真心的笑 眼睛先笑(下眼瞼上推、眼尾細紋)→ 嘴角才跟上
社交假笑 嘴先笑、眼睛沒動 ← 寫反了就是這個
釋然 眉頭鬆開 → 吐氣 → 肩膀落下 → 眼神聚焦 → 嘴角上揚
壓抑 眉和眼已經洩漏,嘴還在維持(把嘴的反應延遲 0.3–0.5 秒)
微表情的三層順序:眉(最先,幅度最小)→ 眼 → 嘴(最後,最容易被控制住)。
各情緒對應的可拍動作
| 情緒 | ⛔ 不要寫 | ✅ 要寫 |
|---|---|---|
| 困惑 | confused | 眉頭內側聚攏下壓,頭往一側微傾約十度,視線在兩點間來回一次 |
| 隱約不安 | uneasy | 眨眼變慢變重,吞嚥一次(下巴下方牽動),肩膀抬起一公分後放下 |
| 震驚 | shocked | 頭往後退三公分,上眼瞼全開,吸氣讓肩膀停在高處 |
| 強忍 | holding back tears | 下唇往內收,眨眼變快,視線往上飄離對方的臉 |
| 掙扎 | conflicted | 視線在三個定點間跳動且每次停留長度不同,手指反覆開合,呼吸從鼻子換成嘴 |
| 釋然 | relieved | 肩膀一次落下,屏住的氣從嘴角吐出 |
| 溫柔 | tender | 眼睛先笑,嘴角慢慢跟上 |
| 煩躁 | irritated | 鼻子呼氣讓肩膀落下,手掌在褲子上抹一下,抓後頸 |
呼吸是情緒的底層節拍。 每段情緒都該有一次可見的呼吸—— 而屏息(肩膀停在高處不動)比任何表情都能傳達緊張,模型也最容易拍對,它只是「不動」。
手比臉誠實,但只寫動作和接觸,不寫手指的細節形狀(手部是高風險區,容易長出多餘手指)。
六之一、⛔ 情緒轉換:不要讓它在鏡頭前連續發生
寫「眉心鬆開」「笑容褪去」這種從 A 狀態變到 B 狀態的句子, 等於給了模型一個起點和一個終點,它就在中間做交叉淡化—— 臉會像橡皮一樣連續變形。這是「表情不自然」最常見的來源。
① 把變化藏在遮蔽裡
閉眼、低頭、手擋住、切鏡頭都算。變化發生在看不見的那段時間, 再次看見時已經是新狀態,模型沒有機會內插。
❌ At 00:03.000 the crease between her eyebrows smooths out and releases.
✅ At 00:02.900 her eyes close and stay closed, and her head tips forward
about five degrees.
At 00:03.500, with her eyes still closed, her eyebrows come apart and the
skin between them goes flat.
[切鏡頭]
At 00:04.300 her eyes open, and they open onto a face that is already loose.
這也是真的演員在做的事。
連「設計」都換得掉,不只是表情
原本的認知是:角色的設計性變化(眼睛換一種畫法、換一張參考圖釘住的外觀) 不能寫在同一顆鏡頭裡,模型會挑一個定住,所以必須靠切鏡換。
實拍推翻了這條。 同一顆鏡頭裡:
2.25s 眼皮闔上,每隻眼睛變成一條平滑的弧線
3.75s 睜開 —— 已經是另一張參考圖釘的眼睛設計
中間沒有切鏡頭
所以規則要改成:不是不能在同一鏡裡換,是不能讓它「看得見地變形」。 遮蔽物給足,設計也換得掉。這比「一定要切鏡」省很多鏡頭數。
⚠️ 但閉眼的寫法要小心。如果參考圖裡有「半闔眼」那一款,
寫 its eyelids come down again 會被拉去半闔,而不是全閉。
要直接描述閉眼的形狀:
❌ its eyelids come down again, slowly this time, and close all the way
✅ its eyes narrow slowly and evenly until each one is a single smooth curved
line with no part of the eye showing behind it
② 先反向一拍
要放鬆之前先更緊,要落淚之前先忍住。沒有抵抗的轉折看起來像開關被按了一下。
✅ At 00:02.300 her chin pulls in toward her throat and her lower lip presses up
hard against the upper one, so that the whole lower half of her face tightens
further than it already was.
反向那一拍還有個好處:它是一個動作,不是一個狀態變化,模型做得比較穩。
③ 觸發點要跟轉折在同一鏡或緊鄰的鏡頭
角色要因為看到/聽到什麼才轉。如果觸發在 Shot 1、轉折在 Shot 2 開頭就完成了, 中間沒有一拍是她「接收」,觀眾會覺得情緒是憑空冒出來的。
留一拍給消化——通常就是①的那個閉眼或低頭。
六之二、幅度是相加的;時間要用事件填
① 表情的成分會相加 —— 要列出「不准動的部位」
導演筆記「幅度大一點、要有喜感」被我寫成五個成分疊加: 嘴角大幅後拉上揚 + 法令紋加深 + 頰肌上提 + 下眼瞼上抬眼睛瞇 + 肩膀抬起。 成品是「笑開」,導演的評語是輕浮,而且「之前那版雖然也輕浮,但比較好笑」。
✅ 克制版 = 一個成分 + 一串不准動的部位:
出來 嘴角上揚幾毫米(近鏡頭側多一點,所以略歪)+ 一口無聲鼻息
🛑 頰肌不提、法令紋不加深、眼睛不瞇不起皺、眉不抬、下巴不上抬、頭不後仰、肩膀不抬
「身體保持和一秒前一樣禮貌、一樣端正 —— 只有嘴出賣他」
🛑 反例也要寫:不是開心、不是得意、不是俏皮、不是在笑、從不露齒
撐住 N 秒【原尺寸不變】:不擴大、不蔓延到臉的其他部位
⭐ 為什麼這樣有效:H3 對「臉在笑」有很強的先驗,你只放一個成分,它會自動補齊其他成分。 列出不准動的部位,就是阻止它自動補齊。 ⭐ 戲劇上的理由也一樣:笑點在「沒漏出來的那一半」。身體保持禮貌、只有嘴角出賣他, 那個落差才是笑點;整個人一起笑,落差消失就不好笑了。
② 「收回去」要寫成動作,而且收回之後要留尾巴
把收回寫成子句或形容(the smile fades)=停止,而 H3 對沒有時間戳的狀態沒有抵達義務 (實測:之前→當下 20.7 dB、之前→之後 19.5 dB,比當下差更多 = 它沒有回來)。
✅ 寫成一個有動機的動作:
「X 秒他把它收回去,而收回去【本身是一個動作,不是淡掉】:
他被叫回房間裡(對方就要再開口)→ 頭正回來、目光回到對方、頰肌下降、
法令紋完全攤平、下眼瞼回到正常高度、嘴角一路回到完全水平。」
+ ⭐「把這顆的最後一格和(切點後的)第一格對照:兩格的臉必須長得一樣。」
⚠️ 收回之後至少要留 1.5 秒,否則它來不及發生: 同一個寫法,收回後還有 1.7 秒 → 成功;只剩 0.46 秒 → 末格仍在笑。 ⭐ 最有效的其實是最後那句 —— 把驗收方法(首末格比對)直接寫成指令。
③ 底噪動作:節拍之間要明講「他是活的」
只寫「第幾秒做什麼」,其餘時間 H3 會讓人停住 → 成品像一張會動嘴的照片(導演語:不自然)。 ✅ 補一段涵蓋全長的句子:
「他在節拍之間是活的,不是雕像。這顆鏡頭的每一秒,不論那一刻有沒有寫東西,
胸口都隨緩慢平穩的呼吸起伏、眼睛有細微的不自主移動、重心在椅子上微微下沉;
他在 2.4 秒與 5.0 秒各慢慢眨一次眼,4.8 秒手指在大腿上移動一公分後停住。
這顆鏡頭裡【沒有任何一格是凍住的】。」
⚠️ 寫在大節拍之前,大節拍才不會被平均掉。
④ 要 H3 撐住一段時間,就給它可數的事件
「沒事發生」的時間會被壓掉。 實例:規格給某張臉 3.2 秒的 hold,成品只拿到 1.8 秒, 畫面就提前搖走了。把那 3.2 秒填成七個帶時間戳的小事件 (嘴角到位、眨眼、目光下移到道具、鼻息+肩膀下沉、目光回來+下巴微抬、再眨一次), 時間比重一次就對。
⭐ 同一招也解「剪點後立刻講話會口吃」:切完先給一段安靜
(呼吸 + 眨眼 +「嘴閉著完全不動,這一秒多屬於這顆鏡頭,必須存在」),再開口。
台詞貼著剪點會讓嘴型在剪點附近反覆 —— 因為 <d> 會把畫面時間往剪點兩邊攤(見 §一)。
⭐ 開口那一句也要寫成可數的:「這句只講一次、等速講完、講完嘴就閉上不再動;
開口前嘴不要先開合,講完不要重複、不要結巴、不要從頭再講。」
④之二 🔴 台詞會【重講、假起頭】—— 三個成因,全在提示詞裡(2026-09-22)
一整場(S2,七顆有對白)用 whisper large-v3-turbo 逐字聽寫,老闆的台詞有三種壞法: 先講一段含糊的再講正確的(假起頭)、同一句講兩次、講完又多一句不存在的話。 這條規則(上一段)寫在 skill 裡,但那一場【沒有一顆套用】。
同一顆(H201b)、同一顆 seed 的三版:
舊版 And there's the next generally your chip and there's no next generation plan for your chip. The company…
A 版 There's no next generation plan for your chip. The new generation for your chip, the company…
← 只拿掉「接續」的暗示:假起頭沒了,但重講【搬到句子中間】
B 版 There's no next generation for your chip. The company has to let some people go.
← 再加兩項:乾淨,各講一次
成因一:提示詞在暗示「他已經講到一半了」。
summary 寫 continuing、says the rest of it,台詞又以 And 開頭 → 模型先替它補一段「前文」。
✅ 拿掉接續字眼;summary 改寫成「他說兩句話:……」。
⚠️ 劇本原文就是 And 開頭(接在上一顆的台詞後面)也一樣 —— 生成版拿掉,剪接時聽起來照樣順。
成因二:語速在兩個地方寫法相反。
共用段寫 BRISK WORKING PACE … NOBODY SPEAKS SLOWLY,
各顆的 speaker_identities 卻寫 an even unhurried pace。兩句都會被執行(§五之二)。
✅ 全部統一成同一種說法(a brisk even pace)。grep unhurried|slow|measured|deliberate。
成因三:沒寫「只講一次」。 上一段那句,寫成英文放在 </d> 後面:
⭐ HE SAYS THESE TWO SENTENCES ONCE, AT ONE EVEN SPEED, FROM THE FIRST WORD TO THE LAST:
his lips stay together until the first word, and the first word is the first sound he makes;
he does not start, stop and start again, he does not repeat a word or a sentence,
he does not stumble, and when the last word ends he does not say it again.
⚠️ B 版把成因二、三【一起】加,沒有分開測 —— 知道兩者合起來有效,不知道各自佔多少。
🛑 2026-09-24:這段本身會被唸出來。 雙人中景 H206 換 seed 那次,Whisper 聽到
「still one sentence on once」—— 就是這段的 SAYS THIS ONE SENTENCE ONCE。同一天有它的單人鏡頭多數是乾淨的,
所以它不是一定壞,但不要把它當萬靈丹;講完之後的時間寫成一件事(下面)比較可靠。見成因五。
📎 社群的說法:台詞比片長短很多時,模型會拿填充與重複去補剩下的時間(Seedance 部落格; HF MiniMax-H3 討論串 #76 記的是開頭 0.5 秒的含糊語音)。我們的資料大致吻合(8.7 秒的片、 2.7 秒的台詞 → 整句講兩次),但有一個反例:講完後還有 2.5 秒、卻把那段寫成 「他在等,什麼都不再說,沉默就是這一顆剩下的全部」的那顆 —— 沒有重講。 ⭐ 所以講完之後的時間要寫成一件事(在等、翻頁、整理紙),不要只寫「台詞不要延伸」。
⚠️ 還沒解的:四顆測試的開口都比規格晚 1.4–1.9 秒,而且很穩定。原因未查。
成因四(2026-09-24):⭐⭐ 說話的節奏綁在 seed 上,不在提示詞上。
證據 H201:兩份提示詞(動作與走位都不同)、同一顆 seed → Whisper 逐字時間【一模一樣】,到小數點後兩位
H207:三個版本的提示詞、同一顆 seed → 老闆都在 3.2 秒與 5.0 秒把同一句講兩次,You too 都在 7.64 秒
H201(twenty percent 被吞掉)、H203a(storage room 含糊):提示詞一字不改,只換 seed → 兩顆都乾淨
聲音壞了先換 seed,不要先改提示詞。 改提示詞重骰的是畫面,說話的節奏留在原地。 「一次只改一個變因」照樣成立 —— 只是對聲音來說,那個變因是 seed。 有台詞的鏡頭一次跑兩三顆 seed,挑聲音乾淨的那一顆。
⚠️ 換 seed 也救不了的:雙人中景(頭 1/8)+兩個人都講話+起身握手之類的動作+台詞比片長短很多 —— H206/H207 各換兩顆 seed 全部亂。那是【結構】問題:拆成一顆只有一個人講話、片長貼近台詞(09-24 拆鏡中,結果待補)。
成因五(2026-09-24):⭐⭐ 提示詞裡「講說話」的句子會被唸出來。
H202b 意圖句 "THE POINT OF THIS SHOT IS A SENTENCE HE DOES NOT SAY"
→ 兩顆 seed 都把它唸出來("the point of the shot is a sentence he does say")
H206 成因三那段防重講 → "still one sentence on once"
⭐ 有 <d> 的鏡頭,台詞以外的敘述不要用 say/sentence/word/line 這類字。
(S1) … says: <d>[English]…</d> 這個格式本身沒問題,會漏出來的是【旁邊那些講說話的評論】。
✅ 要表達「他有話沒說」→ 寫身體:雙唇抿緊、喉嚨吞嚥一次、眼睛落到桌上。
🛑 「嘴唇分開、像要說什麼」=他真的開口講了 2 秒(H202b 第一版)。沉默的節拍要寫成嘴閉著的動作。
⑤ 一張臉要被讀懂只需要 1.5–2 秒
同一顆鏡頭的兩版:A 版給某張臉 1.8 秒,B 版給滿 3.2 秒(為了配合旁白長度)。 導演選了 1.8 秒那版。 多出來的 1.4 秒不是「更充分」,是死畫面。 (B 版之所以「正確」,是因為我拿旁白長度當約束 —— 而旁白是後製配的,見 §一之二。)
七、拆鏡流程
劇本
↓ ⓪ 先問要不要生成 ⭐ 這一拍在【已經定稿的素材】裡有沒有現成的?(見下)
↓ ① 情緒骨架 列出所有轉折,標出哪一個是峰值、哪一個是谷底
↓ ② 分段 一段 = 一個場景 or 一個情緒單元,5–13 秒
↓ ③ 節拍表 每段列時間軸,一拍一件事
↓ ④ 檢查節拍密度 ⭐ 一顆鏡頭超過兩三個表情節拍就要拆,有台詞順手寫進去
↓ ⑤ 幀數 節拍加總 + 尾巴餘裕 1.3–1.5 秒 → 查 17n+5 格點
↓ ⑥ 寫提示詞
第 ④ 步是這份 skill 的核心,不要跳過。 節拍塞太多的鏡頭,寫再細的表情也會被抹平。
⓪ 先問「這顆需要生成嗎」—— 這是最省的一步
一顆兩秒半的鏡頭(角色第三次答「好的」)我連跑八版都不順:獨立生成位置跑掉、 截定格當參考圖不對、推軌生出假人、否定句把剪點吃掉、台詞貼著剪點導致口吃。 導演一句話結束它:「其實可以不用拍,剪前面那顆的尾巴即可。」
八次生成 ≈ 40 分鐘機器時間 + 八輪看片 vs 一行 ffmpeg trim
⭐ 現成貨比想像中多:
・重複的動作(同一句答話出現三次 → 用同一段畫面,而且「一模一樣」正是笑點)
・反應鏡頭(聽的人臉上什麼都沒發生 → 任何一顆的中段都能用)
・插入鏡頭(桌上的物件在每一顆裡都長一樣)
⚠️ 代價是來源那顆要讓出素材(同一段不要在同一場出現兩次),
所以要在分鏡階段就標下來,不要等成品都出來才發現。
📎 不算重複的:交叉剪。兩段連續素材(例如 POV 特寫與雙人中景)切成四塊 A→B→A→B 交替,
每一塊都是接續,不是重播,觀眾不會讀成重複 —— 4 秒四顆鏡頭只花兩次生成。
(外部參考片觀察,2026-09-30,未自測;見 SOURCES.md)
🔧 工程上要讓管線知道這件事(我們的 manifest 有 reuse 欄位,跑批會印 ♻️ 不生成),
否則下一次跑批會把剪好的成品蓋掉。
幀數怎麼給
| 情境 | 幀數 | 秒數 |
|---|---|---|
| 一個動作,靜態鏡頭 | 124 | 5.17 |
| 一個動作+一次運鏡 | 158 | 6.58 |
| 進場、走近、走進畫面 | 192 | 8.00 |
| 動作 → 反應 → 沉澱 | 209 | 8.71 |
| 有切鏡 | 243+ | 10.13+ |
| 一顆裡三段、兩個剪點 | 362 | 15.08 |
⚠️ 尾巴一定要留 1.3–1.5 秒餘裕。 H3 常在片尾前 1.2–1.7 秒崩解成噪訊色塊, 而且暗部場景肉眼快轉不容易察覺。每支拍完都要抽末段的幀檢查。
⚠️ Duration 填「略低於目標秒數的一位小數」,讓它被吸附到目標格點。 填「想要的秒數」會拿到多出來的幀數,而多出來那段沒有提示詞 → 尾巴崩解。
⚠️ 不要把「我們跑過最長的一顆」寫成「模型的上限」。 我把 209 幀寫進工具註解當成 H3 的天花板,還為此算過要砍掉幾句旁白; 實際上 362 幀(15.08 秒)一次就成功。筆記裡要寫「實跑到 N」,不要寫「上限 N」, 並標上試過的值 —— 「跑過 209」和「209 是上限」是兩句完全不同的話。
切鏡次數是風險因子
單鏡一個運鏡最穩。切鏡越多,尾巴崩解的機率越高。 但表演需要切鏡(見 §一),所以是取捨—— 情緒戲切鏡換表演精度,空景和過場能單鏡就單鏡。
⚠️ 而且風險不只是崩解:H3 會自己增減剪點、自己決定剪點落在第幾秒。 一顆生成裡放多顆鏡頭時,剪接結構本身要寫成可數的約束 —— 見 §七之二。
📎 長算之前先用低解析度驗結構(blocking)
① 同一份提示詞,先用 832×480、124 幀(短的那一階)跑一次
② 只看三件事:鏡頭結構對不對、節奏對不對、音軌有沒有出來
③ 過了才一階一階往上升
「在 832×480 會變成幻燈片的提示詞,在 1344×768 只會變成比較貴的幻燈片。」
⭐ 最划算的用法是換設計的時候。§零之二 的「意圖」與「構圖」本來就是拿來被否定的 —— 一個構圖成不成立,在 832×480 就看得出來,不必用成品的解析度去問這個問題。
七之二、一顆生成裡的剪接與運鏡
一顆生成裡放多顆鏡頭是表演精度最高的做法(見 §一),但剪接結構本身要寫成可數的約束, 否則 H3 會自己增減剪點、自己決定剪點落在第幾秒。
① 剪點數量、時刻、最後一格是誰,三件都要寫
一顆 15 秒、四段(雙人引子 → 桌面 INS → A 的臉 → B 的臉)的鏡頭:前三段都對, 第四段只撐 2.5 秒就自己剪回 A,並停在 A 臉上到片尾 —— 多長出第五段、第四個剪點。 旁白全程是 A 的,推測 H3 在長段落裡傾向回到聲音的來源。
✅ 段數降到三段並補上這三句,一次成立:
「這支片恰好有兩個剪點,在 4.9 秒和 9.2 秒,沒有別的。」
「鏡頭不會回到它已經離開過的鏡頭。」
「9.2 秒之後 B 不再出現 —— 他的聲音繼續,但他的臉不再出現,
因為那是他的想法,不是他的臉。影片的最後一格是 A 的臉。」
+ 把要守住的那一段放成三段裡最長的
② 運鏡是【全局的】,不能分段指定
「引子鎖死、只有切之後那段慢推」失敗兩次:漂移套到全片,而且剪點被內插掉 (雙人→單人變成一段連續推近,硬切消失)。 ⚠️ 而且漂移會把剪點往後推:三個數據點都從規格的 1.5 秒漂到 3.5–3.8 秒。 這對「引子+切」的結構是致命的 —— 引子吃掉三倍時間,切之後的主戲被壓縮。
要切鏡 → 整顆靜止
要運鏡 → 整顆運鏡,裡面不要放剪點
⭐ 例外:兩段的【被攝物與景別完全不同】時,切點反而穩
(桌面插入鏡頭 → 人臉中景:H3 內插不出中間值,只能切)
③ ⛔ 不要用否定句去防運鏡 —— 那正是運鏡發生的原因
這是 §二的延伸,而且是用最貴的方式學到的。為了確保「硬切」,我寫了
no push in, no zoom, no dissolve, no blur, no intermediate framing,
再加「畫面在單一格之內換掉」「沒有任何中間尺寸的格子」——
結果剪點連兩次漂到 3.5 秒以後。拿掉那些句子、只留下同一場唯一切成功那顆的兩句,
剪點立刻回到 1.96 秒。
✅ 有效的全部內容就這兩句:
Both shots are static, on a tripod, with no camera movement whatsoever.
The shot cuts in closer along the same axis to <Subject 1> alone: ...
⭐ 要分清楚兩件事,它們的規則相反: 物件的靜止要寫成正面狀態(「筆與資料夾的距離第一格到最後一格都一樣」)→ 有效; 攝影機的靜止只需要一句,多寫會反過來。 差別在於前者描述的是畫面裡有什麼,後者描述的是拍法。
④ 正反拍需要【引子】,文字描述取代不了
乾淨的單變因測試:B 的反角寫了完整幾何(宣告反角+頭的幾何+背景否證物), 但它的前一段是 A 的單人鏡頭、沒有雙人引子 → 拍成正面的雙人寬鏡頭,中特寫完全沒發生。 同樣的角度、同樣的文字,前面補 1.5 秒雙人引子 → 一次就對。
⭐ 「攝影機越過桌子到對面」這句話需要一個「對面在哪裡」的視覺事實, 而那個事實只能由同一次生成裡的前一顆畫面提供。正反拍的成本就是引子,不要省。 (引子後製丟掉,所以那顆鏡頭的長度要加 1.5 秒。)
③之二 🛑 改機位/改表演時,【舊文字還在】是最常見的失效原因(2026-09-21・一天內六次)
改提示詞時很容易只改「宣告句」(機位、景別、表情的那一句), 卻把後面描述細節的句子留著 —— 那些句子是照舊設計寫的,於是兩邊打架,而後面的通常贏。
實例(同一天):
① 機位 首句改成「FRONT ON, 鏡頭轉了 90 度」,但下面還留著
「from the same side of the table, in three-quarter profile still facing frame right,
behind him the whiteboard」→ 輸出照【後面】做:側面、白板在背後
② 表演 首句改成「Michael 一開始就坐著」,但 subject_definitions 還留著
「眼鏡摺著在他【空著的那隻手】上」→ 眼鏡跑到另一個人手上
③ 表演 「兩個人都站著」的舊句子殘留三處 → 坐下的動作外溢到另一個人身上
④ 刪錯 拆共用段時把「參考圖帶著淺笑,那不是它們的用途」當成不適用【刪掉】
→ 角色在被裁員的鏡頭裡咧嘴大笑
⑤ 時間 引子讓整段後移 1.5 秒,但台詞窗口還是舊的「From 1.8 to 5.5 seconds」
⑥ 缺漏 以為某顆「本來就有引子」,其實提示詞裡 `[Shot 1]` 只是格式說明、沒有內容
→ 模型不知道切點前該是什麼,自己用【推鏡】補過渡
✅ 改完一定要做的三件(比重寫更快):
① grep 舊設計的關鍵詞:舊機位(same side/profile/背景物件)、舊姿勢(standing/in his hand)、
舊時間碼(From X to Y seconds)。一個都不能留。
② 檢查【段落本身存不存在】:`[Shot 1]` 這四個字可能只出現在格式說明裡。
要找的是 `[Shot 1] Live-action…` 這種有內容的開頭。
③ 時間碼整段對帳:加了引子=所有後續時間碼要一起位移。
⭐ 這三件都可以用一行 script 做完,比拍壞一顆再重拍便宜太多。
④之二 ⭐⭐ 引子也用來突破【場景圖只有一個視角】(2026-09-20)
④ 講的是正反拍。同一個機制還能解另一件事:你只有一張場景圖,卻要拍它沒有的角度。
狀況:辦公室的場景圖是從桌子長邊側拍的;要拍「坐在訪客椅上看老闆」的 POV。
板子裡沒有那個視角。直接寫 POV → 模型自己造了一個房間。
解法:[Shot 1] 就用【場景圖自己的視角】當引子 → 切 → [Shot 2] 才是要的角度。
結果:房間完全正確(白板、書櫃、相框、玻璃隔間、窗、CRT、電話全部在對的位置)。
⭐ 為什麼有效:板子錨定的不是「這一顆的構圖」,是【這個房間長什麼樣、東西在哪】。
引子把那份事實放進同一次生成裡,之後的任何角度都從那份事實推出去。
⭐ 所以引子的內容不是隨便一個廣角 —— 要【盡量就是那張場景圖本身的畫面】。
⚠️ 引子只解決「這一顆」的房間,解決不了「連續幾顆之間」的一致。 每顆各自從側拍的板子推出 POV,推出來的都不一樣(2026-09-22 並排比對同一場五顆正打): 一顆多長出兩台電話和一疊資料夾、人退遠一倍;一顆太近、多一副鍵盤、看不到白板;一顆人偏左。 → 同一個視角要連拍好幾顆時,改用 ④之五。
④之五 ⭐⭐ 連續同視角的鏡頭:拿【已經拍好的那一格】當構圖錨點,不要每顆重推(2026-09-22)
狀況:S2 有五顆都是「Richard 坐在訪客椅上看老闆」的 POV 正打,每顆都用 ④之二 的
引子+切。五顆的房間、距離、桌上物件各不相同,剪在一起就穿幫。
做法:從【已經收的那一顆】截一格乾淨的 POV 畫面當母版 → 取代原本的場景圖,
同時拿掉引子與切點,整顆就是一個 POV 單鏡。
參考圖:BO-21F(臉)+ BO-21(臉)+ 母版格 ← 三張,跟原本一樣多
結果(兩顆,同 seed,各一次):
✅ 機位、景別、窗、書櫃、白板、相框、光與母版一模一樣
✅ 原本會自己長出來的鍵盤、電話都沒出現;畫面裡恰好一個人
✅ 沒有剪點(場景偵測零)—— 連帶拿掉了「台詞貼著剪點」這個口吃來源(§六之二④)
✅ 每顆省下引子+漂移餘裕:226 → 192 幀、175 → 141 幀
寫法的三個要點:
① 母版標成【構圖錨點】,不是首幀
<Picture 3> is the composition anchor of [Shot 1]: a still of this exact camera set-up …
⭐ The camera position, the shot size, the room, the furniture and the light are exactly as in <Picture 3>.
⚠️ <Picture 3> sets WHERE THE CAMERA IS AND WHAT THE ROOM LOOKS LIKE — not his pose,
his gaze or his expression, which are written in the shot below.
② 母版裡有那個人,又接了他兩張臉 → 要明寫三張是同一個人
「<Picture 1>, <Picture 2> AND THE MAN IN <Picture 3> ARE ONE AND THE SAME MAN」
+「恰好一個人,坐在 <Picture 3> 裡那個人坐的地方」
③ 共用段裡描述房間物件的句子【刪掉】,改成「exactly as in <Picture 3>」
原本那段寫了 CRT、鍵盤、電話 —— 那正是各顆多長出來的東西(§五:提到什麼就長什麼)
挑母版的規則:
✅ 嘴閉著、沒有動態模糊、手是靜止的
✅ 從【最具代表性的那一顆】截,而且之後固定不換 —— 所有同視角的鏡頭共用同一張
🛑 不要串接(A 的末格當 B 的母版、B 的末格當 C 的母版):生成圖每接一次就掉一次品質
⚠️ 避開片尾 1.3 秒的崩解區;截在那裡要放大檢查
⚠️⚠️ 母版的【視線與表情】會壓過文字 —— 圖壓過文字的又一例:
母版的眼睛直視鏡頭 → 規格寫「抬眼 0.8 秒後回到紙上」,成品抬了就沒回去
→ 母版要挑【這場戲的預設狀態】(例如眼睛在紙上),不是某個節拍的瞬間
⚠️ 為什麼不用 I2VA:同一個專案拍腳那條線(2026-09-13)做過對照 —— 同一張定格圖,I2VA 拿到像素但臉不是那個角色、還要換 fl2va 檢查點; Ref2VA 拿到構圖、臉由臉部參考圖接回來。定格圖在手上時,Ref2VA ≥ I2VA。
⚠️ 信心度:兩顆、各一次、同一顆 seed、同一場戲。反打(另一個視角)還沒測。
⭐ 第二個專案成立(武俠測試 2026-09-26):越肩對峙拍好一顆,之後兩顆都拿它的一格當錨點 → 機位、景別、兩人位置、沙暴、光三顆一致,像同一個舞台。 ⭐ 新招:錨點裡不該出現的東西,先用生圖模型從錨點拿掉。 後一顆發生在斗笠被劈掉之後 → 用 Gemini 只改一件事(拿掉斗笠、頭髮散開)再當錨點 → 兩顆 seed 畫面裡都沒有斗笠。 這是「圖裡有什麼就畫什麼」的反向用法:要它消失,就讓它從圖裡先消失。
🛑 同一張錨點+同一顆 seed → 開場收斂成同一套動作,不管後面寫什麼(2026-10-03,武俠測試):
三份招式完全不同的提示詞(F1 直拳低踢側踢/F2 肩撞膝撞旋踢/F3 截路低踢掌擊),共用一張「兩人擺架勢」的錨點
→ 同 seed 的三顆,前 1 秒幾乎是同一套直拳+低踢,之後才各走各的
→ 連續的動作戲,每一顆的錨點要是【這一顆的起點】(上一顆的末格、或不同站位的板),不要全場共用一個中性起點。 → 剪接時開場那 1 秒只能丟掉。 ⚠️ partly:2 個 seed;沒有「換錨點、同 seed」的對照。
④之三 ⭐⭐ 要鏡頭「轉 90 度」,寫【可觀察的後果】,不要寫角度(2026-09-20)
寫「the camera is at the visitor's seat, 115cm eye height, looking across the desk」—— 模型只是沿原軸切近,空間關係一格沒變。改寫成後果,一次就對:
⭐ 第一句就寫【同一個人從側面變成正面】:
「在開頭那顆廣角裡他是三分之四側面、面向畫右。⚠️ 這裡他不再是側面:
鏡頭已經繞到另一個人坐的位置,所以他【正面對著鏡頭】,肩膀正對、臉朝鏡頭。
那就是你判斷鏡頭有沒有移動的依據 —— 他從側視圖變成正視圖。」
⭐ 再給兩個跟著轉的幾何:
① 桌子不再橫過畫面,改成【朝鏡頭縱深】、近端貼著畫面下緣
② 他背後換成【另一面牆】(原本背後的白板書櫃退到畫面邊緣、側面看)
⭐ 最後配 ⑤ 的背景否證物(正反兩邊各一個):
正打:「玻璃隔間現在在鏡頭背後,不在畫面裡 —— 看得到它就是站錯邊」
反打:「白板與書櫃現在在鏡頭背後 —— 看得到它就是站錯邊」
🛑 不要寫「鏡頭轉了 90 度」或公分/角度數字。模型認的是【畫面該長什麼樣】,不是機位座標。
④之四 ⭐ POV 裡擋掉「自己的身體」:用畫框,不要用禁令(2026-09-20)
🛑 失敗:「no second man, no shoulder in the foreground, no arm, no hand, no part of him」
→ Richard 的手與袖口還是出現在畫面右下角。(沒有 negative channel,禁令只是把詞餵進去)
✅ 成功:把畫框的下緣定義成一個【實體】,身體就沒地方待 ——
「⭐ 畫面的【下緣就是桌面的近端邊緣】:桌子橫過畫面最下方,畫面到那裡為止,
所以桌面以下、桌子這一側的東西完全不在畫面裡 —— 整個下邊界都是木頭。
⭐ 他自己的手放在膝蓋上,在桌面以下,也就是在畫面下緣以下。」
⭐ 通則:POV 的「看不到自己」不是靠排除,是靠【畫框剛好切在他身體上方】。
找一個場景裡現成的水平面(桌面、吧台、車窗、欄杆)當下緣。
⑤ ⭐ 背景否證物:給一個「出現就代表錯了」的物件
判斷機位站錯邊,最快的判準不是臉的角度,是背景裡有沒有那個東西:
「白板在對手背後的牆上 —— 這一顆只要看得到白板的任何一部分,就代表機位站錯邊。」
把方向錯誤翻譯成一個畫面裡找得到的物件,驗收成本從「感覺怪」變成「找得到/找不到」。 同一招可以套用在所有空間錯誤上: 座位錯 → 桌緣在畫面的哪一角;軸線錯 → 窗光從哪邊來;景別錯 → 桌面有沒有入鏡。
⑥ ⭐⭐ 剪點位置可重現 → 多段鏡頭可以分段重跑再剪
同一份提示詞(只改其中一段的文字)、同一顆種子、同樣的段落結構,
兩次生成的剪點落在同一格(4.041667s = 第 97 格,兩次都是)。
所以前段和後段可以各自收工,再用 ffmpeg 接起來:
ffmpeg -i A.mp4 -i B.mp4 -filter_complex "\
[0:v]trim=start_frame=0:end_frame=97,setpts=PTS-STARTPTS[v0];\
[1:v]trim=start_frame=97,setpts=PTS-STARTPTS[v1];[v0][v1]concat=n=2:v=1:a=0[vout];\
[0:a]atrim=end=4.041667,asetpts=PTS-STARTPTS[a0];\
[1:a]atrim=start=4.041667,asetpts=PTS-STARTPTS[a1];[a0][a1]concat=n=2:v=0:a=1[aout]" \
-map "[vout]" -map "[aout]" -c:v libx264 -crf 16 -c:a aac -y out.mp4
⭐ 這改變迭代策略:不要追求「一次生成裡所有段落同時到位」 —— 那是 n 個條件同時成立的要求,迭代次數會指數上升。 實例:插入鏡頭的物理性與人臉的表情幅度分別在兩個版本裡各自成立,剪起來就是定稿。 ⚠️ 前提:兩次之間不要改段落結構與長度(改文字可以,改時間軸不行)。
⑥ 📎 POV 與一鏡到底:只要出現第二顆就是瑕疵
只要需求裡有「第一人稱/主觀鏡頭/一鏡到底/不要切」的意思,
輸出裡任何一個 [Shot 2] 都是瑕疵,不管那一顆本身拍得多好。
原因是提示詞擴寫本身傾向加切點(多顆鏡頭通常分數比較好)—— 在這裡那個傾向正好會毀掉你要的效果。
✅ 編成【恰好一顆】:沒有 [Shot 2]、沒有反角、沒有插入鏡頭、不換視點
✅ 動作節拍與運鏡都在那一顆裡面連續推進
✅ 變化用運鏡的文法帶(推、弧繞、跟隨、搖),而且起點、路徑、終點三件都要寫
⚠️ 外部來源。⭐ 但它和 §七之二② 是同一個機制的兩面: 運鏡與剪接都是全局的決定,你只能決定「這一顆有幾個切點」,不能分段商量。
⑦ ⭐⭐ 瞬間效果要綁在【事件】上,不要綁在【時間戳】上
一個只持續一瞬間的效果(閃光、一聲巨響對應的畫面、一個東西彈出來), 寫「在第 2.6 秒發生」很容易被挪走;寫「在【某個動作完成的那一刻】發生」會跟著那個動作走。
A 「2.6 秒閃一次,3.7 秒再閃一次」
→ 實測:只閃了一次,而且被挪到 4.17 秒(全長 4.46 秒,落在尾巴崩解區)
B 「牌子停在臉旁的【那一刻】閃一次,整支只有這一次」
→ 實測:切點從規格的 2.0 秒漂到 3.21 秒,閃光跟著漂到 4.71 秒 ——
但「切點之後 1.5 秒」對上了規格的「切點之後 1.4 秒」
⭐ 整段可以漂,段內的相對節拍是準的。 所以把效果掛在它的因上,不要掛在時鐘上。
⑧ 一顆生成裡的切點會【整體後移】,但段內節拍準
規格:2.0 秒切 實測:3.21 秒切(+1.2 秒)
所以:
1. 引子要寫得比你需要的長 —— 它會被吃掉一部分
2. ⭐ 引子本來就是【要剪掉】的(它的作用是錨定空間),所以後移通常吸收得掉
3. 但要確認【切之後那一段】還剩夠長:全長 − 實際切點 = 可用長度
(上例:5.87 − 3.21 = 2.66 秒)
4. ⚠️ 如果切之後的戲需要 N 秒,總長至少要給 N + 引子 + 1.5 秒漂移餘裕
⑨ ⚠️ 跨切點的【曝光會跳】,同一顆生成裡的兩段不共用曝光
實測(同一顆生成、同一個房間、同一組參考圖):
Shot 1 雙人中景 平均亮度 YAVG ≈ 77
Shot 2 單人近景 平均亮度 YAVG ≈ 112 ← 跨切點跳了約 45%
原因推測:近景那一段吃到了「特寫要明亮、低反差」這類打光描述,中景沒有。
🛑 **在提示詞裡寫「兩段曝光一致」沒有用 —— 已實測失敗。**
整整一段的正面描述(「這是同一個房間、同一組燈、同一個連續的瞬間;切近不會改變畫面有多亮,
只會改變畫面裡有多少房間」)加進去之後,跳幅和沒加以前一樣:76 → 108(+43%)。
⭐ 同一個道理:模型聽得懂東西長什麼樣,**聽不懂階調**。曝光和高光壓不壓得住、暗部死不死黑
一樣,不在文字的控制範圍內。
✅ **唯一可靠的解法是剪接前逐段套曲線。** 拍的時候只要知道它會跳、把它列進剪接的待辦就好
七之三、🔴 說「模型做不到」之前,先窮舉
「指令大幅加重,輸出卻完全不動」看起來像是模型的界線,但常常不是。 生成的失敗有很大一部分是機率性的;只變動一個維度(通常是文字)就宣告做不到,是錯的。
實例(同一個專案,三次誤判):
2026-08-21 早上 四次失敗 → 判定「H3 不畫插入鏡頭」 → 換一顆 seed 就成功了
2026-08-21 晚上 一支片 → 判定「H3 的微表情弱」 → 長度從 362 改成 192 就成功了
2026-09-18 把跑過最長的 209 幀寫成「單顆上限 8.7 秒」 → 362 幀當天實跑成功
⚠️ 代價不只是那幾次生成:錯誤的「做不到」會直接改掉工作流設計 (那天已經把「插入鏡頭靠取景和剪接暗示」寫進分鏡慣例了)。
✅ 下結論前至少:換三顆 seed,再各換一次長度、checkpoint、解析度
✅ 做不到就說「這個配置下做不到」,不要說「模型做不到」
✅ 筆記裡寫「實跑到 N(試過 a、b、c)」,不要寫「上限 N」
✅ 先確認數據乾不乾淨,再推結論(例:一筆含模型載入時間的耗時被拿去算成本指數,算出 1.65,實際約 1.4)
⚠️ 這條和「一次只改一個變因」不衝突:迭代時一次改一個;下「不可能」的結論之前要多改幾個。
八、驗收:用數字,不要用眼睛
肉眼會被期待欺騙。抽幀算 PSNR,快而且客觀。
# 表情有沒有發生:抽「該動之前」和「該動之後」各一幀
ffmpeg -ss 5.2 -i out.mp4 -frames:v 1 a.png
ffmpeg -ss 5.9 -i out.mp4 -frames:v 1 b.png
ffmpeg -i a.png -i b.png -lavfi "[0:v][1:v]psnr" -f null -
| PSNR | 意義 |
|---|---|
| > 45 dB | 完全靜止(凍結幀 60–65 dB) |
| 30–40 dB | 只有呼吸級的微動 ← 該有情緒的地方出現這個就是失敗 |
| 18–28 dB | 明確的動作 |
| < 15 dB | 切鏡或劇烈變化 |
掃一遍相鄰 0.2 秒的 PSNR,看曲線的低點落在哪裡。 低點應該落在情緒節拍上;如果情緒節拍反而是高點(最靜),那支就是失敗。
對白用【逐字時間】驗,不要只用耳朵(2026-09-24)
mlx_whisper clip.mp4 --model mlx-community/whisper-large-v3-turbo \
--word-timestamps True --output-format json --output-dir out/
# 中文加 --initial-prompt "以下是繁體中文的句子。"
讀逐字清單,四種壞法都會變成看得到的字:重講(同一串字出現兩次)、假起頭(正句前面多一段)、 晚開口(第一個字的時間)、提示詞被唸出來(那些字是你自己寫的)。 ⭐ 兩版的逐字時間一模一樣 = seed 在決定節奏(§六之二④之二 成因四)。
⚠️ Whisper 會在片尾的安靜處幻聽一句短的(通常是 "Thank you.")—— 片子裡沒有這句
⚠️ 聽寫到人聲 ≠ 嘴在動:模型也會生畫外音。先逐格看嘴 ——
嘴閉著的那段聲音,剪接時換成環境音就好,那一顆不必丟
(H201c 無聲鏡頭有人聲、H202b 前段在唸提示詞,兩顆嘴都閉著,都救回來了)
⚠️ 反過來,嘴在動、聲音被你靜音或挪走 —— 頭再小導演也看得出來(H207,Ray 一眼就抓到)
🛑 比對多顆 seed 時,每一顆都要逐格放大看,再下結論(2026-09-26)
實例:同一顆鏡頭兩顆 seed。我只放大檢查了其中一顆(失敗:斗笠套在脖子上),
另一顆只看了縮圖就一起判成失敗。導演問「為什麼不用這顆」→ 逐格放大才發現它是可用的那一顆
⭐ 縮圖看得出構圖,看不出【動作的過程】。多跑 seed 的價值在挑,挑之前每一顆都要看到同樣的深度。
🛑 不要用單格靜幀判定【動作】的好壞
抽格驗收很有用,但它只能回答「畫面裡有什麼」,回答不了「那是什麼動作」。
實測(2026-09-20):
一顆雙人中景,我從第 80 格的靜幀判定「老闆兩隻手都在他身上,像架著他」,
據此推了【兩次重跑】。
導演看完整支影片:「這版沒什麼大問題。」
⭐ 動起來那兩隻手是「扶著、把他送出去」—— 一個有起點有終點的動作,
靜幀只截到它的中間,看起來就變成了一個【姿勢】。
姿勢可以用靜幀看,動作不行。 手勢、重心轉移、節奏、一個動作的意圖, 都只存在於前後幾十格之間。
✅ 靜幀適合驗:景別、構圖、誰在畫面裡、服裝、場景、光的方向、背景有沒有穿幫
🛑 靜幀不適合驗:手在做什麼、重心、動作的意圖、表演自不自然、節奏
→ 這些要看完整支,或至少抽一段連續的幀
⚠️ 特別危險的是【接觸】:一隻手碰在另一個人身上,靜幀看起來永遠像是靜止的姿勢
檢查位移(後製要貼合的鏡頭)
ffmpeg -i a.png -i b.png -filter_complex \
"[0:v][1:v]blend=all_mode=difference,eq=contrast=7" diff.png
# 該區域全黑 = 完全沒動,可以安心貼合
量座標要印剖面,不要靠自動偵測
主體周圍有其他發光元素時,固定門檻和梯度偵測都會誤判,而且不會告訴你它錯了。
cx = 383 # 目標的水平中心
for y in range(0, 800, 10):
print(y, px[cx, y])
特徵很好認:本體是一段又長又平的高原,兩端各一次陡降; 光暈是漸變的斜坡;其他發光元素是孤立的窄峰。
九、音訊參考(ref_audio_0)能做什麼
H3 可以吃一段音訊當參考,標籤是 <Audio 1>,保留標記寫 reference:
<Audio 1> is the voice-timbre reference for <Subject 1> (S1).
<Audio 1>: reference - only the timbre, pitch and delivery are referenced;
none of its original wording is carried across.
⚠️ 音訊完全不進文字編碼器,只有 <Audio 1>: 這個標籤進去,波形直接送 DiT。
所以在提示詞裡描述那段音訊沒有用,它只是個指標。情緒還是要寫在 delivery 欄位。
實測:能驅動表演,但不能當聲音來源
拿一段 6 秒的真人音色參考去生一句新台詞:
有生出人聲 ✅ 嘴型、呼吸、頭部節奏都對
參考有被吃到 ✅ 接線正確時,音高會往參考音移動(242.4 → 222.2 Hz)
音高仍偏高 ❌ 參考 192.8 Hz,生成 222.2 Hz,差約兩個半音
音域仍偏窄 ❌ 參考跨 175 Hz,生成只有 117 Hz
口音漂移 ❌ 台灣腔的參考音,生出的仍帶大陸腔
音質 ❌ 聽得出電子合成感
⚠️ 接線很容易搞錯:獨立音檔要接 ref_audio_0,
不是 ref_video_audio_0(那是給參考影片自帶音軌用的)。
接錯的話音色完全不會轉移,而且不會報錯——第一次測試就是這樣白跑一輪。
所以定位是「表演的鷹架」:讓嘴型和呼吸節奏更準,最終音軌照舊另外配。
⚠️ 口音漂移是生成語音的通病,不限於 H3——同一個專案在 ElevenLabs Voice Design
和阿里雲 DashScope 的 instructions 參數上都遇過。
模型只要有自由發揮的空間,口音就會漂回訓練資料的多數腔調。
要特定口音就用真人錄音,或用真人錄音做音色克隆。
十、⭐ 表演的最後一哩靠剪接,不要一直改提示詞
寫到後來會遇到一種情況:節拍、遮蔽、反向一拍全部做對了, 角色也確實照著演了,但看起來還是假。
這時候不要再改提示詞。改剪的。
為什麼提示詞救不了
H3 把每個時間戳當成一個要「到達」的狀態。 它會老實地在 1.700 那一刻讓角色處於「驚嚇」狀態 —— 但真人的驚嚇是提前量(身體比意識快 0.2 秒), 而情緒的轉折是斷裂(某一刻突然放下),不是平滑的插值。
這兩件事正好是表演最需要的,而 H3 結構上不做。
兩種症狀,兩種剪法
症狀一:反應慢半拍
刺激出現了,角色過了一秒才反應。那一秒的空白就是「假」。
剪法:把空白剪掉,用插入鏡頭蓋過去
A 平靜,刺激剛出現
B ★ 切到插入鏡頭(那個刺激的特寫)
C 切回來,角色【已經在反應】了
觀眾沒看到「開始反應」的那一刻,大腦自己補 ——
而且補出來的一定比演出來的快、比演出來的真。
這是處理反應鏡頭的標準做法,原因就是反應的前 0.2 秒很難演對。
症狀二:轉折太平滑
情緒的兩端其實都演出來了,但中間是連續漸變, 觀眾沒有比較的基準,只覺得「表情慢慢變了」。
剪法:把兩端拉近,中間插一刀
A 情緒的一端(緊繃的頂點)
B ★ 一個短插入鏡頭
C 情緒的另一端(已經放下)
原本隔 3.7 秒的漸變,剪完只隔 1 秒的插入鏡頭。
同一段素材,讀起來完全不同。
拍的時候要留什麼
✅ 拍長一點 留給後製剪掉空白的餘裕
✅ 一定要有插入鏡頭 那是剪接的材料,沒有它就沒得剪
✅ 情緒的兩端要拍足 中間的過渡可以丟掉,兩端不能省
❌ 不要為了節奏一直改提示詞
插入鏡頭本來就要拍(交代空間、給觀眾喘息), 所以「留剪接的餘地」幾乎沒有額外成本。
⚠️ 實例:某一場戲的兩個鏡頭各改了四版提示詞都沒解決, 同一天用上面兩種剪法各剪一次就都解決了。 改四版的成本遠高於剪一次。
十一、後製的分工
有些東西永遠不要交給 H3:
| 項目 | 為什麼 |
|---|---|
| 螢幕內容(手機、電視、平板) | UI 文字一定是亂碼 |
| 品牌資產(卡牌、logo、包裝) | 符號會被畫壞 |
| 任何要精確的文字 | 同上 |
| 停頓與定格 | 生成不可控,剪接 100% 可控 |
螢幕一律「只給亮度不給內容」——寫「均勻冷白光」,內容後製合成。
⚠️ ffmpeg 對靜圖做 alpha fade 一定要 -loop 1,否則單張圖的 PTS 停在 0,
alpha 永遠是起始值,整張全透明而且不報錯。這種靜默失敗最難查。
# ❌ 疊圖完全不出現,也不報錯
ffmpeg -i base.mp4 -i card.jpg -filter_complex \
"[1:v]scale=W:H,format=rgba,fade=t=in:st=2:d=0.7:alpha=1[c];[0:v][c]overlay=X:Y"
# ✅
ffmpeg -i base.mp4 -loop 1 -framerate 24 -t <長度> -i card.jpg -filter_complex \
"[1:v]scale=W:H,format=rgba,fade=t=in:st=2:d=0.7:alpha=1[c];[0:v][c]overlay=X:Y"
十二、跨集重複使用
有固定儀式或轉場的系列作,把它拍成通用資產:
不綁任何一集專屬的東西(道具、牌面、台詞)
不露主角的正臉(只拍手)
留白給後製合成
一次拍好,之後每集直接沿用。省的不只是算力,是一致性—— 同一個儀式每集長得一模一樣,本身就是品牌。