AIGC系列之:ControlNet原理及论文解读

这篇具有很好参考价值的文章主要介绍了AIGC系列之:ControlNet原理及论文解读。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

《Adding Conditional Control to Text-to-Image Diffusion Models》

目录

1.背景介绍

2.原理详解

2.1 Controlnet

2.2 用于Stable Diffusion的ControlNet

2.3 训练

2.4 推理

3.实验结果

3.1 定性结果

3.2 消融实验

3.3 和之前结果比较 

3.4 数据集大小的影响

4.结论

1.背景介绍

        Stable Diffusion大模型的开源,使得AI绘画的应用变得空前火热。虽然Stable Diffusion生成的图片质量远超以往的GAN,VAE等,但还达不到精细化可控生成的目的。文本到图像模型在控制图像的空间构图方面是有限的;仅仅通过文本提示很难精确地表达复杂的布局、姿势、形状和形式。ControlNet在Stable Diffusion的基础上加入了更多可控生成方式,在AI绘图大规模商用上成为可能。此外,ControlNet和SAM同时获得了ICCV2023的最佳论文。让我们一起来看一看它的魔力~

下面是ControlNet相关的一些资料,本文参考了几位博主的文章,已经在下面提供了链接。

论文链接:https://arxiv.org/pdf/2302.05543.pdf

代码地址GitHub - lllyasviel/ControlNet: Let us control diffusion models!

GitHub - Mikubill/sd-webui-controlnet: WebUI extension for ControlNet

论文解读:https://zhuanlan.zhihu.com/p/664595339

        ControlNet 是一种神经网络架构,旨在将空间条件控制添加到大型预训练的文本到图像扩散模型中。 ControlNet 将锁定生产就绪的大型扩散模型,并重用由数十亿图像预先训练的强大主干中的深层和鲁棒编码层,以学习多样化的条件控制集。神经架构通过“零卷积”(零初始化的卷积层)连接,使参数逐渐从零增长,并确保不会有有害噪声影响微调过程。使用Stable Diffusion测试各种条件控制例如边缘、深度、分割、人体姿态等,具有单个或多个条件,带有或不带有提示。 表明 ControlNet 的训练过程对于小型(<50k)和大型(>1m)数据集都具有很强的鲁棒性。大量的实验结果表明,ControlNet 有助于更广泛的应用于控制图像扩散模型。

        通过让用户提供额外的图像来直接指定所需图像的组成,实现更精细的空间控制呢。这些额外的图像(例如边缘图、人体姿态骨架、分割图、深度、法线等)通常被视为对图像生成过程的条件约束。特定条件下的训练数据量显著小于可用于一般文本到图像训练的数据量。直接微调或继续训练具有有限数据的大型预训练模型可能会导致过拟合和灾难性遗忘。因此,通过限制可训练参数的数量或等级,可以缓解这种遗忘。

        ControlNet 通过锁定大型预训练模型的参数并复制其编码层,保留了该大型模型的质量和能力。这种架构将大型预训练模型视为学习各种条件控制的强大主干网络。可训练的副本和原始锁定的模型通过零卷积层连接,权重初始化为零,以便在训练过程中逐渐增长。这种架构确保在训练开始时不会向大型扩散模型的深层特征添加有害噪声,并保护可训练副本中的大型预训练主干网络免受此类噪声的破坏。

ControlNet 是一种神经网络架构,旨在将空间条件控制添加到大型预训练的文本到图像扩散模型中。 ControlNet 将锁定生产就绪的大型扩散模型,并重用由数十亿图像预先训练的强大主干中的深层和鲁棒编码层,以学习多样化的条件控制集。神经架构通过“零卷积”(零初始化的卷积层)连接,使参数逐渐从零增长,并确保不会有有害噪声影响微调过程。使用Stable Diffusion测试各种条件控制例如边缘、深度、分割、人体姿态等,具有单个或多个条件,带有或不带有提示。 表明 ControlNet 的训练过程对于小型(<50k)和大型(>1m)数据集都具有很强的鲁棒性。大量的实验结果表明,ControlNet 有助于更广泛的应用于控制图像扩散模型。

通过让用户提供额外的图像来直接指定所需图像的组成,实现更精细的空间控制呢。这些额外的图像(例如边缘图、人体姿态骨架、分割图、深度、法线等)通常被视为对图像生成过程的条件约束。特定条件下的训练数据量显著小于可用于一般文本到图像训练的数据量。直接微调或继续训练具有有限数据的大型预训练模型可能会导致过拟合和灾难性遗忘。因此,通过限制可训练参数的数量或等级,可以缓解这种遗忘。

        ControlNet 通过锁定大型预训练模型的参数并复制其编码层,保留了该大型模型的质量和能力。这种架构将大型预训练模型视为学习各种条件控制的强大主干网络。可训练的副本和原始锁定的模型通过零卷积层连接,权重初始化为零,以便在训练过程中逐渐增长。这种架构确保在训练开始时不会向大型扩散模型的深层特征添加有害噪声,并保护可训练副本中的大型预训练主干网络免受此类噪声的破坏。

