

图1:Lyra 2.0能够基于单张图像实现长视距的三维一致性场景生成。用户可从输入图像出发,通过迭代定义相机运动来探索场景;与此同时,Lyra 2.0会合成具有空间持续性的视频输出,逐步扩展场景环境。这些视频可直接重构为高保真3DGS与表面网格,从而生成可在仿真引擎及交互式查看器中部署的3D资产。
目录
- 摘要
- 预备知识
- 一、长序列空间一致的"防遗忘"(Anti-Forgetting)机制
-
- [1. 构建 3D 缓存 (Building the 3D Cache)](#1. 构建 3D 缓存 (Building the 3D Cache))
- [2. 几何感知检索 (Geometry-Aware Retrieval)](#2. 几何感知检索 (Geometry-Aware Retrieval))
- [3. 将空间记忆注入视频模型 (Injecting Spatial Memory into the Video Model)](#3. 将空间记忆注入视频模型 (Injecting Spatial Memory into the Video Model))
- 规范坐标形变
- 二、长视频生成的防漂移(Anti-Drifting)机制
- [三、3D 重建](#三、3D 重建)
-
- [1. 3DGS](#1. 3DGS)
- [2. 表面网格提取](#2. 表面网格提取)
- 四、用于加速推理的模型蒸馏
- 实验
标题:Lyra 2.0: Explorable Generative 3D Worlds
链接:https://research.nvidia.com/labs/sil/lyra2/
摘要
近期视频生成技术的进展为三维场景创建开辟了新范式:先生成可由摄像机控制的模拟场景漫游的视频,再通过前馈重建技术将其提升至三维空间。这种生成式重建方法将视频模型的视觉保真度与创造力,与可直接用于实时渲染和仿真的三维输出相结合。要扩展至大型复杂环境,需实现跨越长摄像机轨迹、伴随大幅视角变化及位置重复访问的三维一致性视频生成 ------在此场景下,现有视频模型会迅速退化。当前针对长时域生成的方法在本质上受到两种退化因素的制约:空间遗忘与时间漂移。随着探索进程推进,先前观测到的区域会超出模型的时间上下文范围,迫使模型在重新访问时产生结构幻觉;同时,自回归生成方式会随时间累积微小合成误差,逐渐扭曲场景的外观与几何结构。
Lyra 2.0框架,旨在大规模生成持久且可探索的三维世界。为解决空间遗忘问题 ,我们维护每帧的三维几何信息,仅将其用于信息路由------即检索相关历史帧并建立与目标视角的密集对应关系------同时依赖生成先验模型进行外观合成。为解决时间漂移问题,我们采用自增强历史数据进行训练------这些数据使模型能够接触其自身的降质输出,从而教会模型修正漂移而非传播漂移。通过上述方法,我们能够生成显著更长且具有三维一致性视频轨迹,并利用这些轨迹对前馈重建模型进行微调,以实现可靠地恢复高质量三维场景的目标。

图2:给定单张输入图像 I 0 I_0 I0 和相机轨迹 { ( T i , K i ) } i = 0 T − 1 \{(\mathbf{T}_i, \mathbf{K}i)\}{i=0}^{T-1} {(Ti,Ki)}i=0T−1,Lyra 2.0 旨在 通过自回归的 retrieve--generate--update(检索-生成-更新)循环来生成全局 3D一致的长视频。在每次迭代中,模型根据用户定义的 3D camera trajectory 和可选的 text prompt,1.首先从包含 3D geometry 信息的 spatial memory 中 检索出与目标视角内容最相关的历史帧 。随后,模型以这些被压缩的 temporal history 和检索出的 spatial context 2.作为条件,generate 下一个 video segment ,并用新生成的帧来 update 内存空间。整个循环依赖两大核心机制 :建立 空间记忆以维持区域重访时空间一致性的 anti-forgetting(防遗忘)机制,以及通过自适应压缩历史帧来缓解长序列生成质量下降的 anti-drifting(防漂移)机制。最终,生成的长视频会通过前馈的 3D reconstruction 被提升(lifted)为显式的 3D representations,例如 3D point clouds、3D Gaussians 或 meshes。
预备知识
- 基于 DiT 的潜在视频扩散
DiT视频生成,采用了"先压缩到潜在空间,再进行扩散生成"的范式,并使用了流匹配(Flow Matching)技术。
- 视频压缩 (VAE 编码与解码 ):给定一个 F F F 帧的 RGB 视频 x ∈ R F × 3 × H × W \mathbf{x} \in \mathbb{R}^{F \times 3 \times H \times W} x∈RF×3×H×W,首先通过 VAE 编码器 E \mathcal{E} E 将其压缩到潜在空间,得到潜在特征 z = E ( x ) ∈ R F ′ × C × h × w \mathbf{z} = \mathcal{E}(\mathbf{x}) \in \mathbb{R}^{F' \times C \times h \times w} z=E(x)∈RF′×C×h×w。解码器 D \mathcal{D} D 则用于重构视频 x ^ = D ( z ) \hat{\mathbf{x}} = \mathcal{D}(\mathbf{z}) x^=D(z)。模型采用了 Wan 2.1 VAE,它在空间上进行 8 × 8\times 8× 降采样,在时间上进行 4 × 4\times 4× 降采样。具体的维度变化公式为: F ′ = ⌊ ( F − 1 ) / 4 ⌋ + 1 F' = \lfloor(F-1)/4\rfloor + 1 F′=⌊(F−1)/4⌋+1, C = 16 C = 16 C=16, h = H / 8 h = H/8 h=H/8, w = W / 8 w = W/8 w=W/8。首帧独立编码,后续帧进行时间维度的压缩。
- 流匹配与生成 (Flow Matching ):潜空间中,给定干净的潜在变量 z 0 \mathbf{z}_0 z0 和噪声 ϵ ∼ N ( 0 , I ) \epsilon \sim \mathcal{N}(0, \mathbf{I}) ϵ∼N(0,I),构造中间状态: z t = ( 1 − t ) z 0 + t ϵ \mathbf{z}t = (1-t)\mathbf{z}0 + t\epsilon zt=(1−t)z0+tϵ,其中 t ∈ 0 , 1 t \in 0, 1 t∈0,1。模型训练一个 DiT 网络 v θ v\theta vθ 来回归速度(Velocity): L = E z 0 , t , ϵ ∥ v θ ( z t , t , c ) − ( ϵ − z 0 ) ∥ 2 \mathcal{L} = \mathbb{E}{\mathbf{z}_0, t, \epsilon} \left \\Vert{} v_\\theta(\\mathbf{z}_t, t, \\mathbf{c}) - (\\epsilon - \\mathbf{z}_0) \\Vert{}\^2 \\right L=Ez0,t,ϵ∥vθ(zt,t,c)−(ϵ−z0)∥2
- 相机条件视频生成
为了场景具有 3D一致性,视频生成模型需要能够遵循预设的相机轨迹 。对于第 i i i 张图像,世界到相机的外参 T i = R i ∣ t i ∈ R 3 × 4 \mathbf{T}_i = \\mathbf{R}_i \\mid \\mathbf{t}_i \in \mathbb{R}^{3 \times 4} Ti=Ri∣ti∈R3×4,内参 K i ∈ R 3 × 3 \mathbf{K}_i \in \mathbb{R}^{3 \times 3} Ki∈R3×3 和深度图 D i ∈ R H × W D_i \in \mathbb{R}^{H \times W} Di∈RH×W。模型采用了两种互补策略来注入相机信息:
- 基于深度的形变 (Depth-based warping ):利用最近一帧图像 I j I_j Ij 及其深度 D j D_j Dj,将其前向形变(warp)到目标视角 ( T i , K i ) (\mathbf{T}_i, \mathbf{K}_i) (Ti,Ki)。渲染结果会被编码并与降噪潜变量拼接。局限性:视角变化极大时,由于"盲区",控制信号会完全丢失,导致视觉质量严重下降。
- 普吕克射线注入 (Plücker ray injection) :为每个像素计算 6D 射线坐标 r i ( u , v ) = ( d , o × d ) ∈ R 6 \mathbf{r}_i(u,v) = (\mathbf{d}, \mathbf{o} \times \mathbf{d}) \in \mathbb{R}^6 ri(u,v)=(d,o×d)∈R6,通过多层感知机 (MLP) 投影到 DiT 隐藏维度,并直接加到 Token 特征中,为剧烈的视角变化提供额外的空间提示。
- 通过 FramePack 进行上下文压缩
为了生成超长视频并解决自回归生成中的"漂移"问题 (Drifting 画面逐渐偏离原始场景), 模型采用FramePack 机制 (核心是可变分块):根据时间远近使用不同的分块 patchify 策略 。距离当前较近的帧使用小卷积核(保留精细的细粒度 Token),距离较远的帧使用大卷积核(进行激进的压缩)。这使得模型能够在固定的 Token 预算下关注更长的时间范围 : f1k1 ⏟ anchor f16k4 f2k2 f1k1 ⏟ temporal slots g20 ⏟ generate \underbrace{\text{f1k1}}{\text{anchor}} \ \ \underbrace{\text{f16k4} \ \ \text{f2k2} \ \ \text{f1k1}}{\text{temporal slots}} \ \ \underbrace{\text{g20}}_{\text{generate}} anchor f1k1 temporal slots f16k4 f2k2 f1k1 generate g20 f n k m f_nk_m fnkm 代表共有 n n n 帧使用了空间下采样因子 m m m进行压缩。 generate (g20):表示模型当前需要生成的目标是 20 帧。temporal slots:表示历史参考帧序列。紧邻生成目标的 1 帧不压缩 (f1k1),稍远的 2 帧进行 2 × 2\times 2× 压缩 (f2k2),更远的 16 帧进行 4 × 4\times 4× 压缩 (f16k4)。anchor (f1k1):锚点帧。初始图像 I 0 I_0 I0 始终以全分辨率 (k1 不压缩) 作为固定的参考点保留在上下文中,防止模型在长时间生成中偏离原始场景的外观。
一、长序列空间一致的"防遗忘"(Anti-Forgetting)机制
1. 构建 3D 缓存 (Building the 3D Cache)
为了在长视频生成中回忆起几何相关的历史观测,构建一个增量增长的 3D 缓存 C \mathcal{C} C。对于每一帧 I i I_i Ii,缓存包含两个部分:
- 全分辨率深度图和相机参数 :深度图 D i D_i Di 以及相机的外参 T i \mathbf{T}_i Ti 和内参 K i \mathbf{K}_i Ki。这部分保留了完整的几何精度,用于后续的对应关系计算。
- 下采样点云 :记为 P i ∈ R ( H / d ) × ( W / d ) × 3 \mathbf{P}_i \in \mathbb{R}^{(H/d) \times (W/d) \times 3} Pi∈R(H/d)×(W/d)×3,对深度图进行系数为 d d d 的下采样并反投影到世界坐标,用于高效检索。
关键是独立缓存每一帧的几何信息 ,不融合全局点云,可以防止跨视角的对齐误差累积到一个损坏的重建模型中。
2. 几何感知检索 (Geometry-Aware Retrieval)
由于视频模型的上下文窗口有限, 需要从 3D 缓存中挑选出对目标视角最具信息量的历史帧。
- 可见性得分 ϕ \phi ϕ:给定目标相机 ( T ∗ , K ∗ ) (\mathbf{T}^*, \mathbf{K}^*) (T∗,K∗),将每帧的下采样点云 P i \mathbf{P}_i Pi 投影到目标图像平面上。通过计算最小投影深度来处理遮挡问题(点云深度与最小深度之差小于阈值 δ \delta δ 视为可见)。 ϕ ( i ) \phi(i) ϕ(i) 即为第 i i i 帧中可见点的数量。
- 策略差异 :训练阶段按 ϕ ( i ) \phi(i) ϕ(i) 的比例进行采样以增强鲁棒性;推理阶段,采用贪婪最大化覆盖策略,迭代选择能覆盖最多未覆盖目标像素的帧,避免选择冗余的邻近视角。
3. 将空间记忆注入视频模型 (Injecting Spatial Memory into the Video Model)
检索到的历史帧 { I j } j = 0 N s − 1 \{I_j\}_{j=0}^{N_s-1} {Ij}j=0Ns−1 会作为空间槽 (spatial slots) 注入到视频模型中 ,与时间槽(temporal slots)并列,并通过可变核空间压缩机制进行处理。全局上下文完整Token 布局 : f1k1 ⏟ anchor f4k2 f1k1 ⏟ spatial slots f16k4 f2k2 f1k1 ⏟ temporal slots g20 ⏟ generate \underbrace{\text{f1k1}}{\text{anchor}} \ \ \underbrace{\text{f4k2} \ \ \text{f1k1}}{\text{spatial slots}} \ \ \underbrace{\text{f16k4} \ \ \text{f2k2} \ \ \text{f1k1}}{\text{temporal slots}} \ \ \underbrace{\text{g20}}{\text{generate}} anchor f1k1 spatial slots f4k2 f1k1 temporal slots f16k4 f2k2 f1k1 generate g20空间槽(spatial slots)包含了检索出的 N s = 5 N_s=5 Ns=5 帧:f4k2 表示 4 帧使用因子 2 进行空间下采样压缩,f1k1 表示 1 帧保持全分辨率。
规范坐标形变
模型通过形变规范坐标来建立密集的对应关系( 就是不给模型传递warp的RGB图像,否则会带有拉伸和空洞,而是给模型传递一张精确的"像素位置查找地图" 。)。 为第 j j j 个检索帧生成一个"位置标识张量" :维度为 3, H, W的规范坐标图 C j ∈ − 1 , 1 3 × H × W \mathbf{C}_j \in -1, 1^{3 \times H \times W} Cj∈−1,13×H×W,其三个通道表示为 ( u , v , 2 ⋅ j N s − 1 ) (u, v, 2 \cdot \frac{j}{N_s} - 1) (u,v,2⋅Nsj−1),其中 ( u , v ) (u, v) (u,v) 是归一化空间位置。
前向形变 (Forward-warp ):使用全分辨率深度, 将规范坐标 C j \mathbf{C}j Cj 形变到目标视角: C ^ j = FwdWarp ( C j , D s j , T s j , T ∗ , K s j , K ∗ ) \hat{\mathbf{C}}j = \text{FwdWarp}(\mathbf{C}j, D{s_j}, \mathbf{T}{s_j}, \mathbf{T}^*, \mathbf{K}{s_j}, \mathbf{K}^*) C^j=FwdWarp(Cj,Dsj,Tsj,T∗,Ksj,K∗)接着,将深度也作为第四个通道进行形变,得到一个 4 通道的特征图 C \^ j ; D \^ j \\hat{\\mathbf{C}}_j; \\hat{D}_j C\^j;D\^j。
二、长视频生成的防漂移(Anti-Drifting)机制
漂移的根源:观测偏差 (Observation Bias)
-
训练与推理脱节 :训练阶段,模型是以完美的真实历史帧作为条件来生成下一帧的;但在推理(生成)阶段,模型只能依赖自己之前生成的、带有瑕疵的输出作为条件。
-
误差累积:由于这种偏差,单步生成中的微小错误(Color shifts, blurring, distortions)无法被纠正,并在自回归过程中不断累积放大,最终导致视频质量严重下降。
注:虽然前文提到的 FramePack 机制通过扩展时间感受野缓解了这个问题,但它并没有从根本上弥合训练和推理之间的"观测偏差"。
轻量级自增强训练 (Lightweight Self-Augmentation Training)
为了让模型在训练时就"习惯"带有瑕疵的输入,需要让模型以自己的预测结果为条件进行训练。自回归中,真实历史帧 x hist \mathbf{x}^{\text{hist}} xhist 和待生成帧块 x cur \mathbf{x}^{\text{cur}} xcur:
- 步骤一:干净潜变量编码。
使用 VAE 编码 (VAE 具有因果性Causal):历史潜变量 : z 0 hist = E ( x hist ) \mathbf{z}_0^{\text{hist}} = \mathcal{E}(\mathbf{x}^{\text{hist}}) z0hist=E(xhist);当前潜变量 : z 0 cur = E ( x cur ∣ x hist ) \mathbf{z}_0^{\text{cur}} = \mathcal{E}(\mathbf{x}^{\text{cur}} \mid \mathbf{x}^{\text{hist}}) z0cur=E(xcur∣xhist)
- 步骤二:对历史特征加噪破坏
训练时以概率 p aug p_{\text{aug}} paug 对历史潜变量注入噪声,模拟生成过程中的误差 (从均匀分布 U ( 0 , 0.5 ) \mathcal{U}(0, 0.5) U(0,0.5) 中采样时间步 t t t,并根据流匹配调度公式加入噪声 ϵ \epsilon ϵ) : z t hist = ( 1 − t ) z 0 hist + t ϵ , ϵ ∼ N ( 0 , I ) ( 4 ) \mathbf{z}_t^{\text{hist}} = (1 - t) \mathbf{z}_0^{\text{hist}} + t \epsilon, \quad \epsilon \sim \mathcal{N}(0, \mathbf{I}) (4) zthist=(1−t)z0hist+tϵ,ϵ∼N(0,I)(4)
- 步骤三:单步近似降噪
使用当前的 DiT 模型 v θ v_\theta vθ 进行仅一次前向传播,修复加噪特征( z ~ 0 hist \tilde{\mathbf{z}}_0^{\text{hist}} z~0hist 就是模拟出来的"带有瑕疵的生成历史"。由于只做了一步降噪,它必然不如完美的 z 0 hist \mathbf{z}_0^{\text{hist}} z0hist 干净): z ~ 0 hist = z t hist − t ⋅ v θ ( z t hist , t , c ) ( 5 ) \tilde{\mathbf{z}}_0^{\text{hist}} = \mathbf{z}t^{\text{hist}} - t \cdot v\theta(\mathbf{z}_t^{\text{hist}}, t, \mathbf{c}) (5) z~0hist=zthist−t⋅vθ(zthist,t,c)(5)
- 步骤四:条件替换与监督
替换条件 :训练生成当前帧时,DiT 的上下文条件不再使用完美 z 0 hist \mathbf{z}_0^{\text{hist}} z0hist,而是替换为 z ~ 0 hist \tilde{\mathbf{z}}_0^{\text{hist}} z~0hist。模型需要预测的目标潜变量 z 0 cur \mathbf{z}_0^{\text{cur}} z0cur 依然是基于干净的历史缓存编码出来的。
三、3D 重建
1. 3DGS
采用 Depth Anything v3 (DAv3) 的前馈 3D 基础模型,直接从输入图像预测像素级的 3DGS 属性。但针对高分辨率的生成视频流:
- 高斯球数量爆炸问题 :DAv3 原本是"单像素单高斯(one Gaussian per pixel)"的预测模式。对于高分辨率输入,这会导致高斯球数量过多。改进策略:修改了 DAv3 架构中的 Gaussian DPT 预测头 ,使其输出一个经过 k × k k \times k k×k 降采样的特征图,预测出的高斯球总数直接减少了 k 2 k^2 k2 倍。这
- 生成数据的几何不一致 :预训练的 DAv3 并没有针对 AI 生成的数据进行优化,而生成视频中常存在微小的几何瑕疵。改进策略:在视频模型自己生成的场景数据上对 DAv3 进行微调(Fine-tune),提升模型对生成式伪影的鲁棒性。
2. 表面网格提取
提取管线基于 OpenVDB 构建了一个层次化的稀疏网格结构:空间自适应划分 :在靠近生成视角的区域分配精细的网格单元(fine cells),在远处的背景区域分配粗糙的网格单元(coarse cells)。SDF 构建流程:
- 将高斯重建的中值深度(median depth)光栅化为每个视角的深度图。
- 通过计算深度的梯度(gradient of depth)来获取法线(normals)。
- 利用上述带有法线方向的点云,在稀疏网格上构建符号距离函数(Signed Distance Function, SDF)。
网格生成:通过标准的 Marching Cubes(移动立方体)算法提取表面,跨不同层级进行缝合(stitched),并进行减面(decimated)以提升下游处理效率。
四、用于加速推理的模型蒸馏
标准的扩散模型自回归生成速度较慢,为了达到交互式应用的需求,系统采用了 分布匹配蒸馏 (Distribution Matching Distillation, DMD) 技术 训练了一个"学生模型"。
- 降噪步数大幅压缩:通过 DMD 蒸馏,将原本需要 35 步降噪的"教师模型",压缩为一个仅需 4 步降噪即可生成高质量视频的"学生模型"。
- CFG 蒸馏 (单次前向传播):将无分类器引导(Classifier-free guidance, CFG)也一并蒸馏进学生模型中。这意味着在推理时,不再需要分别进行条件(conditional)和无条件(unconditional)两次前向传播,一次即可完成。
- 保留抗漂移特性:在蒸馏过程中,严格保留"自增强(self-augmentation)"训练策略,确保提速后的学生模型在自回归生成时,依然具备抵抗误差累积和防漂移的能力。
通过结合更少的采样步数(35 → \rightarrow → 4)和单次前向传播(消除 CFG 的双倍开销),单步生成时间缩短了约 13 × 13\times 13×(13 倍),同时在交互式用例中保持了相当的视觉质量。
实验
数据集 。模型使用 DL3DV 数据集进行训练,该数据集包含 10K 个多样化的真实世界场景长视频片段。三项核心预处理标注:
- 相机位姿估计 (Camera Poses ): 采用 ViPE 前馈估计网络,面对海量且运动复杂的视频,相比于依赖特征匹配和增量式重建的传统 SfM 管线(如 COLMAP),能有效避免因特征缺失或纯旋转造成的建图失败,大幅提升数据生产效率。
- 逐帧深度预测 (Per-frame Depth):采用 Depth Anything V3 为每一帧生成相对一致的深度图,作为几何先验。
- 视频文本描述 (Video Captions):使用视觉语言模型 Qwen3-VL-8B-Instruct 自动生成视频的 Caption,用于训练时的文本条件注入。
配对数据清洗与构建 。针对 DL3DV 中的真实视频,他们为每个视频采样 1,000 帧。为了兼顾模型的"初始生成能力"和"长序列自回归扩展能力",训练时采用了两种互补的策略来构建 条件 -> 目标 的数据对:
策略 A:图生视频模式 (Image-to-Video, I2V) ------ 30% 概率机制:模型仅以单张初始帧作为条件输入,目标是预测接下来的 L = 80 L = 80 L=80 个连续帧,来模拟冷启动场景。目的:强化模型从静态图像直接外推、建立初始 3D 场景和运动动态的能力。
策略 B:基于块的自回归训练 (Autoregressive chunk-based training) ------ 70% 概率机制:模拟长视频的滚动生成过程。给定一个总长度为 T T T 帧的序列,视频被划分为多个长度为 L L L 的块(chunk)。
采样与切分计算 :计算最大片段索引: S max = ⌊ ( T − 1 ) / L ⌋ − 1 S_{\text{max}} = \lfloor(T - 1)/L\rfloor - 1 Smax=⌊(T−1)/L⌋−1。均匀随机采样一个片段索引: s ∈ [ 0 , S max ) s \in [0, S_{\text{max}}) s∈[0,Smax)。
条件上下文 (Conditioning context):历史窗口涵盖从第 0 0 0 帧到第 s ⋅ L + 1 s \cdot L + 1 s⋅L+1 帧(即 [ 0 , s ⋅ L + 1 ) [0, s \cdot L + 1) [0,s⋅L+1))。
生成目标 (Ground-truth target):紧接着的第 s + 1 s + 1 s+1 个片段中的 L L L 个连续帧。
目的:这正是训练模型利用历史记忆(前文提到的空间槽和时间槽)来维持 3D 全局一致性,并学习如何无缝衔接下一个视频块的关键步骤。赋予其 70% 的高权重,突显了解决长视野自回归难题是该模型的训练重心。

图 3:视频生成效果对比。《坦克与神庙》的单张图像输入,比较长视距(800 帧)下视频生成结果。基线方法出现严重的画质下降、几何畸变或内容漂移;而我们的方法则能保持逼真的结构与外观。

表1:单视角视频与长视频生成的定量对比

表2:三维场景生成的定量对比结果。

图 4:3DGS 比较。对比了基于视频扩散模型输出重建的 3DGS 场景所生成的渲染结果,这些场景均源自《坦克与神庙》中的单张输入图像。
#pic_center =60%x80%