【文生图系列】如何在Stable Diffusion Webui中使用ControlNet

ControlNet

ControlNet是一个神经网络结构,通过添加额外的条件控制扩散模型。给定任务条件,ControlNet能够提升已训练好的图像扩散模型。对于任意一个神经网络块,如下图所示, x , y x,y x,y为神经网络中的特征,蓝色虚线框为ControlNet。ControlNet由zero convolution和神经网络块组成,其中zero convolution为 1 × 1 1 \times 1 1×1的卷积,weight和bias的初始值为0,神经网络块为原神经网络块的复制品,原模型中的神经网络块在训练过程中被冻结,只有ControlNet中的复制品进行训练。 c c c是我们想要添加到扩散网络中的额外条件。
在这里插入图片描述

Stable Diffusion + ControlNet

Stable Diffusion生成的图片随机性太强,即使精心设计提示词,生成的图片仍不能满意。将ControlNet应用到Stable Diffusion模型中,用来控制stable diffusion模型的图片输出。ControlNet能够复用stable diffusion的编码器,将其作为一个强大的鲁棒的backbone用来学习不同的控制条件。
在这里插入图片描述

安装ControlNet插件

  1. 在Stable Diffusion Webui找到扩展(Extensions),选择从网址安装(Install from URL),输入网址https://github.com/Mikubill/sd-webui-controlnet.git,点击下载,然后等待下载sd-webui-controlnet项目。
    ![在这里插入图片描述](https://img-blog.csdnimg.cn/6b307b6c7d914154910a74378f9702f1.png
  2. 然后返回已安装(Installed)界面,点击检查更新(Check for Updates),等待一段时间,加载下载的sd-webui-controlnet项目。再然后点击应用并重启用户界面(Apply and restart UI)按钮,重启用户界面。
    在这里插入图片描述
  3. 返回文生图(txt2img)界面,在随机种子下面,多了ControlNet的选线,点击右面的三角进行展开。
    在这里插入图片描述
    ControlNet展开界面如下所示:
    在这里插入图片描述
  4. 在ControlNet展开页面中,找到模型选项,即使更新,还是None,没有模型。所以还需要从huggingface中下载模型到stable-diffusion-webui/models/ControlNet文件下。
    在这里插入图片描述
    目前huggingface中有ControlNetControlNet-v1-1两个版本。预训练的模型为Annotators,在进行预训练计算时,会自动下载,不过,如果网不是很好,就会报ConnectionError错误。
    下图是ControlNet模型界面的截图,模型都比较大。ControlNet-v1-1包含更多模型和yaml文件,相比于ControlNet,模型会小一些。
    在这里插入图片描述
  5. 设置ControlNet Unit的个数。默认只有一个Unit。设置–>ControlNet–>设置Multi ControlNet的最大网络数量,我设置了3,ControlNet将有三个Unit。然后保存设置并重启Webui。
    在这里插入图片描述

bug

Stable Diffusion的模型是v2-1_512,ControlNet和Stable Diffusion图像尺寸大小均是512,进行图片生成时,报下述运行错误。
在这里插入图片描述
解决方案:下载Stable Diffusion V1.5版的预训练模型,即可。

例子展示

首先,输入提示词“a cute dog”,大模型选择Stable Diffusion v1.5版的预训练模型,先不启用ControlNet,点击生成按钮,生成一张可爱的小狗照片。
在这里插入图片描述
下面,文生图的参数保持不变,在ControlNet Unit中上传图像,启用ControlNet,控制类型选择Canny,如下图所示。允许预处理查看(Allow Preview),点击预处理旁边的闪电标志,就能看到上传图片的轮廓图。补充提示词,然后点击生成按钮,就能返回一张可爱的小狗图片和轮廓图。
在这里插入图片描述
下表是不同模型生成图的对比,加入ControlNet之后的Stable Diffusion模型的生成图与参考图动作形态比较相似。

SD V1.5SD+ControlNet参考图控制类型
在这里插入图片描述在这里插入图片描述在这里插入图片描述Canny

参考

  1. stable diffusion webui
  2. ControlNet
  3. Adding Conditional Control to Text-to-Image Diffusion Models
  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

马鹤宁

谢谢

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值