Skip to content

我刪掉了 AI 影片製作工作流裡最貴的那一步

MiniMax H3 的 Ref2VA、一次記憶體爆炸,和一個我看了兩小時的錯儀表

作者:Ray 日期:2026 年 8 月 14 日


H3 不是「唸咒語」的 AI。

它比較像一個聽話但完全不會發問的實習劇組。你交一張工作單給他們,他們一口氣把片子拍完,連現場收音和配樂都錄好,中途一句「你這裡是想要⋯⋯嗎?」都不會問。

所以重點不是你的句子寫得多漂亮,是工作單有沒有填完整。

上一篇我寫的是怎麼花 $2 租到一台能跑它的機器。這一篇是我拿那台機器去問一個具體的問題:

能不能不要畫關鍵幀。


為什麼是這一步

做上一支片的時候,我的流程是這樣的:

先用圖像模型生關鍵幀——每個鏡頭的第一格長什麼樣。生完篩,篩完修,修完再生。43 張圖,其中 18 張是重做的,某一張改了 3 次。

然後才把那些圖丟給影片模型,讓它動起來。

那 43 張圖花了我 4 到 5 個小時。 影片生成的部分反而快,因為那時候我人已經不在電腦前了。

所以「換一個更快的影片模型」對我來說一直是個假議題。真正貴的不是動起來那一步,是為了讓它動起來而先畫的那些圖。


Ref2VA 是選角,不是動畫

H3 有 5 種模式,字母是縮寫:T 是文字、I 是圖、FL 是首尾幀、Ref 是參考、VA 是影像加聲音。

前面 4 種都在回答同一個問題:這一格畫面長什麼樣,然後往下演。 你得先有那一格。

Ref2VA 問的是另一個問題:這個人長什麼樣,讓他出現在一個還不存在的鏡頭裡。

差別是:前者是動畫,後者是選角。

如果選角這條路走得通,那 43 張關鍵幀就不用畫了——你只要有角色的照片。


第一支就成了

我拿了 2 張圖進去。一張是主角的正面棚拍,一張是那隻發光公仔的白底商品照。

沒有給場景圖,沒有給首幀。房間、床、床頭櫃、窗外的黑,全部只用文字描述。連她身上那件家居服都是文字寫的——參考照裡她穿的是完全不同的衣服。

5.88 秒的片,415.27 秒跑完。

出來的東西我可以直接用

不是「當草稿可以」,是眼鏡的金屬細框、髮絲、木紋、床單的皺褶都撐得住。而且那隻公仔的融化底座、左耳的橘色、右耳的深灰、粉色肉球、肚子的暖光,全部對。

那一刻我知道,4 到 5 個小時可以不用花了。


然後我把它拉長,機器就爆了

一支 5 秒的片證明不了什麼。真正的片段有 13 秒,中間要切 3 次鏡頭。

我把長度改成 328 格,按下去,走開。

回來的時候 ComfyUI 已經死了,系統日誌一路刷著同一行:

WARN: container is unhealthy: triggered memory limits (OOM)

記憶體不足。 但奇怪的是,機器上明明還有空間。


我看了兩小時錯的儀表

在 Linux 上看記憶體用 free。我從早上就掛著一個監控,每 10 秒印一次:

09:45:22  used=83GB  avail=40GB

83 GB 用掉,還剩 40 GB。看起來很安全。

它死的時候,RunPod 自己的日誌印出這一行:

INFO: high memory utilization - 52.96GiB / 55.88GiB (94 %)

55.88。

我的容器上限根本不是 123 GB,是 55.88。

原因是容器裡的 free 顯示的是整台實體機的記憶體——那台機器同時跑著別人的東西。我一整個上午都在讀鄰居的儀表。

正確的數字要去別的地方拿:

bash
cat /sys/fs/cgroup/memory/memory.limit_in_bytes

這件事讓我損失的不是錢,是判斷。 我根據那些數字寫了 3 次分析,每一次的前提都是錯的。

上一篇我寫「$2 買到的不是算力,是看得見內部」。這一篇要補一句:看得見內部,前提是你讀的是自己的那一格。


為什麼 13 秒會塞不下

搞清楚上限之後,帳就好算了。

H3 的權重不放在顯示卡裡,是整份留在系統記憶體,需要的部分才搬進去。Ref2VA 這條路要載兩份大的:模型本體 21 GB,理解文字的那顆 25 GB。

46 GB,還沒開始算畫面。

55.88 減 46,剩不到 10 GB 給影片本身。

而 328 格、每格 100 萬像素的畫面,需要 30 GB。

