> 技术文档 > 8 零基础学webUI | Controlnet控制与约束--Controlnet应用分类与使用方法_controlnet下载

8 零基础学webUI | Controlnet控制与约束--Controlnet应用分类与使用方法_controlnet下载

 零基础学WebUI-系列专栏:https://blog.csdn.net/vip_zgx888/category_13005532.html?spm=1001.2014.3001.5482

零基础学ComfyUI-系列专栏:https://blog.csdn.net/vip_zgx888/category_13006170.html?spm=1001.2014.3001.5482

    我们知道AI 生图工具 具有 很强的随机性,为获取意向图片往往需要大量抽卡,即使是图生图,原图中大量的图片信息也让SD正确抓取我们想要的关键信息。那么有没有一种方式能给SD一些额外的指导与限制,从而降低出图的随机性呢?

    2023年2月,毕业于苏州大学并就读于斯坦福大学计算机专业的张吕敏博士发表相关论文并发布Controlnet插件,自此我们可以让SD模型在相对抽象的语义理解基础上增加额外的控制条件,比如姿势、轮廓等,让SD更精确地生成接近我们设想的图片内容。

    目前Controlnet已迭代出多种控制条件的模型,可以实现轮廓、姿态、空间关系、色彩风格等多个维度的控制效果,而且这些不同类型的控制效果还可以组合使用,共同约束图片从而达到更加精准控制的图片效果。

1 Controlnet安装与更新

    controlnet是SD的一个插件,秋叶整合包已内置了Controlnet插件功能,我们不需要再额外安装该插件,需要注意Controlnet插件版本,一些模型对Controlnet最低版本有要求,可能会要求进行更新)。

    启动界面,点击最左边的“版本管理”,点击“扩展”,找到controlnet点击右边的“更新”按钮。

    如你的webUI尚未安装controlnet,安装方法为:

    a.webUI界面点击状态栏里的“扩展”

    b.点击“加载扩展列表”按钮

    c.在搜索框输入“controlnet”

    d.找到controlnet,点击安装按钮即可

2 Controlnet预处理器及模型安装

    绝大部分controlnet需要对应的预处理器对参考图进行预处理,再对参考图进行参考。如果controlnet预处理器未下载,选择相应的预处理器功能时,SD会自动进行下载安装,但是往往因为网络环境的问题,不分预处理器可能无法下载成功。这里我将个人使用的常见预处理器放入网盘中,大家可以下载后放入预处理器文件夹中。

    预处理器文件放置位置:

    根目录/ extensions/ sd-webui-controlnet /annotator /downloads文件夹

    不同的controlnet均有对应的模型去驱动,为了避免web-UI整合包过于臃肿庞大,Conetrolnet常用的模型放置在独立文件夹“controlnet”中,没有内置到整合包,需要的可以手动复制到安装路径中,安装地址:“sd-webui /models /controlnet/ ”(推荐此路径,方便同lora等其它模型一同管理)或者“extensions /sd-webui-controlnet/ models”。安装完成后,重载UI。

3 Controlnet分类

    根据Controlnet的功能与应用场景,我们可以将不同的Controlnet插件大致分为下面几大类型:

序号

分类

Controlnet名称

备注

1

线条约束

Canny(硬边缘)

约束性强,可以识别详细线条

SoftEdge(软边缘)

MLSD 直线、最小线段检测

建筑类常用

Lineart 线稿提取

Scribble 涂鸦

2

三维关系、

空间深度

Depth 深度

Normal 法线贴图

纹理效果常用

3

人体姿态、手势与表情

Openpose 姿态控制

4

图像风格转换

Shuffle 随机

打乱图片元素重新组合

IP-Adapter (图像)风格迁移

T2l-Adapter (文字转图)风格迁移

Reference 参考图引导

5

图片修复与编辑

Recolor 重上色

Inpaint重绘

类似于局部重绘,但融合效果更好

Tile 分块

Instant-ID 换脸

6

结构理解

Seg 语义分割

根据色块代表不同含义

7

其它

InstructP2P 指令式编辑

变换场景、特效

Revision 图像修订

    在后面的章节将就各controlnet的具体功能特点与使用方法进行详细介绍,初次接触阶段,我们仅需对controlnet的概念及用途做出初步的了解,有一定印象即可。

4 Controlnet使用界面

    这里我们采用一组简单的案例来演示Controlnet的基本使用功能

    案例通过canny硬边缘控制出图效果。

1)Controlnet作为SD出图额外的约束条件,在此之外的模型与VAE、正/负向提示词填写、steps等仍需按照文生图步骤设置。

2)点击“启用”(相当于Controlnet的开关),上传一张参考图,点击“完美像素模式”(低显存配置可点“低显存模式”,防止爆显存),点击“允许预览”

3)控制类型中选择“Canny(硬边缘)”

4)选择“预处理器”与“模型”

这里可以看到,选择好“控制类型”后,“预处理器”及“模型”界面均会自动匹配与该controlnet所对应的选项,方便用户进行选择。

5)点击“预处理器”与“模型”中间的爆炸按钮,这时可以看到预览图中出现了轮廓效果,这就是“Canny(硬边缘)”所生成的参考轮廓,SD生图时会参考这个轮廓线进行生图。

6)同步尺寸:在文生图部分我们已经设置了出图尺寸,如果controlnet中上传的参考图尺寸与文生图尺寸不一致,容易出现压缩图片或丢失部分数据等问题,所以需要点击“同步尺寸”按钮,将参考图片尺寸同步到出图尺寸。

7)控制权重:即Controlnet对出图过程中控制的强弱程度,如设置过低,则有可能controlnet不起作用。

8)“引导介入时机”与“引导终止时机”:指Controlnet在出图过程中产生效果的时间区间,比“引导介入时机”设置为0,则代表从第0步开始介入;“引导终止时机”设置为0.7,则代表从第“0.7×总步数”步停止对生图的控制;不过一般情况下终止时机设置为0.7时,图片整体轮廓已经成型,留下的部分让SD自由发挥可能会得到更自然的效果。

9)控制模式中的“均衡”、“”更偏向提示词、“更偏向Controlnet”即字面含义,表示出图期间受提示词还是controlnet控制的影响程度,一般情况下选择均衡即可。

10)填入正反向提示词(案例增加了对衣服颜色和环境描述),点击生成图片,就可以看到生成图片已参考示例图轮廓效果。

注意:

(1)除个别功能不需要预处理器外,绝大多数controlnet功能都同时需要选择预处理器及模型,注意选择预处理器后需要对应的模型才能实现效果;

另外,大模型的版本会对Controlnet的模型产生影响,大模型是1.5版本的,选好预处理器后需选择1.5版本的模型,如果大模型是XL版本的,则选好预处理器后需选择XL版本对应的模型。

(2)上传参考图后,注意同步尺寸。如目标图像尺寸与参考图尺寸不同,多数controlnet很可能不发生作用。