Stable Diffusion 基础原理详述
Stable Diffusion 基础原理详述
Stable Diffusion是一种基于AI的文生图技术,它通过多个模型的组合来实现从文本到图像的生成。本文将从原理层面详细解析Stable Diffusion的工作流程,包括文本编码、图像降噪和解码等关键步骤,帮助读者理解这一前沿技术的核心机制。
Stable Diffusion 原理概述
Stable Diffusion并非是一个单独的模型,而是由多个模型组合起来的一个体系。以最基本的文生图工作流为例,当用户输入提示词(如"1girl, sea, sky, sun, clothes")时,Stable Diffusion将生成一张女孩在海边享受阳光的图像。整个生成过程主要包括三个步骤:
文本编码器(Text Encoder):将用户输入的Prompt编译成77个等长的向量,每个向量有768个维度。这可以理解为"将人类能理解的文本转化为计算机能够识别的数字串"。
图像信息生成器(Image Information Creator):将特征向量与一张随机图像(布满噪声的图像)一同输入,计算机会将特征向量和随机图像转换到一个潜空间(Latent Space),并通过特征向量的指导将随机图像"降噪"成一个"中间产物"。
图像解码器(Image Decoder):将潜空间中的"中间产物"解码成一张人眼可以分辨的图片。
总体流程可以简单理解为:用户输入了一段Prompt指令,计算机会根据这个指令,在潜空间里将一张随机图降噪成符合指令要求的图片。这个过程更像是一种"雕刻",而不是单纯的"生成"。
图像信息生成器(Image Information Creator)
降噪过程会在一个潜空间(Latent Space)中进行,并经过多步降噪。这些步骤(Steps)可以自己设置,通常步骤越多,图片质量越高,同时生图所需的时间也会更长。
噪音预测器(Noise Predictor):使用随机图和Prompt的词特征向量来预测出一张噪声图B。同时,还会使用不包含Prompt的词特征向量来预测出另一张噪声图C。
降噪计算:
- 将噪音图B和噪音图C相减,得到图D。
- 将噪声图D通过乘以一个系数放大(这个系数在Stable Diffusion中被称为CFG)。
- 将放大后的图与噪声图C相加,得到图E。
- 最后,将图A减去图E,得到一张新的图像。
图片解码器(Image Decoder)
潜空间(Latent Space)是机器学习和深度学习中用于表示数据的低维空间。它通过对原始数据进行编码和降维而生成的一组潜在变量。潜空间的维度通常比原始数据低,因此可以提取出数据中最关键的特征和结构。
文本编码器(Text Encoder)
Stable Diffusion常用的Text Encoder是OpenAI开源的CLIP模型。CLIP模型包含一个Text Encoder,用于将文本转换为特征向量。同时,它还有一个Image Encoder,将图像也转换成特征向量。如果这两个向量越接近,意味着文本描述与图像内容越匹配。
总结
通过本文的详细解析,相信读者已经对Stable Diffusion的基本原理有了清晰的认识。掌握这些基础概念后,学习更高级的AI绘图工具(如ComfyUI)将变得更加容易。AI绘图技术正在快速发展,持续学习和实践将帮助我们更好地掌握这一前沿技术。