跳转至

ControlNet++: Improving Conditional Controls with Efficient Consistency Feedback

会议: ECCV 2024
arXiv: 2404.07987
代码: GitHub
领域: 可控生成 / 分割
关键词: ControlNet, 可控生成, 循环一致性, 扩散模型, Reward Fine-tuning

一句话总结

提出 ControlNet++,通过像素级循环一致性损失显式优化条件可控生成质量:用预训练判别模型从生成图像中提取条件并与输入条件对齐,并设计高效单步去噪 reward 策略避免多步采样的巨大显存开销,在分割掩码、边缘、深度等多种条件控制下显著提升可控性(如分割 mIoU +11.1%)。

研究背景与动机

文本到图像扩散模型(如 Stable Diffusion)虽然生成质量惊人,但仅靠文本难以精确描述空间布局等细粒度信息。ControlNet、T2I-Adapter 等引入了图像条件控制(分割掩码、边缘图、深度图),但可控性仍不理想:

关键发现:现有 ControlNet 生成的图像与输入条件之间存在显著偏差。例如: - 分割掩码条件下只有 32.55 mIoU(远低于同模型在真实数据上的 50.7 mIoU) - T2I-Adapter-SDXL 持续产生错误的额头皱纹 - ControlNet v1.1 引入大量错误细节

根本原因:现有方法仅在隐空间去噪过程中隐式学习可控性,缺乏显式的像素级一致性约束。

方法详解

整体框架

ControlNet++ 将可控生成建模为图像翻译任务,引入循环一致性思想: 1. 输入条件 c_v 经扩散模型生成图像 x_0' 2. 判别模型 D 从 x_0' 提取条件 c_v_hat 3. 优化 c_v 与 c_v_hat 之间的一致性损失

关键设计 1:循环一致性 Reward 损失

L_reward = L(c_v, c_v_hat) = L(c_v, D(x_0'))

不同条件类型使用不同的具体损失函数和判别模型: - 分割掩码:UperNet-R50,逐像素交叉熵损失 - 深度图:DPT 模型,RMSE 损失 - 边缘图:对应边缘检测器,SSIM/F1 Loss

总损失为扩散训练损失与 reward 损失的加权和:L_total = L_train + lambda * L_reward

关键设计 2:高效单步 Reward 策略

问题:直接从随机噪声 x_T 多步采样生成图像再计算 reward loss,需要存储所有时间步的梯度。以 50 步推理为例,约需 340GB 显存,完全不可行。

解决方案:不从随机噪声采样,而是向训练图像加噪后单步去噪:

  1. 扰动一致性(Disturb Consistency):对训练图像 x_0 加小噪声得到 x_t'(与标准扩散前向过程相同)
  2. 单步去噪恢复:当噪声较小(t <= t_thre)时,直接通过单步采样预测原图
  3. 用去噪后的 x_0' 计算 reward loss

最终训练策略:当 t <= t_thre 时用 L_train + lambda * L_reward,否则仅用 L_train。

核心洞察:加噪破坏了图像与条件的一致性,reward loss 教模型在去噪时重建这种一致性,从而增强生成时遵循条件的能力。

损失函数 / 训练策略

  • 冻结预训练判别 reward 模型和文本到图像主模型
  • 仅更新 ControlNet 参数(与原始 ControlNet 训练方式一致)
  • 时间步阈值 t_thre 控制何时启用 reward loss(小噪声时间步)
  • 单独使用 reward loss 会导致图像失真,必须与扩散训练 loss 联合

实验关键数据

主实验:多条件可控性对比

条件类型 指标 ControlNet T2I-Adapter Uni-ControlNet Ours
分割掩码 (ADE20K) mIoU 32.55 12.61 19.39 43.64
Canny 边缘 F1 34.65 23.65 27.32 37.04
Hed 边缘 SSIM 0.7621 - 0.6910 0.8097
LineArt 边缘 SSIM 0.7054 - - 0.8399
深度图 RMSE(低好) 35.90 48.40 40.65 28.32

ControlNet++ 在所有条件控制下显著优于现有方法。

图像质量 FID 对比

条件 ControlNet FID ControlNet++ FID
分割掩码 (ADE20K) 33.28 29.49
分割掩码 (COCO) 21.33 19.29
深度图 17.76 16.66

提升可控性的同时不损害甚至改善了图像质量。

消融实验

Reward 策略跨时间步的泛化性

未优化步 [T, t_thre] 优化步 [t_thre, 1] mIoU
ControlNet ControlNet 32.55
ControlNet Ours 38.03
Ours ControlNet 41.46
Ours Ours 43.64

即使 reward fine-tuning 只在小时间步训练,其效果也泛化到了大时间步。

Reward 模型强度影响

Reward Model RM 自身 mIoU 评估 mIoU
- 32.55
DeepLabv3-MBv2 34.02 31.96
FCN-R101 39.91 40.44
UperNet-R50 42.05 43.64

更强的 reward 模型带来更好的可控性。弱 reward 模型反而有负面效果。

关键发现

  1. 显式优化远优于隐式学习:像素级循环一致性显著优于仅依赖去噪过程的隐式可控性
  2. 单步 reward 策略有效且高效:显存从 340GB 降至约 7GB,同时效果良好
  3. 生成数据可增强判别模型:用 ControlNet++ 生成的数据训练 DeepLabv3 比用 ControlNet 数据高 1.19 mIoU
  4. 文本影响:当文本为空或与图像条件冲突时,ControlNet++ 仍能正确生成,而 ControlNet 失败

亮点与洞察

  1. CycleGAN 思想的优雅迁移:将循环一致性从图像翻译引入可控扩散模型
  2. 高效 reward 策略的工程洞察:用加噪-单步去噪替代多步采样,将不可行的方案变为实用方法
  3. 统一框架:同一套方法适用于分割掩码、边缘、深度等多种条件
  4. 生成-判别闭环:判别模型作为 reward 信号反哺生成模型,形成良性循环

局限性 / 可改进方向

  1. 依赖高质量可微分判别模型,部分条件(如骨架、草图)尚缺可微分提取器
  2. Reward model 本身的能力上限制约了可控性天花板
  3. 时间步阈值 t_thre 需要手动调节
  4. 仅在 SD1.5 上验证,未扩展到 SDXL/SD3 等更强基座模型
  5. 边缘类条件的 CLIP-Score 有轻微下降

相关工作与启发

  • ControlNet / T2I-Adapter:本文的直接改进对象,共享 ControlNet 架构
  • CycleGAN:启发了循环一致性的核心思想
  • RLHF / ReFL:reward fine-tuning 思路来源于 NLP 的人类反馈强化学习
  • 启发:判别模型作为 AI feedback 比人类标注更高效;循环一致性可推广到其他条件生成任务

评分

  • 新颖性: 4/5 - 循环一致性 + 高效 reward 策略的组合新颖实用
  • 实验充分度: 5/5 - 6种条件、5个基线、多维度消融、生成数据验证
  • 写作质量: 4/5 - 动机清晰,图示丰富
  • 价值: 5/5 - 直击可控生成痛点,提升幅度显著,已开源