低顯存也能輸出高解析度影片|MiniMax H3 二採 720p 以上(ComfyUI 模板與教學)

作者:

分類:

只要用過 MiniMax H3,大概都遇過這個畫面:解析度一往上拉,ComfyUI 的節點就變紅,跳出 OutOfMemoryError 或 out of memory。在 RTX 5070(12GB)、RTX 5080(16GB)這類顯卡上,一採(第一次採樣)超過約 0.4 MP(864×480)就容易爆,也就是說,想直接生成 720p 以上的影片很吃力。

這篇文章整理的是另一條路:二採。先用 0.4 MP 完成最花力氣的第一次採樣,再把結果放大、只用 3 個低噪聲步驟重新精修,最後得到 至少 720p 的影片。文章會從「OOM 為什麼會發生」講起,接著帶你在已經會用 MiniMax H3 的基礎上補裝二採需要的 Custom Node,並拆解模板裡兩組最容易看不懂的數字:一採的 9 個數字(1 → 0)與二採的 4 個數字(1 → 0 的尾段)。

閱讀建議:如果你只想先跑起來,看第三~五章(模板、安裝、載入)就夠了。想知道「為什麼這樣設」再看第六~八章。這篇假設你已經看過 ComfyUI + MiniMax H3 本機 AI 影片教學,ComfyUI、Director、H3 主模型與 Turbo LoRA 都已經裝好;沒有的話請先回去照那篇完成。

文章目錄

  1. OOM 是什麼?為什麼一採超過 0.4 MP 就爆
  2. 二採怎麼解決:先低解析度、再放大精修
  3. 兩份模板:下載、R2V 與 FL2V 怎麼選
  4. 安裝二採需要的 Custom Node 與小模型
  5. 載入模板、換上模型、檢查紅色節點
  6. 一採的 9 個數字(1 → 0)怎麼訂的
  7. 二採的 4 個數字(1 → 0)怎麼訂的
  8. 二採的自動解析度:跟著一採變,至少 720p
  9. 實際出片流程與 720p 裁切
  10. 調整方向與常見問題
  11. 參考範例影片

一、OOM 是什麼?為什麼一採超過 0.4 MP 就爆

OOM 是 Out Of Memory,記憶體不足。生成影片時,模型權重、運算中間結果、最後解碼成影片的畫面,都要放進顯示卡的 VRAM;某一步需要的空間超過可用 VRAM,又沒辦法暫時搬到系統 RAM,就會 OOM。ComfyUI 會把當下的節點標紅,而且程式還活著,改設定後可以重新 Queue。OOM 與「直接崩潰」的差別、--reserve-vram 的用法,在 前一篇的 OOM 小節 有完整說明,這裡不重複。

為什麼是 0.4 MP 這條線?MP 是百萬像素。H3 本身的主模型就有約 21GB,比 12GB、16GB 的顯卡還大,一直都靠「一部分放 VRAM、一部分搬 RAM」在跑。真正決定會不會爆的,是 隨「像素數 × 影格數」一起放大的運算空間,以及最後 Video VAE 解碼的瞬間尖峰:

項目 隨什麼增加 為什麼會逼近 VRAM 上限
模型權重 固定 21GB 的主模型本來就放不進 12/16GB,需要 offload,已經佔掉大部分緩衝
Transformer 的運算空間 像素數 × 影格數 解析度越高、影片越長,同時要處理的 token 越多。一般而言注意力的成本成長得比 token 數更快
Reference 圖、音訊 參考圖張數與尺寸 每多一張參考圖都要多佔一份空間
VAE 解碼 最終輸出解析度 採樣結束後一次要把整段 latent 還原成畫面,是常見的瞬間尖峰

以 16:9 來看,0.4 MP 約 864×480(480p);拉到 0.5 MP 約多 25% 的像素。這個增量看起來不大,但只要剛好跨過臨界點,結果不是「稍微慢一點」,而是直接 OOM。依本站實測經驗,RTX 5070/5080 一採想直接做到大於 0.4 MP 就很容易遇到,更別說直接做 720p(約 0.92 MP)或 1080p。

↑ 回到目錄

二、二採怎麼解決:先低解析度、再放大精修

