【深度学习】AIGC ,ControlNet 论文,原理,训练,部署,实战,教程(一)

这篇具有很好参考价值的文章主要介绍了【深度学习】AIGC ,ControlNet 论文,原理,训练,部署,实战,教程(一)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

论文:https://arxiv.53yu.com/pdf/2302.05543
代码:https://github.com/lllyasviel/ControlNet

得分几个博客完成这个事情的记录了,此篇是第一篇,摘录了一些论文内容。ControlNet 的原理极为朴实无华(对每个block添加zero conv连接),但却非常有效地减少了训练资源和训练时间,针对不同领域任务的训练形成自己的style。论文最后给出了很多值得思考的图例。

原论文摘录

Introduction

我们提出了一个神经网络结构,ControlNet,来控制预训练的大型扩散模型,以支持额外的输入条件。ControlNet以端到端方式学习特定于任务的条件,即使训练数据集很小(< 50k),学习也是鲁棒的。此外,训练ControlNet与微调扩散模型一样快,并且该模型可以在个人设备上训练。
或者,如果有强大的计算集群可用,则模型可以扩展到大量(数百万到数十亿)数据。我们报告说,像稳定扩散这样的大型扩散模型可以用ControlNets来增强,以实现边缘图、分割图、关键点等条件输入。这可以丰富控制大型扩散模型的方法,并进一步促进相关应用。

ControlNet,一个端到端神经网络架构,它控制大型图像扩散模型(如Stable diffusion)来学习特定于任务的输入条件。ControlNet将大型扩散模型的权重克隆为“trainable copy”和“locked copy”:locked copy保留了从数十亿张图像中学习到的网络能力,而可训练副本则在特定任务数据集上进行训练,以学习条件控制。可训练和锁定的神经网络块与一种称为“零卷积”的独特类型的卷积层相连,其中卷积权以学习的方式从零逐步增长到优化参数。

由于保留了production-ready weights,因此训练在不同规模的数据集上具有鲁棒性。

由于零卷积不会向深度特征中添加新的噪声,与从头开始训练新层相比,训练与微调扩散模型一样快。

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

HyperNetwork and Neural Network Structure

ControlNet使用一种特殊类型的卷积层,称为“零卷积”。 早期的神经网络研究[31,47,32]对网络权值的初始化进行了广泛的讨论,包括用高斯分布初始化权值的合理性以及用零初始化权值可能带来的风险。最近,[37]讨论了一种在扩散模型中缩放多个卷积层的初始权值以改进训练的方法,该方法与零卷积的思想有相似之处(它们的代码包含一个称为“zero_module”的函数)。在ProGAN[21]和StyleGAN[22]以及Noise2Noise[33]和[65]中也讨论了对初始卷积权值的操作。Stability的模型卡片[55]也提到了在神经层中使用零权重。

Diffusion Probabilistic Model

为了减少训练扩散模型所需的计算资源,基于latent image的思想[11],提出了 Latent Diffusion Model(LDM)[44]方法,并进一步扩展为Stable Diffusion 。

text-to-image generating tasks

Diffusion models可以应用于text-to-image generating tasks,以获得state-of-the-art image generating results。这通常是通过使用类似于CLIP等预训练语言模型将文本输入编码为latent vectors来实现的[41]。例如,Glide[38]是一种支持图像生成和编辑的text-guided diffusion models。Disco Diffusion是一个剪辑引导的实现[9]来处理文本提示。Stable Diffusion是latent diffusion的大规模实现[44],以实现文本到图像的生成。 Imagen[49]是一种文本到图像的结构,它不使用潜在图像,直接使用金字塔结构扩散像素。

Personalization,Customization, and Control of Pretrained Diffusion Model

由于 state-of-the-art image diffusion models 以文本到图像的方法为主,因此增强对 diffusion model 控制的最直接的方法通常是 text-guided [38,24,2,3,23,43,16]。这种类型的控制也可以通过操纵CLIP特征来实现[43]。

图像扩散过程本身可以提供一些功能来实现颜色级别的细节变化[35](Stable diffusion社区称之为img2img)。图像扩散算法自然支持inpainting,作为控制结果的重要方法[43,2]。

本文提出了Textual Inversion[12]和DreamBooth[46],利用一小组具有相同主题或对象的图像来定制(或个性化)生成结果中的内容。

Image-to-Image Translation

我们想指出的是,尽管ControlNet和Image-to-image translation可能有几个重叠的应用程序,但它们的动机本质上是不同的。

Image-to-image translation 的目标是学习不同领域图像之间的映射,而ControlNet的目标是控制具有特定任务条件的diffusion model。

