【AIGC】2024-ECCV-ControlNet++:通过有效的一致性反馈改进条件控制

时间:2024-10-27 22:57:12

2024-ECCV-ControlNet++: Improving Conditional Controls with Efficient Consistency Feedback

  • ControlNet++:通过有效的一致性反馈改进条件控制
    • 摘要
    • 1. 引言
    • 2. 相关工作
      • 2.1 基于扩散的生成模型
      • 2.2 可控的文本到图像扩散模型
      • 2.3 语言和视觉奖励模型
    • 3. 方法
      • 3.1. 初步
      • 3.2 具有一致性反馈的奖励可控性
      • 3.3 高效奖励微调
    • 4. 实验
      • 4.1 实验设置
    • 5. 讨论
    • 6. 结论
    • 参考文献

ControlNet++:通过有效的一致性反馈改进条件控制

作者:Ming Li, Taojiannan Yang, Huafeng Kuang, Jie Wu, Zhaoning Wang, Xuefeng Xiao, and Chen Chen
单位:Center for Research in Computer Vision, University of Central Florida, ByteDance
论文地址2024-ECCV-ControlNet++: Improving Conditional Controls with Efficient Consistency Feedback

摘要

 为了增强文本到图像传播模型的可控性,现有的努力(如 ControlNet)结合了基于图像的条件控制。在本文中,我们揭示了现有方法在生成与图像条件控制一致的图像方面仍然面临重大挑战。为此,我们提出了 ControlNet++,这是一种通过明确优化生成的图像和条件控制之间的像素级循环一致性来改进可控生成的新方法。具体而言,对于输入条件控制,我们使用预先训练的判别奖励模型来提取生成的图像的相应条件,然后优化输入条件控制和提取的条件之间的一致性损失。一种直接的实现是从随机噪声生成图像然后计算一致性损失,但这种方法需要存储多个采样时间步的梯度,从而导致大量的时间和内存成本。为了解决这个问题,我们引入了一种有效的奖励策略,通过添加噪声故意扰乱输入图像,然后使用单步去噪图像进行奖励微调。这避免了与图像采样相关的大量成本,从而可以更有效地进行奖励微调。大量实验表明,ControlNet++ 显著提高了各种条件控制下的可控性。例如,对于分割掩码、线条艺术边缘和深度条件,它分别比 ControlNet 提高了 11.1% mIoU、13.4% SSIM 和 7.6% RMSE。所有代码、模型、演示和组织数据都已在我们的 Github Repo 上开源。
关键词:可控生成 · 扩散模型 · ControlNet

1. 引言

 扩散模型 [12, 43, 50] 的出现和改进,以及大规模图像文本数据集的引入 [48, 49],催化了文本到图像生成的重大进步。尽管如此,正如谚语 “一图胜千言” 所传达的那样,仅通过语言来准确而详细地描述图像是一项挑战,这一困境也困扰着现有的文本到图像的扩散模型 [43, 46]。为此,许多研究侧重于将分割掩码等条件控制合并到文本到图像的扩散模型中 [22, 30, 37, 62, 63]。尽管这些方法多种多样,但核心目标仍然是通过明确的基于图像的条件控制促进更准确、可控的图像生成。

图 1

图 1:(a)给定相同的输入图像条件和文本提示,(b) 我们生成的图像的提取条件与输入更加一致,(c, d)而其他方法无法实现精确可控的生成。SSIM 分数衡量所有输入边缘条件与提取的边缘条件之间的相似性。所有线边缘均由 ControlNet [63] 使用的相同线检测模型提取。

 实现可控的图像生成可能需要从头开始重新训练扩散模型 [37, 43],但这对计算的要求很高,而且缺乏大型公共数据集 [63]。鉴于此,一种可行的策略是对预先训练的文本到图像模型 [23, 61] 进行微调或引入可训练模块 [30, 62, 63],如 ControlNet [63]。然而,尽管这些研究探索了文本到图像扩散模型中可控性的可行性 [30, 62, 63] 并扩展了各种应用 [22, 23, 37],但在实现精确和细粒度的控制方面仍然存在很大差距。如图 1 所示,现有的可控生成方法(例如 ControlNet [63] 和 T2I-Adapter [30])仍然难以准确生成与输入图像条件一致的图像。例如,T2I-Adapter-SDXL 在所有生成的图像中始终产生错误的额头皱纹,而 ControlNet v1.1 引入了许多错误的细节。遗憾的是,目前的努力缺乏提高可控性的具体方法,这阻碍了该研究领域的进展

 为了解决这个问题,我们将基于图像的可控生成建模为图像转换任务 [17],从输入条件控制到输出生成的图像。受 CycleGAN [71] 的启发,我们建议使用预先训练的判别模型从生成的图像中提取条件,并直接优化循环一致性损失以获得更好的可控性。这个想法是,如果我们将图像从一个域转换到另一个域(条件 c v → c_v\to cv 生成的图像 x 0 ′ x^′_0 x0),然后再转换回来(生成的图像 x 0 ′ → x^′_0\to x0 条件 c v ′ c^′_v cv),我们应该到达我们开始的地方( c v ′ = c v c^′_v=c_v cv=cv),如图 2 所示。例如,给定一个分割掩码作为条件控制,我们可以使用现有方法(如 Control-Net [63])来生成相应的图像。然后,可以通过预先训练的分割模型获得这些生成图像的预测分割掩码。理想情况下,预测的分割掩码和输入的分割掩码应该是一致的。因此,循环一致性损失可以表示为输入和预测分割掩码之间的每像素分类损失。与现有的相关研究 [27, 30, 37, 63, 65] 不同,这些研究通过在潜在空间去噪过程中引入条件控制来隐式实现可控性,我们的方法明确地优化了像素空间的可控性以获得更好的性能,如图 3 所示。

图 2

图 2:循环一致性说明。我们首先提示扩散模型 $\mathbb{G}$ 根据给定的图像条件 $c_v$ 和文本提示 $c_t$ 生成图像 $x^′_0$,然后使用预训练的判别模型 $\mathbb{D}$ 从生成的图像 $x^′_0$ 中提取相应的图像条件 $\hat{c}_v$。循环一致性定义为提取的条件 $\hat{c}_v$ 与输入条件 $c_v$ 之间的相似性。

 Net [63] 生成相应的图像。然后可以通过预先训练的分割模型获得这些生成图像的预测分割蒙版。理想情况下,预测的分割蒙版和输入的分割蒙版应该是一致的。因此,循环一致性损失可以表示为输入和预测分割蒙版之间的每像素分类损失。与现有的相关工作 [27, 30, 37, 63, 65] 通过在潜在空间去噪过程中引入条件控制来隐式实现可控性不同,我们的方法明确优化了像素空间的可控性以获得更好的性能,如图 3 所示。

 为了在扩散模型的背景下实现像素级损失,一种直观的方法是执行扩散模型的推理过程,从随机高斯噪声开始并执行多个采样步骤以获得最终生成的图像,遵循最近的研究重点是通过人工反馈来提高图像质量 [11, 36, 60]。然而,多次采样会导致效率问题,并且需要在每个时间步存储梯度,因此会消耗大量时间和 GPU 内存。我们证明从随机高斯噪声开始采样是不必要的。相反,通过直接向训练图像添加噪声以扰乱它们与输入条件控制的一致性,然后使用单步去噪图像重建一致性,我们可以进行更有效的奖励微调。我们的贡献总结如下:

  • 新见解(New Insight):我们发现,现有的可控生成工作在可控性方面仍然表现不佳,生成的图像明显偏离输入条件,并且缺乏明确的改进策略。
  • 一致性奖励反馈(Consistency Reward Feedback):我们表明,预先训练的判别模型可以作为强大的视觉奖励模型,以循环一致性的方式提高可控扩散模型的可控性。
  • 高效奖励微调(Efficient Reward Fine-tuning):我们破坏输入图像和条件之间的一致性,并启用单步去噪进行高效奖励微调,避免图像采样造成的时间和内存开销。
  • 评估和有希望的结果(Evaluation and Promising Results):我们对各种条件控制下的可控性进行了统一和公开的评估,并证明 ControlNet++ 全面优于现有方法。

图 3

图 3:(a)现有方法在潜在空间去噪损失的指导下,将基于图像的条件控制 $c_v$ 引入到扩散模型的去噪过程中,实现隐式可控性。(b)我们利用判别奖励模型 $\mathbb{D}$,通过像素级循环一致性损失明确优化 $\mathbb{G}$ 的可控性。

2. 相关工作

2.1 基于扩散的生成模型

 [50] 中提出的扩散概率模型取得了长足进步 [12, 19, 25],这要归功于训练和采样策略的迭代改进 [18, 51, 52]。为了减轻训练扩散模型的计算需求,潜在扩散 [43] 将像素空间扩散过程映射到潜在特征空间。在文本到图像合成领域,扩散模型 [31, 35, 40, 41, 43, 46] 集成了 UNet [44] 去噪器和来自预训练语言模型(如 CLIP [38] 和 T5 [39])的文本嵌入之间的交叉注意机制,以促进合理的文本到图像生成。此外,扩散模型通过操纵输入 [40]、编辑交叉注意 [16] 和微调模型 [45] 应用于图像编辑任务 [3, 14, 24, 29]。尽管扩散模型具有惊人的能力,但语言是一种稀疏且高度语义化的表示,不适合描述密集、低语义的图像。此外,现有方法 [35, 43] 仍然难以理解详细的文本提示,这对可控生成 [63] 构成了严峻挑战。

2.2 可控的文本到图像扩散模型

 为了在预训练的文本到图像扩散模型中实现条件控制,ControlNet [63] 和 T2I-Adapter [30] 引入了额外的可训练模块来引导图像生成。此外,最近的研究采用了各种提示工程 [27, 61, 64] 和交叉注意约束 [6, 23, 58] 来实现更有规律的生成。一些方法还探索了单个扩散模型中的多条件或多模式生成 [21, 37, 65],或者专注于基于实例的可控生成 [54, 69]。然而,尽管这些方法探索了可行性和应用,但仍然缺乏一种明确的方法来增强各种控制下的可控性。此外,现有的工作通过扩散模型的去噪过程隐式地学习可控性,而我们的 Control-Net++ 以显式的循环一致性方式实现了这一点,如图 3 所示。

2.3 语言和视觉奖励模型

 奖励模型的训练目的是评估生成模型的结果与人类期望的契合程度,其量化结果将用于促进生成模型实现更好、更可控的生成。它通常在 NLP 任务中使用人类反馈强化学习(RLHF)进行训练 [10, 32, 53],最近已扩展到视觉领域,以提高文本到图像扩散模型的图像质量 [1, 11, 13, 36, 56, 60]。然而,图像质量是一个极其主观的指标,充满了个人偏好,需要创建具有人类偏好的新数据集 [26, 55, 56, 60] 并训练奖励模型 [36, 55, 60]。与当前研究中追求具有主观人类偏好的全局图像质量不同,我们的目标是更细粒度和客观的可控性目标。此外,与人工反馈相比,获得人工智能反馈更具成本效益。

3. 方法

 在本节中,我们首先在第 3.1 节中介绍扩散模型的背景。在第 3.2 节中,我们讨论如何设计可控扩散模型的循环一致性损失以增强可控性。最后,在第 3.3 节中,我们研究了直接解决方案的效率问题,并相应地提出了一种有效的奖励策略,该策略利用单步去噪图像进行一致性损失,而不是从随机噪声中采样图像。

3.1. 初步

 扩散模型 [18] 通过逐渐向输入数据 x 0 x_0 x0 添加噪声来定义扩散前向过程 q ( x t ∣ x 0 ) q\left(x_t|x_0\right) q(xtx0) 的马尔可夫链:

公式 1

 其中 ϵ \epsilon ϵ 是从高斯分布中采样的噪声图, α ^ : = ∏ s = 0 t α s \hat{\alpha}:= {\textstyle \prod_{s=0}^{t}}\alpha_s α^:=s=0tαs\alpha_t=1-\beta_t 是时间步长 t t t 的可微函数,由 DDPM [18] 等去噪采样器确定。为此,扩散训练损失可以表示为:

公式 2

 在可控生成 [30, 63] 的背景下,给定图像条件 c v c_v cv 和文本提示 c t c_t ct,时间步 t t t 的扩散训练损失可以重写为:

