RECAP-Forcing: Retaining Content Appearances for Long Video Generation
Haiyang Xu, Zheng Ding, Zhuowen Tu
cs.CV
2026-08-27
RECAP-Forcing把长视频有限KV按外观新颖度来存:强化首帧sink,再用RAFT把新出现的patch放进固定银行。免训练。挂上Self-Forcing后,60秒VBench-Long总分75.9升到79.5,动态度27.5升到58.1。
自回归视频模型按块往前滚,注意力窗口却是死的。Self-Forcing 一类蒸馏后的因果生成器,一次只能看见最近几帧的 KV。窗口外的东西要么丢掉,要么被压成越来越糊的摘要。
按时间组织记忆,会卡在一组对冲里。留不住早期外观,主体身份慢慢漂;把开场帧钉死当锚,后面的运动又被拽回去,画面发僵。Deep Forcing、MemRoPE、Rolling Sink 都还在这条时间轴上修:加宽 sink、压缩被踢掉的 key、循环回放开头几秒。它们默认一件事:第 60 秒要画得像,就得顺着时间轴找回「上次看见它」的那一帧。
RECAP-Forcing 换了索引轴:记的是「第一次看见什么」,不是「最近看见什么」。角色进画、被挡住的区域露出来、镜头扫出新店面,这些叫 novel appearance event。只在这些时刻把对应 patch 的 KV 拷进记忆;光流还能对上的区域不再入库。记忆容量跟着新内容走,不跟着视频时长走。第 3 秒进画的人,第 5 分钟还能直接 attend 到当时那份未压缩的 KV。
两套机制共用这条原则。
整套是推理期 hook,没有新可学参数。主实验挂在 Wan2.1-T2V-1.3B 蒸馏出的 Self-Forcing 上:832×480,每块 3 个 latent 帧,窗口 6 帧(1 sink + 2 prior + 3 current),60 秒滚 240 个 latent 帧。同一组超参套到 Infinite-Forcing、LongLive、Helios 14B。
评测是 VBench-Long,128 条 prompt × 5 个 seed,60 秒。数字是百分比。
| 方法 | Dynamic Degree | Semantic | Total |
| Self-Forcing | 27.5 | 58.0 | 75.9 |
| 未强化 sink | 30.4 | 62.3 | 76.8 |
| RECAP-Forcing | 58.1 | 65.5 | 79.5 |
| Infinite-Forcing | 61.3 | 62.9 | 78.3 |
| Ours | 71.3 | 65.4 | 79.7 |
| LongLive | 20.3 | 65.9 | 78.1 |
| Ours | 26.6 | 66.8 | 78.5 |
| Helios 14B | 36.2 | 45.4 | 70.3 |
| Ours | 47.8 | 60.5 | 76.3 |
Helios 上 Object Class 从 36.1 拉到 83.7,语义面缺口最大。LongLive 本身已经很稳,动态度只从 20.3 到 26.6,总分只加 0.4,增益最薄。
跟另外三个免训练方法比,还是 Self-Forcing 底座:Deep Forcing 总分 76.2、动态度 32.0;MemRoPE 78.7 / 41.2;Rolling Sink 78.9 / 23.0。RECAP-Forcing 是 79.5 / 58.1,总分最高,运动也拉开一截。Rolling Sink 的一致性指标更好看,画面更僵。
组件拆开(Infinite-Forcing 底座):只强化 sink,动态度从 61.3 掉到 41.6,语义升到 65.2;只开银行,动态度到 78.2,一致性略降;两件一起,动态度 71.3,总分 79.7 最高。sink 管开场戏,银行管中途进画的新东西。
λ 扫到 5 最好,sink 大约分到 24% 注意力;再加到 8、10、12,总分掉回 79.2、78.9、78.6。银行容量从 1/4 帧加到 4 帧,总分几乎不动(79.6–79.8),8 帧反而掉到 79.3。默认一帧够用。
动态度涨,平均光流其实在降:相机流 1.20 到 0.90,物体流 0.71 到 0.66。基线那种乱漂的全局运动被压下去,接近冻住的片子被推过阈值,漂移尾部从 37 条减到 24 条。
附录里身份数字更硬。20 条「主体全程在画」的 prompt,DINOv2 CLS:整帧相似度 0.745 到 0.850,主体裁剪 0.642 到 0.696。拉到 5 分钟,基线末尾掉到 0.61,RECAP-Forcing 1 分钟就停在 0.81,一直到 5 分钟还是 0.81。人为构造的离场再入场(空窗 7.5 秒,注意力窗口的 5 倍,边界清空滑动窗、只留 sink 和银行):整帧 0.699 到 0.752。
9 人、216 次盲比,对 Self-Forcing 的 Overall 胜率 84.3%;对三个竞品分别是 77.8%、75.0%、79.6%。GH200 上 1 分钟从 185 秒变 288 秒,大约 1.6 倍,这个倍数不随时长涨。
对已经在跑因果视频模型的人,这是即插即用的推理补丁,不用重蒸。更值得带走的是那条索引轴:有限记忆该按「新出现了什么」分配,不该按「过多久」衰减。分钟级一致性变成记忆结构的属性,不必让模型从压缩过的历史里把脸再猜回来。
它没有重写生成器,也没有学一套 object slot。单位是第一次出现时的 patch,不是跟踪好的实体。这既是便宜之处,也是后面局限的源头。
作者自己写了:光流会把雨、水花、涟漪这类随机纹理反复标成新内容,占槽却不提供可复用的外观。更长程的对应、或者语义层的分组,论文只作为后续方向提出,没有做。
几处数字也该看冷。LongLive 上总分只加 0.4,底座已经很稳时,这套 hook 的空间不大。VBench 的 Subject Consistency 在 Self-Forcing 上从 98.0 微降到 97.7,运动上去了,这条一致性指标没有一起涨。离场再入场实验做不到「写进 prompt 让模型自己执行」,因为现有底座根本不听这类时间指令,只能在推理时切段、清窗。这测的是银行能不能跨空隙递外观,不是模型懂剧情。
1.6 倍墙钟也不是免费午餐。银行准入靠 RAFT-small 半分辨率 12 次迭代,部署时要自备这条光流。