【AIGC】【AI绘画】controlNet介绍(原理+使用)

这篇具有很好参考价值的文章主要介绍了【AIGC】【AI绘画】controlNet介绍(原理+使用)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

【AIGC】【AI绘画】controlNet介绍(原理+使用),AIGC-生成式人工智能,AIGC,人工智能



安装教程

下载安装:建议下载V1.1版本
论文:https://arxiv.org/pdf/2302.05543.pdf

1.环境安装

下载ControlNet仓库

git clone https://github.com/lllyasviel/ControlNet

切换到ControlNet主目录

cd ControlNet

创建名为control的conda虚拟环境并安装依赖

conda env create -f environment.yaml

激活名为control的虚拟环境

conda activate control

2. 下载预训练的模型文件

所有模型和检测器都可以从 Hugging Face页面下载。确保
SD 模型放在“ControlNet/models”中
检测器放在“ControlNet/annotator/ckpts”中

确保从 Hugging Face 页面下载所有必要的预训练权重和检测器模型,包括 HED 边缘检测模型、Midas 深度估计模型、Openpose 等。

几种预训练模型解释见下表,可以根据功能下载:

【AIGC】【AI绘画】controlNet介绍(原理+使用),AIGC-生成式人工智能,AIGC,人工智能

3.运行(生成可视化界面)

通过执行上表中,不同的“脚本”列来执行不同的条件控制任务。

注意:原始的执行脚本默认不能在公网访问,若要在公网访问请在脚本的最后一行作如下修改:

原始代码:
block.launch(server_name=‘0.0.0.0’)

修改为:
block.launch(server_name=‘0.0.0.0’, share=True)

下面以segmentation map 这个条件控制方式进行AI图像的生成。

执行代码:

python gradio_seg2image.py

在终端中生成的链接进行公网访问:
【AIGC】【AI绘画】controlNet介绍(原理+使用),AIGC-生成式人工智能,AIGC,人工智能
在本地浏览器访问,示例界面如下:
【AIGC】【AI绘画】controlNet介绍(原理+使用),AIGC-生成式人工智能,AIGC,人工智能

1、ControlNet:AI绘画

如果要画一幅画,一方面是构图,一方面是风格。现在的AI绘画,就是炼丹。需要通过各种 prompt 来控制画面的构图和风格。

鉴于prompt 的专业性与复杂性,产生了两个模型: ControlNet就是用来控制构图的,LoRA就是用来控制风格。还有一个风格迁移的模型shuffle,此外,SD1.5也能生成好的图像。

那ControlNet是 如何构图呢?有以下两种方法:
1、已经手绘了草图,后续的完善和美化由 AI 去做;
2、利用现成的图,生成不同风格的新图。
那么这就是ControlNet做的事情:通过你手上已有的图而不是咒语,实现对AI绘图的控制。

这里只介绍 ControlNet,LoRA作为锦上添花的 work 后续介绍。

1.1、ControlNet的本质是文生图(txt2img)

ControlNet的原始论文:《Adding Conditional Control toText-to-Image Diffusion Models》 及代码,最原始是一个 txt2img 的工作。此外还有 inpaint 的附加功能,也就是替换、消除等。
所以在WEB UI中,不管是txt2img还是img2img,都有ControlNet。

2.2、预处理器 & 模型选择

要保证预处理器(preprocessor)跟模型(model)是同类的

预处理器preprocessor:对参考图预处理,作为控制图,给到后续的对应模型进行控制出图。比如:如果选择了scribble类的预处理器,那么模型就最好选择scribble模型:
【AIGC】【AI绘画】controlNet介绍(原理+使用),AIGC-生成式人工智能,AIGC,人工智能
上图中,第一行分别是原图和scribble预处理后的图,想画一只类似猫头鹰。第二行是不同配置条件下的AI出图结果。只有预处理跟模型是一致的情况下,才能得到比较好的结果图,如果预处理器或者模型有一者为空,基本就等同于ControlNet未生效,就是一般的SD出图,如第二行的中间两幅图。 WEB UI开发者也注意到了预处理器vs模型之间对应关系的问题,所以在1.1.2XXX版本中限定了预处理和模型之间的对应关系,如下图所示。

【AIGC】【AI绘画】controlNet介绍(原理+使用),AIGC-生成式人工智能,AIGC,人工智能

1.3、参数配置