contralnet 论文,论文阅读,AIGC,深度学习,AIGC,StableDiffusion,ControlNet,计算机视觉,人工智能,深度学习,图像生成

                                                图1 sd结合controlnet进行生成 

2.原理详解

contralnet 论文,论文阅读,AIGC,深度学习,AIGC,StableDiffusion,ControlNet,计算机视觉,人工智能,深度学习,图像生成

        图2:神经块以特征映射x作为输入,输出另一个特征映射y,如(a)所示。为了将ControlNet添加到block,通过锁定neural network block并创建一个可训练的副本,使用zero convolution将它们连接在一起,如(b)所示。

2.1 Controlnet

        ControlNet向神经网络块注入了额外的条件(如图2)。假设F(·;Θ)是这样的训练好的神经块,参数为Θ,它将输入特征图x转换为另一个特征图y。为了将ControlNet添加到预训练的神经块中,需锁定原始块的参数Θ,同时将块克隆到可训练的副本中,该副本具有参数Θ_c(如图2b)。可训练的副本接受外部条件向量c作为输入。当将这种结构应用于像Stable Diffusion这样的大型模型时,锁定参数可以保留使用数十亿张图像训练的生产就绪模型,而可训练的副本可以重用这种大规模预训练模型,以建立一个深、稳健且强大的主干网络来处理各种输入条件。

        可训练的副本通过零卷积层Z(·;·)连接到锁定模型。具体而言,Z(·;·)是一个初始化为零的权重和偏差的1×1卷积层。为了构建ControlNet,使用两个零卷积的实例,参数分别为Θz1和Θz2。完整的ControlNet计算如下所示:

contralnet 论文,论文阅读,AIGC,深度学习,AIGC,StableDiffusion,ControlNet,计算机视觉,人工智能,深度学习,图像生成

        yc是ControlNet块输出。在第一个训练步骤中,由于零卷积层的权重和偏差参数都初始化为零,方程(2)中的两个Z(·;·)项都计算为零。这样在训练开始时,有害噪声不会影响可训练副本中神经网络层的隐藏状态。此外,由于Z(c;Θz1)=0,并且可训练副本也接收输入图像x,因此可训练副本完全有效,并保留大型预训练模型的功能,使其能够作为强大的主干网络用于进一步学习。零卷积通过消除初始训练步骤中的随机噪声来保护这个主干网络。

2.2 用于Stable Diffusion的ControlNet

Stable Diffusion本质上是一个U-Net,包含编码器、中间块和跳跃连接解码器。编码器和解码器都包含12个块,而整个模型包含25个块,包括中间块。在这25个块中,8个块是下采样或上采样卷积层,而其他17个块是主块,每个主块包含4个ResNet层和2个Vision Transformer(ViT)。每个ViT包含几个交叉注意力和自注意力机制。如图3a中,“SD Encoder Block A”包含4个ResNet层和2个ViT,“×3”表示该块重复三次。文本提示使用CLIP文本编码器进行编码,扩散时间步使用带有位置编码的时间编码器进行编码

contralnet 论文,论文阅读,AIGC,深度学习,AIGC,StableDiffusion,ControlNet,计算机视觉,人工智能,深度学习,图像生成

         图3 Stable Diffusion的U-net架构连接,在编码器块和中间块上有一个ControlNet。锁定的灰色块显示了Stable Diffusion V1.5的结构。可训练的蓝色块和白色的零卷积层被添加来构建一个ControlNet。

        将ControlNet结构应用于U-net的每个编码器级别(图3b)。使用ControlNet创建Stable Diffusion的12个编码块和1个中间块的训练副本。12个编码块分布在4个分辨率(64 × 64,32 × 32,16 × 16,8 × 8)中,每个分辨率复制3次。输出被添加到U-net的12个跳连接和1个中间块中。由于Stable Diffusion是典型的U-net结构,这种ControlNet架构可能适用于其他模型。

        连接ControlNet的方式在计算上是高效的-由于锁定副本的参数被冻结,在微调过程中,原始锁定编码器不需要进行梯度计算。这种方法加快了训练速度并节省GPU内存。

        图像扩散模型学习逐步去噪图像并从训练域生成样本。去噪过程可以在像素空间或从训练数据编码的潜在空间中进行。Stable Diffusion使用潜在图像作为训练域。Stable Diffusion将512 × 512像素空间的图像转换为较小的64 × 64潜在图像。要将ControlNet添加到Stable Diffusion中,首先将每个输入条件图像(例如边缘、姿势、深度等)从512 × 512的输入大小转换为与Stable Diffusion大小相匹配的64 × 64特征空间向量。

        使用一个具有四个卷积层的tiny网络E(·),这些卷积层具有4 × 4内核和2 × 2步长(通过ReLU激活,使用16、32、64、128个通道,分别初始化高斯权重并与其他完整模型联合训练),将图像空间条件-ci编码为特征空间条件向量cf。cf条件向量被传递到ControlNet中。

