跳转至

Make It Count: Text-to-Image Generation with an Accurate Number of Objects

会议: CVPR 2025
arXiv: 2406.10210
代码: 有 (项目主页)
领域: 图像生成 / 扩散模型
关键词: 文本到图像生成, 计数准确性, 物体数量控制, 扩散模型, 注意力机制

一句话总结

本文提出CountGen方法,通过在扩散模型去噪过程中识别承载物体身份信息的特征来分离和计数物体实例,并训练一个布局预测模型来修复数量不足的情况,实现了不依赖外部布局的计数准确文本到图像生成。

研究背景与动机

领域现状:文本到图像扩散模型(如Stable Diffusion、DALL-E等)已经取得了惊人的生成质量,但在可控性方面仍存在诸多挑战。其中一个看似简单实则困难的问题是:根据文本描述准确生成指定数量的物体。例如"三只猫"可能生成两只或四只,"五个苹果"可能生成三个或七个。

现有痛点:数量控制之所以困难,有几个根本原因。第一,生成模型需要为每个物体实例维持独立的身份表示,即使多个物体外观完全相同或存在遮挡;第二,模型需要在生成过程中隐式地执行一个全局计算来确保数量正确;第三,目前不清楚扩散模型的内部表示中是否存在能够承载此类信息的结构。现有方法要么依赖外部布局生成器(如LayoutGPT)来规划物体位置,要么通过反复重试筛选来获取正确数量的图像,效率低下。

核心矛盾:扩散模型的去噪过程是从噪声逐步恢复信号的过程,在早期去噪步骤中图像结构还未成形,物体数量此时可能还未确定;而在后期步骤中布局已经固化,难以再插入新物体。如何在去噪过程的恰当时机检测并修正物体数量,是核心难题。

本文目标:(1) 在扩散模型内部找到承载物体实例身份信息的特征;(2) 在去噪过程中实时检测物体数量是否正确;(3) 设计修正机制来处理数量不足或过多的情况。

切入角度:作者发现扩散模型的交叉注意力图(cross-attention map)中特定层的特征可以区分不同的物体实例——即使是相同类别的多个物体,它们在注意力图中也表现为独立的连通区域。基于这一发现,可以在去噪过程中实时计数。

核心 idea:利用扩散模型自身的交叉注意力特征来分离和计数物体实例,当检测到数量不补时,用一个轻量级布局模型预测缺失物体的位置和形状,然后通过注意力引导来注入新物体。

方法详解

整体框架

CountGen的工作流程如下:在扩散模型的去噪过程中,每隔若干步从交叉注意力图中提取物体对应token的注意力响应,通过阈值化和连通组件分析来分离不同实例并计数。如果检测到数量不足(under-generation),则调用预训练的布局预测模型,根据已有物体的空间分布预测缺失物体的位置和形状(bounding box + 粗略mask),再通过注意力操纵引导去噪过程在指定位置生成新物体。如果检测到数量过多(over-generation),则通过降低多余区域的注意力响应来抑制。

关键设计

  1. 基于注意力的实例分离与计数(Attention-based Instance Separation & Counting):

    • 功能:在去噪过程中实时检测当前生成了多少个目标物体实例
    • 核心思路:对于文本prompt中的目标物体token(如"cat"),提取其在特定UNet层的交叉注意力图。将注意力值进行归一化和阈值化得到二值掩码,然后通过连通组件分析(connected component analysis)来识别独立的物体实例。每个连通区域对应一个物体实例,区域数量即为当前物体计数。在多个去噪步骤中重复此操作以获得稳定的计数
    • 设计动机:交叉注意力图本质上反映了图像空间位置与文本token之间的对应关系,同一类别的不同实例在空间上自然分离为不同的注意力"热点",这是无需额外训练就能利用的模型内在结构
  2. 布局预测模型(Layout Prediction Model):

    • 功能:当检测到数量不足时,预测缺失物体应该出现的位置和形状
    • 核心思路:训练一个轻量级模型(基于Transformer),输入是已有物体的布局信息(位置、大小、mask)和目标数量,输出是缺失物体的bounding box和粗略形状mask。关键创新是这个模型利用的是扩散模型自身的先验——训练数据来自大量生成图像中自然产生的布局分布,而非外部数据源。因此,预测的布局是prompt-dependent和seed-dependent的,与当前生成的上下文自然协调
    • 设计动机:不同于LayoutGPT等方法依赖外部大语言模型来规划布局(可能与实际生成的图像风格不匹配),本方法直接从扩散模型的生成分布中学习布局先验,确保插入的物体在空间上合理
  3. 注意力引导去噪(Attention-Guided Denoising):

    • 功能:在去噪过程中引导模型在指定位置生成新物体
    • 核心思路:获得缺失物体的预测位置后,修改交叉注意力图——在指定位置增强目标token的注意力响应,同时在其他位置适度抑制。具体实现是在每步去噪中对注意力图施加一个软约束,将目标token的注意力"推向"预测的位置。对于过生成的情况,则反向操作——在多余物体的位置降低注意力
    • 设计动机:注意力引导是一种柔和的控制方式,不会破坏整体图像的连贯性;相比直接在潜变量上做inpainting,注意力操纵更好地保持了全局一致性

损失函数 / 训练策略

布局预测模型的训练使用标准的回归损失(L1 loss用于bounding box位置,BCE loss用于mask预测)。训练数据通过大量运行扩散模型生成得到,自动用检测器标注布局信息。整体CountGen框架在推理时不需要额外训练扩散模型本身。

实验关键数据

主实验

方法 CountBench准确率↑ 平均计数误差↓ FID↓ CLIP-Score↑
Stable Diffusion 28.3% 1.42 18.2 0.312
Attend-and-Excite 35.1% 1.18 19.5 0.305
LayoutGPT + SD 41.7% 0.95 22.3 0.289
CountGen (Ours) 54.8% 0.71 19.1 0.308

消融实验

配置 计数准确率↑ 说明
Full CountGen 54.8% 完整方法
w/o 布局预测(随机位置) 42.3% 随机放置效果显著下降
w/o 过生成修正 50.1% 仅处理不足,不处理过多
w/o 注意力引导(直接inpaint) 46.5% 直接inpaint不如注意力引导自然
使用外部布局(LayoutGPT) 48.2% 外部布局不如自身先验
不同检测步骤(step 10) 51.2% 早期检测布局未稳定
不同检测步骤(step 25) 54.8% 中期检测效果最佳

关键发现

  • CountGen在2-5个物体的计数任务上效果最好,7个以上时准确率显著下降,因为密集布局中物体遮挡严重导致注意力图难以分离
  • 使用扩散模型自身的布局先验比外部LayoutGPT效果更好(54.8% vs 48.2%),证明了prompt-dependent布局的优势
  • 过生成修正(抑制多余物体)的贡献约4.7%,说明过生成和不足生成都是需要处理的重要问题
  • 在FID指标上CountGen几乎不牺牲图像质量(与原始SD相当),说明注意力操纵是一种温和有效的控制方式
  • 跨模型评估显示CountGen的注意力分离策略对SDXL也有效,具有一定的泛化能力

亮点与洞察

  • 发现扩散模型内部存在实例分离的表示是本文最重要的洞察——交叉注意力图中同类物体自然形成独立连通区域,这意味着扩散模型确实"知道"每个物体在哪里,只是没有被充分利用
  • 自引导布局预测的设计思路非常优雅:不引入外部知识源,而是从模型自身的生成分布中学习"缺失物体应该放在哪里"。这保证了生成结果的自然性和一致性
  • 计数问题看似简单但触及了生成模型可控性的核心:如何在高度纠缠的潜变量空间中进行离散的结构性控制

局限与展望

  • 对于高数量(>5个)物体的准确率仍然不高,尤其是密集遮挡场景
  • 当前方法针对单一类别物体的计数优化,多类别混合计数(如"3只猫和2条狗")还未充分验证
  • 注意力图的实例分离依赖于阈值选择,不同prompt和seed下最优阈值可能不同
  • 布局预测模型需要额外的训练数据生成和标注过程,虽然是自动化的但增加了pipeline复杂度
  • 未来可以探索将计数控制与其他属性控制(颜色、大小、姿态)联合优化

相关工作与启发

  • vs Attend-and-Excite: A&E通过增强被忽视token的注意力来确保所有文本概念都出现在图像中,但不关注同一概念的多个实例。CountGen专注于实例级别的计数控制,是A&E在数量维度上的延伸
  • vs LayoutGPT: LayoutGPT用LLM生成布局再有条件地生成图像,但LLM生成的布局可能与扩散模型的自然分布不匹配。CountGen完全从扩散模型内部提取信息,更加自洽
  • vs Training-free Compositional Generation: 这类方法通过组合多个prompt的去噪结果来控制生成内容,但难以精确控制数量。CountGen的实例检测和修复机制更加直接

评分

  • 新颖性: ⭐⭐⭐⭐ 发现注意力图中的实例分离特性并加以利用是新颖的洞察,自引导布局设计优雅
  • 实验充分度: ⭐⭐⭐⭐ 在两个benchmark上评估,包含全面的消融分析
  • 写作质量: ⭐⭐⭐⭐ 问题定义清晰,方法动机好,写作流畅
  • 价值: ⭐⭐⭐⭐ 数量控制是文本到图像生成中的实际痛点,方法具有直接的应用价值