由于可调参数多,第一次使用默认参数,如果效果不好,再做参数细调。

2、ControlNet 模型分类

ControlNet1.1版本发布了14个模型,主要可以分成三类:

2.1、草图类(6个)

主要是用预处理器,将图像处理成草图,或者直接输入手稿也行。

预处理器有以下几种:
1)Canny:边缘提取器,最常用
2)MLSD:特殊的线条检测(比如直线),适合建筑设计、室内设计
3)lineart :线条提取(早期版本叫fake_scribble )
4)lineart_anime:需要配合anything_v3-v5的大模型(需要复杂提示词)使用
5)SoftEdge:区分几种预处理器,综合效果选择SoftEdge_PIDI
6)Scribble:涂鸦,类似于简笔画

以下是不同预处理器的效果和差异

【AIGC】【AI绘画】controlNet介绍(原理+使用),AIGC-生成式人工智能,AIGC,人工智能

以下是Scribble的效果

【AIGC】【AI绘画】controlNet介绍(原理+使用),AIGC-生成式人工智能,AIGC,人工智能
简单的prompt就能生成非常好的效果图

2.2、高级特征类(3个)

1)depth:深度图
2)seg:语义分割图。譬如粉色是建筑物、绿色是植物等
3)normalbae:法线贴图(法线就是像素的梯度,反映了纹理)

以下是效果图,后面两列是模型生成的新图

【AIGC】【AI绘画】controlNet介绍(原理+使用),AIGC-生成式人工智能,AIGC,人工智能

对应的预处理器如下(可随机选,效果类似):

1.depth:支持depth_Midas, depth_Leres, depth_Zoe等等,以及别其他软件生成的depth map
2.seg:支持Seg_OFADE20K、Seg_OFCOCO、Seg_UFADE20K,以及人工手绘的蒙版。
3.normalbae:支持normal_bae, normal_midas

3.3、高级类(5个)

1)OpenPose:骨骼捕捉,很热门
2)inpaint:局部修图,可以很自然删除一些目标
3)shuffle:风格混合,转换不同风格
4)ip2p:指令式修图,可以识别有限的指令
5)tile:图像超分:会增加原图没有的细节。

以下是ip2p的效果

【AIGC】【AI绘画】controlNet介绍(原理+使用),AIGC-生成式人工智能,AIGC,人工智能

以下是shuffle 的效果

【AIGC】【AI绘画】controlNet介绍(原理+使用),AIGC-生成式人工智能,AIGC,人工智能


3、配置参数

大多数参数选择默认就可以了,在高阶应用时需要调参。除了对预处理器与模型的选择,下面介绍别的参数

【AIGC】【AI绘画】controlNet介绍(原理+使用),AIGC-生成式人工智能,AIGC,人工智能

黄色框:跟所选的 预处理器和模型相关的。主要是线条粗细、细节丰富程度等参数

红色框

第一组:基础控制,比较简单
1)enable:是否启用ControlNet
2)lowVRAM:低精度,可以减少显存消耗
3)Pixel Perfect:是新版本新增功能,对应黄框中的第一项preprocessor resolution,算法自己去计算最合适的resolution。如果不是512*512这种的方形出图,建议勾上这个选项。
4)allow preview:提前预览 预处理器的效果

第二组:权重控制(可以直接用默认)
1)control weight:控制网络的控制权重
2)starting control step:什么时候介入控制(百分比)
3)ending control step:什么时候退出控制(百分比)
如果不想用controlNet控制太多,则可以晚点介入

第三组:控制模式(可以直接用默认)
1)balanced
2)my prompt is important
3)ControlNet is important
用于分配 prompt 和 参考图的权重比例

第四组:裁剪方式
当控制图(参考图)的尺寸跟目标图(txt2img里面要生成的图)的尺寸不一致时,需要配置这组参数:
1)just resize:变更控制图的长宽比以适应目标图的尺寸比例(可能导致形变)。
2)crop and resize:对控制图进行裁剪以适应目标图的尺寸比例 。
3)resize and fill:对控制图进行缩放,保证整个控制图能塞到目标图中去,然后对多余部分进行空白填充。

4、基本原理:可控的SD模型

ControlNet:将stable diffusion模型,克隆出一个副本

