购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

1.4 理解Stable Diffusion的工作原理

互联网上有无以计数的图片资源,如果把所有图片都下载下来,并为每张图片添加文字注释,标明图片上的内容,就会形成一个庞大的数据库。输入关键词后,就能检索到符合条件的图片。

然而,对于AI绘画来说,这种方式不能解决所有问题。假设我们想画一只在太空舱里穿着宇航服的狐狸,但发现数据库里没有这样的图片,该怎么办?解决办法是分别调出太空舱、宇航服和狐狸的图片,把这三张图片的特征混合到一起,然后重新画一张,如图1-26所示。

图1-26

要想用文字生成图片,需要解决三个问题:第一个问题是如何在家用级别的计算机中装下几十亿甚至上百亿张图片;第二个问题是图片由大量像素点组成,每个像素又有红绿蓝三个分量,如果逐个像素进行计算,仅一张512×512像素的图片就需要计算78万次,这样庞大的算力资源从何而来;第三个问题是如何让程序理解文字,并生成符合语义描述的画面内容。

为了解决以上问题,Stable Diffusion提供了三个核心组件。第一个组件被称为自动编解码器,这个组件分成编码器和解码器两个部分。编码器的作用是压缩图片的尺寸和颜色信息,同时在图片上逐步添加噪声,直到将图片处理成肉眼无法识别,仅程序才能读懂的向量特征。经过48倍的压缩后,图片的体积变得非常小,从而解决存储问题,如图1-27所示。

图1-27

如果在压缩图片的同时为每张图片添加描述画面内容的语义标签,这个过程就是训练模型。把训练得到的所有语义标签和图像特征代码整合到一个文件包中,这个文件包就是大模型。大模型是预先训练好的,其中包含了能生成“世间万物”的图像特征。在ComfyUI的默认工作流中,只需在“Checkpoint加载器”节点中选择一个大模型,就能从中调取生成图片所需的图像向量特征,如图1-28所示。

第二个组件为CLIP文本编码器。这个编码器从互联网上抓取了4亿张图片以及描述图片内容的文本,分别提取文本和图像的特征后进行对比学习。文本和图像特征匹配的作为正样本,不匹配的作为负样本。经过不断地重复训练,文本和图像之间的对应关系就建立起来了。

图1-28

ComfyUI中有两个“CLIP文本编码器”节点:一个用于输入正向提示词,也就是希望画面中出现的内容;另一个用于输入反向提示词,也就是不希望画面中出现的内容,如图1-29所示。用户在这里输入提示词后,文本编码器会把文字转换成由数字组成的词元向量。这些词元向量一端发送给“Checkpoint加载器”节点,从大模型中筛选符合条件的图像向量特征,另一端发送给“K采样器”节点。

图1-29

第三个组件是扩散模型,也就是ComfyUI中的“K采样器”节点。扩散模型接收到文本编码器发来的词元向量和大模型发来的图像特征向量后,从“空Latent”节点中调取一张随机生成的噪声图(或称为噪波图),然后在词元向量和图像特征向量的指导下,逐步去除噪声,如图1-30所示。因为去除噪声的过程是在图片经过高度压缩后的“潜空间”中进行的,需要处理的像素数量很少,所以家用级显卡也能满足这种算力需求。

图1-30

接下来,“VAE解码”节点进行一次反向扩散处理,把潜空间中的生成结果升维放大到像素空间,转换为我们可以识别的图片。最后,利用“保存图像”节点把图片保存到硬盘上,如图1-31所示。

图1-31 f8W2q+YOOOg+siV/jCUvrI1Dw3BvFInTfJGdmFLvaKhatChmqwX0uM283LQJnDRd

点击中间区域
呼出菜单
上一章
目录
下一章
×