Stable Diffusion学习指南【ControlNet上篇】- 功能介绍、安装和使用
探索AIGC领域的体验设计师

自 SD 系列教程发布这几个月,已被大家多次催更 ControlNet 的教程,相信很多朋友也都听说过这款神奇的控图工具。ControlNet 到底是什么?为什么作为一款插件它可以引起如此多的热议?究竟该如何正确使用?
今天的文章我将为你娓娓道来关于 ControlNet 的起源介绍、安装方法和使用技巧。
Stable Diffusion学习指南系列文章: 01Stable Diffusion学习指南【初识篇】 02Stable Diffusion学习指南【安装篇】 03Stable Diffusion学习指南【文生图篇】 04Stable Diffusion学习指南【模型篇】 05Stable Diffusion学习指南【图生图篇】 以下是正文部分 01 ControlNet 基础介绍 1.1 发展起源ControlNet 的概念最早被提出,源自今年 2 月的一篇名为《Adding Conditional Control to Text-to-Image Diffusion Models》 的论文,文中介绍了可以额外引入一个框架来附加多种空间语义条件控制 SD 模型的生成过程。同日论文的作者 Lvmin Zhang 也在 GitHub 上将相关源代码进行了开源,而这位张教授就是 ControlNet 的开源创作者。


那 ControlNet 的具体作用是什么呢?如果用一句话来介绍 ControlNet,那就是可以实现稳定控图的开源插件。在之前的文章中,我们学习到图生图的本质是利用参考图在绘图过程添加更多约束,但图片中的信息有很多,并非所有信息都是我们想要的。比如有的时候我们只想参考原图中的角色动作或者表情,又或者是画面构图或角色轮廓,如果单纯靠 SD 模型是无法理解这些相对抽象的空间语义信息,而有了 ControlNet 就完全不一样。


ControlNet 直译后的名字叫做控制网络,即通过调节神经网络来干预图像的去噪过程,使其按照既定方向生成稳定的图片。如果之前你有认真研读【模型篇】的教程,会发现它在影响神经网络行为的方式上和 HyperNetwork 有相似之处,都是在主模型外训练了一个小的循环神经网络来微调原模型。

其中,Annotator 注释器也就是我们常提到的预处理器,它的作用是对原图进行提取加工,将画面中的空间语义信息检测出来转换成可视化的预览图,比如边缘线稿图、深度图、涂鸦图、关键点等。该提取加工的过程我们称之为预处理,期间无需绘图模型介入,也不用设置任何提示词或参数,只需选择对应预处理器即可快速生成。




前面提到 ControlNet 是搭载在 WebUI 上使用的一款插件,介于本篇是 Stable Diffusion 系列教程第一次提到插件,这里给不了解插件概念的小伙伴做个简单的科普。
插件又被称作 extension 扩展。我们可以将 WebUI 理解成一部刚出场的新手机,虽然能实现打电话、发短信、上网等基本功能,但是无法满足像修图、打游戏等定制功能,而插件就相当于手机中的软件 App,可以扩展 WebUI 这部手机的各项服务,从而实现更多有趣的功能。


首先,插件一般都是按需下载,不是每个人都需要使用到所有插件功能,如果全部内置会导致 WebUI 程序包非常臃肿,造成资源浪费。其次社区插件是由热心群众为爱发电,功能千奇百怪,WebUI 作者也没法保证插件的有效性,干脆直接提供接口让用户自行筛选和使用。此外,插件可以极大的丰富和拓展 WebUI 的性能,让本就自由的 Stable Diffusion 有了更多的可玩性,对推进开源社区的发展也有很多积极作用。


了解了 ControlNet 的基础概念和原理,下面就是如何安装和使用这款插件了。一般来说,如果你使用的是秋叶整合包,ControlNet 的插件和模型应该已经为你内置安装好了,但如果你之前采用的是手动安装,建议仔细看看以下具体的安装方法。
想正确使用 ControlNet 需要安装 2 个部分:ControlNet 插件和 ControlNet 模型,下面挨个给大家介绍。
2.1 插件安装针对插件的安装方法有很多,下面的内容适用于大部分插件进行安装,大家可以做个统一参考,整个安装过程中建议保持可用的网络环境。
首先是最简单的自动下载安装。WebUI 的扩展选项页已经为我们集成了市面上大多数插件的安装链接,打开扩展-可下载-加载扩展列表,在其中搜索controlnet即可找到对应插件点击下载即可。

从网址安装选项页,将下面 ControlNet 的插件包地址粘贴到输入框中,即可自动下载和安装好 ControlNet 插件。
ControlNet在GitHub 下载地址:
https://github.com/Mikubill/sd-webui-controlnet


Stable Diffusion WebUI -> 扩展中查看和控制插件是否启用,每次修改后都要点击应用并重新加载 WebUI 界面才会生效。

Annotator注释器模型并没有下载下来,当我们后续在调用预处理器时,ControlNet 还会通过 Python 代码从 huggingface 上自动下载这部分补充文件。