contralnet 论文,论文阅读,AIGC,深度学习,AIGC,StableDiffusion,ControlNet,计算机视觉,人工智能,深度学习,图像生成

2.3 训练

        给定一个输入图像z0,图像扩散算法会逐步向图像添加噪声,并生成一个噪声图像zt,其中t表示添加噪声的次数。给定一组条件,包括时间步t、文本提示ct以及特定于任务的条件cf,图像扩散算法会学习一个网络εθ来预测添加到噪声图像zt上的噪声。

contralnet 论文,论文阅读,AIGC,深度学习,AIGC,StableDiffusion,ControlNet,计算机视觉,人工智能,深度学习,图像生成

         在训练过程中随机用空字符串替换50%的文本提示ct。这种方法提高了ControlNet直接从输入条件图像中识别语义(例如边缘、姿态、深度等)的能力,作为提示的替代。在训练过程中,由于零卷积不会给网络添加噪声,模型应该始终能够预测高质量的图像。模型并没有逐渐学习控制条件,而是在优化步骤少于10K时突然成功地遵循输入条件图像。如图4所示,这种现象被称为“突然收敛现象”。

contralnet 论文,论文阅读,AIGC,深度学习,AIGC,StableDiffusion,ControlNet,计算机视觉,人工智能,深度学习,图像生成

        图4 突然收敛现象:由于零卷积,ControlNet总是可以预测整个训练过程高质量图像。在某一阶段训练过程(例如,用粗体标出的6133个步骤)模型突然学会了跟随输入条件。     

2.4 推理

        可以进一步控制ControlNet的额外条件以多种方式影响去噪扩散过程。

contralnet 论文,论文阅读,AIGC,深度学习,AIGC,StableDiffusion,ControlNet,计算机视觉,人工智能,深度学习,图像生成

                                图5 无分类器制导(CFG)的效果提出CFG分辨率加权法(CFG- rw)。

  • Classifier-free guidance resolution weighting:无分类器指导分辨率权重

        稳定的扩散取决于一种称为无分类器指导(CFG)的技术用于生成高质量图像。CFG表述为 εprd = εuc + βcfg (εc − εuc ),其中 εprd 、εuc 、εc、βcfg 分别是模型的最终输出、无条件输出、条件输出和一个用户指定的权重。当通过ControlNet添加条件图像时,可以将其添加到 εuc 和 εc 中,或者仅添加到 εc 中。在具有挑战性的情况下,例如没有给出提示时,将其同时添加到 εuc 和 εc 中将完全去除CFG指导(图5b);只使用 εc 将使指导变得非常强烈(图5c)。一种解决方案是将条件图像首先添加到 εc 中,然后根据每个块的分辨率,将每个连接在Stable Diffusion和ControlNet之间的权重wi乘以每个连接的权重wi = 64 / hi,其中hi是第i个块的大小,例如h1 = 8, h2 = 16, ..., h13 = 64。通过降低CFG指导强度,我们可以获得图5d所示的结果,其称为CFG分辨率权重。

contralnet 论文,论文阅读,AIGC,深度学习,AIGC,StableDiffusion,ControlNet,计算机视觉,人工智能,深度学习,图像生成

                                            图6 组合多个ControlNet条件进行生成

  • 组合多个ControlNet。

        为了将多个条件图像(例如Canny边缘和姿态)应用于Stable Diffusion的单个实例,可以将相应ControlNet的输出直接添加到Stable Diffusion模型中(图6)。这种组合不需要额外的加权或线性插值。

3.实验结果

        使用Stable Diffusion实现ControlNet,以测试各种条件,包括Canny Edge、Depth Map、Normal Map、M-LSD lines、HED soft edge、ADE20K segmentation、Openpose 和用户草图。

3.1 定性结果

        显示了几个提示设置中生成的图像。图7显示了在没有提示的情况下,在不同的条件下的各种控制网络对输入条件图像中的内容语义进行鲁棒解释。

