Stable diffusion 使用 CLIP ViT-L/14 作为文本编码器。
CLIP是一个预训练的文本-图像对应神经网络。下图是CLIP训练的基本原理第一步,将N张图片的自然语言文字描述作为一个输入,图片本身作为另一个输入,对应的对(N个)作为正激励,不对应的对(N^2-N个)作为负激励,进行训练。

之前的文本-图像神经网络的关键词基本是预先设定好的,比如设定100个词,包括(橘子,苹果,梨子,汽车,狗,猫)等等,这样的缺点是关键词是人工挑选的,数量有限。CLIP则没有预先挑选的关键词,直接从图片对应的自然语言描述中提取特征,所以关键词覆盖范围较广,也带有一定上下文相关的效果。
CLIP训练的时候,图片描述的词语顺序也是进行了加权的,所以在应用的时候,词语的顺序也是起作用的。
下面用 Stable Diffusion 的例子来说明CLIP的输入与输出之间的一些关系。
因为神经网络内部对于我们来说过于复杂,无法用概念来来理解它是怎么具体执行输出的,所以我们可以把自己当成一个AI,通过输入-输出对,来学习这个AI神经网络。
图片标题为Stable Diffusion 关键词,每4个一组使用相同的seed。

trees

trees some

some trees

some trees 2
这四组中,1,2为一组,3,4为一组,可见trees 和 trees some 相似度较高,some trees 和 some trees 2 相似度较高,两组之间差异则较组内大一些。


trees some

some trees

some trees 2
这组Seed中,情况与上组Seed类似

trees

trees some

some trees

some trees 2
这组Seed,trees 和 trees some整体接近,但是局部看,trees some中间部分较为混乱,some trees 和 some trees 2 则不同以往,差别较大

trees

trees some

some trees

some trees 2
这组Seed中,some trees 和 some trees 2画面发生了较大变化,猜测可能Stable Diffusion在某些相空间中,输入的某些小变化会造成输出的巨变,类似两个输入正好跨过了某种相空间界面。