第一步插件安装完成后,接下来你还需要安装用于控制绘图的 ControlNet 模型。前面提到 ControlNet 共提供了 14 种不同的控图模型,包括 11 个生产就绪模型和 3 个实验模型,每个模型大小都在 1.4G 左右,如果全部官方下载会需要很长时间,我也为大家打包好放在网盘里了。
官方 ControlNet 模型地址:https://huggingface.co/lllyasviel/ControlNet-v1-1/tree/main

\extensions\sd-webui-controlnet\models,但我更推荐大家将模型放在\models\ControlNet文件夹中,这样和 Ckpt、loRA 等其他模型文件放在一起,更方便后期进行管理和维护。



https://huggingface.co/webui/ControlNet-modules-safetensors/tree/main

首先基础操作和我们平时使用文生图一样,选择好合适的主模型,然后填写提示词并设置参数,接着找到 ControlNet 的插件菜单上传一张我们准备好的图片到画布中,启用选项会自动勾选,我们再选中开启完美像素模式和允许预览。

当然你也可以不启用预处理器,直接点击生成按钮,ControlNet 插件同样会提取原图关键信息进行控图,只是我们无法观察到预处理器的处理效果,因此建议大家使用时,都先用预处理器提取后进行预览。




下面我们来实操一个小案例,了解 ControlNet 是如何使用的,关于不同控图类型的差异我会在后面的内容进行详细拆解。
首先基础操作和我们平时使用文生图一样,选择好合适的主模型,然后填写提示词并设置参数,接着找到 ControlNet 的插件菜单上传一张我们准备好的图片到画布中,启用选项会自动勾选,我们再选中开启完美像素模式和允许预览。

当然你也可以不启用预处理器,直接点击生成按钮,ControlNet 插件同样会提取原图关键信息进行控图,只是我们无法观察到预处理器的处理效果,因此建议大家使用时,都先用预处理器提取后进行预览。





我们来仔细看下 ControlNet 插件的具体页面,这里同样提供了丰富的参数项供用户进行微调,下面为大家介绍关键的通用设置项,此外当我们选择不同预处理器后还会出现一些针对该控制类型的定制参数,这些我会在之后进行单独介绍。

只有勾选启用后,在点击生成按钮进行绘图时,ControlNet 模型的控图效果才能生效,一般上传图像后ControlNet会自动勾选上。经常有小伙伴奇怪为什么设置了 ControlNet 插件后在绘图时没有生效,其实就是因为这里的按钮之前取消后忘记勾选了。

低显存模式是为显卡内存小的用户定制的功能,开启后整体绘图速度会变慢,但显卡支持的绘图上限有所提升。如果你的显卡内存小于 4GB,建议勾选开启。





预览窗口同样是必选的功能项,开启预览窗口后才能看到预处理器执行后反馈的预览图。

控制类型用于选择不同的 ControlNet 控图方向,早期的 ControlNet 插件并没有该选项,只能手动在多个预控制器和模型中下拉选择,很不方便。在增加了该控制项后,下方的预处理器和模型会自动切换成所选的类型,而且还新增了许多社区控图模型功能,具体控制类型我会在后面的内容中详细介绍。

学习过之前权重参数的朋友应该就知道,该参数用于设置 ControlNet 在绘图过程中的控制效果,数值越大则 ControlNet 对生成图像的控图效果越明显。

该参数和我们之前的绘制步数参数功能相同,用于设置 ControlNet 在整个迭代步数中作用的占比。如果整个迭代步数为 30 步,起始步数设置为 5 步,结束步数设置为 15 步,则表示 ControlNet 的控图引导从第 5 步开始,到 15 步 结束。

该功能早期版本只有 Guess Mode 无提示词模式,现在优化成更好用的 Contorl Mode 控制模式。用于切换 ControlNet 和提示词的权重占比,默认使用平衡即可。如果选择 【Prompt 更重要】则 ControlNet 的控图效果会削弱,而选择【ControlNet 更重要】则 ControlNet 会被加强。

裁剪模式和图生图中的图像处理模式功能相同,参考图和生产图比例不一致时,提供了拉伸、裁切、缩放 3 种处理方式。


可将设置好的 ControlNet 参数保存为预设,下次使用时选择预设项,即可自动设置好相关参数。

在本篇中我为大家介绍了 ControlNet的发展起源和运作原理以及如何尝试使用这款神器控图插件,由于篇幅限制,我会在下一篇中为大家详细介绍ControlNet的14种官方控图模型和各类社区模型。后台回复【SD资源】可获取完整 Stable Diffusion 资源包。


回复【软件】获取Mac必备软件
回复【字体】获取200+免费可商用中英文字体
回复【PPT】获取keyonte精品封面和模板
回复【书籍】获取100+必读设计书籍
回复【素材】获取3D元素、样机
回复【PS安装】获取PS安装包资源

那就点个在看吧~
⬇️ ⬇️ ⬇️
声明:本站所有文章,如无特殊说明或标注,均为本站作者原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。本文来自作者自媒体,不代表UIED观点和立场。 如若本站内容侵犯了原著者的合法权益,可联系我们进行处理以减少您的损失。
标签





评论 0
最新评论登录后发布评论并参与互动。
暂无评论,欢迎抢沙发。