contralnet 论文,论文阅读,AIGC,深度学习,AIGC,StableDiffusion,ControlNet,计算机视觉,人工智能,深度学习,图像生成

3.2 消融实验

        通过以下方式研究ControlNets的替代结构:

        (1)将零卷积替换为用高斯权重初始化的标准卷积层

        (2)将每个块的训练副本替换为一个单一的卷积层,称为ControlNet-lite。

        提出了4种提示设置来测试现实世界用户可能的行为:

        (1)无提示;

        (2)提示不足,即不完整覆盖条件图像中的对象;        

     (3)冲突提示,即改变条件图像的语义;

     (4)完美提示,即描述必要的内容语义,例如“漂亮的房子”。

        图8a显示ControlNet在所有4种设置中都取得了成功。轻量级的ControlNet-lite(图8c)不足以解释条件图像,在提示不足和无提示的情况下失败。当零卷积被替换时,ControlNet的性能下降到与ControlNet-lite相同,这表明在微调过程中可训练副本的预训练主干被破坏了(图8b)。

contralnet 论文,论文阅读,AIGC,深度学习,AIGC,StableDiffusion,ControlNet,计算机视觉,人工智能,深度学习,图像生成

         图8 在草图条件和不同提示设置下对不同架构进行消融研究。每个设置显示一个随机批次无筛选的6个样本。图像大小为512 × 512。左边的绿色“conv”块是用高斯权重初始化的标准卷积层。

3.3 和之前结果比较 

contralnet 论文,论文阅读,AIGC,深度学习,AIGC,StableDiffusion,ControlNet,计算机视觉,人工智能,深度学习,图像生成

                                                     图9 Comparison to previous methods

        图9展示了基线和(Stable Diffusion+ControlNet)之间可视化比较。具体展示了PTIT、Sketch-Guided Diffusion和Taming Transformers的结果。可以看出ControlNet可以稳健地处理各种条件图像,并产生清晰干净的结果。

3.4 数据集大小的影响

contralnet 论文,论文阅读,AIGC,深度学习,AIGC,StableDiffusion,ControlNet,计算机视觉,人工智能,深度学习,图像生成

                                                       图10 不同训练数据集大小的影响。

        图10中展示了ControlNet训练的鲁棒性。当使用1k张图像进行训练时,模型不会崩溃,并且能够生成可识别的狮子。当提供更多数据时,学习是可以扩展的。

contralnet 论文,论文阅读,AIGC,深度学习,AIGC,StableDiffusion,ControlNet,计算机视觉,人工智能,深度学习,图像生成

                                                                图11 内容解读

        图11展示了ControlNet对输入条件图像进行语义捕捉的能力。如果输入有歧义而且用户不会在提示中提及对象内容,结果看起来像是模型试图解释输入的形状。

contralnet 论文,论文阅读,AIGC,深度学习,AIGC,StableDiffusion,ControlNet,计算机视觉,人工智能,深度学习,图像生成

                                图12 将预先训练的控制网转移到社区无需再次训练神经网络的模型

        图12显示了将Control- Net应用于社区模型的能力。由于ControlNets不会改变预训练SD模型的神经网络拓扑结构,因此它可以直接应用于稳定扩散社区中的各种模型,例如Comic Diffusion和Protogen 3.4

4.结论

        ControlNet是一种神经网络结构,它学习大型预训练的文本到图像扩散模型的带条件控制。它重用源模型的的大规模预训练层来构建一个深度且强大的编码器,以学习特定条件。原始模型和可训练的副本通过“零卷积”层连接,这些“零卷积”层可以消除训练期间的噪音。大量实验证明,ControlNet可以有效控制带有单个或多个条件以及带/不带提示的Stable Diffusion。在多样化条件数据集上的结果展示出,ControlNet结构可能适用于更广泛的条件,并促进相关应用。

OK,以上就是《Adding Conditional Control to Text-to-Image Diffusion Models》也就是ControlNet原始论文的解读,ControlNet结合Stable Diffusion可以有效提升SD生图的可控性和可玩性,后续也会和大家分析关于ControlNet的应用部分,欢迎大家一起交流!文章来源地址https://www.toymoban.com/news/detail-816339.html

