Stable Diffusion安装ControlNet与下载模型

Stable Diffusion安装ControlNet与下载模型

稳定扩散(Stable Diffusion)是一种通过加入额外条件来控制神经网络结构的扩散模型。最近,推出了ControlNet v1.1版本,该版本在AI生成图片方面更加精准。

相比于内置的”图生图”技术,ControlNet能够更好地让AI以指定的动作生成图片。此外,结合3D建模作为辅助,可以解决单纯使用文本生成图片时手脚、脸部表情不准确的问题。

ControlNet的用途还包括上传人体骨架线条,通过ControlNet生成完整的人物图片。或者上传素色的3D建模,让ControlNet生成室内布置家具。

ControlNet的开发者是Lvmin Zhang,Mikubill则负责开发扩展功能,使我们可以在Stable Diffusion中使用ControlNet生成图片。

  1. 安装ControlNet与下载模型

首先切换至Extensions页面,点击”Install From URL”,然后输入URL”https://github.com/Mikubill/sd-webui-controlnet.git”,点击”Install“。接着在终端中按下CTRL+C,关闭Stable Diffusion WebUI。

然后从lllyasviel/ControlNet v1.1下载以.pth结尾的模型文件,这些文件总共约占用18GB的空间。不需要下载.yaml文件。目前v1.1版本是测试版,之后会合并到主保存库中。

将这些模型文件放到stable-diffusion-webui/extensions/sd-webui-controlnet/models文件夹中。

重新启动Stable Diffusion WebUI。

  1. 各个模型的用途

ControlNet目前提供以下模型,您可以根据需求选择下载需要的模型。

Anime Lineart:用于侦测线条,在生成的图片中也会保留原始线条,适用于处理动漫图像。

Canny:用于侦测图片边缘,效果比较模糊,不如Scribbles完整。

Depth:用于侦测输入图片的深度图。

Illumination:用于侦测输入图片的光源和照明效果。

Inpaint:类似于”内补绘制”,使用50%随机遮罩和50%随机光流遮罩进行训练。

Instruct Pix2Pix:模型文件名为ip2p,类似于”图生图”,但是使用了50%的指示提示词和50%的叙述提示词进行训练。由于是ControlNet,使用此模型时不需要调整CFG Scale。

根据原作者的说法,使用”使其成为X”的提示词生成的图像效果比”使Y成为X”要好。

Lineart:用于侦测线条,适用于处理线稿,生成的图片也会保留原始线条。

M-LSD:用于侦测输入图片的直线。

Normalbae:

Openpose:使用OpenPose技术侦测输入图片中人物的动作,不一定会保留线条。

Scribbles:用于侦测线条,侦测到的线条质量介于Soft Edge和Lineart之间。

Segmentation:模型文件名为seg,将侦测到的图片对象切割成一个个色块进行处理,例如将房子切割成一个色块,将天空切割成另一个色块。

Shuffle:将输入图片的概念转移到生成的图片中。

作者给出的例子是,输入一张灰色的装甲图片,生成的钢铁人盔甲也会是灰色的。

Soft Edge:用于侦测图片边缘,效果比较柔和,像是用炭笔涂过的。

Tile:输入一张图片,选取其中的一个区域,使其变得清晰。

  1. 参数解释

安装完成后,WebUI界面中会出现”ControlNet”按钮。

点击该按钮后,会显示以下选项:

Single Image:上传单张图片。

Batch:处理多张图片。在”Input Directory”中填写待处理图片所在的路径。

Open New Canvas:清除图片,开启新的画布。

使用电脑镜头:在”Open New Canvas”选项下面有四个按钮。

从左到右依次是:添加画布、使用电脑镜头拍照上传、未知、还原上次算图设置。

Enable:在生成图片时激活ControlNet,必选。

Low VRAM:生成图片时使用ControlNet会占用更多的VRAM,此选项可降低VRAM的使用量。

Pixel Perfect:由ControlNet自动决定预处理器的分辨率。

Allow Preview:允许预览生成图片的结果,会显示该模型侦测到的线条或骨架。

Preprocessor 预处理器:通常预处理器和模型两者要保持一致。

预处理器会对上传的图片进行处理,例如Scribbles会将彩色图片转换成线稿。如果您的图片不需要处理,则可以将预处理器设置为空。

Run Preprocessor(爆炸图标):运行预处理器,预先处理图片。

Model 模型:设置生成图片时使用的ControlNet模型。

Control Weight:ControlNet在生成图片时的权重。

Starting Control Step:ControlNet开始参与生成图片的步骤。

Ending Control Step:ControlNet结束参与生成图片的步骤。

Preprocessor Resolution:预处理器的分辨率。

如果不确定要设置多少,请勾选”Pixel Perfect”让ControlNet自动决定。

Control Mode (Guess Mode):在生成图片时控制AI平衡两者(Balanced),还是更偏重于您的提示词(My prompt is more important),还是更偏重于ControlNet(ControlNet is more important)。

[Loopback] Automatically send generated images to this ControlNet unit:自动将生成的图片传回此ControlNet运算单元。

是的,如果您的电脑的VRAM足够大,您可以在Settings → ControlNet中激活多个ControlNet运算单元。

Multi ControlNet:一个ControlNet效果不够好,您是否考虑过激活第二个、第三个ControlNet呢?

默认安装后只会使用一个ControlNet,但是叠加多个ControlNet有助于生成更好的图片。例如同时使用Open Pose和Depth生成人体,并防止手绘歪斜。

要激活Multi ControlNet,请进入Settings → ControlNet,拖动滑块设置要激活的ControlNet数量。

  1. 实际操作

以改绘一个人物姿势为例。

在安装完成后,WebUI界面中会出现”ControlNet”按钮。

在文生图页面填入提示词后,点击下方的ControlNet按钮,勾选Enabled激活ControlNet,并上传图片。勾选Low VRAM可降低VRAM的占用。

接着选择要使用的预处理器和模型,两者要保持一致。预处理器会对上传的图片进行处理,例如Scribbles会将彩色图片转换成线稿。如果您的图片不需要处理,则可以将预处理器设置为空。

以Scribbles为例,选择预处理器后,点击右上角的Generate按钮即可生成结果,并附上侦测到的线条。如下图所示,右边的贞德的姿势确实与左边的02十分类似。

这就是ControlNet的一些基本使用方法和参数解释。通过ControlNet,AI能够更加精准地生成图片,满足不同需求。在使用过程中,您可以根据具体情况选择合适的模型和参数,以获得最佳的生成效果。

原创文章,作者:SD中文网,如若转载,请注明出处:https://www.stablediffusion-cn.com/sd/sd-use/1596.html