二採(Two-pass)的想法很單純:把「決定影片長什麼樣子」和「把細節補齊」拆成兩次做,而且兩次都不必在高解析度下從頭算到尾。

一採(第一次採樣) 二採(Refine 精修)
解析度 0.4 MP,例如 864×480 放大到約 0.9 MP 以上,至少 720p
步數 8 步(搭配 Turbo LoRA) 3 步
從多少噪聲開始 從 1.0 的純噪聲開始,從無到有 從約 0.32 的低噪聲開始,在已有畫面上修
負責什麼 構圖、動作、人物、對白與聲音節奏 補皮膚、毛髮、邊緣等細節,把畫面撐到 720p 以上
記憶體負擔 像 0.4 MP 的一般生成,已知跑得動 解析度較高,但只有 3 步,且模板搭配前饋分塊來壓低峰值

為什麼二採能克服 0.4 MP 的限制?要分清楚三件事,才不會誤會:

  1. 最重的部分留在低解析度。8 個高噪聲步驟是整支影片最花運算的部分,它被限制在 0.4 MP,所以不會越線。
  2. 高解析度只做 3 個低噪聲步驟。二採的每一步在 720p 以上的尺寸其實仍比一採重,單次的峰值並不會自動變小,所以模板另外用了兩個「分塊」手段把峰值切開:前饋分塊(把 token 切成 4 份依序算,結果與不分塊相同,只是變慢)此外 Refine 節點本身也提供空間分塊與時間分塊選項(把畫面或影格切開,分次前向再接回,是否開啟請看節點上的開關)。這些都是用速度換記憶體。
  3. 放大不靠採樣。模板用 Lanczos 像素插值放大,再交給 VAE 重新編碼(節點標題寫「Lanczos+FP16重編碼」),不需要再跑一個大型模型來放大,所以「放大」這一步不是主要的 OOM 來源。

要提醒的是:這兩份空白模板的檔內說明仍保留「尚未做 GPU 生成測試」的原始註記;文末已有使用 RTX 5080(16GB)完成的二採範例,供你查看實際成片。單一範例不能保證所有顯卡與片長都不會 OOM;如果你用的是 12GB 的 RTX 5070,仍可能需要縮短片長、增加分塊數,或調整 --reserve-vram 並實測。

↑ 回到目錄

三、兩份模板:下載、R2V 與 FL2V 怎麼選

兩份模板放在同一個雲端資料夾,檔名裡的「空白製片模板」表示圖片與 Prompt 都是空的,要自己填:

  • Google Drive 模板資料夾
  • H3參考幀_R2V_RTX5080_720p二採_空白製片模板.json:用 1~數張參考圖生成影片(Reference to Video)
  • H3首尾幀_FL2V_RTX5080_720p二採_空白製片模板.json:指定首幀與尾幀,讓 AI 補中間的動作(First-Last Frame to Video)

兩份 JSON 的節點逐一比對之後,除了「主模型」「Turbo LoRA」「任務類型」三個地方不同,其餘節點、連線與二採設定完全一樣。所以學會一份,另一份只要換三樣東西。

項目 R2V(參考幀) FL2V(首尾幀)
適合什麼 固定角色、固定景點,用同一組參考圖拍多個鏡頭,人物最穩 已經有首幀、尾幀(例如兩張分鏡圖),要它們之間的動作
主模型(UNET) minimax_h3_ref2va_pruned_int8_convrot.safetensors minimax_h3_fl2va_pruned_int8_convrot.safetensors
Turbo LoRA(8 步) minimax_h3_ref2v_turbo_8step_v1.0_768p_comfyui_bf16.safetensors minimax_h3_fl2v_turbo_8step_v1.0_comfyui_bf16.safetensors
Director 任務類型 r2v fl2v
共用的部分 文字編碼器 qwen3vl_32b_minimax_h3_nvfp4_awq、Video VAE fp16、Audio VAE fp32、pytorch attention、一採 9 個數字、二採 4 個數字、Refine 節點、前饋 4 分塊

模型的下載來源與資料夾,與前一篇相同:主模型與 VAE、文字編碼器來自 Comfy-Org / MiniMax-H3,Turbo LoRA 來自 lightx2v / Minimax-h3-Turbo。用 FL2V 的話,請另外下載 FL2V 的主模型(約 21 GB)與 FL2V 的 Turbo LoRA minimax_h3_fl2v_turbo_8step_v1.0_comfyui_bf16.safetensors(約 1.96 GB,放進 models\loras)。

