先用 Blender 排好動作,能省下影片生成的 Token 嗎? 的文章封面

先用 Blender 排好動作,能省下影片生成的 Token 嗎?

Claude Code 和 Codex 的月費都繳了,能不能先讓 Agent 用 Blender 排好動作,再送去生成影片,少花一點試錯的錢?我們拿一段武打和一張運鏡示意圖試了試。

教學
發布
更新

先用 Blender 把動作排好,能不能少花一點影片生成的 Token? 我們這次就是想試這件事。

Claude Code 訂閱了,Codex 也訂閱了。月費都繳了,總想讓它們多做一點事情嘛。既然 Agent 可以在本地操作 Blender,能不能先把角色怎麼動、鏡頭怎麼走排好,看不順眼就改,滿意了再送去生成影片?

影片每生成一次就要花額度,動作還沒想好就送出去,每一輪試錯都在花錢。我們想把這段來回調整留在本地:先看白模怎麼動,鏡頭不對就改。Agent 也會用掉訂閱額度,但改一個動作,不用立刻再付一次影片生成的錢。

這次試下來,我們覺得可行。白模裡排的動作、圖上畫的路線,在成片裡都找得到,雖然中間也有幾處被改了。省多少錢還沒算出來,倒是先看到了這種做法能幫上什麼忙。

上次是方塊貓,這次讓兩個人打一架

上一篇〈Blender 3D 白模實測:AI 影片開拍前,我們先養了一隻方塊貓〉,我們先用白模檢查貓、紙船和店面的位置。那篇記錄的是用白模檢查畫面,還沒有白模直接送進 Seedance 的成片對照。

這次就直接送了。

Blender 裡左邊一個橘色角色空手,右邊一個青色角色拿劍,交手 6 秒。造型不用太講究,先把動作演出來。接著交給 Seedance 2.5:左邊換成紅衣角色,右邊換成紫衣女角色,背景換成指定場景,照這支影片打。

Blender 動作參考
Seedance 2.5 生成結果

下面就是實際提交的 Prompt,素材 UID 換成了看得懂的名字。

【生成目標】生成一段以【動作指導影片】為參考的武打視頻。武打動作需要有力量感與打擊感。

【動作指導影片】為動作指導視頻。 【紫衣角色參考圖】為動作指導視頻右側的角色。 【紅衣角色參考圖】為動作指導視頻左側的角色,不拿劍,只使用拳腳。 【場景參考圖】為實際場景。

將動作指導視頻中的場景替換為【場景參考圖】、右側的角色替換為【紫衣角色參考圖】、左側的角色替換為【紅衣角色參考圖】。

兩個角色的動作則按照【動作指導影片】中的動作設計產生。

【限制】【紅衣角色參考圖】不拿任何刀劍,僅使用拳腳。

這份 Prompt 大部分都在交代誰換成誰。至於怎麼打,一句「按照動作指導影片中的動作設計產生」就交出去了。

要是全靠文字,誰先舉劍、往哪裡劈、另一個人怎麼擋,每一步都要寫,還得交代兩人的距離和鏡位。Blender 已經演過一遍,這次就省掉了不少描述。動作仍然要排,但可以看著畫面改,不用一邊想像、一邊猜這句 Prompt 到底說清楚了沒有。

動作有看懂,紅衣角色還換了一招

之前做〈AI 影片延長後接起來會卡?〉時,我們已經用過 FFmpeg 抽幀。這次繼續用,把同一秒的白模和成片放在一起,大家自己看。

這次武打生成片是 24 fps。下圖幀號從 0 起算,秒數核對原檔時間戳;沒有把白模拉長或補幀。

動作順序同秒對照:上排 Blender 動作參考,下排 Seedance 成片;四欄為 0.5、1、2、2.5 秒。

兩片的時間/幀號 白模在做什麼 成片在做什麼
0.500 秒/12 左側空手戒備,右側持劍 分工一樣,鏡頭靠得更近
1.000 秒/24 持劍方抬臂,把劍帶向身後 紫衣角色做出同一階段的動作
2.000 秒/48 揮劍後壓低身體 紫衣角色也壓低身體,腿部已在畫面外
2.500 秒/60 起身,接近對手 兩人重新靠近
3.750 秒/90 空手角色向前伸拳 紅衣角色踢腿
4.000 秒/96 仍然伸拳 仍然抬腿攻擊

前面舉劍、下劈、壓低、起身,都能對得上。到紅衣角色反擊時,她把拳換成了腿。

3.750 秒第 90 幀與 4.000 秒第 96 幀:Blender 左側橘色角色伸拳,Seedance 紅衣角色抬腿踢向紫衣角色。

這一腳倒也沒違反「僅使用拳腳」,只是我們在白模裡排的明明是拳。如果那一拳就是戲裡不能改的動作,這裡還得處理。不過,前面的交手順序已經對得上,白模確實用上了。

