Conference

PartComposer: Learning and Composing Part-Level Concepts from Single-Image Examples

Junyu Liu, R. Kenny Jones, Daniel Ritchie

Brown University

一句话总结

PartComposer 从”每个物体只有一张图”的单图样例中学习细粒度的部件级概念,通过动态数据合成与最大化互信息机制,让文本到图像的扩散模型能够清晰解耦并自由重组这些部件,生成同类别或跨类别的新物体。

研究背景

从熟悉的部件组合出新颖物体是视觉创作的核心能力:设计师看到几把示例椅子,就能想象出一把借用不同椅子部件、结构又合理的新椅子。要让扩散模型具备这种”部件级概念组合”能力,存在两个主要挑战:

  • 部件比主体更细粒度:部件级概念比主体级概念更精细,且需要结构信息才能组合成合理物体,这使得学习部件身份、并在概念之间实现清晰解耦更加困难。
  • 数据极度稀缺:在没有 3D 模型或多视角图像的情况下,真实世界的样例大多是单图样例(每个物体只有一张图),数据多样性极低,几乎没有可供监督的部件组合真值。

已有方法要么专注主体级概念(如 Break-a-Scene),难以处理细粒度部件;要么虽面向部件级(如 PartCraft、Piece-it-Together),却依赖大规模数据集训练,不支持单图输入。更关键的是,现有方法都缺乏对不同概念所编码信息的显式约束,导致概念纠缠、身份丢失,在组合 4 个及以上概念时尤为明显。

方法

整体框架

PartComposer 建立在 Break-a-Scene 与 PartCraft 的扩散模型定制范式之上(使用标准扩散损失 \(L_{ldm}\) 与交叉注意力损失 \(L_{attn}\) 学习并解耦概念 token),并针对单图部件学习补充了两个核心组件:动态数据合成与最大化互信息机制。方法将部件级概念视为纯视觉信息,不依赖部件的语义或标注,token 与文本提示仅作为编码与传递信息的模板载体。

flowchart TD
    A[单图样例<br/>每图含多个细粒度部件] --> B[动态数据合成]
    B --> C1[实例图<br/>随机选部件子集并遮罩未选部件]
    B --> C2[合成图<br/>跨图随机采样部件并缩放叠放]
    C1 --> D[概念组合提示 + 噪声输入]
    C2 --> D
    D --> E[去噪 U-Net + LoRA<br/>Text Encoder + Token 优化]
    E --> F[去噪隐变量 z~]
    F --> G[概念预测器 Concept Predictor]
    G --> H1[分类头<br/>预测概念是否存在]
    G --> H2[分割头<br/>预测概念空间位置]
    E -.交叉注意力.-> I[L_attn]
    F -.重建.-> J[L_ldm]
    H1 --> K[L_CLS]
    H2 --> L[L_SEG]
    K --> M[信息损失 L_info<br/>最大化互信息]
    L --> M

