一、什么是ControlNet
ControlNet是一种能够控制模型生成内容的方法,能够对文生图等模型添加限制信息(边缘、深度图、法向量图、姿势点图等),在当今生成比较火的时代很流行。
这种方法使得能够直接提供空间信息控制图片以更细粒度地得到想要的生成图片,这种方法能够以一个端到端的方式来实现这个挑战。
先看看其主要方法,将原先的预训练网络冻结,然后做一个可训练的复制,再使用0初始化的1*1卷积( 保证开始训练时没有额外噪声加入进来)将这个复制的网络连成一个支路。
二、相关工作
直接加数据集微调
存在问题:过拟合、模式崩溃、灾难性遗忘
超网:
最早在NLP中使用,训练一个小的循环神经网络去影响更大的网络,在生成对抗神经网络中被应用。
适配器:
主要用于将新的模块层嵌入预训练模型,以使得一个预训练模型去适应其他任务。
增加学习:
冻结原模型参数,使用已训练参数掩码、剪枝或强注意力增加一部分可以训练的参数,将两个网络的输出通过测量进行混合以增强模型的能力。
三、详细方法
首先,ControlNet也是在Stable Diffusion的潜在空间中进行的,所以上图处理的是严格按照StableDiffusion的流程,先将原始的条件控制图512*512的输入用一个4层的卷积神经网络编码到64*64的低维特征空间(即),
而图中的zt代表加了t次噪声的原始输入图片,
其总的损失函数和Diffusion类似:
即根据加噪后的图、加噪次数、输入的文本限制、限制图来预测加入的噪声
四、推理过程
SD对模型的输出采取了一个权重的策略:
即模型推理时会根据无条件限制推理、有条件限制推理进行一个加权和。
五、多种限制ControlNet模式
文中也给出了方案,只要将多个限制的ControlNet块加和到原始冻结的SD块的上即可,策略相同。
六、消融实验
主要是对是否复制原来的预训练块、卷积的初始化方式进行的对比试验。
在几种情境下进行了对比
七、指标对比
记得给个一键三连哦!