長影片生成部落格:六種途徑,一個決策

幾個月前,我們為自己設下了一個看似簡單的目標:在單顆 GPU 上,以遠低於 60 秒的實際執行時間(wall-clock time),產出超過 15 秒且高品質、連貫的影片。目前像 Wan2.2 這類影片擴散模型(video diffusion models)在處理 3–5 秒的片段時表現出色,但要將其拉長到 10 秒、30 秒甚至一分鐘,才是挑戰真正的開始。

這篇文章記錄了我們實際採取的路徑。我們評估了近期論文與技術報告中出現的六種方法——TTT、LoL、Self Forcing、Self Forcing++、Infinite Talk 以及 Helios,測量了它們的權衡指標,最終選擇了 SVI (Stable Video Infinity),並將其整合至我們 DiffSynth Engine 中的 TurboWan。我們將一一探討這些路徑,並說明 SVI 的運作原理及最終的效能數據。

為什麼長影片很難做

當影片長度超過五秒時,有三個關鍵問題會浮現。

VRAM 的瓶頸

Wan2.2 使用了 Full Attention,其計算成本隨潛在標記(latent tokens)數量的增加呈 O(n²) 成長。數學是殘酷的:

**5 秒(81 幀):**約 32.7k 個標記,注意力矩陣約 10 GB。

**10 秒(165 幀):**約 65.5k 個標記,注意力矩陣約 40 GB——單顆 GPU 已無法負擔。

**30 秒(約 500 幀):**約 200k 個標記,無法執行。

在實務上,僅僅是 Self Forcing 的 KV 快取(KV cache)在 165 幀時就會填滿 H200 的 129 GB VRAM。

時間軸漂移(Temporal drift)

即便記憶體足夠,也會出現三種漂移模式。Helios 論文將其命名為:位置偏移(position shift,主體在畫面中漫遊)色彩偏移(color shift,色調與亮度逐漸改變),以及修復偏移(restoration shift,模型過度修正導致明顯的不連續)

因果一致性(Causal consistency)

標準影片擴散模型使用雙向 Full Attention,即每一幀都會關注其他所有幀。這意味著無法實現串流輸出:在第 N 幀完成前,你無法顯示第 1 幀。

我們設定的具體目標很務實:影片長度 ≥15 秒、流暢的視覺連貫性、整個片段內主體穩定、總等待時間低於 60 秒、訓練需求極小,並強烈傾向於重複使用現有的權重。

技術盤點

我們研究了六個系列的方法。名稱大多來自論文標題,分類對後續討論至關重要。

路徑 1 · TTT (Test-Time Training)

論文:One-Minute Video Generation with Test-Time Training (arXiv 2504.05298, 2025年4月)。

核心概念是在推論過程中微調模型,使其記住已生成的內容。每個 Transformer Block 的 Attention 之後都會插入一個小的 TTT 層(包含一個 2 層 MLP、一個 Gate 和一個局部注意力),並透過從短片段推進到完整一分鐘的課程進行訓練。

**逐層插入:**在標準注意力之後,拼接一個 Gate、一個 TTT 層與局部注意力,最後加上 LayerNorm。

**課程設計:**在逐步增加的視窗長度上訓練——3s → 9s → 18s → 30s → 60s。

**成本:**256 顆 H100 訓練約 50 小時。

image1.png

TTT — 左:插入點(Gate + TTT 層 + 局部注意力 + LayerNorm,透過殘差連接附著在標準 Attention 之後)。右:影片被分割為 3 秒的片段,每個片段內部由局部注意力處理,而 TTT 層負責跨片段的全局記憶。

它確實可行,論文實現了一分鐘的生成。但訓練成本極高,實驗僅涵蓋 CogVideoX 5B(轉移至 Wan2.2 14B 的能力尚未證實),且插入的 TTT 層會與我們依賴的核心最佳化機制衝突。結論:未入選。

路徑 2 · LoL (Longer than Longer)

論文:LoL: Longer than Longer, Scaling Video Generation to Hour (arXiv 2601.16914, 2026年1月)。

LoL 針對的是自回歸長影片中的特定故障模式——槽坍塌(sink-collapse),即多頭注意力全部收斂到錨定幀,導致影片週期性地重置為初始狀態。解決方法是 Multi-Head RoPE Jitter:透過每頭不同的隨機相位擾動來打破頭與頭之間的同質性。無需訓練,直接插拔使用。

**故障模式:**槽坍塌——在自回歸 RoPE 下,遠處幀的位置相位會週期性地與錨定幀重新對齊,注意力過度集中,內容會跳回到錨定幀。

