Internal Lab Note · Performance
縮短步長的可能
前一篇談的是不動步數能省多少時間。這一篇談另一個方向: 步數本身能不能砍。 MiniMax H3 的預設是 20 步,直接砍到 6 步——時間掉到 37%, 而說話影片幾乎沒有損失、聲音完全不受影響; 但同樣的 6 步拿去拍動作,畫面糊到不能用。 本文把「哪些內容能縮步、哪些不能、以及縮步 LoRA 補上了什麼」逐格量出來。
結論先給
TL;DR先講可以直接用的:有首圖、不需要角色說話的內容,走
fl2va + v4(600step) + 6 步——2.60× 加速,前景銳利度反而更高,
色彩被首圖鎖住。連續分鏡再用頭尾格接,逐段無衰減。細節見下方 ①。
| 配置 | 耗時 | 相對 20 步 | 能用在 |
|---|---|---|---|
| 20 步 baseline | 266.9s | 1.00× | 基準 |
| 20 步 + attention | 159.9s | 1.67× | 要好看走這條——不動步數,畫面與構圖都不變 |
| 6 步 baseline | 99.3s | 2.69× | 說話可用,但要接受偏黃與構圖改變 |
| 6 步 + 縮步 LoRA | 84.2s | 3.17× | 動作也能用,代價同上 |
一句話:要省時間就縮步,要好看就別動步數、改用 attention。
縮步的代價不會因為內容是「說話」就消失——偏黃照樣發生、構圖照樣改變。 說話影片之所以看起來沒差,是因為那類素材本來動作就少, 掩蓋了損失,不是縮步對它無害。
這一頁的數字量的是 ref2va(Reference-to-Video)這條路線,
目前測試結果尚不成熟。另一條 fl2va(首/尾格)路線的縮步表現
完全不同——快 2.60×、前景銳利度反而更高、色彩被首圖鎖住。
見文末〈⑥ fl2va:首圖驅動的縮步表現〉。
實作摘要
2026-08-10 補測 · 四個問題縮步這件事在實作上會遇到四個問題,這一節把它們各自的答案先給出來, 細節與完整數據在後面各節。
① 對嘴唱歌,能不能用 fl2va + 縮步 LoRA?
不能。歌會被重新唱一遍。
fl2va 的權重接不住 ref_audios 的 copy exactly——聽起來很像同一首,
節奏也對得上幾個重拍,但那是模型自己唱的:
| 配置 | 波形 | 頻譜 | 節奏包絡 | 判讀 |
|---|---|---|---|---|
| ref2va + 20 步 | 0.925 | 0.954 | 0.988 | 原音複製 |
| fl2va + 6 步 | 找不到對齊點 | 0.451 | 0.346 | 重新生成 |
判準可以直接當驗收門檻:相符度 ≥0.8 是 copy 生效,0.35~0.45 是 copy 失效,中間沒有灰帶。 跑完量一次就知道音軌是不是原本那首,不必靠耳朵在「聽起來很像」裡猶豫。
② 縮步要好看,靠什麼?頭尾格。
同一張首圖、同一份提示詞、同 seed,唯一差別是有沒有給尾格:
| 量的東西 | 有尾格 | 只有首格 |
|---|---|---|
| 前景銳利度 p99 | 99.1 | 95.1 |
| 末幀 vs 首幀 Lab 色距 | 18.4 | 35.7 |
| 色彩漂移曲線 | 漂出去又被拉回來 | 單調累積,一路漂走 |
| 耗時 | 205.2s | 205.3s |
頭尾格買到的是「可控性」,不是「畫質」。
畫質來自 fl2va + v4 + 6 步(無尾格也有 95.1);
動作來自提示詞的 shot 序列(無尾格版一樣跑完了整套動作);
頭尾格負責的是終點精準落在指定的那張圖,以及色彩被兩端夾住。
多 shot 也撐得住。把同一段從 5 個 shot 加密到 9 個 shot(每 1.1 秒一刀), 其餘條件完全相同:
| 5 shot | 9 shot | |
|---|---|---|
| 末幀命中尾格 SSIM | 0.741 | 0.743 |
| 前景銳利度 p99 | 99.1 | 84.6 |
| shot 執行率 | 5/5 | 9/9 |
終點命中率完全不受 shot 密度影響——尾格鎖的是最後一幀,中間切幾刀跟它無關。 銳利度低 14.6% 主要來自構圖(9 shot 版有一段推成大特寫,散景多)。
③ fl2va 能不能直接取代 ref2va?
社群的說法是換成 fl2va 權重會更銳利,實測確實如此—— 但參照保真度會掉。把 fl2va 的權重裝進 ref2va 的節點裡(同 prompt、同 seed 20264807、同兩張參考圖、同音檔,只換 UNET 與步數):
| ref2va + 20 步 | fl2va + 6 步 + turbo LoRA | |
|---|---|---|
| 前景銳利度 平均 | 134.2 | 148.0(+10.3%) |
| 前景銳利度 最低值 | 39.8 | 68.8(+73%) |
| 邊緣密度 | 3.15% | 3.91% |
| 音軌保真 | 原音複製 | 重新生成 |
| 耗時 | — | 212.1s |
6 步的畫質「地板」比 20 步的地板還高(68.8 vs 39.8)。 代價是參照類的能力:音軌 copy 失效,畫面的參考細節也會被重新詮釋。 要銳利走 fl2va,要保真走 ref2va,這是能力邊界不是偏好。
④ 一張首圖能延伸多長?
把每段的末幀抽出來當下一段的首圖,一路接下去。 能接多長取決於題材,而不是段數。
| 題材/路線 | 接一次的變化 | 原因 |
|---|---|---|
| 動漫/插畫(fl2va 6 步) | +40% 以上 | 細節是離散線條與色塊,重生只要把線畫回去 |
| 寫實(fl2va 6 步) | −1.9% | first_frame 是 fl2va 的原生輸入路徑 |
| ref2va(舊測) | −29% | 參考圖走語意通道,每接一次重畫整個畫面 |
但有一個硬條件:每一段的收鏡必須是正面、半身以上、臉清楚。
如果末幀是背影或小臉,模型拿不到正面資訊,身分會在下一段馬上飄掉。
做法是把它寫進提示詞的最後一個 shot:
...turns her whole upper body to look directly into the camera —
a clear front-facing half-body framing...
這是補充而不是保存——每接一次就重新給模型一次身分資訊,所以能一直接下去。
① fl2va:首圖驅動——目前最推薦的縮步做法
2026-08-10 · 建議先看這段fl2va 吃首格(可選尾格)圖,走
MiniMaxH3ImageToVideo,沒有參考音、不做對嘴。
這條路線上的縮步 LoRA 可以完整掛上
MiniMaxH3TurboLoRA + MiniMaxH3TurboSampler。
單變因對照
| 配置 | 耗時 | 相對 | 前景銳利度 | 與首圖色偏 |
|---|---|---|---|---|
| 無 LoRA + 20 步 | 531.1s | 1.00× | 107.8 | 27.6 |
| v4(600step) + 6 步 | 204.1s | 2.60× | 128.0(1.19×) | 31.5 |
前景銳利度用 P99|Laplacian|(對散景免疫)量,
縮步版比滿步版高 19%。色偏是各時間點與首格圖的 RGB 距離,
兩者相當——色彩被首圖鎖住,縮步不影響。
提示詞裡寫著「蝴蝶脫離畫布後,畫布回復純白」。 6 步版做到了;20 步版的蝴蝶仍留在畫布上。 縮步在這裡不但沒有損失,敘事執行還更完整。
連續分鏡:頭尾格
把第 N+1 張分鏡圖當第 N 段的尾格, 每段終點會落在下一段起點。八段 720P 實測:
| 量的東西 | 結果 |
|---|---|
| 段 N 末幀 vs 指定尾格圖 | SSIM 0.900 |
| 段 N 末幀 vs 段 N+1 首幀(實際接縫) | SSIM 0.889 |
| 逐段畫質衰減 | 無——每段都從給定圖起跑 |
| 八段總耗時 | 1719s(28.7 分) |
對照末幀接龍:接縫貼齊 0.9876 更高,但每接一次前景細節掉 29%, 五段之後只剩 25%。頭尾格的接縫略低一點,但第 8 段和第 1 段一樣清楚。
怎麼選
| 需求 | 路線 |
|---|---|
| 精確台詞、要對嘴 | ref2va + 20 步 + attention |
| 有首圖、不需角色說話 | fl2va + v4(600step) + 6 步 |
| 連續分鏡 | fl2va 頭尾格(第 N 段尾格=第 N+1 張分鏡圖) |
以下:ref2va 路線的測試紀錄
尚不成熟以下段落量的是 ref2va(Reference-to-Video)這條路線,
適用於需要精確台詞、要對嘴的內容。
此路線的縮步測試目前結果尚不成熟,代價明顯,保留完整紀錄供參考。
② Baseline 直接縮步:說話可用,動作不行
Baseline
什麼都不加,單純把 BasicScheduler 的步數從 20 改成 6:
266.9 秒 → 99.3 秒,時間剩 37%。畫面的結果分成兩種,差距非常大。
動作 糊到不能用。只有鏡頭推近到臉的那幾格還撐得住
聲音那一側特別值得講:H3 是一次前向同時產出畫面與聲音, 但縮步並沒有動到語音的品質。實測 1536×864、四個鏡頭、10.83 秒的對白片:
口型 四個鏡頭嘴巴全開,動作各自到位
音色 與參考音 MFCC 相似度 0.9868
⚠️ 但「說話可用」不等於「說話無損」。
臉看起來沒有太大改變,是因為這類素材本來動作就少—— 低步數最吃虧的是快速運動的時間一致性,而說話影片剛好沒有那個東西。 偏黃、構圖改變這兩項照樣發生(見第 ⑤ 節)。
所以取捨是這樣:要省時間就縮步;要好看,就不要動步數,改用 attention (20 步 + attention = 1.67×,畫面與構圖完全不變)。
對白要縮步,有一個前提條件:台詞必須逐鏡頭綁定。
每個 [Shot N] 要各帶自己的 <d>:
[Shot 2] At 00:03.500, 動作描述 <d>[Chinese] 這一鏡的台詞</d>。
把整段台詞塞進最後一個 <d> 的版本,同 seed A/B 實測前兩句完全閉嘴。
另外每個帶台詞的鏡頭,動作描述裡都要明寫「在說話」。
③ 縮步之後,attention 幾乎不再省時間
Attention前一篇的 attention 加速在 20 步時很有效。但把它跟縮步放在一起,會發現一件事:
6 步 99.3s → 98.2s 省 1.1%
原因很直接:attention 加速的是「每一步」的計算。 步數從 20 砍到 6,它能作用的次數只剩不到三分之一,可省的絕對量也跟著消失。
兩種加速手段搶的是同一塊時間,不能相加。
如果已經決定縮步,就不必再為 attention 多接三個節點——它在低步數下的貢獻小到量不出來。 反過來說,不能縮步的場合(例如需要 20 步的高動作 baseline),attention 那 40% 仍然值得拿。
④ 縮步 LoRA:把動作影片救回來的那一塊
Turbo LoRA第 ① 節的問題——動作影片在 6 步下糊掉——正是縮步 LoRA 要解決的。 社群目前有兩條訓練線,本文測的是其中一條。
-
先測的是 lightx2v 那條線(Kijai/MiniMax-H3_comfy,
4 步、
strength 0.75、需改用er_sde/sa_solver)。它確實有效——同樣 4 步, 掛上之後前景細節從 28.84 拉到 72.42(2.5 倍)。 但它會明顯改變畫面內容(換了採樣器,構圖與動作都跟原本不同), 而且手指結構不理想。所以我們轉去測另一條線。 -
本文主要測試的版本:larryvrh/MiniMax-H3-Turbo-Lora
+ 官方節點 ComfyUI-MiniMax-H3-Turbo。
strength 1.0/6 步/scheduler simple, 採樣器沿用原本的即可——這是它相對 lightx2v 的優點:變因少、構圖不會整個換掉。 -
⚠️ 這個版本不能用內建的 LoRA 節點載入(lightx2v 那顆可以,因為它發布的就是
ComfyUI 格式)。實測用
LoraLoaderModelOnly時, 518 個權重全部沒有進去——數量正好等於這個 LoRA 的全部 tensor。 這種lora key not loaded不是可以忽略的那一種: 平常少數 key 對不上時 LoRA 照樣生效,但全部對不上就是完全沒有效果。 數一下行數跟 tensor 總數比,相等就是全滅。 -
社群另有 patch 版(SanDiegoDude/H3-Turbo-6-Step-LoRA-Comfy)
把權重轉成 ComfyUI 原生格式,可用內建節點直接載。
本文未測試那條路線——它的建議配方與作者的標準路線不同
(
Euler+beta57+strength 由 4.0 排程遞減), 訓練步長的設定也可能不一致,本文數字不能直接套過去。
檔案與來源
Files| 用途 | 檔案 | 來源 |
|---|---|---|
| 底模 | minimax_h3_ref2va_pruned_int8_convrotqwen3vl_32b_minimax_h3_nvfp4_awq(CLIP)minimax_h3_video_vae_fp16/_int8_convrotminimax_h3_audio_vae_fp32 |
Comfy-Org/MiniMax-H3 |
| 縮步 LoRA (本文主測) |
minimax_h3_turbo_v4_step600_emaminimax_h3_turbo_4step_ckpt850(v1) |
larryvrh/MiniMax-H3-Turbo-Lora 需搭 ComfyUI-MiniMax-H3-Turbo 節點 |
| 縮步 LoRA (另一條線) |
minimax_h3_fl2v_lightx2v_turbo_4step_v0.1_comfy |
Kijai/MiniMax-H3_comfy 已是 ComfyUI 格式,內建節點可載 |
| 縮步 LoRA (社群轉換版) |
minimax_h3_turbo_6step_ema 等 4 檔 |
SanDiegoDude/H3-Turbo-6-Step-LoRA-Comfy 本文未測試 |
-
要用 larryvrh 那條線:
cd ComfyUI/custom_nodes && git clone https://github.com/larryvrh/ComfyUI-MiniMax-H3-Turbo, 重啟 ComfyUI。LoRA 放models/loras/。 -
接線:
MiniMaxH3TurboLoRA(strength 1.0、low_vram OFF)接在 UNETLoader 之後;MiniMaxH3TurboSampler→SamplerCustomAdvanced.sampler;BasicScheduler設simple/ 6 步。 BasicGuider 與 BasicScheduler 都要吃同一條 patched model。 -
解析度取 32 倍數;
length必須落在17k+5網格上,不足會靜默切掉尾字。 -
確認 LoRA 真的生效:看 ComfyUI log 的
lora key not loaded行數, 或直接跑一組不掛 LoRA 的對照比對輸出。
⑤ 套用之後:範例與比對
Result先回答讀者最常問的那一句:我能不能用更低的成本做出影片? 下面兩支是同素材、同 seed 的直線對照——左邊是原本的 20 步,右邊是 6 步+縮步 LoRA。
同素材、同 seed、同 6 步,唯一差別是有沒有掛縮步 LoRA:
| 解析度 | 縮步 LoRA | 前景細節 | 鋸齒 | 耗時 |
|---|---|---|---|---|
| 864×480 | 無 | 56.47 | 0.1378 | 98.2s |
| 有 | 98.52 | 0.1185 | 96.7s | |
| 1296×720 | 無 | 57.00 | 0.1733 | 208.0s |
| 有 | 83.73 | 0.1051 | 224.4s |
前景細節差 74.5%,而耗時幾乎不變——LoRA 補的是畫質,不是速度。
兩顆 checkpoint 的取捨
| 前景細節 vs 20 步 baseline | a 通道(紅-綠) | 耗時 | |
|---|---|---|---|
| 20 步 baseline | 1.00×(65.54) | 128.7 | 266.9s |
| 6 步 + v1(~850) | 1.50×(98.52)過銳 | 131.5 | 96.7s |
| 6 步 + v4 | 1.00×(65.64) | 129.6 | 84.2s |
v1(~850)的「過度銳利」是量得出來的:1.50 倍。 那不是更清楚,是皮膚顆粒感、髮絲過度描邊、對比過強,加上 a 通道最高(偏紅), 整體呈現偏黃的加工感。v4 在 480P 精確回到 baseline 的 1.00×,色偏收斂,而且快 13%。
過銳的處方:降 strength 要配解析度
上游對 over-sharp 的建議是把 strength 調到 0.8~0.95。實測發現單降不夠:
v1 @0.8 720P 前景 1.20× baseline 鋸齒 0.1281 ← 仍過銳,鋸齒反而更差
v1 @0.8 960P 前景 0.95× baseline 鋸齒 0.1102 ← 到位
同樣的細節量攤在更多像素上,銳利度自然回落;只降 strength 而不給更大的畫布,兩頭落空。 而降 strength 沒有把動作的清晰度一起帶走——這是這個配方最大的風險點,實測已排除。 代價是時間:496.9 秒/10 秒素材。
⑥ 天下沒有白吃的午餐:三個代價
Cost時間省下三分之二,代價有三個。這裡按「可不可修」排序,而不是按嚴重程度—— 因為讀者真正要判斷的是「我付不付得起」,而可不可修才是關鍵。
可修 ① 偏黃、偏亮
1296×720 b(黃-藍) +4.0 L(亮度) +9.1 ← 高解析度下成分更重
第一眼最強烈的差異其實是這個——不是細節,是整體調性偏暖偏亮。 但有兩件事讓它不算大問題:
① 這是「縮步」本身的傾向,不是 LoRA 造成的。 6 步不掛 LoRA 的版本 b=137.9,是全場最黃的;掛上 LoRA 之後反而回到 136.8。
② ComfyUI 內建就有解。
AutoWhiteBalance、LayerColor: ColorTemperature、
ColorBalance、Levels、CurveEditor ——
加一個節點的事,不必為它放棄縮步。
可修 ② 手部等精細結構
收尾特寫那一格最明顯:20 步的雙手指節分明、邊緣乾淨;6 步的手指會黏在一起、指節不成形。 臉、服裝、場景都看不出退步,偏偏是手。 處理方式是重抽一次,或在分鏡時避開手部特寫——成本有限。
不可修 ③ 構圖與運鏡整個換掉
20 步 + attention SSIM 0.6528
6 步 不掛 LoRA SSIM 0.5355
6 步 + v4 SSIM 0.4728 (480P)
6 步 + v4 SSIM 0.4863 (720P)
縮步等於重擲一次構圖——同一個 seed 也保不住,因為改掉的是整條去噪軌跡, 不是在原本的畫面上做微調。而且這個數字在 480P 與 720P 幾乎一樣(0.47/0.49), 與解析度無關。
所以決策點不是畫質,是「這支片的構圖定案了沒」。
還在探索、構圖未定 → 直接縮步,省三分之二的時間。
已經有一支喜歡的 20 步成品 → 不要縮步重跑,你會拿到另一支片,
而且沒有任何後製能把它調回來。
附帶一提:景深也會被動到,但看是哪一顆
用「中央銳利度 ÷ 邊緣銳利度」當景深指標(比值高=背景相對糊=淺景深的電影感):
6 步 + v4 2.13 持平,電影感保住
6 步 + v1(850) 1.60 背景被拉清楚,淺景深沒了
v1 那顆把中央與邊緣的銳利度雙雙拉高(27.1/13.0 → 40.2/25.1), 看起來「處處都很清楚」——但背景模糊本來不是缺陷,是淺景深, 把它「修正」掉等於拿掉電影感。這是選 v4 的另一個理由。
結論
Takeaway| 內容 | 配方 | 耗時 |
|---|---|---|
| 要好看(任何內容) | 20 步 + attention,不動步數 | 159.9s |
| 說話、貼臉(要省時間) | 6 步 baseline,不需要 LoRA | ~99s |
| 一般動作 | 6 步 + v4 | 84.2s |
| 高動作又要臉 | 6 步 + [email protected] + 960P | 496.9s |
| 不能縮步的場合 | 20 步 + attention(省 40.1%) | 159.9s |
步數不是一個可以單獨調的旋鈕,它的下限由內容決定。
說話影片的下限很低——聲音與對嘴完全不受縮步影響,6 步就夠。 動作影片的下限被畫面的時間一致性卡住,要嘛留在 20 步,要嘛用縮步 LoRA 把它補回來。
而真正該問的問題不是「畫質會不會掉」,是「這支片的構圖定案了沒」。
偏黃可以調色,手部可以重抽——只有構圖不能還原。 縮步等於重擲一次構圖(SSIM 0.47~0.49,與解析度無關), 所以探索期儘管縮,但已經有一支喜歡的 20 步成品時,不要為了省時間重跑它。