Conference

Context as Memory: Scene-Consistent Interactive Long Video Generation with Memory Retrieval

Jiwen Yu, Jianhong Bai, Yiran Qin, Quande Liu, Xintao Wang, Pengfei Wan, Di Zhang, Xihui Liu

The University of Hong Kong

一句话总结

把已经生成的历史帧直接当作”记忆”,通过基于相机轨迹 FOV 重叠的检索机制挑出真正相关的上下文帧作为条件,实现场景一致的交互式长视频生成。

研究背景

交互式长视频生成在游戏、仿真等场景有广泛需求,视频以流式方式随用户交互不断生成。然而现有方法普遍缺乏”记忆能力”,即在连续生成过程中维持内容一致性的能力:当相机回到之前看过的位置时,场景往往已经完全变样。例如 Oasis 这类方法生成 Minecraft 视频时,简单的先左转再右转就会得到完全不同的场景。

根本原因在于:现有方法(如 Diffusion Forcing)生成每一新帧时只能参考固定窗口内的少量近邻帧,这对短期续帧有效,却无法维持长期一致性。理想情况下,若每一新帧都能参考所有历史帧,模型就能主动复用相关内容以保持场景一致。但”全部历史作为记忆”直接落地不现实:一是计算开销巨大;二是绝大多数历史帧与当前帧无关,处理它们浪费算力;三是无关帧还会引入噪声干扰生成。因此作者主张从历史上下文中检索少量相关帧作为条件,即”记忆检索”(Memory Retrieval)。

方法

整体框架

方法名为 Context-as-Memory,包含两个简单有效的设计:(1)存储格式——直接把生成的历史帧以帧的形式存为记忆,无需特征嵌入提取或 3D 重建等后处理;(2)条件注入方式——沿帧维度把上下文帧与待预测帧拼接作为输入,无需额外的控制模块(如适配器或交叉注意力)。为削减开销并只在真正相关的上下文上做条件,引入基于相机轨迹的记忆检索模块。

flowchart TD
    A[无限长历史上下文帧 + 相机位姿] --> B[记忆检索 Memory Retrieval]
    C[用户给定下一目标相机位姿] --> B
    B -->|FOV 重叠筛选出高重叠帧| D[选中的 k-1 个上下文帧]
    D --> E[沿帧维度拼接: 上下文帧 + 噪声待预测帧]
    E --> F[自回归视频扩散 Transformer DiT]
    F --> G[生成最新帧输出]
    G -->|追加回历史| A

关键设计

  1. 上下文帧学习机制:待条件的干净上下文隐变量 \(z_c\) 与带噪的待预测隐变量 \(z_t\) 一同参与 DiT 块内的注意力计算,学习条件去噪器 \(p(z_{t-1} \mid z_t, z_c)\)。输出时只用预测噪声 \(\epsilon_\phi(\{z_t, z_c\}, p, t)\) 更新 \(z_t\),保持 \(z_c\) 不变。这种沿帧维度拼接的方式天然支持变长上下文,优于只支持定长条件的通道拼接或适配器方案。

  2. 位置编码处理:为保留预训练全序列文生视频模型的能力,待预测隐变量沿用预训练阶段的位置编码,而新加入的上下文隐变量则分配新的位置编码。基座模型采用 RoPE,可方便地适配变长位置编码。

  3. 基于相机轨迹的 FOV 重叠检索:由于视频生成模型已引入相机控制,上下文帧带有用户提供的相机位姿标注,无需额外的位姿估计器。作者将相机运动限制在 XY 平面,因此只需考虑每个相机原点射出的左右两条射线,通过检查两相机四条射线的交点判断视场(FOV)是否重叠;再用预测帧相机到交点的距离过滤掉相机过远(重叠很小)的情况。若 FOV 过滤后帧数仍超限,则进一步策略筛选:从连续帧组中只随机选一帧(Non-adj,去冗余),并可补选时空上最远的少量帧(Far-space-time,补充长程信息)。

  4. 数据集:现有带相机位姿的数据集多为短片段,作者用 Unreal Engine 5 采集了 100 段各 7601 帧的长视频,含 12 种场景风格,每 77 帧由多模态 LLM 标注字幕;相机位置变化限制在 2D 平面、旋转仅绕 z 轴。

实验结果

在留出 5% 测试集上,用 FID/FVD 评估视频质量、PSNR/LPIPS 量化记忆能力,并设计两种评估:Ground Truth Comparison(从真值帧选上下文,评估预测帧是否匹配真值)与更具挑战性的 History Context Comparison(比较新生成帧与先前生成帧的一致性)。

方法 GT PSNR↑ GT LPIPS↓ GT FID↓ GT FVD↓ HC PSNR↑ HC LPIPS↓ HC FID↓ HC FVD↓
1st Frame as Context 15.72 0.5282 127.55 937.51 14.53 0.5456 157.44 1029.71
1st Frame + Random Context 17.70 0.4847 115.94 853.13 17.07 0.3985 119.31 882.36
DFoT 17.63 0.4528 112.96 897.87 15.70 0.5102 121.18 919.75
FramePack 17.20 0.4757 121.87 901.58 15.65 0.4947 131.59 974.52
Context-as-Memory(本文) 20.22 0.3003 107.18 821.37 18.11 0.3414 113.22 859.42

本文方法在所有指标上均最优。值得注意的是,只能利用近邻帧的 DFoT 与 FramePack 因相邻帧冗余,效果甚至不如随机选取上下文——随机虽不保证选到有用信息,但平均而言获取的信息比只看近邻更多。消融显示:上下文规模从 1 增至 30 记忆能力持续提升但速度下降,规模 20 是性能与速度(0.97 fps)的较优折中;检索策略上,FOV 与 Non-adj 的过滤带来显著提升,Far-space-time 影响较小。方法还能泛化到训练未见的开放域场景(用互联网图片作首帧,”转出再转回”轨迹下仍保持记忆一致)。

亮点与局限

亮点:

  • 设计简单直接——历史帧原样存储、拼接注入,无需 3D 重建、外部适配器或交叉注意力模块,易于在预训练全序列文生视频模型上适配。
  • 基于相机轨迹 FOV 重叠的规则式检索,用几何先验高效筛出真正相关的上下文帧,大幅降低候选帧数而信息损失小。
  • 充足的上下文条件不仅增强记忆,还通过减少长视频中的误差累积提升了生成质量。

局限(作者自述):

  • 仅适用于静态场景,动态场景的记忆检索更具挑战。
  • 复杂多遮挡场景(如相互连通的室内房间)中,FOV 重叠可能难以准确识别真正相关的帧。
  • 长视频固有的误差累积问题仍存在,目前只能靠更大数据集、更多训练与更强基座模型缓解。

延伸思考

把”记忆”简化为可检索的历史帧集合,本质是用相机几何的显式先验替代了隐式的 3D 表征,绕开了 3D 重建的精度与速度瓶颈——这在持续扩张的大场景里尤其务实。但该思路强依赖已知且受限(XY 平面、绕 z 轴)的相机轨迹,一旦进入六自由度、动态物体或强遮挡场景,纯几何的 FOV 判据就会失效,此时或许需要结合可学习的相关性度量(如基于内容或语义的检索)来补足。另一个值得探索的方向是把”存原始帧”升级为”存可压缩且低损的记忆表征”,从而在不牺牲记忆能力的前提下进一步压小上下文规模、提升推理速度。