AnyControl: Create Your Artwork with Versatile Control on Text-to-Image Generation¶
会议: ECCV 2024
arXiv: 2406.18958
代码: https://any-control.github.io
领域: 图像生成 / 可控生成
关键词: Multi-Control, text-to-image, Controllable Generation, Spatial Conditions, ControlNet
一句话总结¶
提出 AnyControl,通过 Multi-Control Encoder(fusion + alignment 交替块结构)支持任意组合的多种空间控制信号(深度、边缘、分割、姿态),在 COCO 多控制基准上 FID 44.28 全面超越现有方法。
研究背景与动机¶
领域现状:ControlNet 等方法实现了单条件可控 T2I 生成。但实际应用中往往需要同时使用多种控制信号(如深度图+分割图+姿态),现有多控制方法(Multi-ControlNet、Uni-ControlNet)存在显著局限。
现有痛点: - 输入灵活性不足:多数方法不能自由组合任意类型/数量的控制信号 - 空间兼容性差:多条件简单加权求和会导致遮挡区域混合伪影 - 文本兼容性差:空间条件过于强势,抑制了文本语义(如指定"Transformers Robot"但姿态条件迫使生成普通人形)
核心矛盾:需要同时处理多种异构空间条件并与文本对齐,但简单的拼接/加权无法建模条件间的复杂关系(遮挡、冲突等)
本文目标 (a) 支持任意组合的多控制输入;(b) 建模空间条件间的兼容性;(c) 保持文本语义的忠实度
切入角度:用 learnable query tokens 通过交叉注意力从多个空间条件中提取兼容信息,再通过自注意力与文本 token 对齐
核心 idea:Multi-Control Encoder 用 query tokens 做信息枢纽——先通过 cross-attention 融合多空间条件(fusion),再通过 self-attention 与文本 token 对齐(alignment),交替堆叠
方法详解¶
整体框架¶
基于冻结 SD1.5,添加可训练的 UNet encoder copy + Multi-Control Encoder。Multi-Control Encoder 处理三种 token:文本 token \(\mathcal{T}\)(CLIP text)、视觉 token \(\mathcal{V}\)(CLIP image,多级)、query token \(\mathcal{Q}\)(256 个可学习参数)。
关键设计¶
-
Multi-Control Fusion Block:
- 功能:从所有空间条件中提取兼容信息到 query tokens
- 核心思路:query tokens 做 Q,所有条件的视觉 tokens 拼接后做 KV:\(\mathcal{Q}_j = CrossAttn(\mathcal{Q}_j, [\mathcal{V}_{1,j}+P, \mathcal{V}_{2,j}+P, ..., \mathcal{V}_{n,j}+P])\)
- 共享 positional embedding P 跨条件——让模型学会空间对齐
- 设计动机:Cross-attention 天然适应可变数量的 KV 输入(不需要固定通道数),且能通过注意力权重自动处理遮挡/冲突
-
Multi-Control Alignment Block:
- 功能:将 query tokens 中的空间信息与文本 tokens 的语义信息对齐
- 核心思路:\([\mathcal{Q}_{j+1}, \mathcal{T}_{j+1}] = SelfAttn([\mathcal{Q}_j, \mathcal{T}_j])\)
- 额外的 textual task prompt(如"depth + segmentation")附加到用户文本中,解决模态差异
- 设计动机:防止空间条件压制文本语义——通过自注意力让两者协商,确保文本描述也被尊重
-
Multi-Level Visual Tokens:
- 功能:从 CLIP 的多层提取视觉特征,提供不同粒度的控制
- 消融显示 4 层最优(FID 43.67),过多层反而略降
-
Unaligned Training Data:
- 功能:合成前景+背景不对齐的训练数据,弥合训练(完美对齐)和测试(任意组合)的差距
- FID 从 52.10 降到 44.28,提升巨大
损失函数 / 训练策略¶
- MultiGen 数据集 2.8M 对齐图 + 0.44M 合成不对齐图
- 8×A100,batch size 8,90K 迭代,lr 1e-5
- 训练时随机抽取 2 个条件(对齐数据)或 1 前景+1 背景(不对齐数据)
- 推理用 DDIM 50 步,CFG scale 7.5
实验关键数据¶
多控制评估(COCO-UM Benchmark)¶
| 方法 | FID↓ | CLIP↑ | Depth RMSE↓ | Seg mPA↑ | Pose mAP↑ |
|---|---|---|---|---|---|
| Multi-ControlNet | 55.95 | 24.80 | 17.81 | 42.78 | 15.69 |
| Uni-ControlNet | 55.28 | 24.48 | 20.57 | 41.10 | 18.40 |
| Cocktail | 47.39 | 25.33 | - | 31.74 | 12.16 |
| AnyControl | 44.28 | 26.41 | 18.00 | 43.34 | 18.81 |
单控制评估(COCO-5K)¶
| 方法 | Depth FID | Seg FID | Edge FID | Pose FID |
|---|---|---|---|---|
| ControlNet | 19.80 | 20.39 | 16.16 | 26.15 |
| AnyControl | 18.04 | 18.89 | 18.89 | 24.12 |
→ 即使单控制也优于专用 ControlNet
消融实验¶
| 配置 | FID↓ | CLIP↑ | 说明 |
|---|---|---|---|
| 无不对齐数据 | 52.10 | 25.62 | 训练-测试差距大 |
| 有不对齐数据 | 44.28 | 26.40 | -7.8 FID |
| 1 level tokens | 45.64 | 26.35 | 单层特征 |
| 4 level tokens | 43.67 | 26.39 | 最优层数 |
关键发现¶
- CLIP 分数最高(26.41):说明 alignment block 有效保住了文本语义,这正是其他方法的弱项
- FID 显著领先(44.28 vs 47.39 Cocktail):整体图像质量最佳
- 单控制也更好:不是"多控制换来单控制损失",而是统一框架反而学得更好
- 不对齐数据是关键:没有这个设计 FID 掉 7.8——因为真实使用时多个控制几乎不可能完美对齐
亮点与洞察¶
- Query tokens 做信息枢纽:不同于简单拼接/求和,用 learnable query 做 cross-attention 天然支持可变输入数量——这个设计参考了 Q-Former/Perceiver 但用于控制信号融合,很优雅
- Fusion + Alignment 交替块:先融合空间条件,再与文本对齐——两步分开确保两者都不被牺牲
- 不对齐数据的训练策略:用合成方式弥合训练(完美对齐)和推理(任意组合)的差距,实用且有效
局限与展望¶
- 条件过多时质量下降:8+ 条件时出现语义混乱——因为 CLIP 文本编码器本身对复杂 prompt 理解有限,且 softmax 精度在 KV 过多时下降
- 基于 SD1.5:未在 SDXL/SD3 等新基础模型上验证
- CLIP visual encoder 的限制:用 CLIP 提取控制信号的视觉特征可能丢失细粒度空间信息
- 训练数据覆盖:合成不对齐数据可能无法完全模拟真实场景中条件不一致的复杂情况
相关工作与启发¶
- vs Multi-ControlNet: Multi-ControlNet 用多个独立 ControlNet 再加权求和——无法建模条件间关系。AnyControl 通过 attention 让条件"协商"
- vs Uni-ControlNet: Uni-ControlNet 用 MoE 处理多条件——通道数固定,不够灵活。AnyControl 用 attention 天然支持可变输入
- vs Cocktail: Cocktail 基于优化(测试时微调),慢且不稳定。AnyControl 是前馈式,推理速度与标准 SD 相当
评分¶
- 新颖性: ⭐⭐⭐⭐ Query-based multi-control fusion 设计新颖,不对齐训练数据策略实用
- 实验充分度: ⭐⭐⭐⭐⭐ 多控制+单控制+消融+用户研究+定性分析,全面
- 写作质量: ⭐⭐⭐⭐ 三个挑战→三个解决方案的对应清晰,方法图好
- 价值: ⭐⭐⭐⭐ 对可控图像生成有直接应用价值,统一框架设计实用