须知
SD的相关笔记都是我看B站up主Nenly同学的教程整理的,里面的文字和图片很多都是教程里面的,整理这类文章主要是防止后期遗忘查阅。
有需求的同学可以去B站观看系列教程,讲的很透彻,很仔细,可以说是我见过最详细的教程了。
教程链接:Nenly同学的个人空间_哔哩哔哩_bilibili
控制
ControlNet根据一些额外的信息控制扩散生成走向
Annotator(预处理器):从图片中提取对ControlNet有用的额外信息
Diffusion:在ControlNet指导下生成图像作品
通过作者提供的安装包下载ControlNet,放在扩展文件夹extensions下,重启WebUI就可以看到
下载对应的ControlNet模型,不需要每一个都下载,推荐下载以下几个
下载的这些模型放在ControlNet文件夹内的models文件夹里,保证每一个模型有一个同名的Yaml,例如这两个是一对
Up主提供的链接:
ControlNet扩展和模型下载:
夸克:夸克网盘分享
度盘:百度网盘 请输入提取码
(在SD10文件夹内,模型很大,正在陆续上传,可以先点收藏码住,后续有版本更新也会同步)
首先写一个简单提示词,图片信息如下:
(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
从网上下载一个图,找一个沙滩女生的图片,拖放至ControlNet的图片处理区域里
点击左边(Annotator)预处理器选单,用于处理姿势的叫做“Openpose”,openpose_face是带上脸部表情,其他名称也是这种命名方式,初学者使用open pose什么都不带的这种。选好预处理器以后也会多出一系列参数,这些参数保持默认即可。
选择好之后,点击右边模型刷新的小图标,刷新选单,选择和openpose对应的控制模型——openpose
其他操作先保持默认,最后勾选上方的启用就可以生成和当前图片姿势一致的图片。
Control Weight:控制效应在图片中呈现出来的强度,多数时候维持默认不动
Starting Control Step和Ending Control Step:影响你在图片不断扩散的过程中什么时候加入ControlNet的影响。
Control Mode:控制你在提示词和ControlNet的信息之间更倾向于哪一个,多数时候会采用平衡模式BalanceMode,代表二者兼顾。
以上三个参数都是影响控制效果的强弱。
缩放模式:会在导入的图片和生成图片不吻合的时候进行起作用,包括拉伸,填充,剪裁。
Lookback:会在一些需要反复迭代的连续生成场景中使用,默认关闭
低显存模式:本身显存不够用,有效降低显存负担
Pixel perfect:自动计算预处理器产出图像最适合的分辨率,避免因为尺寸不合导致的尺寸变形,多数时候选中。选中之后就不用手动的选择预处理器的分辨率。
Allow Preview:会打开一个小的预览窗口,为预处理图像准备。点击爆炸小图标,就可以在预览窗口看到智能识别图片的姿势情况。
可以点击右上角的下载按钮将骨骼图下载下来,骨骼图也可以直接导入controlNet的窗口中。因为该图片已经被预处理器处理过了,所以不需要再次选择预处理器。后面的控制模型要保持和预处理器一致的那个模型。
控制人物姿势、手、表情
主要应用于对于场景的描绘还原,尤其是富有空间感的多层次场景。选择一个空间照片,选择任意一个带有depth的预处理器。
点击爆炸预处理一下,在预处理窗口中会生成一张深度图片
其中Depth Leres++预处理的效果是最精细的,优先使用这种预处理器。
depth也可以用来生成人物,尤其是那种肢体交叠,人体透视的场景。
用于边缘检测,需要还原外形的情景下,如果图像有一些需要精细表达的内容,也可以使用canny,它可以保证你的文字、标识不变形。
如果使用canny的时候有些线条无法识别,尝试降低threshold数值,能将明暗差异不那么明显的部分线条识别进来。
canny现在主要应用于线稿上色,选择一个线稿。
选择预处理器
给定提示词,大致提点画面内容,选择好风格导向。
此时生成的图像边缘线条模糊,原因是重复提取边缘产生模糊。因为canny的识别规则比较清晰,黑色是背景,白色是边缘,与线稿的颜色相反。
解决方法选择预处理器里面的invert预处理器就可以清晰的显示线条了。
又叫做整体边缘线条检测,相较于canny精确的线条检测,softedge的检测更加柔和,会有更大的随机性,AI更大的发挥空间。
预处理器HED的质量比Pidinet质量好,两个带safe的是精简版,根据自己的配置和时间考虑挑选。
Scribble是一种更加随机的临摹,给AI充分的发挥空间。
自己可以在备忘录或者Photoshop中画上寥寥几笔,给上少量的提示词,AI就可以根据自己的想象,画出不一样的世界。例如up的例子:
导入这张图
因为白纸黑线,预处理器选择反转。
给出少量提示词
它就会有各种自己的“创作”
在设置选单里,找到ControlNet的设置选项,选择多重ControlNet的最大模型数量,将默认维持的调大,我们可以调整为,保存设置,重启WebUI,ControlNet就有了多个模块。
可以在不同模块上使用不同的预处理器,将对应的ControlNet的模块启用,例如可以同时启用Depth+Openpose选项,这样可以既能准确识别手部又可以识别位置关系。
预处理模型互相配合已达到满意的效果。需要注意的是电脑的显存,如果电脑的显存不太好,那么开启低显存模式。