到了这里,关于AIGC系列之:ControlNet原理及论文解读的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Visual ChatGPT原理解读——大模型论文阅读笔记四

    论文:https://arxiv.org/abs/2303.04671 代码:https://github.com/microsoft/TaskMatrix 如图所示,用户上传一张黄花的图像并输入一个复杂的语言指令“请根据该图像的预测深度生成一朵红花,然后逐步使其像卡通一样”。 在交互管理器的帮助下,Visual ChatGPT 开始了相关视觉基础模型的执行

    2024年02月09日
    浏览(42)
  • BLIP2原理解读——大模型论文阅读笔记二

    论文:https://arxiv.org/abs/2301.12597 代码:https://github.com/salesforce/LAVIS/tree/main/projects/blip2 端到端训练视觉语言模型需要大尺度模型及大规模数据,该过程成本大,本文提出方法基于现有高质量视觉模型及语言大模型进行联合训练,为减少计算量及防止遗忘,作者对预训练模型进行

    2024年02月09日
    浏览(44)
  • DALL-E2原理解读——大模型论文阅读笔记五

    论文:https://cdn.openai.com/papers/dall-e-2.pdf 项目:https://openai.com/dall-e-2 利用CLIP提取的文本特征,级联式的生成图片。第一阶段通过prior将文本特征与图像特征进行对齐,第二阶段用扩散模型将视觉特征转化为生成图片。整体来看,DALL-E2就是CLIP与扩散模型的结合,因此作者也将其

    2024年02月11日
    浏览(45)
  • 【论文阅读】Weighted Boxes Fusion(WBF)模型融合原理解读

    论文地址:https://arxiv.org/pdf/1910.13302.pdf 代码地址:GitHub - ZFTurbo/Weighted-Boxes-Fusion: Set of methods to ensemble boxes from different object detection models, including implementation of \\\"Weighted boxes fusion (WBF)\\\" method. 【 原理 】 (1)将所有获得的候选框按得分进行降序排列; (2)选取得分最高的候选框

    2024年02月10日
    浏览(45)
  • AIGC系列之:DDPM原理解读(简单易懂版)

    目录 DDPM基本原理 DDPM中的Unet模块 Unet模块介绍 Unet流程示意图 DownBlock和UpBlock MiddleBlock 文生图模型的一般公式 总结         本文部分内容参考文章:https://juejin.cn/post/7251391372394053691,https://zhuanlan.zhihu.com/p/563661713,感谢博主的辛苦工作,本文尽量去繁就简去理解DDPM的原理

    2024年04月17日
    浏览(30)
  • 【论文阅读】ControlNet

    简介 目标:加入额外的条件(例如边缘图像,深度图像)控制生成的图像 现有挑战 特定领域上的数据较少,而预训练模型很大,很容易出现过拟合的情况。 在资源有限的情况下,只能选择pretrain- finetune的训练方式 端到端的训练对于使用是很有必要的 idea:将预训练模型拷贝

    2024年02月08日
    浏览(27)
  • 论文阅读_条件控制_ControlNet

    name_en: Adding Conditional Control to Text-to-Image Diffusion Models name_ch: 向文本到图像的扩散模型添加条件控制 paper_addr: http://arxiv.org/abs/2302.05543 date_read: 2023-08-17 date_publish: 2023-02-10 tags: [‘图形图像’,‘大模型’,‘多模态’] author: Lvmin Zhang code: https://github.com/lllyasviel/ControlNet ControlNet 几

    2024年02月12日
    浏览(36)
  • 【论文阅读】ControlNet、文章作者 github 上的 discussions

    提出 ControlNet ,通过引入该结构微调预训练文生图扩散模型,可以给模型增加空间定位条件. 在 Stable Diffusion 上使用 ControlNet 微调,使模型能接受 Canny edges, Hough lines, user scribbles, human key points, segmentation maps, shape normals, depths, cartoon line drawings 图像作为输入条件. 消融实验、定量

    2024年01月20日
    浏览(48)
  • 【AIGC】【AI绘画】controlNet介绍(原理+使用)

    下载安装:建议下载V1.1版本 论文:https://arxiv.org/pdf/2302.05543.pdf 下载ControlNet仓库 切换到ControlNet主目录 创建名为control的conda虚拟环境并安装依赖 激活名为control的虚拟环境 所有模型和检测器都可以从 Hugging Face页面下载。确保 SD 模型放在“ControlNet/models”中 , 检测器放在“

    2024年02月08日
    浏览(42)
  • 快速理解AIGC图像控制利器ControlNet和Lora的架构原理

    作者公众号 大数据与AI杂谈 (TalkCheap),转载请标明出处 ControlNet以及Lora是什么,玩过stable diffusion AI图像生成的同学应该都不陌生。 一般来说,如果你用以SD 或 SDXL为基础的模型来生成图像,产出的图像往往非常随机,很难对图像的内容做相对精确的控制。尤其是原始的S

    2024年04月11日
    浏览(33)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包