FL2V 要特別注意:Director 官方說明提到,首尾幀(fl2v)鏡頭預設會跳過二採,原因是二採會改動畫面,容易把「釘死」的首幀、尾幀畫飄。要讓 FL2V 也走二採,Refine 節點上的「跳過首尾幀(skip_fl2v)」開關必須關掉。FL2V 模板裡這個開關預設是關閉的;不過模板內的 Refine 節點欄位比公開版 Director 多一些,建議第一次載入後自己確認一次,確定開關是關閉的再開始跑。

↑ 回到目錄

四、安裝二採需要的 Custom Node 與小模型

前提:已經照前一篇裝好 ComfyUI Portable、Git 與 Director。二採模板需要的第三方節點有三個,加上兩顆很小的模型檔。步驟都和當初裝 Director 一樣:到 custom_nodes 資料夾、右鍵「在終端機開啟」,貼指令。

要裝什麼 用在哪 必要嗎
MiniMax H3 Director(更新到最新版) 提供 MiniMax H3 Director Refine 二採節點 必要。舊版沒有 Refine
MiniMax H3 Audio T8(T8mars) 提供模板裡的「前饋分塊」節點 MiniMaxH3ChunkFeedForwardT8Advanced,這是二採省 VRAM 的關鍵 建議。沒裝會出現紅色節點
ComfyUI-KJNodes(Kijai) 提供 ModelPreviewOverrideKJ,用於採樣時的動態預覽 模板有用到。沒裝節點會變紅,但它只影響預覽
H3 Latent Upscaler 權重(約 691MB) Refine 的 h3_latent 放大方式使用 選用。模板預設用 Lanczos,不會用到,但檔案選單裡有它,建議下載
taeh3.safetensors 預覽模型 採樣過程的快速預覽畫面 選用,只影響預覽,不影響成片

步驟 1:先確認 ComfyUI 與 Director 夠新

Director 要求 ComfyUI 版本在 0.30.0 以上(內含官方 MiniMax H3 節點)。照前一篇的方式執行 update_comfyui.bat 更新。接著把 Director 本身更新到最新版,在 custom_nodes 的終端機貼上:

git -C ComfyUI_MiniMaxH3_Director pull
..\..\python_embeded\python.exe -m pip install -r ComfyUI_MiniMaxH3_Director\requirements.txt

步驟 2:安裝 MiniMax H3 Audio T8(前饋分塊節點)

git clone https://github.com/T8mars/comfyui-minimax-h3-audio-T8.git minimax-h3-audio-T8

這個套件的基礎節點不需要額外安裝 Python 套件(作者在 requirements.txt 中說明 torch 等都由 ComfyUI 提供),所以不必再跑 pip。它的功能很多,我們只用到其中一個前饋分塊節點。它在 ComfyUI 的搜尋名稱是 MiniMax H3 Chunk FeedForward(分塊前饋,Advanced EXP/T8),模板裡已經放好,不用自己加。

步驟 3:安裝 ComfyUI-KJNodes

git clone https://github.com/kijai/ComfyUI-KJNodes.git
..\..\python_embeded\python.exe -m pip install -r ComfyUI-KJNodes\requirements.txt

步驟 4:下載兩顆小模型(選用,但建議)

  1. H3 Latent Upscaler:到 LBH-123-AI / Minimax_h3_latent_Upscaler,下載 minimax_h3_latent_upscaler_3d_conv_v1_fp16.safetensors(約 691MB),放進 ComfyUI\models\latent_upscale_models\。資料夾不存在就自己建立。
  2. taeh3 預覽模型:到 t8star / Taeh3-Comfy,下載 models/vae_approx/taeh3.safetensors,放進 ComfyUI\models\vae_approx\。

步驟 5:重新啟動並檢查

完全關閉 ComfyUI 的黑色視窗再重新啟動(run_nvidia_gpu.bat),網頁重新整理。在畫布空白處連點兩下,分別搜尋 MiniMax H3 Director Refine、Chunk FeedForward、ModelPreviewOverride,三個都找得到就代表安裝成功。如果你有裝 ComfyUI-Manager,也可以載入模板後,直接按「Install Missing Custom Nodes」讓它幫你補裝,結果與手動安裝相同。

