ControlNet++: Improving Conditional Controls with Efficient Consistency Feedback¶
会议: ECCV 2024
arXiv: 2404.07987
代码: https://github.com/liming-ai/ControlNet_Plus_Plus
领域: LLM/NLP
关键词: 可控生成, 扩散模型, 循环一致性, 高效奖励微调, ControlNet
一句话总结¶
提出 ControlNet++,通过预训练判别模型提取生成图像的条件并优化像素级循环一致性损失来显式提升可控生成的精度,同时提出高效单步去噪奖励策略避免多步采样的巨大开销。
研究背景与动机¶
领域现状¶
领域现状:可控性不足**: 现有方法(ControlNet, T2I-Adapter 等)仍难以精确生成与输入条件一致的图像。例如 ControlNet 在分割掩码条件下仅达 32.55 mIoU,远低于判别模型在真实数据上的 50.7 mIoU
现有痛点¶
现有痛点:隐式 vs 显式可控: 现有方法通过将条件引入潜空间去噪过程来隐式学习可控性,缺乏直接优化条件遵循度的机制
核心矛盾¶
核心矛盾:效率挑战**: 从随机噪声采样到完整图像需要存储所有时步的梯度,以 50 步推理计算,单样本需约 340GB 显存
方法详解¶
整体框架¶
- 循环一致性建模: 将图像条件控制建模为图像翻译任务,生成图像后用预训练判别模型提取对应条件,优化输入条件与提取条件间的像素级一致性
- 高效奖励微调: 对训练图像添加小噪声(破坏一致性),用单步去噪恢复图像进行奖励微调,避免从随机噪声多步采样
关键设计¶
- 判别奖励模型: 根据不同条件选择对应的预训练判别模型——分割用 UperNet-R50, 深度用 DPT-Hybrid, 边缘用 Kornia Canny / ControlNet 自带模型
- 更强奖励模型 = 更好可控性: UperNet-R50 (42.05 mIoU) 作为奖励模型训练的 ControlNet++ 在评估时达 43.64 mIoU(超过奖励模型本身的能力)
- 时步阈值: 仅在 \(t \leq t_{thre}\) (设为200) 时应用奖励损失,因为大噪声时步的单步去噪预测图像失真严重
- 泛化性: 在少量时步 \([t_{thre}, 1]\) 上的奖励微调可以泛化到未优化的更大时步 \([T, t_{thre}]\)
损失函数 / 训练策略¶
\[\mathcal{L}_{total} = \mathcal{L}_{train} + \lambda \cdot \mathcal{L}_{reward}\]
- \(\mathcal{L}_{train}\): 标准扩散去噪训练损失
- \(\mathcal{L}_{reward} = \mathcal{L}(c_v, \mathbb{D}(x_0'))\): 条件一致性损失
- 不同条件使用不同损失: 分割掩码用交叉熵,深度/边缘用 MSE
- 先用标准训练收敛,然后用 batch size=256, lr=1e-5 进行 10K 步奖励微调
实验关键数据¶
主实验¶
| 条件类型 | 评估指标 | ControlNet (SD1.5) | ControlNet++ | 提升 |
|---|---|---|---|---|
| 分割掩码 | mIoU↑ | 32.55 | 43.64 | +11.09 |
| Canny 边缘 | F1↑ | 34.65 | 37.04 | +2.39 |
| HED 边缘 | SSIM↑ | 0.7621 | 0.8097 | +0.048 |
| LineArt 边缘 | SSIM↑ | 0.7054 | 0.8399 | +0.135 |
| 深度图 | RMSE↓ | 35.90 | 28.32 | -7.58 |
消融实验 (奖励模型强度)¶
| 奖励模型 | 奖励模型 mIoU | 评估 mIoU |
|---|---|---|
| 无 (原始 ControlNet) | - | 32.55 |
| DeepLabv3-MBv2 | 34.02 | 31.96 |
| FCN-R101 | 39.91 | 40.44 |
| UperNet-R50 | 42.05 | 43.64 |
关键发现¶
- ControlNet++ 在所有条件类型上显著超越现有方法,同时不损害图像质量(FID 通常更优)和文本对齐(CLIP-Score 可比)
- SDXL 骨干并不显著提升可控性——SD1.5 + ControlNet++ 可超越 SDXL 系方法
- 生成数据用于训练分割模型可获得 +1.19 mIoU 提升,证明了可控性改善的实际价值
- 人工评估: 20 位标注者中 76.8% 认为 ControlNet++ 的图像-条件对齐最优
亮点与洞察¶
- 循环一致性思想精巧: 借鉴 CycleGAN 的核心思想到条件扩散模型,将可控性优化从隐式转为显式
- 高效奖励策略: 单步去噪代替多步采样,将显存需求从 340GB 降至约 6.8GB,实用性极强
- AI 反馈替代人类反馈: 使用预训练判别模型作为奖励模型,比人类偏好标注更精确、更低成本
- 生成数据增强判别模型: 验证了更可控的生成模型产生的数据可以反哺判别任务
局限与展望 / 可改进方向¶
- 部分条件(人体姿态、涂鸦、边界框)的可微奖励模型尚不可用
- 需要为每种条件类型训练独立的 ControlNet++ 模型
- HED/LineArt 使用相同模型作为奖励和评估,公平性稍有不足
- 文本提示冲突时虽然 ControlNet++ 更鲁棒,但仍无法完美处理
相关工作与启发¶
- 将 RLHF 的思想从全局图像质量精化到细粒度可控性,是一个重要的方向扩展
- 高效单步奖励策略可推广到其他需要像素级损失的扩散模型微调场景
- 启示: 判别模型和生成模型的协同进化是一个值得深入探索的方向
补充说明¶
- 单纯增大条件控制的权重(control scale)无法提升可控性,反而导致图像失真
- 奖励微调阶段冻结预训练文生图模型和判别模型,仅更新 ControlNet 参数
- 对 Canny 边缘使用 Kornia 实现替代 OpenCV,以获得可微性
- 代码基于 HuggingFace Diffusers 实现
评分¶
- 新颖性: ⭐⭐⭐⭐⭐ — 循环一致性+高效奖励微调的组合非常有创意
- 技术深度: ⭐⭐⭐⭐ — 数学推导清晰,单步近似有理论支撑
- 实验质量: ⭐⭐⭐⭐⭐ — 覆盖 6 种条件、多种评估维度、含人工评估
- 实用性: ⭐⭐⭐⭐⭐ — 已开源,可直接应用
- 综合推荐: ⭐⭐⭐⭐⭐
相关论文¶
- [ECCV 2024] SegGen: Supercharging Segmentation Models with Text2Mask and Mask2Img Synthesis
- [ECCV 2024] UDiffText: A Unified Framework for High-quality Text Synthesis in Arbitrary Images via Character-aware Diffusion Models
- [ECCV 2024] Diffusion Models for Open-Vocabulary Segmentation
- [ECCV 2024] Dataset Enhancement with Instance-Level Augmentations
- [ECCV 2024] CPM: Class-Conditional Prompting Machine for Audio-Visual Segmentation