Stable Diffusion—ControlNet原理及应用

须知

SD的相关笔记都是我看B站up主Nenly同学的教程整理的,里面的文字和图片很多都是教程里面的,整理这类文章主要是防止后期遗忘查阅。

有需求的同学可以去B站观看系列教程,讲的很透彻,很仔细,可以说是我见过最详细的教程了。

教程链接:Nenly同学的个人空间_哔哩哔哩_bilibili

一、ControlNet基本原理

1.核心作用

控制

2.作用结构

ControlNet根据一些额外的信息控制扩散生成走向

Stable Diffusion—ControlNet原理及应用_第1张图片

Annotator(预处理器):从图片中提取对ControlNet有用的额外信息

Diffusion:在ControlNet指导下生成图像作品

Stable Diffusion—ControlNet原理及应用_第2张图片

二、ControlNet安装与使用

1.安装

第一步

通过作者提供的安装包下载ControlNet,放在扩展文件夹extensions下,重启WebUI就可以看到

第二步

下载对应的ControlNet模型,不需要每一个都下载,推荐下载以下几个

下载的这些模型放在ControlNet文件夹内的models文件夹里,保证每一个模型有一个同名的Yaml,例如这两个是一对

资料链接

Up主提供的链接:

ControlNet扩展和模型下载:

夸克:夸克网盘分享

度盘:百度网盘 请输入提取码

(在SD10文件夹内,模型很大,正在陆续上传,可以先点收藏码住,后续有版本更新也会同步)

2.基本使用

首先写一个简单提示词,图片信息如下:

(sfw:1.2),absurdres, 1girl, ocean,white dress,long sleeves, sun hat,smile,

Negative prompt: NSFW, (worst quality:2), (low quality:2), (normal quality:2), lowres, normal quality, ((monochrome)), ((grayscale)), skin spots, acnes, skin blemishes, age spot, (ugly:1.331), (duplicate:1.331), (morbid:1.21), (mutilated:1.21), (tranny:1.331), mutated hands, (poorly drawn hands:1.5), blurry, (bad anatomy:1.21), (bad proportions:1.331), extra limbs, (disfigured:1.331), (missing arms:1.331), (extra legs:1.331), (fused fingers:1.61051), (too many fingers:1.61051), (unclear eyes:1.331), lowers, bad hands, missing fingers, extra digit,bad hands, missing fingers, (((extra arms and legs))),

Steps: 30, Sampler: DPM++ 2M Karras, CFG scale: 7, Seed: 2354501470, Size: 512x512, Model hash: 876b4c7ba5, Model: cetusMix_Whalefall2, Clip skip: 2, Lora hashes: "Clothing -: f038e3a5b67b", Version: v1.5.2-4-g624283b7

Stable Diffusion—ControlNet原理及应用_第3张图片

从网上下载一个图,找一个沙滩女生的图片,拖放至ControlNet的图片处理区域里

Stable Diffusion—ControlNet原理及应用_第4张图片

点击左边(Annotator)预处理器选单,用于处理姿势的叫做“Openpose”,openpose_face是带上脸部表情,其他名称也是这种命名方式,初学者使用open pose什么都不带的这种。选好预处理器以后也会多出一系列参数,这些参数保持默认即可。

Stable Diffusion—ControlNet原理及应用_第5张图片

选择好之后,点击右边模型刷新的小图标,刷新选单,选择和openpose对应的控制模型——openpose

其他操作先保持默认,最后勾选上方的启用就可以生成和当前图片姿势一致的图片。

参数详解

Control Weight:控制效应在图片中呈现出来的强度,多数时候维持默认不动

Stable Diffusion—ControlNet原理及应用_第6张图片

Starting Control Step和Ending Control Step:影响你在图片不断扩散的过程中什么时候加入ControlNet的影响。

Stable Diffusion—ControlNet原理及应用_第7张图片

Control Mode:控制你在提示词和ControlNet的信息之间更倾向于哪一个,多数时候会采用平衡模式BalanceMode,代表二者兼顾。

以上三个参数都是影响控制效果的强弱。

缩放模式:会在导入的图片和生成图片不吻合的时候进行起作用,包括拉伸,填充,剪裁。