**修正:**給每個注意力頭分配各自的小型隨機相位偏移。這樣注意力頭就不會坍塌到同一列。無需重新訓練,可直接套用現有模型。

image2.png

錨定幀的 L2 距離與幀索引對比。Self-Forcing++ (紅) 和 LongLive (藍) 都會發生坍塌,在特定幀位置反覆跳回;LoL 的相位對齊 (綠) 則消除了這種跳回現象。

image3.png

每頭注意力圖。上排:正常幀——各頭表現出明顯差異。下排:在坍塌期間——每頭看起來都一樣,全部集中在錨定幀的那一列。RoPE Jitter 恢復了各頭的多樣性。

LoL 在 CogVideoX/HunyuanVideo 上實現了 12 小時的影片生成,且品質損失極小。但問題在於所有展示案例多為靜態場景;我們不確定它在舞蹈、運動等有強烈動態的場景中表現如何。此外,我們必須修改 Wan2.2 的注意力機制。結論:在動態內容上的增益未經證實且調整成本過高。未入選。

路徑 3 · Self Forcing (Causal Wan2.2)

論文:Self Forcing: Bridging the Train-Test Gap in Autoregressive Video Diffusion (arXiv 2506.08009, NeurIPS 2025 Spotlight)。

Self Forcing 將 Wan2.2 的雙向 Full Attention 替換為*因果(causal)*注意力:每一幀只關注前一幀。這一改變解鎖了串流生成——一旦第一區塊完成,即可解碼並輸出。

**雙向:**每一幀關注所有幀 → 必須完成全部 40 個去噪步驟才能顯示任何一幀。**因果:**每一幀只看過去 → 第一個區塊完成即可即時串流。

論文的核心訓練技巧在於:它不是使用乾淨的基準內容(教師強制),而是利用滾動式 KV 快取重複推論過程,確保訓練與推論的分布一致。

**生成循環:**使用 DMD 的壓縮步長計畫,基於已生成幀組成的滾動 KV 快取,去噪出下一個小片段。

**串流:**區塊一完成,立即進行 VAE 解碼並輸出。

**傳遞:**將新區塊的潛在變量推入 KV 快取,供下一個區塊參考。

image4.png

三種訓練範式對比:(a) 教師強制訓練在乾淨幀上——推論時雜訊會導致偏差;(b) 擴散強制使用自定義注意力遮罩,但仍有訓練推論不匹配;(c) Self Forcing 利用滾動 KV 快取重現真實推論過程,完全對齊訓練與推論。

我們在 FastVideo 框架下於單顆 H200 測量結果如下:

長度幀數時間VRAM
5s81 幀70s
10s165 幀168s129 GB (近滿載)
20s321 幀287s129 GB (KV 快取限制在 42 幀)

這是架構上最乾淨的解法,我們非常喜歡。但 10 秒已填滿 H200 的 VRAM,且 165 幀時品質下降,原模型需要因果注意力微調,真正的串流還需要 VAE 中的 Causal Conv3D。

結論:等待社群解決 VRAM 和品質問題,目前暫不採用。

路徑 4 · Self Forcing++

論文:Self-Forcing++: Towards Minute-Scale High-Quality Video Generation (arXiv 2510.02283, 2025年10月)。

在 Self Forcing 基礎上增加了三點:後向雜訊初始化(每個新區塊從前一區塊反向整合的雜訊開始,消除邊界斷層);擴充 DMD 對齊(將長卷軸切分成 5 秒視窗,並針對教師模型的短視窗進行對齊);以及 GRPO 階段,利用光流獎勵來推動更動態的運動。

**步驟 1:**以滾動 KV 快取自行延伸長於 5 秒的長卷軸草稿。**步驟 2:**從草稿中隨機切出 5 秒視窗,執行擴充 DMD 與教師分布對齊。**步驟 3:**利用光流大小作為獎勵進行 GRPO 調整。**技巧:**新區塊從上一區塊反向整合的雜訊開始,而非新鮮的高斯雜訊,因此不會出現區塊斷層。

image5.png

從左至右:CausVid(訓練長度固定,訓練推論不匹配)→ Self Forcing(固定長度 + DMD 對齊)→ Self-Forcing++(延伸長度 + 後向雜訊初始化 + 擴充 DMD 對齊)。

結果:在 1.3B Wan2.1 上實現了一分鐘級別的影片(最長約 4 分 15 秒)。好論文,但我們在生產環境遇到兩個困難:內容多為靜態,基礎模型僅 1.3B(遠低於 Wan2.2 14B),且無程式碼或權重可供啟動。結論:暫不選用。

路徑 5 · Infinite Talk (A2V)

