Stable Diffusion
在 Stable Diffusion 中,text encoder(文本编码器)、generation model(生成模型)、decoder(解码器) 三个结构承担着不同但又相互协作的功能,具体如下:
1. Text Encoder(文本编码器)
- 结构与原理:通常基于 Transformer 架构,如 CLIP(Contrastive Language-Image Pretraining)的文本编码器部分。它的作用是将输入的文本描述(例如 “一只在森林里奔跑的金色老虎” )转换成计算机能够理解和处理的数值化语义表示,也就是文本嵌入向量(text embedding)。在训练过程中,CLIP 模型学习将文本和图像的特征映射到同一个特征空间中,使得语义相近的文本和对应的图像在特征空间中距离较近。
- 功能作用:在 Stable Diffusion 中,文本编码器提取的文本嵌入向量会作为条件信息,指导后续生成模型生成符合文本描述的图像。它为生成过程提供了语义层面的约束,让模型知道应该生成什么样的内容。
2. Generation Model(生成模型)
- 结构与原理:基于扩散模型(Diffusion Model),更具体来说是去噪扩散隐式模型(DDIM,Denoising Diffusion Implicit Models )的变体。它通过前向扩散过程,逐步向图像中添加噪声,直至图像变为纯噪声;反向过程则是从纯噪声开始,使用训练好的神经网络(通常是 U-Net 架构)逐步去噪。在反向去噪的每一步中,模型会结合文本编码器提供的文本嵌入向量,来调整去噪的方向和结果,使得最终生成的图像符合给定的文本描述。
- 功能作用:根据文本编码器提供的语义信息,在噪声图像上不断进行去噪操作,逐渐生成出高质量、符合文本描述的图像。它是整个模型的核心生成模块,决定了生成图像的质量、细节和多样性。
3. Decoder(解码器)
- 结构与原理:在 Stable Diffusion 中,解码器通常指的是 VAE(变分自编码器)的解码器部分。VAE 是由编码器和解码器组成的神经网络结构,在 Stable Diffusion 里,VAE 的编码器用于将生成模型输出的高分辨率图像压缩到低维空间,而解码器则是将低维表示解码回原始分辨率的图像。
- 功能作用:对生成模型输出的图像表示进行进一步处理,将其转换为最终可供用户查看的图像格式。它可以对图像进行优化,减少生成图像中的伪影和不自然的地方,提升图像的视觉效果和真实感。
这三个结构相互配合,text encoder 将文本信息转化为语义向量,generation model 依据语义向量生成初步的图像信息,最后 decoder 对生成的图像信息进行优化输出,从而实现了从文本到高质量图像的生成过程。