Pix2Pix[20]提出了 image-to-image translation的概念,早期的方法主要是条件生成神经网络(generative neural networks)[20,69,60,39,8,63,68]。在 transformers and Vision Transformers (ViTs)普及之后,使用自回归方法(autoregressive methods)取得了成功的结果[42,11,7]。一些研究也表明,multi-model methods 可以从various translation tasks 中学习到一个robust generator [64,29,19,40]。

我们讨论了目前图像到图像翻译中最强的方法。Taming Transformer[11]是一个vision transformer ,具有generate images and perform image-to-image translations。Palette[48]是一个unified diffusion-based image-to-image translation framework。PITI[59]是一种diffusion-based image-to-image translation method ,它利用 large-scale pretraining 来提高生成结果的质量。在特定领域,如sketch-guided diffusion,[58]是一种基于优化的方法,可以操纵扩散过程。 这些方法在实验中得到了验证。

ControlNet

ControlNet操纵network block的输入条件,从而进一步控制整个神经网络的整体行为。这里的“network block”是指将一组神经层组合在一起作为构建神经网络的常用单元,如“resnet”块、“convn -bn-relu”块、multi-head attention block、transformer block等。

【深度学习】AIGC ,ControlNet 论文,原理,训练,部署,实战,教程(一),深度学习机器学习,深度学习,人工智能,AIGC,ControlNet
可以对照下图(b)查看公式(2)。
【深度学习】AIGC ,ControlNet 论文,原理,训练,部署,实战,教程(一),深度学习机器学习,深度学习,人工智能,AIGC,ControlNet
由于Zero Conv初始化的时候是0,所以ContorlNet在优化器Back Propagation之前,和原始的Stable Diffusion是一样的。
【深度学习】AIGC ,ControlNet 论文,原理,训练,部署,实战,教程(一),深度学习机器学习,深度学习,人工智能,AIGC,ControlNet

进一步来说,只要输入特征不是0,那么权重W在第一次BP之后就不会是0。

【深度学习】AIGC ,ControlNet 论文,原理,训练,部署,实战,教程(一),深度学习机器学习,深度学习,人工智能,AIGC,ControlNet
其中得到非零梯度,神经网络开始学习。这样,零卷积就成为一种独特的连接层,以一种学习的方式从零逐步到optimized parameters。

下图也解释了这个过程:
【深度学习】AIGC ,ControlNet 论文,原理,训练,部署,实战,教程(一),深度学习机器学习,深度学习,人工智能,AIGC,ControlNet

ControlNet in Image Diffusion Model

我们以Stable Diffusion[44]为例,介绍了使用ControlNet控制具有特定任务条件的大型扩散模型的方法。ControlNet的思想也可以扩展到其他的diffusion model。

Stable Diffusion是一个大型 text-to-image diffusion model ,训练了数十亿张图像。该模型本质上是一个带有encoder, a middle block, and a skip-connected decoder的U-net。encoder and decoder 都有12个块,整个模型有25个块(包括中间块)。

在这些块中,8个块是下采样或上采样卷积层。17个块是主块,每个块包含4个 resnet layers和2个Vision Transformers (ViTs)。每个Vit包含几个cross-attention and/or self-attention mechanisms。文本采用OpenAI公司的CLIP模型进行编码,扩散时间步长(diffusion time steps)采用位置编码(positional encoding)。

为了匹配Stable Diffusion的latent images大小,ControlNet采用了一个小的网络完成此事:
【深度学习】AIGC ,ControlNet 论文,原理,训练,部署,实战,教程(一),深度学习机器学习,深度学习,人工智能,AIGC,ControlNet
在图3中,可见ControlNet控制U-net的每个层级块,但由于原始权重是锁定的,所以计算消耗很少,23%显存、34%训练时间就可以去训练Stable Diffusion。

【深度学习】AIGC ,ControlNet 论文,原理,训练,部署,实战,教程(一),深度学习机器学习,深度学习,人工智能,AIGC,ControlNet
【深度学习】AIGC ,ControlNet 论文,原理,训练,部署,实战,教程(一),深度学习机器学习,深度学习,人工智能,AIGC,ControlNet

Training

Image diffusion models 学习逐步去噪图像以生成样本。去噪可以在pixel space或从训练数据编码的“latent” space 中进行。Stable Diffusion使用latent images作为 training domain。在这种情况下,术语“image”、“pixel”、“denoising”都是指“感知潜在空间(perceptual latent space)”中的相应概念[44]。

在训练过程中,我们随机将50%的文本提示替换为空字符串。这有助于ControlNet从输入条件图中识别语义内容的能力,例如,Canny边缘图或人类涂鸦等。这主要是因为当SD模型中提示符不可见时,编码器倾向于从输入控制映射中学习更多的语义,作为提示符的替代品。

【深度学习】AIGC ,ControlNet 论文,原理,训练,部署,实战,教程(一),深度学习机器学习,深度学习,人工智能,AIGC,ControlNet

Improved Training

