BLIP2 结合 Stable Diffusion,实现 主题驱动的图像生成与编辑。
分为两个阶段:
1.BLIP2 的multimodal encoder 输出与 text对齐的 visual representation;
2.上述生成的 特征 与 text embedding 共同引导 Stable Diffusion 的生成。
优点:
1.几乎不用 fine-tune
2.生成图像所需的step数很少
3.zero-shot生成
4.可以与 controlnet 或 prompt-to-prompt 结合起来完成特定任务。
BLIP-Diffusion 可以完成 主题驱动的 多模态控制。
怎么体现出来这个 多模态控制的呢?
1.用 BLIP2里面的 multimodal control 输出 visual representation;
2.设计 subject representation learning task 使得 SD使用这个 visual... 来生成 new subject renditions.
比之前方法的优点:
1.zero-shot subject-driven generation;
2.有效的 fine-tune 使得速度提升了20倍;
3.可以结合 ControlNet 或 prompt-to-prompt 来完成特定的任务。
之前的 subject-driven generation,通过把 subject visual 嵌入 text embedding space。缺点是对于每个新的subject,需要上百次fine-tune 步骤。
multimodal control 的定义:
use both images and texts as control input(同时用 图像和文本 作为控制的输入)
模型使用 BLIP2的 vision-language encoder 和 LDM
BLIP2的encoder:使用 subject image 和 category text 作为输入,产生 text-aligned 主题表示,再把这个嵌入到 prompt embedding 引导 SD 的生成。
使得 BLIP2 基于输入的图像产生 text-aligned visual features。(输入:合成图像、类标签;输出:multimodal embedding 作为 subject representation)
SD模型基于 输入的visual features产生 novel subject renditions。(上个阶段产生的 subject representation 和 text prompt 结合 来引导生成 target image)
数据集:
出现在不同上下文的 input-target image pairs
1.zero-shot生成,出色的fine-tune 策略;
2.只用了 40-120步就完成了对于特定 subject 的采样,相比于 DreamBooth加速了20倍。
3.继承LDM的能力,无需fine-tune就可以支持各种主题的生成应用。
①a frozen pre-trained image encoder,提取图像特征
②a multimodal encoder (Q-Former),目的为 图像文本对齐
(注:这里采用 一半的query tokens,输出16个特征)
ITC, ITG, ITM
1. subject representation 可以很好的结合 text prompt;
2. 保留 扩散模型的能力。
如上图所示,把 BLIP2的 multimodal encoer 和 SD的 Text encoder 连接起来。
[subject prompt]:multimodal encoder 输出的 subject visual representation,然后再通过 a feed-forward layer;
[text prompt]
上述两个 text 一同输入到 CLIP text encoder中,引导扩散模型的生成。
数据集(input-target image pairs),使用合成图像作为输入,真实图像作为 扩散模型的输出。
给定包含主题的图像和文本,然后通过 CLIPSeg进行分割,置信度高的部分作为前景,低的部分作为不确定区域,其余部分作为背景。然后这三个部分组成 trimap。然后通过 alpha 混合将提取的主题合成到随机背景图像上。
以 text prompt embedding 和 mean subject embedding 为条件,以输出图像为target image,对扩散模型进行 fine-tune。
通过 残差连接 把 UNet 和 ControlNet 连接起来。
???
使用 BLIP-2 在 129M个图像文本对下面预训练,其中包含...
使用 BERT来初始化为 Q-Former
来自 OpenImage-V6 的292K个图像的子集,移除了人类相关的主题。
从网站上获得了 59K个背景图像 来合成输入。
使用 SDv1.5 来作为扩散模型。
batch-size:6,学习率:2e-6, 500K steps,优化器:AdamW
在 16张A100 上面跑了6天。
与 TextInversion、DreamBooth、InstructPix2Pix
1.conduct multimodal representation learning
2.freezing text encoder of DM
3.giving subject text to the multimodal encoder
4.随机主题嵌入下降的预训练有助于更好地保持扩散模型的生成能力,从而有利于结果。我们进一步论证了主体表征学习的效果。
1.提出 BLIP-Diffusion,可以完成多模态控制的主题驱动的图像生成;
2.两个阶段的预训练策略;
3.可以和其他的模型连接起来完成更丰富的功能;
4.效果很好,zero-shot能力,以及相比于其他有20倍的加速。
自我感悟:
提供了 多模态控制 图像生成的一种方法。但是感觉过程比较麻烦,又训练这个又训练那个。
它可以结合controlnet、P2P。觉得这个想法还挺好的。
还要再理解的地方:
1.与其他模型的连接;
2.自己模型的训练;
3.代码