2D 图像生成器藏着 3D 知识:用 1/1000 的训练数据诱导出 SOTA
1. 2D 生成器内部已经藏着 3D 空间知识——为什么这件事值得相信
最近两年,一组看似反直觉的实验结果陆续发表:单目深度估计、3D 资产生成、视频相机控制、视频深度估计这四个完全不同方向的任务上,研究者各自用几十万甚至几万条数据,击败了用数千万到数亿条数据训练的对比基线Lotus、Kiss3DGen、CamPilot。这不是巧合,而是同一个命题的多次实证:2D 图像生成器的内部已经隐含了 3D 空间知识,只是因为接口不对齐,那些知识一直被锁在里面拿不出来。
这张概念图把整篇的主线一次性画出来:

图注:三框图从左到右展示「A little data → elicits → Base model → powers → Broad capability」的关系。最左侧的虚线小框代表少量窄数据,中间的雪花图标方框代表预训练大模型(latent competence),最右侧的大方框代表最终解锁出的广泛能力。黄色箭头 "elicits" 表示窄数据不是「灌入」而是「诱导」base 模型里已有的能力,浅蓝色箭头 "powers" 表示 base 模型把能力泛化到数据覆盖之外。
elicits即「诱导」,指从已有模型中抽出能力,不是向模型注入新能力。Lotus 的论文摘要把这个观察浓缩为一句话——他们用 ≈59K 训练样本达到的零样本深度估计精度,可以匹配用约 1060× 数据(Depth Anything V2 的 62.6M 张)的对比基线。
「2D 生成器里有 3D 知识」听起来像大胆假设,但它是可重复的科学事实。Marigold 团队 2023 年做了一个最小改动:冻结 Stable Diffusion 的 VAE,复制 U-Net 第一层的卷积权重并除以 2 来接受多通道拼接输入,只 fine-tune U-Net 本身,用约 74K 合成深度数据训练,就在 NYUv2、ScanNet、KITTI Eigen split、ETH3D、DIODE 五个真实数据集上拿下 zero-shot SOTAMarigold。关键的不是 Marigold 的具体数字,而是它揭示的事实:把 Stable Diffusion 当 dense prediction base 用极窄的监督信号训练,模型就能泛化到完全未见过的真实场景——前提是 base 模型本身已经看过足够多的 2D 图像。
为什么 2D 图像能让模型学到 3D 知识?直觉上有三个论据。第一,互联网上的图像覆盖了同一个 3D 世界的数十亿次不同视角,模型看到的就是「相机从不同位置拍同一物体」的统计规律;第二,投影几何给图像加了硬规则,同一个物体在不同相机姿态下的图像变形遵循可计算的数学关系;第三,可复用的形状、深度、遮挡、视点规律在自然图像里反复出现,模型迟早会学会它们。这三个论据一起支撑了那张雪花图标——base prior 是广度的来源,不是下游监督数据量的函数。
那么 base 模型本身需要「够宽」到什么程度,才能承载这种被诱导的潜力?FLUX.1 给出了一个具体的答案FLUX.1。它是一个 12B 参数的混合 DiT(multimodal + parallel diffusion transformer blocks),用 flow matching 训练,权重开源,支持 LoRA 适配。这张架构概览图解释了 base 模型为什么能被下游窄数据改造:

图注:图来自第三方 reverse-engineering 报告(Or Greenberg, arXiv:2507.09595),不是 BFL 官方发布。文本嵌入和带噪声 latent 作为两条输入流,经多层 attention block 迭代处理后输出清晰 latent,再经 VAE 解码为 RGB 图像。block 内部展示了 Multi-Modal Attention 流程,timestep 与 guidance 输入作为调制信号。该架构展示「base 模型可以宽到什么程度」:block 结构恰好能容纳低秩 LoRA 适配,是下游窄数据适配的物质基础。
把这条研究线放进 3D 场景生成的更大版图里看,本专题落在哪个角落?《3D Scene Generation: A Survey》给出了一张 2D 坐标全景图,把 3D 场景生成方法沿 generation mechanism(rule-based vs data-driven)和 generative space(直接 3D vs 通过 2D 介导)两条正交轴分成四范式3D Scene Generation Survey:

图注:水平轴为生成机制(rule-based / data-driven),垂直轴为生成空间(直接生成 3D / 通过 2D 介导)。交叉形成四个范式:procedural generation(如 CityEngine、Infinigen)、neural 3D-based generation(如 ATISS、DiffuScene)、image-based generation(如 Infinite Nature、CAT3D、Bolt3D)、video-based generation(如 ViewCrafter、DriveDreamer)。本专题对应右下两象限(image-based 和 video-based 范式),即「用 2D 生成器取 3D」的研究线。
到这里,三件事已经确定:知识存在(Marigold 的可重复实验)、base 模型够宽(FLUX.1 的 12B DiT + LoRA 接口)、研究线在版图里有明确位置(image-based / video-based 范式)。问题不再是「知识在不在」,而是「知识为什么取不出来」。
2. 三道屏障:为什么 2D 生成器里的 3D 知识取不出来
知识确实存在,但「取不出来」也是真实的工程痛点。一个典型的表现是:Marigold 推理时需要 50 步 DDIM 加 10 次不同初始噪声的 ensemble 才能稳定输出深度Marigold。同一个 3D 知识要靠多次重采平均才能稳定,说明 base prior 知道答案,但过程没把它取出来。这种张力可以归结为三道屏障,它们是层次关系不是并列关系,下游期望越来越硬。
屏障一:表示不匹配。2D 像素输出天然没有 3D 几何通道。即便把 4 个视角拼成一张 RGB 图,把 4 张 normal map 拼成另一张图再拼起来,得到的是一张 2D 网格,它能塞进 U-Net 的输入层,但它携带的「3D 信息」是隐式的、需要 base 模型自己拼装。这是先天的接口不对——你要求 base 模型做 3D 几何推理,但它的输入只有 2D 像素。综述里明确说 image-based 范式的 trade-off:「relying on implicit structural inference makes it challenging to maintain accurate depth, global semantic consistency, and coherent geometry across views」3D Scene Generation Survey。
屏障二:目标不匹配。生成的「看起来真」和几何的「必须对」是两件不同的事。CamPilot 论文里一针见血:「looks real ≠ camera-correct」CamPilot。在 camera-controlled video diffusion 任务上,传统 ReFL 范式(VADER、ControlNet++、UniFL 等)的 reward 函数用的都是高层语义(美学、文本-视频对齐),没有任何一种现有 reward 模型具备「评估视频-相机对齐」的能力——这就是目标不匹配屏障在具体任务上的落地。生成器可以输出令人信服的画面,但它没办法知道那个画面在 3D 空间里是不是相机真的对得上。
屏障三:过程不匹配。即便前两关都过了,随机多步去噪采样本身的方差在感知任务里仍是系统性误差源。在生成任务里方差是资产,是「同一文本描述能生成多样样本」的多样性;在深度估计、法向估计、几何一致性这类感知任务里,方差是大误差——同一个输入每次预测结果都不一样。这条观察把 Marigold → Lotus 的迭代链串起来:Marigold 用多步 DDIM + ensemble 掩盖了过程不匹配的代价,Lotus 把多步压成 t=T 单步、把 noise prediction 换成 x0-prediction,直接消除了这个代价源Lotus。三道屏障之间的关系是递进而不是并列——先有表示不匹配(接口不对),再叠加目标不匹配(即便接口对了也不知道该优化什么),最后过程不匹配(即便信号都对,随机采样也把方差引入了确定性任务)。
理解这三道屏障之后,三把钥匙的设计就显得自然而非偶然:每一把钥匙对应打通一道屏障。
3. 三把钥匙的最小操作原则:四篇代表作各对应一把
Key 1:改接口不改模型——3D Bundle Image 让 Flux 吐出 3D
口诀是「改接口不改模型」。Kiss3DGen 把 3D 生成任务形式化为 2D 图像生成任务:把 4 个正交视角的 RGB 图像和对应的 normal map 拼成一张 2D 网格,称为「3D Bundle Image」Kiss3DGen。这样 Flux 这类预训练 2D 扩散模型不需要修改 I/O 结构,只需加一层 LoRA 就能产出 3D 资产——Stage I 生成 3D Bundle Image,Stage II 用 LRM 或 sphere initialization + ISOMER 重建 mesh 与纹理。

