Stable Diffusion条件控制生成
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