小提醒:模板裡的節點如果在你的 ComfyUI 找不到對應,節點會變成紅色。紅色節點代表「缺 Custom Node」,不是模板壞掉。

↑ 回到目錄

五、載入模板、換上模型、檢查紅色節點

  1. 從雲端資料夾下載想用的 JSON(先試 R2V 最簡單),直接拖進 ComfyUI 網頁。
  2. 左側「模型與採樣」群組裡,把 UNETLoader、CLIPLoader、兩個 VAELoader、Turbo LoRA 的下拉選單選成你電腦上的檔名(檔名要與上一章表格相同;沒有選項就代表檔案放錯資料夾)。
  3. 在 Director 大節點的時間軸上方按「添加素材組」,上傳參考圖,填 Prompt,設定時長。Prompt 與時長直接在 Director 的素材組裡改。
  4. 先照模板預設跑 5 秒(約 124 格、24 FPS;H3 會對齊影格數)。第一次不要同時改很多東西,確認能出片再調整。
  5. 出現紅色節點:回到第四章,看缺哪個節點,補裝後重啟。

模板下方有一張說明便箋與「720p二採與說明」群組,裡面就是二採的所有設定:二採 Sigmas、Refine 節點、前饋分塊。下面兩章就是在解釋這兩組數字。

↑ 回到目錄

六、一採的 9 個數字(1 → 0)怎麼訂的

模板的「一採」有一個 ManualSigmas 節點,內容是:

1.00000000, 0.98823529, 0.97297297, 0.95238095, 0.92307692, 0.87804878, 0.80000000, 0.63157895, 0.00000000

為什麼是 9 個?Sigma 代表每一步開始時的「噪聲比例」,1.0 是純噪聲,0 是乾淨的畫面。採樣 8 步就需要 8 個「起點」加上最後的終點 0,所以是 8 步 → 9 個數字,像 8 段路需要 9 根柱子。

這 9 個數字是怎麼來的?這不是隨便填的,它和「Shift」直接對應。把 0 到 1 平均切成 8 段(t = 1、0.875、0.75 … 0),再套 Shift 公式 σ = shift × t ÷ (1 + (shift − 1) × t),用 shift = 12 算出來,就會得到上面這 9 個數字,8 位小數完全吻合。也就是說,Director 預設的 Shift Video = 12 就是這組數字的來源(這是用公式反推比對得到的結果,不是作者說明文件的原文)。你可以用下面這段 Python 自己算一遍:

shift = 12
steps = 8
for i in range(steps + 1):
    t = 1 - i / steps
    s = shift * t / (1 + (shift - 1) * t)
    print(f"{s:.8f}")
第幾個數字 平均切段的 t 套 shift = 12 後的 σ 不套 shift(σ = t)
1 1.000 1.00000000 1.000
2 0.875 0.98823529 0.875
3 0.750 0.97297297 0.750
4 0.625 0.95238095 0.625
5 0.500 0.92307692 0.500
6 0.375 0.87804878 0.375
7 0.250 0.80000000 0.250
8 0.125 0.63157895 0.125
9 0.000 0.00000000 0.000

這樣訂的效果是什麼?看右邊兩欄就懂:不加 shift 時,走到一半(第 5 個數字)噪聲只剩 50%;加了 shift = 12,走到一半噪聲仍有 92%。前面 7 個數字都停在 0.80 以上,只有最後一步從 0.63 一口氣掉到 0。這代表 8 步裡大部分步數都在「高噪聲」階段決定整體構圖與動作,最後一大步才把畫面收乾淨,這是 Turbo(少步數蒸餾)模型常見的走法。所以用 Turbo LoRA 的 8 步時,建議不要自己亂改這 9 個數字;要換步數就一併照公式重新計算。

補充:Turbo LoRA 的訓練條件與官方排程細節,官方文件沒有逐字說明。上面「數字與公式吻合」是可以自行驗算的事實,對效果的說明則是幫助理解的解讀,不是官方規格。

↑ 回到目錄