差了 20 GB。而且降解析度也救不了——降到 0.5MP 仍然要 61 GB,還是超過。這台機器對這件事就是不夠,沒有轉圜。


換一台,跑得動,但沒有比較快

我關掉那台 $0.99/hr 的 RTX 5090,在 RunPod 上另開了一台 $2.89/hr 的 H100 PCIe。

容器上限 267.3 GB。同樣的工作跑起來峰值 75.8 GB,只用了 28%

跑完了。3 段連著排隊,中間沒有再出事。

但有個數字我沒料到。

同樣的工作,H100 只比 5090 快 10% 到 30%

不是快 1 倍,不是快 3 倍。以每支影片的成本算:

RTX 5090    $0.99/hr    (跑不動)
H100 PCIe   $2.89/hr    18 分 22 秒   →  $0.88 一支

貴 2.6 倍,換來的是「跑得動」,不是「跑得快」。

這條要記住:大機器買的是記憶體,不是速度。 塞得進小機器的工作,留在小機器上做。


那 13 秒裡發生了什麼

現在講結果。

一次生成,13.67 秒,裡面切了 2 次鏡頭:中景側面 → 高角度俯視近景 → 公仔的極特寫。

我在工作單上寫「第 5.5 秒切」,它就在第 5.5 秒切

我寫「第 12.5 秒,那 2 顆圓點眼睛慢慢閉一次再張開」,它就在第 12.5 秒閉了一次眼

3 個鏡位的光線條件完全不同——第一鏡只有床頭燈,第二鏡陡俯角,第三鏡整個畫面只剩公仔的肚子在發光。那張臉從頭到尾是同一個人,金框圓眼鏡、鬆掉的丸子頭、幾根落在臉頰前的碎髮,全部沒有跑掉。

而這些東西,我一張關鍵幀都沒有畫。

那一天稍後我又跑了另一段。那段更難:全暗的房間、手機螢幕的冷藍光從下方硬打上臉、最後只剩公仔的暖光。3 種截然不同的打光,臉還是沒漂。

這就是我要的答案。


唯一的失敗,差一句話

最後 1 秒崩了。

12.5 秒的畫面是完好的。13.33 秒,整格變成無法辨識的色塊——不是變糊,是變成一團噪訊。

原因很蠢,而且完全是我的錯:我的工作單只寫到 12.5 秒。

片子有 14.37 秒。剩下那 1.87 秒沒有人交代要拍什麼,實習劇組就自己發揮了。

前一天我跑過一支 15 秒的片,完好到最後一格。回去比對,差別只有一句話——那支的結尾我寫了:

Hold to the end.

撐到最後。

4 個字。


那張工作單,最後長這樣

跑了兩天之後,我對這個東西的理解變成這樣:

它不會問問題,所以每一格都要填。 你沒寫的東西它不會空著,它會自己填一個。

否定句是無效的。 你寫「不要出現第二個人」,它腦子裡就裝進了「第二個人」。想像你不希望弟弟吃餅乾——一直喊「不要吃餅乾」沒用,把餅乾收起來才有用。

長度是離散的。 它只吃特定的格數,你填別的它會無聲地跳到最近的一格。這就是為什麼我的片長總是 5.16667 秒這種怪數字——那不是編碼誤差,那是一塊樂高磚的真實長度。

長度會被當成速度讀。 給的時間比動作需要的長,它不會幫你留白,它會放慢。分配 1.5 秒給一次跌倒,你得到的是 1.5 秒的慢動作跌倒。重量來自「停」,不是「掉」。

身分要放對格子。 「這一格畫面長這樣」和「這個人長這樣」是兩個不同的欄位。放錯了,臉就會在兩個人之間閃爍。


省下來的是什麼

回到最開頭那個問題。

43 張關鍵幀、18 次重做、4 到 5 個小時——那一段不是變快了,是不存在了。

換來的成本是:一台大一點的機器,每支片多花 $0.5。

我不覺得這是「AI 讓影片變便宜」的故事。GPU 的錢從頭到尾都不是重點,兩天下來我一共花了不到 $10。

真正被換掉的是那 4、5 個小時我坐在螢幕前,一張一張看圖、一張一張決定要不要重做。

那些小時不會出現在任何一張帳單上。它們只出現在你晚上幾點能離開電腦。

想自己試一個下午:RunPod


本文的實測環境為 RunPod 租用之 RTX 5090($0.99/hr)與 H100 PCIe($2.89/hr),模型為 MiniMax H3 開源權重,於 ComfyUI 本地部署。

本文的 RunPod 連結為推薦連結,透過它註冊我會獲得少量回饋,不影響你的價格。

aidream.com.tw

MIT Licensed