公式 3

 在推理过程中,给定一个随机噪声 x T ∼ N ( 0 ,   I ) x_T\sim \mathcal{N} \left ( \mathbf{0} ,\ \mathbf{I} \right ) xTN(0, I),我们可以通过逐步去噪过程预测最终去噪图像 x 0 x_0 x0 [18]:

公式 4

 其中 ϵ θ \epsilon_\theta ϵθ 表示 U-Net [44] 在时间步 t t t 处预测的噪声,参数为 θ \theta θ σ t = 1 − α ˉ t − 1 1 − α ˉ t β t \sigma_{t}=\frac{1-\bar{\alpha}_{t-1}}{1-\bar{\alpha}_{t}} \beta_{t} σt=1αˉt1αˉt1βt 是后验高斯分布 p θ ( x 0 ) p_\theta\left(x_0\right) pθ(x0) 的方差。

3.2 具有一致性反馈的奖励可控性

由于我们将可控性建模为输入条件与生成图像之间的一致性,因此我们可以通过判别奖励模型自然地量化这一结果。一旦我们量化了生成模型的结果,我们就可以基于这些量化结果以统一的方式对各种条件控制进行进一步优化,以实现更可控的生成

 更具体地说,我们最小化输入条件 c v c_v cv 与生成图像 x 0 ′ x^′_0 x0 的相应输出条件 c ^ v \hat{c}_v c^v 之间的一致性损失,如图 2 所示。奖励一致性损失可以表示为

公式 5

 其中 G T ( c t , c v , x T , t ) \mathbb{G}^{T}\left(c_{t}, c_{v}, x_{T}, t\right) GT(ct,cv,xT,t) 表示模型执行 T T T 个去噪步骤从随机噪声 x T x_T xT 生成图像 x 0 ′ x^′_0 x0 的过程,如图 4(a) 所示。这里, L \mathcal{L} L 是一个抽象的度量函数,对于不同的视觉条件可以采用不同的具体形式。例如,在使用分割蒙版作为输入条件控制的背景下, L \mathcal{L} L 可以是每像素交叉熵损失。奖励模型 D \mathcal{D} D 也取决于条件,我们使用 UperNet [57] 来处理分割蒙版条件。损失函数和奖励模型的细节总结在补充材料中。

 除了奖励损失之外,我们还在等式 3 中采用了扩散训练损失,以确保原始图像生成能力不受影响,因为它们具有不同的优化目标。最后,总损失是 L t r a i n \mathcal{L}_{train} Ltrain L r e w a r d \mathcal{L}_{reward} Lreward 的组合:

公式 6

 其中 λ \lambda λ 是调整奖励损失权重的超参数。通过这种方法,一致性损失可以指导扩散模型如何在不同的时间步进行采样以获得与输入控制更一致的图像,从而增强可控性。尽管如此,直接应用这种奖励一致性在现实环境中仍然存在效率方面的挑战

3.3 高效奖励微调

 为了实现像素空间一致性损失 L r e w a r d \mathcal{L}_{reward} Lreward,需要使用最终扩散图像 x 0 x_0 x0 来计算奖励模型中的奖励一致性。由于现代扩散模型(如稳定扩散 [43])需要多个步骤(例如 50 个步骤)来渲染完整图像,因此在现实环境中直接使用这种解决方案是不切实际的:(1)需要多次耗时的采样才能从随机噪声中获取图像。(2)为了启用梯度反向传播,我们必须在每个时间步存储梯度,这意味着 GPU 内存使用量将随着时间步数线性增加。以 ControlNet 为例,当批量大小为 1 且混合精度为 FP16 时,单个去噪步骤和存储所有训练梯度所需的 GPU 内存约为 6.8GB。如果我们使用 DDIM [51] 调度程序进行 50 步推理,则需要大约 340GB 的内存来对单个样本执行奖励微调,这在当前的硬件能力下几乎是不可能实现的。虽然可以通过采用低秩自适应(LoRA)[11, 20]、梯度检查点 [7, 11] 或停止梯度 [60] 等技术来减少 GPU 内存消耗,但生成图像所需的采样步骤数量导致的效率下降仍然很大,不容忽视。因此,需要一种有效的奖励微调方法

 与图 4(a) 中所示的通过随机噪声 x T x_T xT 扩散来获得最终图像 x 0 x_0 x