七、二採的 4 個數字(1 → 0)怎麼訂的

「720p二採與說明」群組裡有另一個 ManualSigmas,內容只有 4 個:

0.31578947, 0.2, 0.1, 0

4 個數字 = 3 步。和一採的差別有兩個:

  1. 不是從 1.0 開始,而是從 0.316 開始。二採的任務不是「從無到有」,而是在放大後、已經有完整構圖的畫面上「補細節」。所以只加回約三成的噪聲,再往下清掉。從 1.0 開始等於重畫一遍,等於前面的一採白做。
  2. 只有 3 步,且尾段近乎等差。0.316 → 0.2 → 0.1 → 0,後面兩步每步約降 0.1,節奏平均,沒有一採那種「最後一大步」。

0.31578947 是怎麼來的?它剛好是 6/19,也剛好是一採倒數第二個數字 0.63157895(12/19)的一半。這是比對數字發現的規律,並不是官方公式;模板作者沒有公開說明為什麼選這個值。可以確定的是,它是人工設定的「低噪聲尾段」,後面的 0.2、0.1 同樣是人工設定。

另外要知道:Director 官方說明提到,Refine 節點內部還會再套 H3 的 SigmaShift。這代表表面上的 0.316 並不等於最終實際的噪聲強度,實際強度要看 Refine 內部的換算。這就是為什麼調這組數字時,要用「看結果」的方式調,不要用理論硬算。

想要的效果 怎麼調第一個數字(0.316) 代價
更貼近一採、人物不跑掉 調小,例如 0.2~0.25(尾段跟著等比縮小) 補到的新細節比較少,畫面會偏軟
預設 0.316 模板作者的設定
想要更多細節與質感 調大,例如 0.4~0.5 臉、手、文字容易和一採不一樣,口型與動作也可能偏移

每次只改一個數字,並固定同一個 Seed 與 Prompt 比較。上面表中的數字是起點建議,不是實測保證。

↑ 回到目錄

八、二採的自動解析度:跟著一採變,至少 720p

這是二採最方便的地方:你只要決定一採的比例與大小,二採的尺寸會自動算出來,不用自己算寬高。規則如下:

  1. 比例跟著一採走。一採在 Director 的輸出列選 16:9 就是 16:9,選 9:16 就是 9:16。Refine 節點上的「比例」選項已經標示「跟随导演台比例」,官方說明也寫明比例始終與導演台一採畫布相同。
  2. 大小由「百萬像素(megapixels)」決定。模板設 0.9,代表二採的畫面面積約 0.9 MP,再依比例換算成寬高。
  3. 寬高對齊 32 的倍數。H3 的畫布要是 32 的倍數,所以 720 會變成 736。
  4. 至少 720p。模板的 Refine 節點選項寫的是「跟随导演台比例(MP,至少720p)」,目的就是不管你一採選什麼比例,二採至少維持 720p 級的畫質。
你在一採選的比例 一採尺寸(0.4 MP) 二採尺寸(0.9 MP,自動)
16:9 橫式 864×480 約 1280×736(模板標示)
9:16 直式 480×864 約 736×1280
1:1 方形 約 640×640 約 960×960
4:3 約 736×576 約 1088×864

表中 16:9 與 9:16 以模板的標示為準;1:1、4:3 是依公開版 Director 的換算公式估算的近似值,實際尺寸請看 Refine 節點右側輸出的 width/height。另外,像 21:9 這種很寬的比例,用 0.9 MP 算出來的短邊會低於 720,實際尺寸會由模板的「至少 720p」規則決定,請以節點輸出的寬高為準。

簡單說:你想做直式短影音?一採選 9:16,二採自動變成約 736×1280;想做橫式?選 16:9,二採自動變成約 1280×736。這就是「隨一採選擇而變」的意思。

↑ 回到目錄

