不得不读 | 深入浅出ControlNet,一种可控生成的AIGC绘画生成算法!

Adding Conditional Control to Text-to-Image Diffusion Models

摘要

  • ControlNet,控制预训练大型扩散模型,以支持额外的输入条件。ControlNet以端到端方式学习特定任务的条件输入,即使训练数据集很小(< 50k),效果也很健壮。

  • 此外,训练ControlNet的速度与微调扩散模型一样快,而且该模型可以在个人设备上训练。或者,如果强大的计算集群可用,该模型可以扩展到大量(数百万到数十亿)的数据。

  • 论文表明,像Stable Diffusion这样的大型扩散模型可以用ControlNet来增强,以支持像边缘map、分割map、关键点等条件输入。这将丰富大型扩散模型的控制方法,并进一步促进相关应用:

  • https://github.com/lllyasviel/ControlNet

背景

  • 随大型文本到图像模型的出现,生成视觉效果生动的图像只需要用户输入一个简短的描述性提示文本(prompt)。对此,可能有几个问题:

  • 这种基于文本提示的生成,是否满足了我们的需求?

  • 在图像处理中,许多长期存在的任务都有明确的问题解决公式,这些大型模型能否应用于促进这些特定的任务?应该构建什么样的框架可以统一来处理各种各样的问题条件和用户控制?

  • 在特定的任务中,大型模型能否保持从数十亿张图像中获得的优势和能力?

  • 为回答这些问题,本文研究了各种图像处理应用,并有三个发现:

  • 首先,特定任务域的可用数据规模并不总是像一般图像-文本域那样大。许多具体任务(如对象形状、姿态理解等)的最大数据集大小往往在100k以下,即比LAION5B 小50000倍。这将需要鲁棒的神经网络训练方法,以避免过拟合,并在大模型针对特定问题进行训练时保持泛化能力。

  • 其次,大型计算集群并不总是可用的。这使得快速训练方法对于在可接受的时间和内存空间内(例如在个人设备上)优化大型模型以执行特定任务非常重要。这将进一步需要利用预先训练的权重,以及微调策略或迁移学习。

  • 第三,各种图像处理问题具有不同形式的问题定义、用户控制或图像标注。在解决这些问题时,虽然图像扩散算法可以手工做一些调整,例如,约束去噪过程、编辑多头注意力激活等,但考虑到一些特定的任务,如深度图转图像、姿势关键点到人像等,需要将原始输入解释为对象级或场景级的理解,要在许多任务中实现通用的学习解决方案,端到端学习是必不可少的。

  • 端到端神经网络ControlNet,控制大型图像扩散模型来学习特定于任务的输入条件。ControlNet将大型扩散模型的权重克隆为一个“可训练副本”和一个“锁定副本”:锁定副本保留了从数十亿张图像中学习到的网络能力,而可训练副本则在特定任务的数据集上进行训练,以学习条件控制。

  • 可训练和锁定神经网络块与一种称为“零卷积”的独特类型的卷积层连接,其中卷积权值以学习的方式从零逐步转变到优化后的参数。由于保留了权值,这样一来在不同规模的数据集上也具有鲁棒性。由于零卷积不会给深度特征添加新的噪声,因此与从头开始训练新层相比,训练速度与微调扩散模型一样快。

  • 用不同条件的各种数据集训练几个ControlNet,例如,Canny边缘、Hough线、用户涂鸦、人体关键点、分割图、深度图等。还用小数据集(样本小于50k甚至1k)和大数据集(数百万样本)对ControlNets进行了实验。表明在一些任务中,如深度到图像,在个人计算机(一台Nvidia RTX 3090TI)上训练ControlNets,与在大型计算集群上训练的商业模型具有竞争力的结果。

HyperNetwork和神经网络结构

  • HyperNetwork起源于一种语言处理方法,用于训练一个小的循环神经网络来影响一个大的神经网络的权重。HyperNetwork也被应用于生成对抗网络等图像生成任务。ControlNet和HyperNetwork在影响神经网络行为的方式上有相似之处。ControlNet使用一种特殊类型的卷积层,称为“零卷积”。早期的神经网络研究广泛讨论了网络权值的初始化问题,包括高斯分布初始化权值的合理性以及用零初始化权值可能带来的风险。在ProGAN和StyleGAN以及Noise2Noise等工作中也讨论了初始卷积权值的操作。

