快速导读:ID-Forcing 用 self-caching 与有界滚动条件化,在测试时避免 KV 出处越界,从而稳住分钟级自回归视频。
自回归视频扩散按块往前滚,短时域很强,拉到分钟级却容易漂:颜色纹理走样、运动变弱甚至接近冻帧。常见修法是 KV conditioning,即挑选或改写缓存里的 key-value。ID-Forcing(In-Distribution Forcing,arXiv:2610.03120,首尔大 / 高丽大 / 成均馆 / Georgia Tech)指出,这默认缓存条目仍在训练分布内;一旦越过训练地平线,条目是在从未见过的上下文里写出来的,这就是 KV-provenance problem。项目页 https://idforcing.github.io
方法完全测试时、不改训练。写入侧用 self-caching:窗口前段条目只缓存自己,后段再在其上自回归,保证每条 KV 的 provenance 都是训练执行过的。读取侧把第一条 κ0 固定在窗口里,长度 L 严格小于训练地平线,滚动时对其余条目再旋转 RoPE。Self-Forcing 与 LongLive 两条 Wan2.1-T2V-1.3B 基座上,120 秒与 240 秒的颜色/运动漂移指标明显好于 Deep Forcing、∞-RoPE、MemRoPE。预印本,未同行评审。
英文题目:In-Distribution Forcing for Long Video Generation at Test Time
论文出处:arXiv 每日论文精选 · arXiv:2610.03120
原始论文:PDF / 论文页面
这篇论文解决什么问题?
图1用同一句花园橘猫提示,把 Self-Forcing 与 ID-Forcing 的漂移曲线叠在 0–60 秒:红线颜色、运动与总体漂移迅速掉到约 20–40,猫的毛色和动态崩掉;蓝线大致贴在 70–80,毛色和跑动仍在。作者把根因从“读了什么缓存”前推到“这条缓存当初是怎么写的”。
图2把这一点做成对照实验:生成 x7 时 conditioning 窗口都是 κ1:6,只改 x6 如何写入 κ6。Case 1 self-caching:x6 不看更早条目,x7 不漂。Case 2 Self-Forcing caching:x6 看着训练从未见过的窗口,x7 糊掉。Case 3 即使把第一条当 sink,窗口仍是未见过的,照样 OOD。结论:缓存方式单独就能决定下一块漂不漂,事后调节读哪些条目救不回来。
核心创新
- 把漂移归因于 KV-provenance,强调缓存与条件化都要落在训练执行过的配置。
- 提出 self-caching,从源头阻止未见 provenance 被写进 KV。
- 用首块 sink 加有界滚动与再旋转,使读取窗口的相对位置仍 in-distribution。
- 训练无关,可叠在 Self-Forcing 与 LongLive 上把短时域模型续到分钟级。
方法概览
测试时两级规则。写入:窗口前 ℓ 条 self-cache(不看更早 KV),其余在最后一条 self-cached 上自回归。读取:永久保留 κ0,窗口为 κ0 加最近 L−1 条且 L<N,驱逐非 sink 最老项并对剩余再旋转 R_{−f}。Self-Forcing 用 L=3、ℓ=2;LongLive 用 L=3、ℓ=3。
- 训练时在固定地平线 N 个块上做 self-rollout。生成 xi 时对着 κ<i 做 T 步去噪;写 κi 时用同一组 κ<i。i=0 只看自己。地平线外滚动窗口把长度收到 L<N,形式还在,但读写的集合都变成最近 L 条,provenance 开始越界。
- Level 1 管写入。观察 1:地平线外,漂移只能从 conditioning 窗口里的 KV 进来。观察 2:这些 KV 只有在缓存时用过训练执行过的 provenance 才算 in-distribution。self-caching 规则:长度为 L 的窗口里,前 ℓ 条做 E(xj; ∅),其余条在最后一条 self-cached 之上自回归,对应训练里在 κ0 上继续写 κ1,κ2,…。图3右侧把早期条目标成 Self-Caching、后期标 AR Caching,并固定 sink κ0;左侧 Self-Forcing 则整段 AR Caching,地平线外全是 OOD。
- Level 2 管读取。训练里每次生成都看见 κ0;因果 3D-VAE 对首帧是单帧编码、后续帧聚合多帧,所以 κ0 分布上不可替换,滚出窗口本身就是 OOD。这与经验性的多条 attention sink 不同:这里只留第一条。窗口保持 κ0 加最近 L−1 条,总长不超过 N−1;每步驱逐最老的非 sink 条目,其余按 R_{−f} 再旋转,使窗内相对时间距离仍是训练见过的。self-caching 的条目没有可丢失的外部 provenance,驱逐后仍在分布内。实现见 Algorithm 1:先拼 sink 与再旋转的近期窗,对尾部再 cache,再去噪,最后把新块 self-cache 进去。
逐图理解论文
缓存来源