图注:4-panel 架构图。(a) 数据准备:用 3D 物体网格 + GPT-4V 文字标注构建训练数据;(b) Stage I:LoRA-modified Flux + flow matching 输入文本/图像,输出 3D Bundle Image(4 个 RGB 视图 + 4 个 normal map 拼成的 2D 网格);(c) Stage II 上半:LRM 从 RGB 重建初始 mesh;(d) Stage II 下半:ISOMER 进一步 refine + texturing。核心概念是「3D Bundle Image is still a 2D image」——把 3D 生成问题转化为 2D 图像生成问题,让 Flux 的现有接口能直接复用。

图注:训练流程图,横向三段式。左侧是 Objaverse 筛选后的 147K 高质量 3D 物体;中间是数据渲染(4 视角 RGB + normal maps 拼装成 3D Bundle Image)+ GPT-4V 标注;右侧是训练好的 LoRA-modified Flux(即 Kiss3DGen-Base)。该图说明「数据 → LoRA → DiT」的训练链路。
Kiss3DGen 用 147K 物体训练,对比基线用 320K–500K;更关键的是 ablation:把训练数据砍到 50K(Ours-50K),text-to-3D 的 CLIP score 仍达 0.804,高于 3DTopia(0.694)、Direct2.5(0.773)、Hunyuan3D-1.0(0.792),是四者中最高——使用 baseline 1/10 的数据,仍能拿到 SOTA 级表现Kiss3DGen。因为训练后的 Kiss3DGen-Base 共享 Flux 的绝大多数权重和完全相同的推理流程,Flux 生态里的 ControlNet-Canny、ControlNet-Normal、ControlNet-Tile、SDEdit 等工具即插即用,无需重新训练——这是 Key 1 在「最小接口」层面的最强证据。
Key 2:把成功做成可验证信号——CamPilot 让视频生成器按相机对齐打分
口诀是「把成功做成可验证信号」。CamPilot 的解法是在 latent 与相机姿态之间插入一个「camera-aware 3D decoder」,把 video VAE 编码得到的 latent 与对应的相机姿态(Plücker embedding 表示)一起喂给 transformer blocks,输出 per-pixel aligned 的 3DGSCamPilot。如果 video latent 和相机姿态之间不对齐,3DGS 在几何上就会坏掉,render 出来的图像就会明显糊——这就是一个低层、可微、camera-aware 的 reward 信号。

图注:框架整体概览图,从左到右分三大块:(a) camera-controlled I2V 模型,用 ControlNet 注入 Plücker Embedding 作为相机条件;(b) camera-aware 3D decoder 把 latent 解码到 3DGS;(c) camera reward optimization 用 visibility-aware mask 在 render 与 GT 之间做像素级一致性监督。四环节的因果关系「latent → 3DGS → render → reward」一次性展示清楚。
全图做 pixel-level reward 会有 reward hacking 风险——一些区域本来就是模型应当自由创造(occlusion 后面的内容、新视角新看到的区域)。CamPilot 的解法是从 3DGS render 出 depth,把 depth 和相机姿态结合做 geometric warping,得到每个 pixel 的 visibility mask;reward 只在「conditioning image 里实际可见」的确定性像素上计算。这就是「把成功做成可验证信号」的精确含义:奖励信号被设计成只在「成功可被验证」的位置触发CamPilot。
对照 ViewCrafter 可以看出 CamPilot 在它的基础上加的两件关键东西ViewCrafter:

图注:ViewCrafter 完整 pipeline。从单张参考图或稀疏视角出发,先用 DUSt3R 重建点云与相机参数,再沿相机轨迹渲染出含 occlusions / missing regions / distortions 的 point cloud renders,最后用 video denoising U-Net(I2V)合成高保真 novel views。与 CamPilot 对照可见,ViewCrafter pipeline 没有 3DGS decoder 也没有 visibility-aware reward——这是 CamPilot 在它之上加的两件关键东西。
CamPilot 用 65K clips 训练(来自 RealEstate10K 的训练 split),ViewCrafter 用 632K rendered pairs 训练;CamPilot 在 R_err / FID / FVD / T_err 四个指标上同时压 ViewCrafter(0.023 < 0.039、11.2 < 17.9、81.35 < 109.30、0.152 < 0.194)CamPilot。
Key 3:把确定性与随机性分开——Lotus / Lotus-2 / DVD 把生成器压成单步回归器
口诀是「把确定性与随机性分开」。Lotus 把 SD V2 deterministic 化为 1-step regression + x0-prediction + detail preserverLotus:

图注:Lotus adaptation 协议图。左侧 pre-trained VAE encoder 编码 image x 与 annotation y 到 latent;中间 denoiser U-Net f_θ,三标注对应 x0-prediction、single-step diffusion at t=T、detail preserver(含 switcher s 在 reconstruction 与 prediction 之间切换)。caption 说明 noise z_T^y 在 Lotus-G 中保留、Lotus-D 中去掉。
对照原版配方可以看清 Lotus 替换了什么:

图注:Direct Adaptation baseline 的原版配方:多步去噪 t ∈ [1,T] + ε-prediction,U-Net 输入层被耦合以接受拼接输入。Lotus 是「对它做手术」——把 ε-prediction 改成 x0-prediction,把多步压成 t=T 单步,再加 detail preserver 保留细节。这是合理 baseline,不是错误方法;Lotus 在它之上替换了三个组件。
DVD 把同一把钥匙推到视频深度估计DVD:

图注:DVD 框架图,分上下两段。上半部分:video DiT F_θ 执行 single-pass depth regression,由 structural anchor τ_0 调节;箭头指向 Latent Manifold Rectification(LMR)模块,标 differential constraints。下半部分:长视频 inference 流程,overlapping windows W_A、W_B 通过 closed-form least-squares solver 对齐。同一把钥匙在 video-depth 任务域的工程形态。
Lotus 用 59K 训练图匹配 Depth Anything V2(DA V2)的 62.6M 图(约 1/1000 数据量),Lotus-2 进一步超越Lotus。DA V2 走 discriminative 路线,用 595K synthetic + 62M pseudo-labeled real = 约 62.6M images 训练Depth Anything V2:

图注:DA V2 三阶段训练 pipeline——Stage 1 teacher 在 synthetic images(595K)上用 DINOv2-G 训练;Stage 2 teacher 给 unlabeled real images(62M)打 pseudo depth 标签;Stage 3 student 在 pseudo-labeled real images 上训练。这是「discriminative 路线 + 62.6M 数据」的对照基线,与 Lotus 的「generative 路线 + 59K 数据」形成数据效率反向对照。
DVD 用 367K 帧训练击败 Video Depth Anything 的 60M 帧(约 1/163 数据量)DVD。两条路线(discriminative vs generative)性能可比,但 generative 路线数据效率高 1000 倍——这正是 Key 3 的「数据效率反向」结论。
技术细节(LoRA rank / Plücker embedding 数学 / 3DGS decoder 内部 / x0-prediction vs ε-prediction 推导 / LMR 微分约束)归三篇子专题展开。本节只完成「预告 + 高阶直觉 + 数据效率事实」三件事。
4. 总原则:可用性能的乘法分解
把前三章的「存在 - 屏障 - 钥匙」收束为一条总原则:
$$\text{Useful performance} \approx \text{base prior} \times \text{representation access} \times \text{objective alignment} \times \text{process fit}$$
强调乘法而非加法——任何一项接近 0,结果就接近 0。三把钥匙必须都在场。这个分解可以类比为相机内参与外参的链式关系:camera intrinsic × extrinsic × projection × color buffer,每一项都必须正确,否则图像就坏。这就是 base 模型提供广度、其他三项对齐因子决定能否取出的直觉。
三把钥匙分别对应后三项因子的解锁:Key 1(3D Bundle Image)解锁 representation access——把 3D 信息塞进 base 模型能读的 2D 接口;Key 2(camera-aware 3D decoder + visibility-aware reward)解锁 objective alignment——把「相机对不对」做成可微、可验证的奖励信号;Key 3(1-step regression + x0-prediction + detail preserver)解锁 process fit——把随机多步采样的方差从感知任务的负债变成生成任务的资产的过程逆转过来。base prior 这一项来自 base 模型本身(FLUX.1 / SD2),它不由本研究决定,但它是其他三项的乘子,没有它下游一切无从谈起。
这把乘法分解变成可复用的诊断框架:以后再看到任一 diffusion-for-X 工作,可以直接用这四因子拆解——它在哪个因子上做得不够、哪个因子上的杠杆最大。
5. 怎么证明这是「诱导」而不是「记忆」:证伪策略与同期独立证据
面对「这是不是基线做得烂,模型靠记忆取胜」的怀疑,需要三层证伪:
第一,狭窄监督。四篇代表作的训练数据规模都是窄的:Kiss3DGen 147K objects(且 Ours-50K 仍 SOTA)、CamPilot 65K clips、Lotus 59K images、DVD 367K frames——都不是亿级数据。
第二,压力测试。解锁的能力远超任务数据覆盖范围:新工具(Kiss3DGen 的 ControlNet 即插即用)、新相机轨迹(CamPilot 的 OOD 相机控制)、新场景(Lotus / DVD 的零样本跨数据集泛化)。这些能力无法靠记忆获得,因为训练数据里就没有这些场景。
第三,对照组与消融。每把钥匙的可验证贡献都被 ablation 隔离:Kiss3DGen 的 Ours-50K ablation、CamPilot 的 visibility mask 消融、Lotus 的 ε-prediction → x0-prediction 消融,每一项替换都能直接看到性能下降。
这里要明确一个边界:所谓「诱导」是指「base 模型的预训练分布里已经存在这些能力」,不是「无限外推到 base 分布之外」。Lotus 用 59K 训练图击败 62.6M 是因为 SD2 在 LAION-scale 数据上见过足够多的 3D 世界投影;这不意味着 59K 数据能教会模型认识新物体类别。「超出任务监督 ≠ 超出 base 模型的预训练分布」——这一点要诚实交代。
同期独立证据来自另一支团队。TwNV(Thinking with Novel Views)由 Joy Future Academy 发布,2026-05 提交 arXivTwNV。它和四篇代表作是「同一硬币的两面」:四篇代表作改模型把生成器对齐到 3D 任务,TwNV 不改模型、只在推理时把生成器当工具调用——Planner VLM 提出 6-DoF 相机运动指令,Synthesizer 渲染目标视角,Reasoner VLM 联合解释原始视角与合成视角:

图注:TwNV pipeline 三段式(Planner → Synthesizer → Reasoner)+ 可选 Iterative Mode(Quality Verifier 反馈到 Planner)。Planner 接收 I_0 和 Q,输出 6-DoF 相机指令;Synthesizer 接收指令 + I_0 输出 I_t;Reasoner 联合解释 {I_0, I_t}。Iterative Mode 增加 Quality Verifier 拒绝/接受 I_t 并把诊断反馈送回 Planner。该图说明 image generator 被消费为推理工作空间,是 inference-time pipeline,不是训练流程。TwNV 在 4 个 VLM(Gemini-3-Flash / GPT-5 / Qwen3-VL-235B / Qwen3-VL-32B)上一致提升 +1.3 到 +3.9 pp,其中 Qwen3-VL-32B 上有 +6.7% 相对增益的「Small-Model Dividend」——证明图像生成器里的空间知识可被外部调用作为推理工具。
TwNV 是同一研究线的同期独立证据:不同团队、不同范式(不训练、直接调用),但都证明「图像生成器里的空间知识不仅可被最小接口改造,还可被外部调用作为推理工具」。
6. 收束:四张数据卡片——为什么这件事在意料之中
这张信息图把四篇代表作的数据效率事实可视化:

图注:4 卡片信息图,每张卡片代表一项研究工作。卡片 1(MONOCULAR DEPTH)——Lotus(ICLR 2025,在该版本中继续迭代至 Lotus-2),59K images vs Depth Anything V2 的 62.6M images(约 1/1000 the data),Lotus 匹配、Lotus-2 超越;卡片 2(VIDEO DEPTH)——DVD(2026),367K frames vs Video Depth Anything 的 60M frames(约 1/163 the data),AbsRel 6.7 < VDA 7.2、~更锐利、推理速度与 VDA 相当;卡片 3(3D GENERATION)——Kiss3DGen(CVPR 2025),147K objects vs baseline 的 320K–500K(1/3–1/10 the data),外加复用数十亿 2D 图像,Ours-50K variant 仍赢;卡片 4(CAMERA CONTROL)——CamPilot(2026),65K clips vs ViewCrafter 的 632K rendered pairs(约 1/10 the data),R_err 0.023 < 0.039、FID 11.2 < 17.9。
最后再回到开场的概念图,让首尾呼应:

图注:与开场同一张三框概念图——「A little data → elicits → Base model → powers → Broad capability」。开场用它立命题,收束用它回扣主线,让读者带着这 3 个框离开。
三句话收尾。第一,小数据可以解锁远超出自身覆盖范围的能力,这是现象。第二,小数据只是揭示 base 先验里已有的能力,这是机制。第三,这一切发生在意料之中——4 张数据卡片是 base prior × representation access × objective alignment × process fit 在 4 个任务域上的实证。
接下来要看细节,可以分别进入三篇子专题:《钥匙一:改接口而不是改模型——Kiss3DGen 如何让 Flux 吐出 3D》、《钥匙二:把成功做成可验证信号——CamPilot 如何教会视频生成相机一致性》、《钥匙三:把确定性与随机性分开——Lotus / Lotus-2 / DVD 如何从生成器里取出几何》。
参考文献
- Marigold: Repurposing Diffusion-Based Image Generators for Monocular Depth Estimation (CVPR 2024) — arXiv:2312.02145
- Ying-Cong Chen 个人主页 + EnVision Research 实验室主页 — https://www.yingcong.me/
- 3D Scene Generation: A Survey (IJCV) — arXiv:2505.05474
- Kiss3DGen: Repurposing Image Diffusion Models for 3D Asset Generation (CVPR 2025) — arXiv:2503.01370
- CamPilot: Improving Camera Control in Video Diffusion Model with Efficient Camera Reward Feedback (arXiv, 2026) — arXiv:2601.16214
- Lotus & DVD: Diffusion-based Visual Foundation Model + Deterministic Video Depth Estimation with Generative Priors (ICLR 2025 / arXiv; DVD 在 GitHub 公告中显示 ICML 2026 FoGen Workshop Spotlight,未独立验证) — arXiv:2409.18124 / arXiv:2603.12250
- ViewCrafter: Taming Video Diffusion Models for High-fidelity Novel View Synthesis (TPAMI 2025) — arXiv:2409.02048
- Black Forest Labs FLUX.1 官方公告 + Demystifying Flux Architecture (2024-08-01) — https://bfl.ai/blog/24-08-01-bfl / arXiv:2507.09595
- Thinking with Novel Views (arXiv, 2026-05) — arXiv:2605.10588
- Depth Anything V2 (NeurIPS 2024) — arXiv:2406.09414