8. 如何使用 Controlnet - 图1

前言:

  1. 终于到了最激动人心的时刻,我们使用 Stable Diffusion 最重要的就是他的可控性,其中 Controlnet(控制网络)的作用居功至伟,它可以引入更多的条件来让我们出图更加可控。
  2. 在最开始之前我们需要安装 Controlnet 预处理器插件以及下载 Controlnet 模型:
    1. Controlnet 预处理器插件:
      1. 插件地址:https://github.com/Fannovel16/comfyui_controlnet_aux.git
      2. 如果安装后,运行 ComfyUI 显示无法导入插件,请运行 “ComfyUI\custom_nodes\comfyui_controlnet_aux” 目录下的“install.bat”文件
    2. Controlnet 模型:
      1. 常用模型我会放在本节课文件链接里面;
      2. 模型存放位置在 “ComfyUI_windows_portable\ComfyUI\models\controlnet” 目录下,如果你是和 Web UI 共用的模型,那就要看你第一节课设置的是插件下的还是 “models” 下的位置了。

创建流程:

需要有哪些操作:
  1. 为了能让大家更直观的了解使用 Controlnet 需要有哪些操作,我先以 Web UI 上的 Controlnet 为例:

8. 如何使用 Controlnet - 图2

  1. 我们可以看到在使用 Controlnet 插件时,需要我们加载图像、选择预处理器、加载 Controlnet 模型,以及控制权重、控制引导介入时机、控制引导终止时机;
  2. 好了,开始正题,我们还是以“万能的文生图”为基础,先打开“文生图基础流程”,我们这个基础上把 Controlnet 流程加进去。
预处理器:
  1. Controlnet 预处理器分有很多,比如:线条、面部与姿态、法向与深度、语义分割、颜色、Tile平铺等多个类型,并且每个类型又有多个预处理器,我们先以线条中的 Canny细致线预处理器为例,后面我会分别介绍他们有什么作用,以及怎么使用;
  2. 先“右键-新建节点-图像-加载图像”去加载图像,这个应该都会了吧。然后我们再去选择 Controlnet 预处理器,“右键-新建节点-Controlnet预处理器-线条-Canny细致线预处理器”

8. 如何使用 Controlnet - 图3

  1. 这一步是我们预处理器最重要的地方,我们可以把“加载图像”与“预处理器进行连接”,并且在右侧连接一个“预览图像”,然后跑一下,看看效果。

8. 如何使用 Controlnet - 图4

  1. 可以看到,我们的图片已经被处理成黑底白色的线稿,这个线稿就是我们使用 Controlnet 之前的必备条件;
  2. 当然,如果我们有已经处理好的图片,我们就可以省略“预处理器”这一步,直接进行下一步就可以了。
Controlnet:
  1. 图片已经处理好了,我们这时候就需要去加载选择 Controlnet 模型的节点,以及用来进行权重控制的节点;
  2. “右键-新建节点-Controlnet加载器”

8. 如何使用 Controlnet - 图5

  1. “右键-新建节点-条件-Controlnet应用”,这时候我们会看到两个 Controlnet应用节点,分别是 Controlnet应用、Controlnet应用(高级):8. 如何使用 Controlnet - 图6
    1. 强度:就是我们用来控制权重的,还记得上节课 Lora 权重的控制吗,是一个意思;
    2. 开始时间:我们在绘图时,Controlnet 什么时候进行控制;
    3. 结束时间:我们在绘图时,Controlnet 什么时候结束控制;
  2. 相比较,Controlnet应用只能用来控制权重,开始/结束时间采用默认0/1。另外 Controlnet应用(高级)需要去连接负面关键词。我们根据自己的使用选择就可以,我一般使用 Controlnet应用(高级);
工作流:
  1. 我们使用 Controlnet 所需要的节点都已经加载出来了,我们把他们连接起来,并添加到“文生图基础流程”中;
  2. 我们把“预处理器”处理好的图像以及“Controlnet加载器”分别连接到“Controlnet应用”;
  3. 选择 Controlnet 模型,这时候我们一定要选择对应功能、对应版本的模型:
    1. 比如我们用的 Canny 预处理器,那我们就要选择 Canny 的 Controlnet 模型(我会在挨个介绍预处理器的时候给大家讲解,他们分别对应哪些模型);
    2. 我们出图采用的是 SD1.5 的大模型,那我们就要去选择 SD1.5 的 Controlnet 模型;
    3. 我给大家演示是用的 SD1.5 的大模型,那我就选择了“control_v11p_sd15_canny”这个模型。
  4. “正/反CLIP文本编码器”连接“Controlnet应用”,“Controlnet应用”连接“K采样器”

8. 如何使用 Controlnet - 图7

  1. 我们可以看到我通过一个二次元大模型以及关键词控制后,得到一张相同细节的二次元图像。
多个Controlnet如何连接:

大家学习 ComfyUI 有段时间了,应该能猜到多个 Controlnet 怎么连接吧,我们在“Controlnet应用”后面再串联个“ 应用”就可以了,其余的该连 Controlnet 模型的连模型,该连 Controlnet 预处理器的连预处理器。

8. 如何使用 Controlnet - 图8

更多 Controlnet 模型下载地址

SD 1.5 Controlnet:

https://huggingface.co/lllyasviel/ControlNet-v1-1/tree/main

SDXL 1.0 Controlnet:

https://huggingface.co/lllyasviel/sd_control_collection/tree/main

Tile 模型,可用于放大、换衣服、换风格:https://civitai.com/models/330313?modelVersionId=444122

腾讯(多种类型模型):https://huggingface.co/collections/TencentARC/t2i-adapter-sdxl-64fac9cbf393f30370eeb02f(第一个链接中已包含,t2i 开头的就是)

青龙(多种类型模型):https://huggingface.co/bdsqlsz/qinglong_controlnet-lllite/tree/main�(此 Controlnet 系列不同于上述讲解中所演示,需要使用搭配 ControlNet-LLLite-ComfyUI 插件使用:https://github.com/kohya-ss/ControlNet-LLLite-ComfyUI?tab=readme-ov-file

视频版教程详见B站

bilibili

百度网盘链接:

百度网盘

夸克网盘链接:

夸克网盘