扩散模型何时才能学会生成多物体? When Do Diffusion Models learn to Generate Multiple Objects?
用受控MOSAIC数据集揭示扩散模型多物体失败的根源:场景复杂度与组合泛化
前置知识
Latent Diffusion Model (LDM)
在 VAE 编码的潜空间而非像素空间上做扩散过程的生成模型。训练时,VAE 把图像压缩成潜码 $z$,扩散过程在 $z$ 上加噪去噪;推理时再由 VAE 解码回像素。该论文冻结 Stable Diffusion 2.0 的 VAE,只训练去噪网络与条件编码器。
本论文的实验对象是 LDM 的去噪主干(U-Net 或 DiT),理解潜空间与条件注入路径(cross-attention)是阅读训练设置的前提。
Diffusion Transformer (DiT) 与 Rectified Flow
用 Transformer 替代 U-Net 的扩散主干,配合 rectified flow 训练目标。DiT 通过 cross-attention 层注入 token 级条件嵌入,时间步条件由全局向量叠加。本论文用约 90M 参数的 SD3 DiT 作为新一代架构代表。
论文对比 U-Net 与 DiT 两个时代的主干,揭示 modern 架构在低数据下对 counting 更稳健。
概念泛化 vs. 组合泛化
概念泛化指单个概念(如「红色」「三个」)至少被见过一次后能否可靠生成;组合泛化指多个概念的新组合从未在训练中共同出现时,模型能否在测试时拼装出来。本文用 RQ1 / RQ2 分别考察这两种能力。
这是论文的核心分析框架,作者用「对角线剔除」方案把组合泛化从概念泛化中独立出来。
GenEval 评估框架
通过目标检测器(如 UniDet)检测生成图中是否包含 prompt 指定的对象、属性、空间关系与计数,用于评测 text-to-image 模型对组合约束的满足度。
GenEval 揭示了多物体失败的客观现象,是论文 Fig.1(b) 的数据来源。
研究动机
近年来 text-to-image 扩散模型(Stable Diffusion、SDXL、SD3 等)在视觉保真度上突飞猛进,但在涉及多物体的组合生成任务上仍然系统性失效:在 GenEval 上单物体准确率已超过 80%,多物体任务(如 Counting、Attribute Attribution、Spatial Relations)准确率经常跌到 50% 以下。现有文献把这一现象归结为文本编码器限制、注意力机制缺陷、数据频次偏差等多种可能,但大多停留在相关性观察,无法做因果归因;同时既没有可控制地切换数据集属性的诊断框架,也没有把「单个概念是否学会」与「概念组合能否泛化」两种失败模式分离开来的实验设计。
本文的目标是作者希望回答两个具体问题:(RQ1) 在「每个相关概念至少见过一次」的设定下,数据分布不平衡与数据规模如何影响单个概念(颜色、数目、角度)的生成可靠性;(RQ2) 在所有单概念充分观测的前提下,系统性地从未观测的 concept pair 中隐藏若干对后,模型还能不能在测试时组合出新搭配;并希望把这两个问题在受控数据下分别量化,给出「哪些失败是数据本身造成的、哪些反映了扩散模型的结构性局限」。最终给出 Counting 失败的真正诱因与组合泛化的难度排序。
与已有工作不同的是,以往研究要么停留在 LAION 这类无法控制概念共现与频次的真实数据集(只能做相关分析),要么使用 Shapes2D / CLEVR 等单物体或连续属性的合成环境(与现实多物体分布相去甚远)。本文的独特切入点是同时控制「数据规模」「概念频次偏斜」「未观测组合比例」三类因素,并把这三因素分别作用在 Attribution、Counting、Spatial Relations 三类多物体子任务上,使作者能够做因果式的因子分析。
核心方法
论文的核心思路是「用受控合成数据做因果诊断」。具体来说,作者构建了一个名为 MOSAIC 的诊断数据集,通过 Blender 把球体、立方体等简单 3D 资产放在固定的俯视相机视角下渲染,每张图都附带精确的颜色-物体绑定(Attribution)、物体相对角度(Spatial Relations)、物体计数(Counting)三类标签。由于渲染参数是显式可控的,作者可以单独调整「场景复杂度」「数据规模」「频次偏斜」「未观测组合比例」中的任意一个因子,而把其余因素固定下来。基于这套数据,作者用约 90M 参数的 U-Net 和 SD3 同款的 DiT 两个主干分别训练 latent diffusion 模型,把 one-hot 条件向量经小型 MLP 编码后注入 cross-attention,最后用任务专属分类器评估生成图像是否匹配目标条件。
本文的本质创新不在于新模型结构,而在于把「数据 → 失败」这条因果链切成可操作的变量:MOSAIC 让作者首次能在「所有概念都被充分观测」的纯组合泛化实验里排除数据稀缺与频次偏斜的干扰。围绕这个数据集,作者提出了三个关键洞察——(1) 在 RQ1 中,概念失衡(skewed vs uniform)几乎不影响学习,真正决定 counting 表现的是「场景中同时出现的物体数」这一场景复杂度;(2) 在 RQ2 中,即便单概念被充分覆盖,只要在训练时系统性剔除某些 concept pair(用矩阵对角线剔除方案),模型对未观测组合的准确率就会随剔除对角线数量单调下降,且难度排序为 Attribution < Counting < Spatial Relations;(3) 这两个结论在 SD3 + LoRA 微调与 Comfort-Car 现实物体共现场景中均得到验证,说明它们不是人工合成设置的副产品。
方法步骤详情
工作流分四步。第一步构建 MOSAIC:固定相机视角,渲染 (sphere, cube) 双物体场景生成 100 个颜色组合(Attribution);固定棕色参考球,在 10 个 18° 角度区间放置第二颗球(Spatial Relations);生成 1–10 个同色球(Counting)。第二步设计受控变体:Attribution/Spatial 加「Complex」设置(物体数 2–10)匹配 Counting 复杂度;Counting 加「Grid」设置(位置约束在 18° 扇区);RQ2 引入「Composition」设置(Color × Count、Color × Spatial Relation)。第三步按 RQ1/RQ2 在 2k–100k 五档、Uniform/Skewed 两分布、0/1/3/5/8 档对角线剔除下分别训练 U-Net(score-matching)与 DiT(rectified flow),学习率 $1\times 10^{-4}$、20k 步、batch size 2048、4 张 A100 约 5 小时。第四步用任务专属分类器评分,并补充 memorization rate 与 SPEC+LoRA、Comfort-Car 物体共现场景两项延伸实验。
技术新颖性
相比 Okawa et al. 2023(Shapes2D,单物体连续 RGB)和 Park et al. 2024 等工作,本文首次把多物体组合拆成三个正交的离散语义轴(color/count/angle)并独立控制;相比 Bonnaire et al. 2025 / Pham et al. 2025 等讨论「扩散模型为何不记忆」的同主题研究,本文的分析维度是组合泛化(不是 ID 泛化),并且作者明确设计了「对角线剔除」机制来区分概念泛化与组合泛化失败。最后,与 Bradley 2025 等依赖显式空间条件的工作相比,本文坚持 vanilla diffusion,只在结论里指出「空间先验何时变得必要」,让方法本身具备更广的可推广性。
实验结果
RQ1:Attribution 与 Spatial Relations 在 2k/10k/50k/100k 四档、Uniform/Skewed 两分布下对 U-Net 与 DiT 都保持 ≥0.94 准确率,概念失衡几乎无影响;唯独 Counting 出现 U 型曲线——2k 时近 1.0,10k/50k 显著下滑(U-Net Skewed 仅约 0.65),100k 才回升到 0.95+。把 Attribution/Spatial 物体数也提到 2–10 后,二者也降但比 Counting 轻(10k Spatial 0.99→0.92),证实脆弱性源于场景复杂度。Counting 训练损失平滑下降但验证准确率先升后降(peak-then-degrade),高 count 类别最先崩塌。Grid 空间先验把所有规模和分布的 Counting 拉到 0.95+(UNet 100k 0.962→0.998)。RQ2:对角线剔除从 0 增到 8 时未观测组合准确率单调下降,难度排序 Attribution(100k Unseen 仍 0.92)< Counting(0.49)< Spatial Relations(10k Unseen 0.27)。Section 7 用 LoRA 微调 SD3-medium 于 SPEC:counting 从 0.84 跌到 0.39,spatial 从 0.20 升到 0.71;Comfort-Car 物体共现场景下未观测物体对准确率从 0.85 跌到 0.20。
查看结构化数据
| 任务 | 指标 | 本文 | 基线 | 提升 |
|---|---|---|---|---|
| Attribution 概念泛化 (Base, 100k, Uniform) | Generation accuracy | U-Net 0.98 / DiT 0.99 | Skewed 0.97 / 0.99 (同模型) | 概念失衡几乎无影响(≤1pp) |
| Spatial Relations 概念泛化 (Base, 100k, Uniform) | Generation accuracy | U-Net 0.99 / DiT 0.98 | Skewed 0.99 / 0.98 | 概念失衡几乎无影响(≤1pp) |
| Counting 概念泛化 (Base, 10k, Uniform) | Generation accuracy | U-Net 0.65 | Attribution/Spatial 在同规模 0.94+ | 崩塌约 30pp,scene complexity 为核心诱因 |
| Counting + Grid 空间先验 (10k, Uniform) | Generation accuracy | U-Net 0.752 / DiT 0.751 | Random 布局 0.654 / 0.752 | U-Net 提升 +0.098pp;100k 下 Random→Grid 从 0.962 → 0.998 |
| 未观测组合泛化 (Composition, 100k, 8 diagonals unseen) | Joint accuracy (Color × Concept) | Spatial 0.49 / Counting 0.49 / Attribution 0.92 | 0 diagonal unseen ≈ 1.00(三种任务) | 随对角线剔除单调下降;Spatial/Counting 退化最严重 |
| SD3 + LoRA 微调 SPEC (Counting) | Generation accuracy (GenEval) | ≈0.39 (微调后期) | Baseline ≈0.84 | 下降约 45pp,与 MOSAIC Counting 的失败一致 |
局限与改进
作者明确承认三项局限:第一,MOSAIC 是有意简化的诊断场景(俯视相机、无遮挡、固定光照),与现实 text-to-image 数据差距很大,尽管 Section 7 用 SD3+LoRA 与 Comfort-Car 做了延伸,但完全现实的设置仍待考察;第二,condition encoder 直接接收 one-hot 向量,与 SD3 的文本嵌入通路不同,作者在附录中尝试了文本条件并报告了相近趋势,但未在主结果中展示;第三,评估完全依赖任务专属分类器,无法捕捉生成失败中「看起来对但语义错」的细微情形,且分类器本身可能在 100% 的 VAE 重建准确率下掩盖分布外伪影。读者层面,作者在 Counting 上观察到训练损失下降但准确率退化,这种「优化-任务不对齐」的根本原因(是 capacity 不够、归纳偏置缺失,还是 early-learning 选择性遗忘)尚无定论;附录中加 InfoNCE / cross-entropy 辅助损失和 frozen encoder 的实验均不能消除计数崩塌,说明这不是条件监督不足这么简单。
独立分析的弱点
三处可改进的弱点。第一个弱点是 Counting 失败机制仍停在描述层:作者给出 scene complexity + 高 count 类别崩塌 + 条件嵌入 collapse(PCA 显示 10k 时 count embedding 严重塌缩)的证据,但未给出能避免崩塌的修正方案;改进方向是引入显式的 instance slot 或 count token 结构,让每个物体作为单独 token 注入而非让 cross-attention 隐式分割 instance。第二个弱点是评估只看了整体准确率,没有分析同 prompt 下不同样本的尾部行为,而多物体失败常体现在「多数对、少数严重错」;改进方向是引入 sample-level 方差或 worst-case 准确率作为补充指标。第三个弱点是 SD3 微调实验未与全参数微调、ControlNet、layout conditioning 等已有缓解手段 head-to-head 对比,未直接说明「现有修复方法能否解决 Counting」,改进方向是补做一次对比,把本文结论与现有方法绑定起来。
未来方向
作者自己提出的方向是把 MOSAIC 扩展到 occluded / varied viewpoint / 真实物体背景的设置,让诊断平台具备「更接近现实」的难度梯度;同时希望结合 layout / spatial / instance 等归纳偏置,找到能稳定多物体生成而又不牺牲视觉质量的条件注入机制。基于成果可延伸的方向至少有三:(1) 把「训练对角线剔除」的协议从离散概念推广到连续概念,构造更平滑的「组合泛化难度曲线」;(2) 把 Counting 训练损失和任务准确率的不对齐现象扩展到 class-conditional generation,研究早期学习-选择性遗忘是否是一个普遍机制;(3) 用本文的受控设置去评测 Visual Auto-Regressive Modeling、T2I-CompBench 后续方法、layout-conditioned diffusion 等,真正把「数据诊断」与「方法创新」通过同一可复现平台连接起来。
复现评估
作者在 https://github.com/eugene6923/MOSAIC.git 同时开源了数据集生成代码与训练代码,数据本身完全由 Blender 渲染而来,意味着只需论文附录里给的相机、光照、颜色与角度参数即可逐比特复现。主实验中除 SD3+LoRA 微调外,所有模型规模均约 90M、4 张 A100 训练 5 小时、20k 步 / batch size 2048,学习率 $1\times 10^{-4}$,超参数表在附录 Table A.5 详尽给出;分类器训练用单张 L40S,AdamW + cross-entropy。复现难度整体偏低,最大的工程门槛是 Blender 渲染管线(MOSAIC 在 COMFORT-BALL 上扩展而来),只要装好 Blender 即可自动化生成。SD3+LoRA 微调与 SPEC 实验的算力需求显著更高(需要 SD3-medium 推理与 LoRA 训练),但也用文中描述的 r ∈ {4, 16, 32}、lr ∈ {1e-4, 1e-5} 即可对齐。
论文图表
(a) 用 SD3 给出的失败样例:'an elephant' 单物体对,但 'a red banana and a zebra'、'a black cup and yellow tv'、'six skateboards'、'train under the desk' 均生成失败;(b) 在 LAION-2B 上统计 count 频率并与 SD3 在 CompBench 上的 counting 准确率做散点图,呈正相关;(c) seen vs unseen composition 对比,未观测组合(如 'orange pink refrigerator')出现明显退化。
这是全文动机图,把 GenEval 上多物体 < 50% 的失败现象、LAION 数据偏差与组合缺失三个证据一次性展示,决定了论文 RQ1 / RQ2 的提出。
上排:Comfort-Car 数据集中 (chair, sofa) (bike, dog) (girl, bench) 等现实物体共现样例;下排:随对角线剔除数量增加,Seen 组合的准确率稳定在 0.85+,但 Unseen 组合(如 laptop + laptop)准确率从 0.85 跌到 0.20,模型常退化为只生成一个物体。
在视觉真实度更高的设置下复现 RQ2 结论,证明组合泛化失败不是 MOSAIC 简化场景的副产品。