我们讨论了几种改进ControlNets训练的策略,特别是在计算设备非常有限(例如,在笔记本电脑上)或非常强大(例如,在具有大规模gpu可用的计算集群上)的极端情况下。在我们的实验中,如果使用了其中任何一种策略,我们将在实验设置中提及。

Small-Scale Training 在计算设备有限的情况下,我们发现局部断开控制网与稳定扩散之间的连接可以加快收敛速度。默认情况下,我们将ControlNet连接到“SD中间块”和“SD解码器块1,2,3,4”,如图3所示。我们发现,断开到解码器1、2、3、4的链接,只连接中间块,可以将训练速度提高约1.6倍(在RTX 3070TI笔记本电脑GPU上测试)。当模型显示出结果与条件之间的合理关联时,断开的环节可以在继续训练中重新连接起来,以方便精确控制。

Large-Scale Training 大规模训练是指同时拥有强大的计算集群(至少8个Nvidia A100 80G或同等)和大型数据集(至少100万对训练图像)。这通常适用于数据容易获得的任务,例如,Canny检测到的边缘地图。在这种情况下,由于过度拟合的风险相对较低,我们可以首先训练ControlNets进行足够多的迭代(通常超过50k步),然后解锁稳定扩散的所有权重,并将整个模型作为一个整体进行联合训练。这将导致更具体问题的模型。

Implementation

我们提出了几种基于不同图像条件的ControlNets实现,以各种方式控制大型扩散模型。

【深度学习】AIGC ,ControlNet 论文,原理,训练,部署,实战,教程(一),深度学习机器学习,深度学习,人工智能,AIGC,ControlNet
【深度学习】AIGC ,ControlNet 论文,原理,训练,部署,实战,教程(一),深度学习机器学习,深度学习,人工智能,AIGC,ControlNet
【深度学习】AIGC ,ControlNet 论文,原理,训练,部署,实战,教程(一),深度学习机器学习,深度学习,人工智能,AIGC,ControlNet

Experiment

本文的所有结果都是在CFG-scale为9.0时获得的。采样器是DDIM。我们默认使用20 steps。我们使用四种类型的prompts来测试模型:

(1)No prompt:我们使用空字符串" "作为prompts。

(2)Default prompt:由于Stable diffusion本质上是通过prompts进行训练的,因此空字符串可能是模型的意外输入,如果不提供提示,SD倾向于生成随机的纹理映射。更好的设置是使用无意义的提示,如“an image”, “a nice image”, “a professional image”等。在我们的设置中,我们使用“a professional, detailed, high-quality image” 作为Default prompt。

(3)Automatic prompt:为了测试the state-of-the-art maximized quality of a fully automatic pipeline,我们还尝试使用自动图像字幕方法(如BLIP[34]),to generate prompts using the results obtained by “default prompt” mode。We use the generated prompt to diffusion again。

(4)User prompt: Users give the prompts.

Ablation Study 消融实验

图20显示了与未使用ControlNet训练的模型的比较。该模型使用与Stability的深度到图像模型完全相同的方法进行训练(向SD添加一个通道并继续训练)。
【深度学习】AIGC ,ControlNet 论文,原理,训练,部署,实战,教程(一),深度学习机器学习,深度学习,人工智能,AIGC,ControlNet

图21我们想指出一种“突然收敛现象(sudden convergence phenomenon)”,即模型突然能够遵循输入条件。当使用1e-5作为学习率时,这种情况可能发生在从5000到10000步的训练过程中。

【深度学习】AIGC ,ControlNet 论文,原理,训练,部署,实战,教程(一),深度学习机器学习,深度学习,人工智能,AIGC,ControlNet

图22显示了使用不同数据集规模训练的基于canny -edge的ControlNets。

PS 看起来依旧是数据量越多,效果越好。

【深度学习】AIGC ,ControlNet 论文,原理,训练,部署,实战,教程(一),深度学习机器学习,深度学习,人工智能,AIGC,ControlNet

Comparison of pre-trained models

【深度学习】AIGC ,ControlNet 论文,原理,训练,部署,实战,教程(一),深度学习机器学习,深度学习,人工智能,AIGC,ControlNet

More Applications

从图16可以看出,如果对扩散过程进行屏蔽,则模型可以用于pen-based的图像编辑。
【深度学习】AIGC ,ControlNet 论文,原理,训练,部署,实战,教程(一),深度学习机器学习,深度学习,人工智能,AIGC,ControlNet

从图26可以看出,当对象比较简单时,模型可以实现对细节的比较精确的控制。

【深度学习】AIGC ,ControlNet 论文,原理,训练,部署,实战,教程(一),深度学习机器学习,深度学习,人工智能,AIGC,ControlNet

从图27可以看出,当ControlNet只应用于50%的扩散迭代时,用户可以得到不遵循输入形状的结果。