Lookback:会在一些需要反复迭代的连续生成场景中使用,默认关闭

低显存模式:本身显存不够用,有效降低显存负担

Pixel perfect:自动计算预处理器产出图像最适合的分辨率,避免因为尺寸不合导致的尺寸变形,多数时候选中。选中之后就不用手动的选择预处理器的分辨率。

Allow Preview:会打开一个小的预览窗口,为预处理图像准备。点击爆炸小图标,就可以在预览窗口看到智能识别图片的姿势情况。

Stable Diffusion—ControlNet原理及应用_第8张图片

可以点击右上角的下载按钮将骨骼图下载下来,骨骼图也可以直接导入controlNet的窗口中。因为该图片已经被预处理器处理过了,所以不需要再次选择预处理器。后面的控制模型要保持和预处理器一致的那个模型。

Stable Diffusion—ControlNet原理及应用_第9张图片

三、ControlNet五大模型

1.Openpose

控制人物姿势、手、表情

Stable Diffusion—ControlNet原理及应用_第10张图片

2.Depth

主要应用于对于场景的描绘还原,尤其是富有空间感的多层次场景。选择一个空间照片,选择任意一个带有depth的预处理器。

点击爆炸预处理一下,在预处理窗口中会生成一张深度图片

其中Depth Leres++预处理的效果是最精细的,优先使用这种预处理器。

depth也可以用来生成人物,尤其是那种肢体交叠,人体透视的场景。

3.Canny

用于边缘检测,需要还原外形的情景下,如果图像有一些需要精细表达的内容,也可以使用canny,它可以保证你的文字、标识不变形。

如果使用canny的时候有些线条无法识别,尝试降低threshold数值,能将明暗差异不那么明显的部分线条识别进来。

Stable Diffusion—ControlNet原理及应用_第11张图片

canny现在主要应用于线稿上色,选择一个线稿。

Stable Diffusion—ControlNet原理及应用_第12张图片

选择预处理器

给定提示词,大致提点画面内容,选择好风格导向。

此时生成的图像边缘线条模糊,原因是重复提取边缘产生模糊。因为canny的识别规则比较清晰,黑色是背景,白色是边缘,与线稿的颜色相反。

解决方法选择预处理器里面的invert预处理器就可以清晰的显示线条了。

Stable Diffusion—ControlNet原理及应用_第13张图片

4.SoftEdge(Hed)柔和边缘

又叫做整体边缘线条检测,相较于canny精确的线条检测,softedge的检测更加柔和,会有更大的随机性,AI更大的发挥空间。

预处理器HED的质量比Pidinet质量好,两个带safe的是精简版,根据自己的配置和时间考虑挑选。

Stable Diffusion—ControlNet原理及应用_第14张图片

5.Scribble(涂鸦)

Scribble是一种更加随机的临摹,给AI充分的发挥空间。

自己可以在备忘录或者Photoshop中画上寥寥几笔,给上少量的提示词,AI就可以根据自己的想象,画出不一样的世界。例如up的例子:

导入这张图

Stable Diffusion—ControlNet原理及应用_第15张图片

因为白纸黑线,预处理器选择反转。

Stable Diffusion—ControlNet原理及应用_第16张图片

给出少量提示词

Stable Diffusion—ControlNet原理及应用_第17张图片

它就会有各种自己的“创作”

四、多重ControlNet应用

在设置选单里,找到ControlNet的设置选项,选择多重ControlNet的最大模型数量,将默认维持的调大,我们可以调整为,保存设置,重启WebUI,ControlNet就有了多个模块。

Stable Diffusion—ControlNet原理及应用_第18张图片

Stable Diffusion—ControlNet原理及应用_第19张图片

可以在不同模块上使用不同的预处理器,将对应的ControlNet的模块启用,例如可以同时启用Depth+Openpose选项,这样可以既能准确识别手部又可以识别位置关系。

预处理模型互相配合已达到满意的效果。需要注意的是电脑的显存,如果电脑的显存不太好,那么开启低显存模式。

你可能感兴趣的:(Stable,Diffusion,stable,diffusion)