扩散概率模型

  • 近来,扩散概率模型取得了巨大的研究进展,例如去噪扩散概率模型(DDPM)、去噪扩散隐式模型(DDIM)和基于分数的扩散模型等。研究人员在处理高分辨率图像时往往会考虑节省计算能力的策略,或直接使用基于金字塔或多阶段的方法,常见比如使用U-net作为神经网络结构。为了降低训练扩散模型所需的计算能力,基于图像潜在特征的思想,提出了潜在扩散模型(latent diffusion model, LDM)方法,并进一步扩展到Stable Diffusion。

文本到图像扩散模型

  • 扩散模型可以应用于文本到图像生成任务,以达到最先进的图像生成效果。这通常是通过使用CLIP等预训练好的语言模型将文本输入编码为潜在向量来实现的。例如,Glide是一个文本引导的扩散模型,同时支持图像生成和编辑。Disco Diffusion是clip引导实现、用于处理文本提示。Stable Diffusion实现潜在扩散。Imagen是一个文本到图像的结构,它不使用潜在图像,而是使用金字塔结构直接扩散像素。

预训练扩散模型的控制生成

  • 最先进的图像扩散模型,是由文本到图像的方法主导的,所以增强对扩散模型控制的最直接的方法,通常是文本引导。这种类型的控制也可以通过操纵CLIP特性来实现。图像扩散过程本身可以提供一些功能来实现颜色级别的细节变化(社区称之为img2img)。图像扩散算法当然支持inpainting作为控制结果的重要方式。而文本inversion和DreamBooth方法,基于具有相同主题或目标对象的小样本图像数据集,去自定义控制生成结果中的内容。

图像转换

  • Pix2Pix提出了图像到图像转换的概念,早期的方法以条件生成神经网络为主。在Vision Transformers(ViTs)得到普及后,使用自回归方法也获得了不错的结果。目前最强大的图像到图像转换方法里,Taming Transformer属于vision transformer类,具有生成图像和执行图像到图像转换的功能。Palette是一个统一的基于扩散的图像到图像转换框架。PITI是一种基于扩散的图像到图像转换方法,它利用大规模的预训练来提高生成结果的质量。在草图引导扩散等特定领域,像论文《Sketch-guided text-to-image diffusion models》则属于基于优化的方法,用于控制扩散过程。

方法

  • ControlNet通过对神经网络模块的输入条件进行操作,从而进一步控制整个神经网络的整体行为。其中,“神经网络模块”是指将一组神经层作为一个常用单元组合在一起构建神经网络,如“resnet”块、“convn-bn-relu”块、多头注意力块、transformer模块等。

  • 以二维特征为例,给定特征x∈h×w×c,{h, w, c}为高度、宽度和通道,神经网络模块F(·;Θ)和一组参数Θ将x转换为另一个特征y:

b3ae0ac57bb35a1e3f8c708abd19778a.png4736d8fa16fc095203b14c5679d2a282.png
  • 如果将所有参数锁定在Θ中,然后将其克隆为可训练的副本Θc。复制的Θc使用外部条件向量c进行训练。在本文中,称原始参数和新参数为“锁定副本”和“可训练副本”。制作这样的副本而不是直接训练原始权重的动机是:避免数据集较小时的过拟合,并保持从数十亿张图像中学习到的大型模型的能力。

  • 神经网络模块由一种称为“零卷积”的独特类型的卷积层连接,即1×1卷积层,权重和偏差都用零初始化。将零卷积运算表示为Z(·;·),使用参数{Θz1,Θz2}的两个实例组成ControlNet结构:

d0bb9ec63c389ce346bac735c05dd6c4.png1632c44d7db9cfc4c3a2908e1c7793dd.png
  • 其中yc成为该神经网络模块的输出。因为零卷积层的权值和偏差都初始化为零,所以在第一个训练步骤中,有:

9827aa16699c38f9227e190fb13fbb5a.png
  • 这可以转换为yc = y

  • 表明,在第一个训练步骤中,神经网络块的可训练副本和锁定副本的所有输入和输出都与它们的状态一致,就像ControlNet不存在一样。换句话说,当一个ControlNet应用于一些神经网络块时,在进行任何优化之前,它不会对深层神经特征造成任何影响。任何神经网络块的能力、功能和结果质量都得到了完美的保留,任何进一步的优化都将变得像微调一样快(与从零开始训练这些层相比)。

  • 下面简单地推导零卷积层的梯度计算。考虑权值W和偏差B的1 × 1卷积层,在任意空间位置p和通道索引i处,给定输入特征i∈h×w×c,正向通过可写成

0320599efba3f0e0952e25e39eaa5985.png

文章出处登录后可见!

已经登录?立即刷新

共计人评分,平均

到目前为止还没有投票!成为第一位评论此文章。

(0)
乘风的头像乘风管理团队
上一篇 2023年6月9日
下一篇 2023年6月10日

相关推荐