【深度学习】AIGC ,ControlNet 论文,原理,训练,部署,实战,教程(一),深度学习机器学习,深度学习,人工智能,AIGC,ControlNet

Limitation

从图28可以看出,当语义解释错误时,模型可能难以生成正确的内容。

【深度学习】AIGC ,ControlNet 论文,原理,训练,部署,实战,教程(一),深度学习机器学习,深度学习,人工智能,AIGC,ControlNet文章来源地址https://www.toymoban.com/news/detail-552512.html

到了这里,关于【深度学习】AIGC ,ControlNet 论文,原理,训练,部署,实战,教程(一)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • 快速理解AIGC图像控制利器ControlNet和Lora的架构原理

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

    2024年04月11日
    浏览(33)
  • AIGC实战——深度学习 (Deep Learning, DL)

    深度学习 ( Deep Learning , DL ) 是贯穿所有生成模型 ( Generative Model ) 的共同特征,几乎所有复杂的生成模型都以深度神经网络为核心,深度神经网络能够学习数据结构中的复杂关系,而不需要预先提取数据特征。在本节中,我们将介绍深度学习基本概念,并利用 Keras 构建深度神

    2024年02月08日
    浏览(41)
  • AIGC书籍推荐:《生成式深度学习的数学原理》

    生成式 AI 使用各种机器学习算法,从数据中学习要素,使机器能够创建全新的数字视频、图像、文本、音频或代码等内容。生成式 AI 技术在近两年取得了重大突破,产生了全球性的影响。它的发展离不开近年来生成式深度学习大模型的突破。与一般意义上可视为“黑盒”的

    2024年02月15日
    浏览(48)
  • 在Kubernetes上部署分布式深度学习训练平台

    作者:禅与计算机程序设计艺术 1.1 什么是深度学习? 1.2 为什么需要深度学习? 1.3 深度学习平台架构图 # 2.基本概念术语说明 2.1 Kubernetes 2.2 GPU 2.3 MPI # 3.核心算法原理和具体操作步骤以及数学公式讲解 3.1 数据加载流程 3.2 网络结构设计 3.3 激活函数设计 3.4 损失函数设计 3

    2024年02月07日
    浏览(40)
  • PyTorch深度学习实战(1)——神经网络与模型训练过程详解

    人工神经网络 ( Artificial Neural Network , ANN ) 是一种监督学习算法,其灵感来自人类大脑的运作方式。类似于人脑中神经元连接和激活的方式,神经网络接受输入,通过某些函数在网络中进行传递,导致某些后续神经元被激活,从而产生输出。函数越复杂,网络对于输入的数据拟

    2024年02月06日
    浏览(47)
  • 深度学习实战28-AIGC项目:自动生成定制化的PPT文件

    大家好,我是微学AI,今天给大家介绍一下深度学习实战28-AIGC项目:自动生成定制化的PPT文件,AIGC项目是一个基于自然语言处理技术的创新性项目,旨在利用ChatGPT模型生成定制化的PPT文件。该项目主要应用于商务和教育领域,可以帮助用户快速创建具有专业性和高质量的P

    2024年02月08日
    浏览(43)
  • Azure - 机器学习实战:快速训练、部署模型

    本文将指导你探索 Azure 机器学习服务的主要功能。在这里,你将学习如何创建、注册并发布模型。此教程旨在让你深入了解 Azure 机器学习的基础知识和常用操作。 关注TechLead,分享AI全维度知识。作者拥有10+年互联网服务架构、AI产品研发经验、团队管理经验,同济本复旦硕

    2024年02月08日
    浏览(47)
  • 深度学习实战30-AIGC项目:自动生成思维导图文件,解放双手

    大家好,我是微学AI,今天给大家介绍一下深度学习实战30-AIGC项目:自动生成思维导图文件,解放双手,思维导图是一种常见的工具,用于将复杂的信息和概念以图形化方式展示出来。AIGC项目旨在将这种思维导图的创建过程自动化,并通过使用ChatGPT作为生成器,使其变得更

    2024年02月14日
    浏览(49)
  • 深度学习实战34-基于paddle关键信息抽取模型训练的全流程

    大家好,我是微学AI,今天我给大家介绍一下深度学习实战34-基于paddle关键信息抽取模型训练的全流程,我们在文档应用场景中,存在抽取关键信息的任务,比如身份证里的姓名和地址,快递单里的姓名和联系方式等等。传统的方法需要设计模板,但是这太繁琐了,也不够强

    2024年02月07日
    浏览(47)
  • MATLAB算法实战应用案例精讲-【深度学习】预训练模型GPT&XLNet

    目录 GPT 1. 介绍 1.1 GPT的动机 2. 模型结构 3. GPT训练过程 3.1 无监督的预训练

    2024年02月15日
    浏览(48)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包