赞
踩
Controlnet 允许通过线稿、动作识别、深度信息等对生成的图像进行控制。
stable-diffusion-webui
页面上找到 Extensions
-> Install from URL
,输入插件的 git 地址,然后点击 Install 即可, URL 如下:https://github.com/Mikubill/sd-webui-controlnet.git
Installed into xxx. Use Installed tab to restart.
提示cd ./stable-diffusion-webui/extensions
extensions
文件夹git clone https://github.com/Mikubill/sd-webui-controlnet.git
Extensions
-> Installed
-> Apply and restart UI
webui
重启后,可以在 txt2img
和 img2img
中看到会多出来一个 ControlNet
选项用户提供一张参考图( I o r i g i n I_{origin} Iorigin),
ControlNet
根据指定的模式对参考图进行预处理,得到一张新图( I n e w I_{new} Inew),作为另一张参考图;
根据提示词(Prompt
),结合前面的参考图,进行图像绘制,即 I o r i g i n + I n e w = I f i n a l I_{origin} + I_{new} = I_{final} Iorigin+Inew=Ifinal
ControlNet
官方下载地址预处理器模型(annotator)
预训练模型(models)
ControlNet
官方存放在 huggingface 上的 预训练模型文件(models) 内部包含了SD
的v1-5-pruned-emaonly
模型,这在stable-diffusion-webui
环境下是没必要的,而且也造成了很多硬盘空间浪费,可以仅下载裁剪版本
模型存放位置
models
存放目录:./stable-diffusion-webui/extensions/sd-webui-controlnet/models
annotator
存放目录:./stable-diffusion-webui/extensions/sd-webui-controlnet/annotator
注意: 预处理器模型(annotator)需按分类目录存放,例如:
body_pose_model.pth
和 hand_pose_model.pth
应保存到 openpose
目录;network-bsds500.pth
保存到 hed
目录;upernet_global_small.pth
则是保存到 uniformer
目录;在下载并存放好预处理器模型和预训练模型后,重启 webui
即可使用
详见 Github 仓库
control_scribble-fp16
支持新建白画布,在上边画线条。模型将所画作为输入,并获得对应的输出,使用人类涂鸦控制SD。该模型使用边界边缘进行训练,具有非常强大的数据增强功能,以模拟类似于人类绘制的边界线。control_canny-fp16
需要提供一张图片,预处理器使用 Canny 边缘检测 提取出边缘线,模型使用这个边缘线作为输入,控制生成对应的输出,适用于给线稿上色,或将图片转化为线搞后重新上色,比较适合人物。control_hed-fp16
需要提供一张图片,预处理器使用 HED 边缘检测 提取软边缘,使用这个边缘线作为输入,控制生成对应的输出,提取的图像目标边界将保留更多细节,此模型适合重新着色和风格化。control_mlsd-fp16
需要提供一张图片,预处理器使用 M-LSD 边缘检测 ,使用这个边缘线作为输入,控制生成对应的输出,该模型基本不能识别人物的,但非常适合建筑生成,根据底图或自行手绘的线稿去生成中间图,然后再生成图片。control_openpose-fp16
根据提供的图片,获得对应的姿势骨架图作为输入并生成对应的结果,根据图片生成动作骨骼中间图,然后生成图片,使用真人图片是最合适的,因为模型库使用的真人素材。control_depth-fp16
需要提供一张图片,预处理器会使用 Midas 深度估计 获取估计图作为输入,并根据深度估计图生成输出图片,创造具有景深的中间图,建筑人物皆可使用, Stability
的模型 64×64 深度,ControlNet
模型可生成 512×512 深度图。control_normal-fp16
根据提供的图片,生成对应的法线贴图作为输入。法线贴图是一种模拟凹凸处光照效果的技术,是凸凹贴图的一种实现,相比于深度 Depth Map 模型,法线贴图模型在保留细节方面似乎更好一些。根据底图生成类似法线贴图的中间图,并用此中间图生成建模效果图。此方法适用于人物建模和建筑建模,但更适合人物建模。control_seg-fp16
可以对图像种的多个物体,比如建筑、天空、花草树木等,进行区块分割,能够很好的识别主体和背景,使用语义分割来控制 SD
。现在您需要输入图像,然后一个名为 Uniformer 的模型将为您检测分割。Segmentation
使用 注意: 如果语义分割图没有生成出来,请查看控制台是否有报错,另外,检查一下 upernet_global_small.pth
是否有保存到 extensions\sd-webui-controlnet\annotator\uniformer
目录。因为 SD
自己也有一个 models\uniformer
目录,如果前面没有手动放置好 upernet_global_small.pth
模型文件,那么在用到 Semantic Segmentation
模型时,SD
会自动下载一个默认文件到它自己的 models\uniformer
目录,这种情况控制台会报错,可以排查到这个问题。#cc05ff
)代表床(bed),橙黄色(#ffc207
)代表垫子(cushion),金黄色(#e0ff08
)代表台灯(lamp), ControlNet
的 Semantic Segmentation
模型使用的是 ADE20K
和 COCO
协议,这些颜色值都可以在下面网址中找到对应的含义:#e0ff08
)换成花(#ff0000
)Settings
— ControlNet
— Multi ControlNet 的最大网络数量
ControlNet
引导图像生成,否则不生效。--lowvram
使用ControlNet
将自动为您计算最佳分辨率,使每个像素都与稳定扩散完美匹配。ControlNet
的模型都有不同的功能,后续将会单独介绍。ControlNet
生成图片的权重占比影响。Guess Mode
ControlNet
和T2I-Adapter
有什么区别?
ControlNet
在论文里提到,Canny Edge detector
模型的训练用了 300 万张边缘-图像-标注对的语料,A100 80G 的 600 个 GPU 小时。Human Pose
(人体姿态骨架)模型用了 8 万张 姿态-图像-标注 对的语料, A100 80G 的 400 个 GPU 时。
而T2I-Adapter
的训练是在 4 块 Tesla 32G-V100 上只花了 2 天就完成,包括 3 种 condition,sketch(15 万张图片语料),Semantic segmentation map
(16 万张)和Keypose
(15 万张)。
两者的差异:ControlNet
目前提供的预训模型,可用性完成度更高,支持更多种的condition detector
(9 大类)。
而T2I-Adapter
在工程上设计和实现得更简洁和灵活,更容易集成和扩展(by 读过其代码的 virushuo)此外,T2I-Adapter
支持一种以上的condition model
引导,比如可以同时使用sketch
和segmentation map
作为输入条件,或在一个蒙版区域 (也就是inpaint
) 里使用sketch
引导。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。