Stable Diffusion条件控制生成
1. IP-Adapter 2. ControlNet 3. InstantID 4. T2I-Adapter 5. Uni-ControlNet 6. Composer 7. MGPF 8. Salient Object-Aware Background Generation using Text-Guided Diffusion Models 9. ControlNeXt1. IP-Adapter
论文地址
解决问题:
如何将图片作为prompt输入网络,并无需更改开源模型参数
解决思路:
新增一个cross-attention layers,结果与text prompt的cross-attention layers结果相加后输入网络,只需要训练Wk, Wv两个参数
2. ControlNet
论文地址
解决问题:
如何快速高效的利用开源模型接受特定条件输入,适配特殊任务
解决思路:
新增网络:复制原UNet网络的encode和middle部分共13个网络blocks,将特定条件通过一个4层卷积构成的encode输入到那13网络中,13网络与原UNet通过zero-conv进行feature融合,训练时仅更新新增网络,原模型参数冻结,具体如下图所示:
Tips:
1. 训练时随机去掉text,换成空字符输入,以增强网络多特殊条件的理解,并在应用时支持输出text为空的情形。研究者随机将 50% 的文本 prompts
替换为空字符串,这有利于 ControlNet 从输入条件(例如Canny边缘图或人类涂鸦等)中识别语义内容的能力。因为当prompt对于SD模型不可见时,编码器倾向于从条件输入中学习更多语义,以替代prompt。
2. 当训练机器资源有限时,可以去掉网络decode的zero-conv连接,只保留中间层连接,可加速模型收敛,提高训练速度。最后再将去掉的zero-conv连接接上进行finetune即可
3. 如果zero convolution模块的初始权重为零,那么梯度也为零,ControlNet模型将不会学到任何东西。那么为什么“zero convolution模块”有效呢?
3. InstantID
论文地址
解决问题:
如何解决换脸过程中人脸ID得保持性,并与背景较好的融合
解决思路:
融合IP-A和controlNet,并使用insightface的antelopev2提取人脸特征,具体如下图所示:
Tips:
4. T2I-Adapter
论文地址
解决问题:
解决如何更好的挖掘文生图模型的生成能力,解决文字描述能力限制。
解决思路:
设计一个condition的encode网络,将condition信息依次加入UNet的encode网络的四层block中,与controlNet不同的是:1. condition的encode网络是独立设计的,controlNet是复制Unet的encode和mid部分 2. condition信息是加入encode环节,controlNet是加入middle和decode环节 3. condition信息是直接和UNet参数相加,controlNet是通过zero-conv连接:
Tips:
时间信息也需要加入条件adapter中,不同于controlNet能直接加入网络中,T2I-adapter是自行设计的卷积网络,作者并未实际加入网络当中。作者通过实验发现,条件信息在去噪过程的早期加入远比晚期控制效果好很多,因此作者在训练过程中更改时间采样函数,不用平均采样而用cubic函数实现在训练过程中更偏向于选较小的时间(即前期):
作者实验发现,条件控制加在encode阶段远比decode阶段效果好,可能是加入encode阶段时能享受到后续decode的参数,同时,为了不过多影响文字prompt的效果,所以条件控制只加在encode阶段
作者实验发现,减少adapter的大小同样也能达到不错的控制效果,因此,针对颜色条件这种比较粗的控制条件,采用较小的adapter网络
5. Uni-ControlNet
论文地址
解决问题:
解决如何将更多条件更好的融入模型,同时针对不同条件不需要训练不同adapter
解决思路:
作者将条件分成局部和全局两类,进而训练两个adapter。局部adapter参照controlNet,采用复制unet的encode和middle网络进行条件特征提取,插入特征的方式也是zero-conv,不同的是条件特征插入原UNet的encode和middle层,并且插入的层数多达13层,可能也借鉴了T2I-Adapter的想法,同时局部adapter的输入依然是noise,局部条件特征会通过FDN模块注入到adapter网络的encode的四个模块中。全局adapter只针对参考rgb图,用clip提取图像特征,而后concat在text token后面,图像特征设置了权重,测试时可按需设定:
Tips:
6. Composer
论文地址
解决问题:
解决如何将更多条件更好的融入模型
解决思路:
作者认为可以将原图拆分成若干组件,在图像生成阶段加入其他图像的组件(即条件控制)即可达到定向改变图像的目的。图像的组件(条件)可分成全局条件(text,rgb图和颜色直方图)和局部条件(分割图,深度图,灰度图,素描图,局部遮挡图等)。全局条件不仅通过cross-attention插入网络中,而且同时加入到timestep中。局部条件通过卷积编码和nosie 图concat一起。
Tips:
利用diffusion model的加噪减噪过程实现多域转换。用原图进行加噪得到噪声图后,再对噪声图进行降噪并添加相应转换条件:
7. MGPF
论文地址
Enhancing Prompt Following with Visual Control Through Training-Free Mask-Guided Diffusion
解决问题:
文生图任务中,普遍存在prompt无法精确控制物体属性(比如颜色等)生成的问题,作者思考是否可以通过将prompt拆分成物体-属性对,利用物体mask信息,在controlNet和SD UNet的attention map层建立两者的约束
解决思路:
算法依据:作者通过实验发现,Unet对生成物体的属性特征影响较大,而controlNet对生成物体的形状及分布位置影响较大,利用这一点,参照classify guidance的思路,可以通过拉近两者之间的距离来对生成结果进行引导:
包含Masked ControlNet和Attribute-matching Loss两部分
Masked ControlNet将mask后置处理,即对controlNet提取的featuremap乘上mask,去除背景信息。相比在输入时去掉背景信息,个人感觉这种做法可以使边缘更平滑,并减少生成背景的空洞感
Attribute-matching Loss通过构建类内和类间loss,叠加在噪声上,prompt通过拆分,得到(物体o,属性a)对,s1指的是物体,s2指的是非物体(通常是背景),Ac是controlNet的attention map,As是UNet的attention map:
8. Salient Object-Aware Background Generation using Text-Guided Diffusion Models
论文地址
解决问题:
针对显著前景物体背景生成问题,现有方案是使用文生图模型或者在输入增加前景信息重新训练inpainting模型,但都存在前景多生成的问题,作者思考是否可以针对背景生成专门训练一个inpainting的controlNet解决
解决思路:
9. ControlNeXt
论文地址
解决问题:
controlNet效果虽然不错,但是计算量过大,且训练不稳定,会出现突然收敛的情况,训练时间较长,为了解决这些问题,作者重新设计网络结构,更换与unet的adapter,从zero-conv更换为Cross normalization.
解决思路:
整体结构:
优化点:
总结
### 文章总结:Stable Diffusion条件控制生成技术的进展在Stable Diffusion模型的基础上,研究者们提出了一系列创新的条件控制技术,旨在增强模型在图像生成任务中的灵活性和控制能力,主要技术和方法包括:
1. **IP-Adapter**:
- 解决了图片作为输入的问题,无需更改原模型参数。
- 通过新增cross-attention layers与text prompt结合,仅训练少量参数。
2. **ControlNet**:
- 面向快速高效地利用开源模型接受特定条件输入。
- 通过复制UNet部分结构,并将特定条件输入融合到网络中,实现多功能化。
- 提供训练优化建议,如随机去除部分文本输入以增强网络理解能力。
3. **InstantID**:
- 解决换脸中的人脸ID保持性及背景融合问题。
- 结合IP-Adapter和ControlNet,使用人脸识别模型提取特征进行控制。
4. **T2I-Adapter**:
- 提升文生图模型生成能力,解决文字描述限制。
- 设计独立condition encode网络并加入UNet的encode阶段,以增强控制效果。
5. **Uni-ControlNet**:
- 实现多条件融合,减少对不同适配器的需求。
- 采用局部和全局两种适配器,分别处理不同特性的条件输入。
6. **Composer**:
- 采用分组件方法,结合全局和局部条件控制进行图像生成。
- 利用加噪-减噪过程实现多域转换,增强图像生成的灵活性。
7. **MGPF**:
- 改进对物体属性的精确控制,解决prompt无法精确控制的问题。
- 通过物体mask信息和attention map层之间的约束来引导生成结果。
8. **Salient Object-Aware Background Generation**:
- 专门针对显著前景物体的背景生成问题,设计inpainting controlNet。
- 解决现有方案在前景生成上的不足。
9. **ControlNeXt**:
- 针对ControlNet计算量大、训练不稳定的问题进行了优化。
- 更换网络结构和特征融合方式(使用Cross normalization),提升训练效率和稳定性。
以上方法和技术不仅增强了Stable Diffusion模型的条件生成能力,还通过结构设计和优化策略提高了模型的效率和适应性。这些工作为未来图像生成技术的发展提供了新的思路和实践基础。