ControlNet-有条件图文生成论文阅读


论文: 《Adding Conditional Control to Text-to-Image Diffusion Models》
github: https://github.com/lllyasviel/ControlNet

摘要

ControlNet控制大的预训练扩散模型支持额外输入条件,ControlNet端到端的方式学习特定任务条件,即使训练集小(<50k),学习也比较鲁棒。作者基于Stable Diffusion训练ControlNets,可支持边缘map、分割map、关键点为条件输入;这丰富了控制扩散模型方法,为相关应用提供便利。

算法:

ControlNet

ControlNet通过控制神经网络模块输入条件进一步控制整个神经网络输出。如式1,神经网络模块F通过参数Θ将特征图x变换为另一个特征图y,即为图2a过程;
在这里插入图片描述
ControlNet应用于任意神经网络模块过程如图2b所示, c c c为额外条件向量, Θ Θ Θ为locked copy参数, Θ c Θ_c Θc Θ Θ Θ的clone,且可训练,没有直接训练是为了防止过拟合, Θ z 1 , Θ z 2 Θ_{z1}, Θ_{z2} Θz1,Θz2为ControlNet中两个零卷积 Z Z Z参数,零卷积表示初始化weight及bias为0的1*1卷积,该过程如式2,
在这里插入图片描述
由于两个零卷积 Z Z Z参数初始化为0,因此训练第一步时 y c = y y_c=y yc=y,如式3,
在这里插入图片描述
在这里插入图片描述
零卷积参数以一种可学习方式从零开始优化;

ControlNet in Image Diffusion Model

Stable Diffusion使用数十亿图片训练的文本图像生成模型,本质上为包含编码器、中间层、skip-connected解码器的U-net,整个模型有25个block,编码器和解码器各自有12个block,所有block中,8个为上采样或下采样卷积层,17个为主要block,每个包括4个resnet层、2个ViT。文本由CLIP进行编码,扩散时间步长使用位置编码。
Stable Diffusion类似VQ-GAN为了稳定训练过程,将512 * 512图片映射到64 * 64隐空间,因此需要ControlNet将基于图片的条件转换到64 * 64特征空间,该过程通过4个kernel=4,steide=2卷积实现,如式9.
在这里插入图片描述
如图3,ControlNet控制U-net每个层级,因为原始权重固定,因此计算高效;ControlNet使用与SD(Stable Diffusion)相同的12个编码block及1个middle block,其中12个block有4个分辨率(64 × 64, 32 × 32, 16 × 16, 8 × 8),每个分辨率3个block;输出部分增加12个skip-connections及1个middle block至U-net
在这里插入图片描述

Training

扩散模型学习图像逐渐去噪,生成样本;
对于图片 z 0 z_0 z0,通过扩散算法逐渐增加噪声生成噪声图 z t z_t zt,其中 t t t为噪声添加次数,给出step t、text prompt c t c_t ct及特定任务条件 c f c_f cf,扩散算法通过网络 ϵ θ \epsilon_θ ϵθ预测增加到噪声图 z t z_t zt上的噪声,如式10,L为整体损失函数:
在这里插入图片描述
训练过程中,作者随机替换50% test prompt c t c_t ct为空,使得SD模型编码器可以从输入的控制图 c f c_f cf学习更多语义信息。

Improved Training

Small-Scale Training:当资源有限时,作者发现断开ControlNet与SD Decoder Block 1,2,3,4训练速度提升1.6倍,当模型输出结果与条件相关联时,可重新连接Decoder Block 1,2,3,4进行训练;

Large-Scale Training:当训练资源充足,数据量大时,模型过拟合风险低,可先充分训练ControlNet,而后解锁SD模型权重,与ControlNet作为一个整体模型进行联合训练;

实验

实验设置,作者使用三种prompt:
1、No prompt;“”
2、Default prompt:无意义prompt
3、Automatic prompt:BLIP生成
4、User prompt:用户输入

Canny edges

在这里插入图片描述

Hough lines

在这里插入图片描述

Human scribbles

在这里插入图片描述

HED boundary map

在这里插入图片描述

Openpifpaf pose

在这里插入图片描述

Openpose

在这里插入图片描述
在这里插入图片描述

ADE20K segmentation map

在这里插入图片描述

COCO-Stuff segmentation map

在这里插入图片描述

DIODE normal map

在这里插入图片描述

Depth-to-Image

在这里插入图片描述

cartoon line drawings

在这里插入图片描述

限制

如图28,当输入分割容易引起歧义时,难以生成合理内容。
在这里插入图片描述

结论

ControlNet呈现效果比较惊艳,在SD模型基础上更进一步,支持多种条件控制文本至图像生成。

  • 3
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值