還有一點我覺得滿有意思:橘色、青色的模型外觀沒有在對照畫面裡跑出來,原本那片簡化地面也換成了石板地、臥佛和遠山。簡化模型的動作留下了,外觀也換掉了。看這次的結果,我們猜字節跳動在這類替換上應該做得滿成熟,至少對照畫面裡沒有突然冒出一個橘色人偶。

鏡頭也靠近了。白模裡看得到全身,成片有些腿部動作已經在畫面外。這次沒另外寫一長串運鏡,兩人的交手仍然拍了出來;如果一定要全身入鏡,這個要求就得再補。

至於力量感,我們只隨手寫了一句「需要有力量感與打擊感」。這裡還有得調,先不用急著說模型做不到,也可能是我們自己還沒把要求寫好。

多出來的 4 秒,是我故意留的

白模只有 6 秒,我卻設了 10 秒生成。就是想看看:參考演完了,後面它打算怎麼辦?

結果還真繼續打。紫衣角色揮劍,紅衣角色閃避、格擋和回擊,到片尾才又回到對峙。

生成片後段:6.000 秒第 144 幀繼續揮劍,7.000 秒第 168 幀準備攻防,8.000 秒第 192 幀紅衣角色轉身,10.000 秒第 240 幀回到對峙。

它沒有停在白模的最後一個姿勢,後面又接了一段交手。至於從哪裡開始自己發揮,前面都已經拳換腿了,不能硬切在第 6 秒。這次多留的 4 秒,就是想看這個延續會長什麼樣。

動作可以先演,運鏡能不能先畫?

前一陣子大家也在玩這件事:在圖上畫一條線,模型能不能照著運鏡?我們也拿了一張港灣圖來試。從藍色小船旁出發,貼水繞過白船,鑽進岸邊建築,最後往上飛到教堂。路線就畫在這張圖上。

港灣運鏡示意圖:紫色細線與編號 1 至 4,標示從藍船旁繞白船,再穿入岸邊建築,向上抵達教堂的路線。

把這條線拿掉,光是說清楚路線就有得忙了。白船有兩艘,要從哪一側繞?繞完對準岸上哪個開口?教堂在上面,但鏡頭是直接飛過去,還是先鑽進下面的建築?腦子裡覺得很順的一段運鏡,寫成文字時,每個轉彎都得重新交代。

畫線的方便就在這裡:「從這裡,經過這裡,最後到那裡」,指著圖就能說。我們也想看看,這樣能不能少花一點寫 Prompt、來回解釋的時間。

Higgsfield 的 3D Jutsu 也在做類似方向的事:讓 Agent 建立可編輯的 3D 場景,再調物件、攝影機和動畫。先把場景擺出來,調好再生成影片,跟我們想用本地 Blender 做的事情滿接近。

圖上畫了線,Prompt 還是要補。比如要貼多低、在哪裡抬高、怎麼穿窗,以及那條紫線不要真的出現在影片裡。這次甚至寫了「禁止把標記轉化成光軌、繩索或場景物件」。路線拿去用就好,不用把我們的註記也一起拍進去。

我們把 12 秒拆成四段:0–3 秒從藍船到白船,3–6 秒繞船,6–9 秒穿入建築,9–12 秒向上抵達教堂。船留在原地,動的是攝影機。

有運鏡示意圖的港灣影片

生成出來後,最值得停下來看的地方是穿窗。約第 7 秒,鏡頭真的從薄荷綠建築的窗框穿進去,港灣的亮光退到後面,前方是一段暗通道。圖上沒畫室內,它自己補了一段路。

港灣運鏡時間序列:0、2.5、3、4、6.5、7.5、10、12 秒的原始影片畫面。

原本想要的 對照成片
0–3 秒:藍船旁貼水到白船 0.000 秒/幀 0,藍船就在左側近景;2.500 秒/幀 60,已接近白船船首
3–6 秒:繞兩艘白船一圈 3.000 秒/幀 72,從另一船側掠過;4.000 秒/幀 96,已轉向岸邊,離開得比安排的早,完整一圈也沒有從這組畫面確認出來
6–9 秒:穿入建築 6.500 秒/幀 156 還在窗外,7.000 秒/幀 168 穿過窗框,7.500 秒/幀 180 已在通道裡
9–12 秒:上升到教堂 10.000 秒/幀 240 從拱口往外看,12.000 秒/幀 288 抵達鐘樓外側

穿窗、爬升到教堂,都走出來了,抽出的畫面裡也沒看到紫線和編號。但繞船提早結束,跟我們指定的秒數有差。光看完可能只覺得「好像差不多」,停在同一秒對照,就知道差在哪裡。

如果再往 Blender 做,就能先看一遍鏡頭沿路走過去的畫面,哪裡被擋、哪個轉彎不順,都有機會在本地改。不過,在往下做之前,我們又想試一件事。