九、實際出片流程與 720p 裁切

  1. 確認 Director 的輸出列:模式固定、比例(16:9 或 9:16)、百萬像素 0.4、倍數 32。
  2. 確認 Director 的採樣設定:CFG 1、Steps 8、Sampler euler、Scheduler simple、Shift Video 12/Shift Audio 3,並接著一採的 9 個數字。
  3. 確認 Refine 節點:模式 upscale、放大方式 lanczos、Sampler euler、Passes 1、Megapixels 0.9,並接著二採的 4 個數字。
  4. 按 Queue。ComfyUI 會先完成一採(0.4 MP、8 步),再自動接著做放大與二採(3 步),最後輸出成片。
  5. Director 有兩個輸出可以用:images 是二採後的成片,images_pre_refine 是一採的低解析度畫面,可以用來比較二採到底補了什麼。

為什麼是 1280×736,不是 1280×720?因為 H3 的畫布要是 32 的倍數,720 不是,所以二採實際輸出 1280×736。模板說明寫明這個尺寸會用「附帶的匯出工具」裁成標準的 1280×720。如果手邊沒有這個工具,也可以直接用 ffmpeg 置中裁切:

ffmpeg -i 輸入.mp4 -vf "crop=1280:720" -c:a copy 輸出.mp4

不裁切也可以直接使用,736 高的影片仍然是 720p 以上;裁切只是為了符合標準的 1280×720 規格。

↑ 回到目錄

十、調整方向與常見問題

狀況 怎麼處理
載入模板後有紅色節點 缺 Custom Node。回第四章補裝 Director 新版、MiniMax H3 Audio T8、KJNodes,重啟 ComfyUI
Refine 節點的放大模型選單是空的或報錯 下載 H3 Latent Upscaler 權重放進 models\latent_upscale_models。模板預設用 Lanczos,不會用到它,但選單裡的檔名需要存在
一採就 OOM 先確認一採是 0.4 MP;再減少 Reference 圖張數、縮短片長,加 --reserve-vram 2.0,見 前一篇 OOM 小節
一採過了,二採才 OOM 二採的解析度較高。可試:加 --reserve-vram、把前饋分塊的 chunks 數調大、開啟 Refine 的空間分塊並增加分塊數(若節點上有該選項)、縮短片長。這些都是用速度換記憶體
二採後人物臉變了 把二採第一個數字調小(例如 0.2~0.25)
二採後還是糊、細節不夠 把第一個數字略為調大(例如 0.4)
FL2V 沒有二採效果、畫面還是 480p 確認 Refine 的「跳過首尾幀(skip_fl2v)」開關已關閉
動態預覽沒有畫面 下載 taeh3.safetensors 放進 models\vae_approx。這只影響預覽
成片是 1280×736 正常,見第九章。可用匯出工具或 ffmpeg 裁成 1280×720

最後再強調一次本文的邊界:空白模板的檔內註記保留了當時「尚未做 GPU 生成測試」的說明;現在文末已有實際二採範例影片。本文對解析度、Sigma 公式與節點行為的解讀,仍不能當成任何顯卡都不會 OOM 的保證。能否完成輸出,還是取決於顯卡、片長、Reference 圖張數與驅動狀態。

↑ 回到目錄

十一、參考範例影片

以下兩支影片可用來看二採後的實際畫面。第一支《狗狗奇遇記2》使用 MiniMax H3 與 RTX 5080,先以 480p 一採,再二採到 720p 以上。

若影片沒有顯示,請直接開啟:《狗狗奇遇記2》。

第二支《高中畢旅的未完告白|弘前櫻花、岩木山與足利紫藤》是 MiniMax H3 二採 720p 的影片範例。

若影片沒有顯示,請直接開啟:《高中畢旅的未完告白》(YouTube)。

↑ 回到目錄

參考資料

  1. 本站:ComfyUI + MiniMax H3 本機 AI 影片教學
  2. 二採模板資料夾(Google Drive)
  3. 範例影片:《狗狗奇遇記2》(YouTube)
  4. 範例影片:《高中畢旅的未完告白》(YouTube)
  5. AIMixer / ComfyUI_MiniMaxH3_Director(Refine 二採節點說明)
  6. T8mars / comfyui-minimax-h3-audio-T8、低顯存節點說明(Chunk FeedForward)
  7. kijai / ComfyUI-KJNodes
  8. LBH-123-AI / Minimax_h3_latent_Upscaler
  9. t8star / Taeh3-Comfy
  10. Comfy-Org / MiniMax-H3
  11. LightX2V / MiniMax-H3 Turbo

這篇文章已有 11 次瀏覽

留言

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *