当前位置:AIGC资讯 > AIGC > 正文

Stable Diffusion条件控制生成---相关论文集合

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. ControlNeXt

1. 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:

clip提取image特征不能很好的保留细节和语义特征,不利于后续人脸ID的保持性,所以才用人脸识别模型提取人脸特征 IdentityNet仅采用人脸五个点特征作为输入,既引入了空间信息,又避免过多原人脸信息的泄漏 IdentityNet用ID embedding替代text prompts是为了让IdentityNet专注于人脸特征的表示,而不受非人脸的背景影响,因此在训练时也没有采用随机去掉text or image conditions的策略 ID embedding可用多张参考图人脸特征平均计算得到,并且参考人脸数据较多时效果会更好

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:

颜色信息作为condtion时会做特殊前处理,先下采样再上采样,以去除图片中的语义及结构信息,最终生成类似马赛克图片(如上图c3) 多条件融合输入采用权重相加的方式,权重需要自行调节大小
时间信息也需要加入条件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:

全局和局部adapter需要分开训练,一起训练的话局部adapter的特征过强,会减弱全局adapter的效果,分开训练完成后也可以再次合并一起训练,不过效果改善不明显。测试时可一起使用 和其他方法类似,adapter训练时也会随机drop掉一些条件,以适应不同条件的组合 作者在测试多条件融合时发现,canny edge对结果影响最大,其次是sketch, depth, MLSD, and segmentation map,Openpose对结果影响最小

6. Composer

论文地址
解决问题:
解决如何将更多条件更好的融入模型
解决思路:
作者认为可以将原图拆分成若干组件,在图像生成阶段加入其他图像的组件(即条件控制)即可达到定向改变图像的目的。图像的组件(条件)可分成全局条件(text,rgb图和颜色直方图)和局部条件(分割图,深度图,灰度图,素描图,局部遮挡图等)。全局条件不仅通过cross-attention插入网络中,而且同时加入到timestep中。局部条件通过卷积编码和nosie 图concat一起。


Tips:

composer多条件输入训练参考classifier-free策略:
利用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.

解决思路:

整体结构:

优化点:

重新设计controlNet结构,依然会输入time emb,但prompt不再输入,从复制unet的encode更换为参数量更少的cnn,只由resnet block构成 controlNeXt训练时会更改少量的unet参数,即Wout参数,作者认为只训练新增的control网络会限制效果上限 不像controlNet将特征逐层加入unet,controlNeXt只加入到unet中间层,因为作者认为通过Cross normalization特征已经在高层次语义上对齐:the controls typically have a simple form or maintain a high level of consistency with the denoising features, eliminating the need to insert controls at multiple stages. 更换zero-conv为Cross normalization,出发点是原unet参数的数据分布和待训练的controlnet参数的数据不一致,直接连接训练会导致训练崩溃。zero-conv引入类似warm up效果,但是训练较慢,会出现突然收敛现象。作者提出Cross normalization,先计算unet输出的特征图均值和方差,利用此均值方差去均一化controlNext的输出,从而达到对齐特征分布的目的。

总结

### 文章总结: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模型的条件生成能力,还通过结构设计和优化策略提高了模型的效率和适应性。这些工作为未来图像生成技术的发展提供了新的思路和实践基础。

更新时间 2024-10-04