完全不同的問題類型——音訊轉影片(Audio-to-Video),由音訊驅動連續的說話頭像生成。

**每區塊輸入:**新區塊的帶雜訊潛在變量、該時間視窗的音訊特徵、用戶參考圖、上一區塊的最後一幀,以及一個軟約束權重。**參考身份:**參考圖像保持長期外觀穩定。**適應性約束:**軟權重根據相似度漂移調整參考的強度。**運動橋樑:**上一區塊的最後一幀跨界傳遞運動。

對於說話頭像來說非常優秀,但架構與 Wan2.2 差異過大,需要專門訓練,且無法推廣到通用場景。結論:在特定領域有價值,非通用長影片解決方案。

路徑 6 · Helios

論文:Helios: Real Real-Time Long Video Generation Model (PKU-YuanGroup, arXiv 2603.04379, 2026年3月)。

截至撰寫本文時,Helios 是長影片領域的 SOTA(最先進技術)——14B 參數,在單顆 H100 上達到 19.5 FPS 的即時效能。訣竅是將歷史幀壓縮為三層金字塔並注入當前幀的去噪中,使標記預算在影片變長時保持恆定。

**多階記憶:**短期歷史(最後 3 幀)保留完整解析度;中期(最後 20 幀)中度壓縮;長期(之前所有內容)高度壓縮。標記預算與影片長度無關。**指導注意力:**在每個 DiT 區塊內,乾淨的歷史 KV 與帶雜訊的當前 QKV 分開處理,防止歷史雜訊污染當前去噪。**金字塔採樣:**先以低解析度採樣定義結構,再提升至高解析度添加細節,總體標記數減少約 2.3 倍。

image6.png

Helios 架構。左:統一歷史注入——不同壓縮比的歷史資訊合併進入 DiT。右:金字塔統一預測校正器——先低標記數定義結構,後高標記數完善細節。

image7.png

Helios 系統定義並視覺化了三類漂移:(a) 位置偏移,(b) 色彩偏移,(c) 修復偏移(雜訊/模糊)。指導注意力專門為解決這些問題設計。

Helios 在 H200 上的測量吞吐量表現驚人——效能基本上不受長度影響:

長度時間吞吐量
240 幀 (10s)24s~10 FPS
480 幀 (20s)42s~11.4 FPS
960 幀 (40s)82s~11.7 FPS
H100 單卡 (Helios-Distilled)19.5 FPS

缺點是「多階記憶補丁化」(Multi-Term Memory Patchification)需要對 14B 模型進行全面重新訓練。目前沒有釋出權重,只有技術報告,因此我們無法簡單地加裝 LoRA。結論:中長期發展方向,目前無法部署。

路徑總結與比較

將六種路徑並列,並加入我們最終選擇的 SVI:

方法最大長度品質訓練需求工程難度通用性推薦
TTT1 分鐘大量訓練★★☆
LoL小時級中 (僅靜態)需訓練★★☆
Self Forcing理論無限中 (>10s 掉品質)現有模型高 (VRAM問題)★★★
Self Forcing++分鐘級低 (多靜態)需訓練極高 (無程式碼)★☆☆
Infinite Talk無限高 (頭像)需訓練低 (僅 A2V)★★☆
Helios理論無限高 (SOTA)完全重訓極高 (無權重)★★★☆
SVI無限中高開源 LoRA★★★★

從盤點中歸納的分類學

如果仔細觀察,我們調查的所有方法都屬於以下三類:

A 類 — 擴展注意力範圍本身(Self Forcing, LoL, TTT)。讓模型直接處理更長的序列。理論品質最高,但 VRAM 呈二次方成長,目前工程上在 10 秒左右會遇到瓶頸。

B 類 — 分層歷史壓縮(Helios)。壓縮過去幀並注入作為條件。繞過 VRAM 限制,但成本是需要重新訓練 14B 模型。

C 類 — 狀態滾動式生成(SVI, Infinite Talk)。將長影片分解為帶有重疊狀態的短片段。VRAM 恆定,長度無限,僅需 LoRA 訓練。代價是片段邊界可能出現不連續,以及需要管理但無法完全消除的長期漂移。

本季度,我們選擇部署 C 類。明年,我們將持續關注 B 類的文獻發展。


在下一篇文章中,我們將深入探討實際部署的情況——針對 ≥15 秒影片生成的六種方法,我們為何選擇 SVI,以及生產環境的數據表現。閱讀第二篇 →

相關模型

300+ 模型,即刻開啟,

探索全部模型

Join our Discord community

Join the Discord community for the latest model updates, prompts, and support.