ControlNet是一个用于 深度神经网络 的控制技术,它可以通过操作神经网络的输入条件来控制神经网络的行为。网络主要包含 “resnet”块、“conv-bn-relu”块、多头注意力块等。通过克隆神经网络块的参数, 并应用零卷积连接层来实现ControlNet的目标。

副本网络与原始网络块的输入和输出是一致的。训练初始阶段,ControlNet不会对神经网络产生影响。零卷积的权重和偏置值都被初始化为零,这使得ControlNet在优化过程中不会影响权重和偏置值的梯度。ControlNet通过控制神经网络块的输入条件来调整神经网络的行为,并适应不同的任务和数据。每个神经网络块由一组参数来定义,这些参数可以在训练过程中进行优化。

【AIGC】【AI绘画】controlNet介绍(原理+使用),AIGC-生成式人工智能,AIGC,人工智能

ControlNet 应用于任意神经网络块。x; y 是神经网络中的深度特征。“+” 表示特征加法。“c” 是我们要添加到神经网络中的额外条件。“zero convolution” 是一个 1 × 1 卷积层,其权重和偏置都初始化为零

ControlNet结构可以表示为:

yc = F(x; α) + Z(F(x + Z(c;βz1); βc); βz2)

其中,yc是该神经网络块的输出结果。在第一次训练步骤中,神经网络块的可训练副本锁定副本的所有输入和输出不受ControlNet 影响。任何神经网络块的能力、功能和结果质量都得到完美保留,并且任何进一步的优化将变得像微调一样快(与从头开始训练这些层相比)。

在第一次训练步骤中,由于零卷积层的权重和偏置值都初始化为零,我们有:

Z(c; βz1) = 0
F(x + Z(c; βz1); βc) = F(x; βc) = F(x; α)
Z(F(x + Z(c; βz1); βc); βz2) = Z(F(x; βc); βz2) = 0

当应用ControlNet到一些神经网络块时,在任何优化之前,它都不会对深度神经特征产生影响。任何神经网络块(比如预训练的SD)的能力、功能和结果质量都得到完美保留,并且任何进一步的优化将变得像微调一样快。通过迭代的过程,重复应用ControlNet操作来优化神经网络块。这样,在每一步中,我们可以保持所有其他神经网络块不变,仅对某些神经网络块进行修改和调整

原文以 Stable Diffusion为基础,使用ControlNet对大型网络进行控制:将Encoder复制训练,decoder部分进行skip connection。

【AIGC】【AI绘画】controlNet介绍(原理+使用),AIGC-生成式人工智能,AIGC,人工智能

图中 “Zero Convolution”是带有零初始化权重和偏差的1×1卷积。模型开始训练之前,所有零卷积输出都是零,此时模型仍然是原始的Stable Diffusion Model而在加入自己的训练数据之后,则会对最终结果做微调,因此不会导致模型出现重大偏离的情况

我们从整体的模型结构上可以看出,作者在Stable Diffusion 模型的decode层加入了上述“0卷积层”,以实现对最终模型与训练数据的一致性。

5.可视化效果

图像分割搭配SD1.5
【AIGC】【AI绘画】controlNet介绍(原理+使用),AIGC-生成式人工智能,AIGC,人工智能

姿态检测搭配SD1.5:
【AIGC】【AI绘画】controlNet介绍(原理+使用),AIGC-生成式人工智能,AIGC,人工智能

通过HED轮廓,搭配SD1.5
【AIGC】【AI绘画】controlNet介绍(原理+使用),AIGC-生成式人工智能,AIGC,人工智能

灵魂画师搭配SD1.5
【AIGC】【AI绘画】controlNet介绍(原理+使用),AIGC-生成式人工智能,AIGC,人工智能


总结

部分图片转载自知乎用户@BitByBit文章来源地址https://www.toymoban.com/news/detail-720517.html

到了这里,关于【AIGC】【AI绘画】controlNet介绍(原理+使用)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • AI 绘画Stable Diffusion 研究(二)sd模型ControlNet1.1 介绍与安装

    部署包作者:秋葉aaaki 免责声明: 本安装包及启动器免费提供 无任何盈利目的 大家好,我是风雨无阻。 众所周知,StableDiffusion 是非常强大的AI绘图工具,需要详细了解StableDiffusion的朋友,可查看我之前的这篇文章: 最近大火的两大AI绘图工具 Midjourney VS StableDiffusion。 今天为大

    2024年02月15日
    浏览(55)
  • 人工智能ai绘画软件免费版哪个好?安利三个AI绘画生成器

    在一座安静的画室里,老艺术家杰克早已习惯了孤独的创作。然而,当他接触到ai绘画软件时,他的世界瞬间发生了变化。这种软件不仅可以模拟各种传统绘画技法,还可以根据我们的需求进行创意性的创作。那你们知道人工智能ai绘画软件免费版哪个好吗?本文将为大家分享

    2024年02月15日
    浏览(82)
  • AI绘画:SDXL版ControlNet模型和使用方法!

    SDXL是目前最强的AI绘画基础模型,直接加载模型,就可以生成不错的效果。但是它有一个致命的问题,就是不支持ControlNet。 在AI绘画中,ControlNet是一个非常重要的工具。有了它,就可以生成更加可控精准的图片。ControlNet的用途非常多,比如,控制人物姿势、线稿上色、动漫

    2024年02月09日
    浏览(38)
  • 这二维码也太美了吧!利用AI绘画[Stable Diffusion的 ControlNet]生成爆火的艺术风格二维码

    先看两张图 上面的话是两张有效的二维码,只要你拿起手机扫描这些图像,是可以扫出内容的。是不是难以置信? 最近,在互联网上疯传一种崭新形式的二维码,它们摆脱了传统黑白方块的外观,而是呈现出令人赏心悦目的图像,一眼望去令人印象深刻。 核心方案就是基于

    2024年02月10日
    浏览(49)
  • 了解人工智能生成内容(AIGC)的基本原理和应用

    • AIGC的定义和背景 人工智能生成内容(Artificial Intelligence Generated Content,简称AIGC)是指利用人工智能技术和算法来自动生成各种形式的内容,例如文章、新闻、广告、代码等。AIGC的发展可以追溯到机器学习和自然语言处理等领域的进展,以及深度学习模型的快速发展。 •

    2024年02月03日
    浏览(62)
  • 【人工智能书籍】一本书读懂AIGC:ChatGPT、AI绘画、智能文明与生产力变革(PDF分享)

    今天又来给大家推荐一本人工智能方面的书籍 一本书读懂AIGC:ChatGPT、AI绘画、智能文明与生产力变革 。本书以通俗易懂的方式从各个层面介绍了AIGC的基础知识,并辅以大量案例引领读者了解AIGC的应用实践,让读者可以更快速地利用AIGC改善工作和生活。 适读人群 : AIGC带来

    2024年04月22日
    浏览(52)
  • 5个AI人工智能平台推荐,绘画、写作文案、文章一键生成

    随着人工智能技术的快速发展,AI原创文章写作平台也愈加成熟和完善,让文章的创作变得更加便捷、高效、优质。下面介绍五个国内知名的AI原创文章写作平台,它们各有特色,可以满足您的不同需求。 5个AI人工智能平台推荐: 第1个:搭画快写 搭画快写是国内专业的AI原创

    2024年02月05日
    浏览(76)
  • 进阶--AI绘画里你必须要直到的controlnet模型使用方法

    哈喽,各位小伙伴们大家好,有一段时间没有更新了,最近也是忙着搬家忙着置办家具等等,今天终于得空,于是乎连忙抽空做了这期关于controlnet的使用教程。 因为最近我也是发现,controlnet对于AI绘画来说可真是太重要了,说白了,这个插件用好了,将会大大的提升我们的

    2024年02月04日
    浏览(73)
  • 什么是AIGC(AI Generated Content, 人工智能生成内容)?

    AI生成内容(AIGC,人工智能生成内容)是一种新型的内容创作方式,它继承了专业生产内容(PGC,Professional-generated Content)和用户生成内容(UGC,User-generated Content)的优点,并充分发挥技术优势,打造了全新的数字内容生成与交互形态。随着科技的不断发展,AI写作、AI配乐

    2024年02月11日
    浏览(68)
  • 【人工智能革命】:AIGC时代的到来 | 探索AI生成内容的未来

    🎥 屿小夏 : 个人主页 🔥个人专栏 : IT杂谈 🌄 莫道桑榆晚,为霞尚满天! 人工智能(AI)的发展历程是一个充满突破和持续进步的旅程。随着时间的推移,AI 已经从简单的自动化任务处理演变到现在的高级认知和决策能力。特别是在 AIGC(AI 生成内容)领域,大型 AI 模型

    2024年02月04日
    浏览(99)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包