关键设计

  • 动态数据合成(Dynamic Data Synthesis):每个训练批次包含两张图。一张是实例图,直接从输入样例中随机选一张,随机选取其部件子集并遮罩掉未用部件、背景置白,以保留扩散先验中的结构完整性;另一张是合成图,对每个部件类别(如椅子的扶手)从各输入实例中随机取一个部件,借鉴 MuDI 随机缩放并允许相互遮挡地摆放到白底上,据遮挡关系修改掩码,从而在单图样例下扩充出丰富多样的部件组合监督。

  • 最大化互信息(Maximizing Mutual Information):受 InfoGAN 启发,目标是最大化去噪隐变量 \(\tilde{z}\) 与概念码 \(c\) 之间的互信息 \(I(c; \tilde{z}) = H(c) - H(c \mid \tilde{z})\)。由于直接计算不可行,引入由概念预测器实现的变分分布 \(Q(c \mid \tilde{z})\) 逼近真实后验,得到变分下界;在固定概念先验下 \(H(c)\) 为常数可省略,最终训练损失为 \(L_{Info} = -\mathbb{E}[\log Q(c \mid \tilde{z})]\)。这为部件概念的解耦提供了直接监督,惩罚概念缺失或模糊的组合。

  • 概念预测器(Concept Predictor):一个作用于去噪隐变量的 CNN(三层卷积,输出通道 16/32/64),带两个并行输出头。分类头给出多标签概念存在性预测,其损失 \(L_{CLS}\) 惩罚错误组合(概念缺失或多出);分割头给出逐概念空间掩码,其损失 \(L_{SEG}\) 惩罚概念定位错误或纠缠。两者按同一量级加权合并为 \(L_{Info}\),与概念学习过程联合优化。

  • 总损失与训练:在原 Break-a-Scene 的 \(L_{ldm}\)、\(L_{attn}\) 基础上,加入概念预测损失与辅助背景损失 \(L_{BG}\)(惩罚在选定部件掩码并集之外生成内容),总损失为 \(L_{total} = L_{ldm} + L_{attn} + \lambda_{info}(L_{CLS} + \lambda_{seg} L_{SEG}) + \lambda_{bg} L_{BG}\),权重取 \(\lambda_{info}=0.05\)、\(\lambda_{seg}=10.0\)、\(\lambda_{bg}=0.01\)。基座为 Stable Diffusion v2.1,U-Net 上加 rank 32 的 LoRA,采用两阶段训练(先以高学习率仅更新 token 嵌入,再以低学习率更新 text encoder 与 U-Net 的 LoRA 权重)。

实验结果

概念保留能力评测:对 chair、vehicle、character 三类,每类 7 个单图样例,用多模态大模型 QWen 对生成图中被正确保留的部件数量打分并归一化到 0–5 分(越高越好)。PartComposer 显著优于所有基线。

Category BaS PartCraft MuDI PiT PartComposer
Chairs 3.66 1.89 1.97 2.70 4.91
Characters 4.10 3.20 2.70 4.30 4.89
Vehicles 3.07 1.85 2.03 2.57 4.68

在生成质量上(FID、KID 及 QWen 质量评分),PartComposer 在三个类别上整体也取得最优或接近最优的表现(如 Chair FID 15.85、QWen 4.72)。消融实验表明:去掉动态数据合成会导致数据利用率下降,去掉概念预测器会造成概念纠缠或缺失。

亮点与局限

亮点

  • 首次聚焦”单图样例下的部件级概念学习”这一更困难、也更贴近真实数据条件的任务,放宽了对每个物体多图输入的要求。
  • 用最大化互信息 + 概念预测器把”概念是否存在”和”概念在哪里”两类监督显式化,直接约束概念编码空间,有效缓解多概念(>4)重组时的纠缠与缺失。
  • 方法对部件粒度不敏感,可学习每图 4 个以上很细粒度的概念,支持同类别与跨类别组合,甚至能做出富有想象力的虚构物体,还能扩展到背景概念、不完整组合提示与更多输入图。

局限

  • 依赖部件级掩码作为训练监督(虽兼容 SAM + GPT-4o 自动分割或人工标注,但仍是前置依赖)。
  • 属于逐样例优化/微调的路线,相比 PiT 这类前馈推理方法在效率上处于劣势。
  • 跨类别组合虽有创意,但仅对”大多数”组合场景能保持合理结构,极端组合的结构合理性并无保证。

延伸思考

将”最大化互信息 + 辅助预测器”作为解耦监督的思路,本质上是把 InfoGAN 的可解释性正则迁移到扩散模型定制中,这一范式或许能推广到其他需要精细可控编辑的生成任务(如材质、光照、布局的分量解耦)。另一个值得追问的方向是:当前分割监督依赖预先获得的部件掩码,若能与自监督或弱监督的部件发现联合训练,是否可以彻底摆脱掩码依赖?此外,方法在跨类别组合时的”结构合理性”仍靠扩散先验隐式约束,引入显式的结构/物理先验(例如部件连接关系或可装配性约束)可能是让”疯狂想象”落地为可用设计的关键一步。