图2标题 Same conditioning, different provenance。顶上一排 x0 到 x6 的猫,标 Training Horizon。三列都生成 x7,conditioning 都是 1–5 加 κ6。Case 1 Self-Caching (Ours):κ6 的 caching window 为空,标 In-Distribution,生成的猫清晰。Case 2 Self-Forcing Caching:κ6 看着 1–5,标 OOD,猫糊。Case 3 Sink Caching:窗口里塞了 0 仍标 OOD,猫仍糊。图例有 Clean / Noisy chunk、KV cache、Sink KV。
Self-Caching

图3比较两种 KV 操作,宜作特色图。左 Self-Forcing:DiT 上方 0…i−1 全是带 ⊕ 的 AR Caching,conditioning 窗长 L=N−1,地平线外 ⊕ 被标成 Out-of-Distribution。右 ID-Forcing:窗口前段圆圈为空缓存窗,做 Self-Caching;后段 ⊕ 在其上 AR Caching;底栏固定灰色 Sink κ0,并写 ○ 与 ⊕ 在 i>N−1 时都是 In-Distribution,窗长 L≤N−1。图例区分 Clean chunk、KV cache、Conditioning window、Caching window、Empty caching window。
关键证据

图4是两分钟定性对比。上行 Prompt 为雪地金毛幼犬:MemRoPE 后期小狗身份和颜色乱,ID-Forcing 一排幼犬保持到 120s。下行 Prompt 为红羊毛盔航天员:LongLive、Deep Forcing、∞-RoPE、MemRoPE 在衣服颜色、运动幅度或姿态上明显漂,ID-Forcing 红衣与奔跑更稳。图注写 Full videos are available at this link,完整视频见项目页。
实验如何设计?
- 骨干 Wan2.1-T2V-1.3B,基座 Self-Forcing 与 LongLive。对照为测试时方法 Deep Forcing、∞-RoPE、MemRoPE。每块 3 个 latent 帧,4 步去噪时间戳 {1000,750,500,250}。Self-Forcing 用 L=3、ℓ=2;LongLive 因按分钟视频训练,从第一块就套方法,L=3、ℓ=3,ℓ 计入 sink κ0。
- 生成 120 秒与 240 秒、分辨率 480×832,提示来自 MovieGen 前 128 条经 Qwen2.5-7B-Instruct 润色。指标为 VBench-Long,外加颜色漂移(首末帧 HSV 色相直方图)与运动漂移(首 5 秒与末 5 秒 Dynamic Degree 差),校准成越高越好的 0–100 分。用户研究 20 人、20 条提示,按 2AFC 对 Self-Forcing 系四个对照做六维偏好。附录另报 30/60 秒与 120 秒消融。
关键结果与论文证据
- Table 1 在 120 秒 Self-Forcing 上,ID-Forcing 颜色漂移 72.37、运动漂移 89.06、Dynamic Degree 65.65,相对基座 25.54 / 46.88 / 30.04;美学 58.23 也对 49.95。240 秒同样:颜色 70.34、运动 92.19、动态 64.76,基座掉到 20.98 / 56.25 / 29.61。LongLive 上颜色漂移仍领先(120 秒 70.94,240 秒 71.76),动态也最高;美学在 120 秒略低于 LongLive 原版 59.25(58.99),240 秒则到 60.44。Motion Smoothness 常略低于冻帧更严重的方法,作者认为该指标偏向低动态。
- 图4 两分钟定性:金毛幼犬一行,MemRoPE 后期毛色和身份乱,ID-Forcing 保持雪地里一排小狗;红盔航天员一行,LongLive 与 Deep Forcing 衣服颜色和运动发飘,∞-RoPE/MemRoPE 动作不稳,ID-Forcing 红衣与奔跑保持到 120 秒。用户研究(Table 2)对 Self-Forcing 总体偏好 100%,对 Deep Forcing / ∞-RoPE / MemRoPE 为 95 / 93 / 86。消融(Table 4,120 秒 Self-Forcing):只加 sink,颜色漂移 48.65 且仍会周期性回到早先场景;再加再旋转到 60.66;加上 self-caching 才到 72.37,美学从 54.14 到 58.23。图5 显示没有 self-caching 时,即使有 sink 和再旋转,颜色纹理仍漂。
阅读时需要注意
- 训练无关,不改变基座权重,长程质量仍受 Self-Forcing / LongLive 与 1.3B 骨干限制。正文没有单独的局限性章节,以下为方法边界。
- 窗口超参加死为 L=3、特定 ℓ;主结果在 480×832 与 MovieGen 128 条提示上。Motion Smoothness 因保持动态可能吃亏,不能当唯一质量判据。
- 与延长训练地平线正交:更好的训练骨干仍需要地平线外的读写规则。预印本,未同行评审。
关联工作
- 双向视频扩散一次性看全序列,长度固定、代价二次;AR 按块条件 KV,代价线性、可流式,但也把误差沿 rollout 累积成 drifting。
- 拉长训练上下文(Self-Forcing++、LongLive 等)推后边界,却消除不了边界。Deep Forcing、∞-RoPE、MemRoPE 都在 KV conditioning 上动手,不改条目当初如何写入。
- ID-Forcing 把漂移看成偏离训练分布,要求缓存与条件化都落在训练执行过的 KV 配置里,并用 self-caching 卡住 provenance。