ID-Forcing:在測試階段讓長影片生成留在訓練分布內
In-Distribution Forcing for Long Video Generation at Test Time
背景
近年的自回歸(autoregressive, AR)影片擴散模型,例如 Self-Forcing、LongLive,已經能把幾秒鐘的短影片生得相當好。這類模型把影片切成一個個 chunk,逐 chunk 生成。每生成完一個 chunk,模型就把它的 key-value(KV)entries 存進 cache,後面的 chunk 再透過 attention 讀取這些 cache,以維持畫面連貫。
問題出在影片拉長之後。模型訓練時通常只看過約 5 秒的片段,一旦生成超過這個長度,就會出現所謂的 drifting:顏色與紋理逐漸偏移,動作也越來越少,最後畫面幾乎凍結。
過去的做法主要是 KV conditioning,也就是挑選或修改 cache 裡的 KV entries 來緩解 drift。常見手法包括保留第一個 chunk 當作 attention sink,或調整 RoPE 位置編碼。Deep Forcing、∞-RoPE、MemRoPE 都屬於這一類。
這篇論文指出,這些方法有個沒被檢驗的前提:假設 cache 裡的 KV entries 本身仍在訓練分布內(in-distribution)。作者認為這個前提在超過訓練長度後並不成立。KV entry 是在 rollout 時,根據當下的 context 算出來的,而這個 context 可能是模型訓練時從沒見過的組合。換句話說,cache 裡的內容從「出生」那一刻起就已經 OOD,再怎麼挑選或調整位置編碼都救不回來。作者把這個現象稱為 KV-provenance problem(KV 來源問題)。
方法
ID-Forcing 是一個 test-time 框架,不需要重新訓練。它同時對齊兩件事:KV caching(KV 怎麼算出來)與 KV conditioning(生成時用哪些 KV)。
Self-caching(核心機制)。 一般的 rolling window 在快取新 chunk 時,會讓它 attend 到前面已存在的 KV。長影片中,這些前面的 KV 可能已經帶有 drift。Self-caching 改成:window 中前 ℓ 個 entries 只 attend 自己,不看更早的 KV。其餘 L−ℓ 個 entries 再接在最後一個 self-cached entry 之後,以自回歸方式快取。這樣每個被存下來的 KV,都是在訓練時見過的那種 context 配置下算出來的。這是在 OOD 的源頭就把它擋掉,而不是事後補救。
KV conditioning 的對齊。 作者保留第一個 chunk κ₀ 當作永久的 sink,並對 window 做 re-rotation,讓位置編碼始終落在訓練時見過的範圍內。
實作設定如下:
- 基礎模型:Wan2.1-T2V-1.3B 架構,分別套用在 Self-Forcing 與 LongLive 上。
- Conditioning window 長度 L=3;self-caching 長度 ℓ=2(Self-Forcing)或 ℓ=3(LongLive)。
- 4 步 denoising,timesteps 為 {1000, 750, 500, 250}。
- 每個 chunk 含 3 個 latent frames,解析度 480×832。
論文自己的說法是,整個框架就是「一個單純的 rolling window,加上對每種 KV 操作各一條規則」,實作上相當簡單。
實驗結果
評測方式。 作者用 VBench-Long 的標準指標(Aesthetic Quality、Background Consistency、Imaging Quality、Motion Smoothness、Subject Consistency、Dynamic Degree),另外自訂兩個 drift 指標:
- Color Drift:比較 HSV histogram,分數越高代表顏色越穩定。
- Motion Drift:比較影片前 5 秒與後 5 秒的 Dynamic Degree 差異。
測試長度涵蓋 30、60、120、240 秒,比較對象是 Deep Forcing、∞-RoPE、MemRoPE,以及兩個 base model 本身。
120 秒影片,以 Self-Forcing 為 base:
- Color Drift:ID-Forcing 72.37,對比 ∞-RoPE 54.15、Deep Forcing 59.65。
- Motion Drift:89.06,對比 ∞-RoPE 85.16、MemRoPE 82.81。
- Dynamic Degree:65.65,其他 baseline 為 45.49–62.90。
- Aesthetic Quality:58.23,與 baseline 的 55.45–57.26 相當。
在 LongLive 上,同樣 120 秒的結果是 Color Drift 70.94、Motion Drift 96.09、Dynamic Degree 55.01。
長度穩定性。 原版 Self-Forcing 的 Dynamic Degree 從 30 秒的 44.58 掉到 240 秒的 29.61。ID-Forcing 則從 65.94 到 64.76,幾乎沒有衰減。
Ablation(120 秒,Self-Forcing):
| 設定 | Color Drift | Motion Drift | Dynamic Degree |
|---|---|---|---|
| Self-Forcing | 25.54 | 46.88 | 30.04 |
| + Sink | 48.65 | 67.19 | 46.90 |
| + Re-rotation | 60.66 | 87.50 | 65.44 |
| + Self-Caching(完整) | 72.37 | 89.06 | 65.65 |
Sink 與 re-rotation 本來就是既有方法常用的手段,它們已經帶來大部分增益。Self-caching 在這個基礎上再讓 Color Drift 多出約 11.71 分,Motion Drift 也從 87.50 提高到 89.06。
User study。 20 位受試者、每組 baseline 5 次試驗,比較 ID-Forcing 與四個對手。整體偏好率:對 Self-Forcing 為 100.0%,對 Deep Forcing 95.0%,對 ∞-RoPE 93.0%,對 MemRoPE 86.0%。在顏色一致性、背景一致性、主體一致性、動態程度、時間閃爍等六個維度上,偏好率落在 59% 到 100% 之間。
限制。 Motion Smoothness 的分數相對較低。作者解釋這個指標偏愛 dynamic degree 低(畫面幾乎凍結)的方法,因此不能直接當成品質變差的證據。不過這只是作者的解讀。論文也沒有深入討論 self-caching 的額外運算與記憶體成本。另外,實驗只用 1.3B 規模的模型,更大模型上是否同樣有效,目前沒有資料。
意義
這篇論文的價值在於換了一個問題的看法。過去大家問的是「cache 裡該留哪些 KV」,ID-Forcing 問的是「這些 KV 當初是怎麼算出來的」。只要 cache 的產生方式偏離訓練配置,後面再精細的 conditioning 都是在處理已經被污染的資料。
實務上有三點值得注意:
- 不需要重新訓練。現有的 AR 影片擴散模型可以直接套用,把 5 秒訓練的模型延伸到分鐘級生成,成本比用長影片微調低很多。
- 做法很簡單,只改 cache 的建立規則,沒有額外模組。這讓它容易被整合到其他 AR 影片生成框架,也方便後續研究在它之上疊加其他技巧。
- Ablation 顯示 sink 與 re-rotation 貢獻了多數增益,self-caching 是最後一塊補強。這個結果也說明,過去這類方法確實有效,只是留下了一個結構性的缺口。
需要保留的地方是:評測用的 Color Drift 與 Motion Drift 是作者自訂的指標,雖然搭配 VBench 與 user study,但受試者只有 20 人。Motion Smoothness 的落後也還需要更多獨立驗證。至於 self-caching 的運算開銷、在更大模型上的表現,以及更長(例如數十分鐘)影片的行為,都還有待後續研究回答。