把線拿掉再生一次,結果也走到了

把運鏡示意圖拿掉,只留乾淨的港灣圖和文字,再生成一支會怎樣?

結果,沒有線也走到了。從藍船、白船進入建築通道,最後到教堂,主要幾段還在。文字已經交代了不少事情,少了圖,它也能做。

無運鏡示意圖的港灣影片

無示意圖版本的完整提交 Prompt 與模型設定尚未核實;這裡比較的是兩支輸出,不能當成只改一個條件的嚴格實驗。

港灣運鏡 0–4 秒逐秒對照:上排有參考線,下排無參考線,同欄同秒。

港灣運鏡 4–8 秒逐秒對照:上排有參考線,下排無參考線,同欄同秒。

港灣運鏡 8–12 秒逐秒對照:上排有參考線,下排無參考線,同欄同秒。

左邊有運鏡示意圖,右邊沒有。兩支影片同秒並排,幀號從 0 起算,沒有重新調速。

4 秒的差別很容易看。有線版已經把船留在旁邊、朝岸上走,無線版還在船邊。到 7 秒,兩支都來到薄荷綠建築的開口;10 秒走的是不同通道出口,最後也選了不同的構圖:有線版靠近鐘樓,無線版把圓頂和後方海面一起帶進來。

無線版的結尾滿開闊,也有它自己的走法。只看這兩支,還不能說畫線一定比較好,或把所有差別都算在那條線上。

但我還是會想畫那條線。尤其心裡已經決定從哪艘船旁邊開始、要穿哪個窗的時候,有圖就容易交代,也方便回頭檢查。把圖拿掉能生成,跟一開始要花多久才能把路線寫清楚,是兩回事。

武打也是。兩個人交手那麼多動作,先演一遍,要改哪一招就指哪一招,比全部靠文字解釋直接。創作者越清楚自己要什麼,reference 就越有值得準備的理由。

我們想減少的,就是「我想的是這樣,你卻往另一邊走」的情況。這次看到了參考的指引作用;至於少了多少偏差、少重生幾次,還得多做幾輪。

有 reference,為什麼還是會自己改?

回頭看武打片的 3.750 秒,白模出拳,紅衣角色卻出腿。港灣片也是,4 秒就朝岸上走了,原本還安排了一段繞船呢。大方向看得出來,細節卻會跑掉。都已經演給它看了,為什麼還會這樣?

我們去翻了 Seedance 系列的技術報告。1.5 Pro 明確寫了 Diffusion Transformer,音畫聯合生成則以 MMDiT 為基礎。2.0 的 model card 說明了文字、圖片、音訊與影片可以一起輸入,但參考素材怎麼進入生成過程,沒有交代到能讓我們追下去的程度。公開資料能帶我們理解這個系列的技術背景,還沒辦法還原 2.5 的完整做法。Seedance 1.5 Pro 技術報告Seedance 2.0 Model Card

先從公開的 Diffusion 方法來看。模型從噪聲開始,逐步生成畫面,文字或其他參考條件會在過程中引導它。Latent Diffusion 就用 cross-attention,把文字、框選位置等條件帶進生成。可以把它理解成:模型學著根據條件生成合適的畫面。但光是把條件送進去,並沒有要求每一步都像 Blender 的動畫指令那樣執行。Latent Diffusion 論文

那把引導加強一點呢?Classifier-Free Guidance 這個方法,會組合有條件和無條件的模型預測,調整生成的方向;論文裡也討論了品質與多樣性的取捨。不過,引導加強了,還是沒有多出一道「第 90 幀一定要出拳」的檢查。要把某個姿勢或路徑鎖住,得另外有相應的約束。Classifier-Free Guidance 論文

如果 Seedance 2.5 也是透過這類學習式的條件引導來使用 reference,就能理解為什麼參考明明有用,細節卻仍可能偏掉。這個「如果」要留著:我們還不知道 2.5 採用了哪一種引導做法,也不能靠這幾篇論文,就說找到了拳變成腿的原因。

但用在製作上,我們已經願意繼續走這條路。複雜的交手先用 Blender 演一遍,想走的運鏡先畫出來,意圖就有了可以對照的畫面。不能改的那一拳、那個轉彎,再回到成片確認。原片、Prompt 和同秒對照都放在上面,哪裡跟上、哪裡改了,大家也可以自己看。

這次的結論就這麼簡單:先在本地把動作和鏡位排好、改順,再花額度生成。省下多少 Token 還要繼續算,但不用每個動作還沒想清楚,就先付一次生成的錢。

推薦閱讀 RECOMMENDED
教學Seedance 2.5 Prompt Skill 到底管什麼?參考圖、故事板與首幀一次拆開教學Blender 3D 白模實測:AI 影片開拍前,我們先養了一隻方塊貓