Stable Diffusion安装ControlNet与下载模型

时间:23-09-27 14:41:29

作者:

分类:AI软件教程

    Stable Diffusion安装ControlNet与下载模型

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

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

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

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

      安装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。

      各个模型的用途

  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:输入一张图片,选取其中的一个区域,使其变得清晰。

      参数解释

  安装完成后,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数量。

      实际操作

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

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

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

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

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

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