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

文章目录

  • 摘要
  • 算法:
    • ControlNet
    • ControlNet in Image Diffusion Model
    • Training
    • Improved Training
  • 实验
    • 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
  • 限制
  • 结论

论文: 《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-有条件图文生成论文阅读_第1张图片
零卷积参数以一种可学习方式从零开始优化;

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
ControlNet-有条件图文生成论文阅读_第2张图片

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

ControlNet-有条件图文生成论文阅读_第3张图片

Human scribbles

ControlNet-有条件图文生成论文阅读_第4张图片

HED boundary map

Openpifpaf pose

Openpose


ADE20K segmentation map

COCO-Stuff segmentation map

ControlNet-有条件图文生成论文阅读_第5张图片

DIODE normal map

ControlNet-有条件图文生成论文阅读_第6张图片

Depth-to-Image

ControlNet-有条件图文生成论文阅读_第7张图片

cartoon line drawings

ControlNet-有条件图文生成论文阅读_第8张图片

限制

如图28,当输入分割容易引起歧义时,难以生成合理内容。

结论

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

你可能感兴趣的:(论文详解,数据生成,跨模态,论文阅读,深度学习,数据生成,跨模态,ControlNet)