1.Stable Diffusion文生图基本原理
1.1Stable Diffusion原理介绍
文生图主要基于Stable Diffusion大模型进行。SD的基本结构图如下图所示,主要包括3个部分。其中1是CLIP图像文本对,将图像、文本来自不同模态的信息映射到同一个编码空间,使相对应的文本和图像特征向量接近,不对应的文本和图像向量远离。CLIP的主要作用就是让大模型理解用户输入的提示词、图像等信息。2是SD的核心部分扩散模型,在训练时,SD对原始图像进行加噪,然后再一步一步去噪得到原图,推理阶段直接从噪声图像开始去噪,并使用不同的采样器加速去噪过程。3是变分编码器VAE,主要作用是将扩散过程编码到更小的潜空间进行操作,生成图像后再从潜空间解码,得到人类能够理解的像素空间的图像,这一步可以加速文生图的过程、提升文生图的质量。
Stable Ddiffusion原理图
由于SD大模型训练成本较高,为了弥补SD大模型的一些缺点,比如不能生成指定角色的特征、不能生成指定风格等,使用训练成本低的LoRA对大模型进行微调,给大模型增加一些补充知识,常见的LoRA有工具性(修手、增加细节)、画风类型(水墨风、油画风)、角色类型。
1.1.1Diffusion Model 扩散模型
Diffusion Model是SD等生成模型的核心部分,常见的扩散模型有DDPM、DDIM等。以最简单的DDPM为例,简要介绍Diffusion Model的原理。
扩散模型定义了一个基于马尔科夫链的扩散过程。包括正向和逆向两个过程,正向扩散过程从真实数据分步采样,逐步向样本添加高斯噪声,最终逐渐趋近于纯高斯噪声。该过程服从高斯分布。
扩散正向过程
扩散的逆过程,从一个随机噪声开始,还原数据原貌(不能在反向过程中通过随机噪声去噪)。去噪扩散模型(Denoising Diffusion Probabilistic Models,DDPM)简化了损失函数,将训练目标转化成预测当前步添加的噪声信息,降低了训练难度。将网络的FCL替换成Unet,提升表达能力。Improved DDPM和DDIM(Denoising Diffusion Implicit Models)、DPM-Solver对之前的模型进行了优化和加速。
DDPM(Denoising Diffusion Probabilistic Models)是DALLE、SD常用的Diffusion结构。DDPM的逆过程的输入包括噪声、Denoise的次序、输入的文字。
DDPM的逆过程
Denoise的次数是提前设置的,每一步的序号也表示了噪声的严重程度,每一步的噪声图片与最终输出的图片大小一致。在process过程中,每一次都随机产生噪声加在图片上,而每次产生的噪声也作为reverse process中对应步数的真值,用于训练Noise Predictor。
在训练过程中,DDPM算法每次Add noise的图像都是一步得到,而非一次一次累加的。想象中,对于加噪的图像进行Noise predictor,减去噪声得到噪声较少的图;实际上Denoise把input和t当作输入,直接得到混入的噪声。
Stable Diffusion模型训练和推理的过程
Training训练时(包括扩散正逆向过程)重复:
每次从数据集中随机抽取一张图片。 随机从 1 至 1000 中选择一个时间步 t。 随机生成一个高斯噪声。 根据上述加噪环节的公式,一次计算直接得到第 t 步加噪的结果图像。 将时间步 t 和加噪图像作为 UNet 的输入去预测一个噪声值。 使用第五步预测的噪声值和第三步随机生成的噪声值,计算数值误差,并回传梯度。Sampling推理时(包括扩散的逆向过程)重复:
初始随机生成一个高斯噪声,作为第 1000 步加噪之后的结果。后期为当前噪声图。 将这个噪声和时间步 1000 作为已经训练好的 UNet 的输入,预测第 999 步引入的噪声。 使用采样器在步骤 1 的高斯噪声中去除步骤 2 预测的噪声,得到一张干净一点的图像。1.1.2CLIP
CLIP 利用了图像模态和文本模态的对应关系。CLIP 分别构造了一个图像编码器和一个文本编码器,将图像及其文本描述映射到一个特征空间,比如我们可以映射到 512 维度的特征空间。一张图或者一个文本描述,经过映射都是 512 个浮点数。
CLIP使用对比学习,计算图像特征向量和文本特征向量之间的余弦距离,余弦距离的范围是 -1 到 1,越大表示距离越接近。CLIP 的训练目标是让对应的图像、文本得到的特征向量靠近,也就是余弦距离越大越好,让不对应的图像、文本得到的特征向量远离,也就是余弦距离尽可能小。
训练过程分为四步:提取表征、映射和归一化、计算距离和更新模型权重(交叉熵损失函数)。经典的图像分类任务通常需要使用人工标注的标签数据来训练,训练完成后只能区分训练时限定的类别。由于 CLIP 见过 4 亿图文,拥有海量的知识,我们便可以直接通过跨模态检索的方式直接进行分类。
1.1.3VAE
我们可以通过神经网络,在保留原始数据的关键信息的条件下,将输入的原始数据压缩到一个更低维度的空间,得到一个低维的向量表示,并且这个低维的向量表示可以通过解码恢复出原始的数据。这里的低维空间就是潜在空间(latent space,也称为隐空间),低维的向量也叫潜在表示(latent representation)。
VAE变分自编码器将输入转换成对隐层空间的概率分布估计。同时训练一个概率解码器,实现从隐层空间分布到真实数据分布的映射。在 VAE 中,编码器的输出是某种已知概率分布的均值 μ 和方差 σ,比如最常用的高斯分布。根据均值、方差和一个随机噪声 ϵ,最终的潜在表示z=e^σ×ϵ+μ。VAE 中计算潜在表示的过程便是大名鼎鼎的重参数化技巧,解决了梯度不能直接通过随机采样操作进行传播的问题。同时使用重构损失和 KL 散度损失来训练 VAE。
VAE 不仅可以有效地压缩和重构图像,它得到的潜在表示还可以进行插值编辑。即可以叠加图像潜空间表示再解码,得到介于图像之间的图像。
1.1.4SD1.5 SDXL SD3模型介绍
SD模型通常指基于神经网络结构和大量数据集训练得到的权重文件(safetensor或者checkpoint文件),有时也会指代不同版本的神经网络结构(代码)。在使用时,需要注意神经网络结构和权重文件需要匹配,比如使用SD1.5版本的神经网络结构推理SD1.5版本的权重文件。
SD1.5
SD1.5是最早的、生态最为全面的SD结构。基于官方发布SD1.5模型权重文件,爱好者或者企业进行微调训练,得到了很多基于SD1.5网络结构的,适用于不同风格的基础模型。
SDXL
SDXL本质是由两个SD结构拼接而成,对应使用了两个模型。Base模型和Refiner模型分别在原本的SD结构上进行微调。该类模型对显卡要求提高,但表现能力有很大的改进,整体生态也在逐步完善。Base结构:和Stable Diffusion一致,具备文生图,图生图,图像inpainting等能力。(由U-Net,VAE,CLIP Text Encoder(两个)三个模块组成)。Refiner结构:对Base模型生成的图像Latent特征进行精细化,其本质上是在做图生图的工作。(由U-Net,VAE,CLIP Text Encoder(一个)三个模块组成)
SDXL模型结构
SD3
SD3使用MMDiT架构,在文字表现、空间位置等方面有突出表现,但其在商业许可、肢体表现等各个方面为人诟病。Stable Diffusion 3 Medium 是一个拥有20亿参数的模型。基于Rectified Flow 构建生成模型,基于DiT模型替换Unet,并且构建了更高效的生成模型架构。
常用于下载SD模型的网站有:
Civitai:https://civitai.com/ LiblibAI:LiblibAI-哩布哩布AI - 中国领先的AI创作平台 Huggingface:https://huggingface.co/ 镜像地址:HF-Mirror总结
**Stable Diffusion文生图基本原理总结**Stable Diffusion(SD)模型在文生图(Text-to-Image Generation)领域展现出了卓越的性能,其基本原理可归结为以下几个关键组成部分:
### 1. **CLIP图像文本对**
- **作用**:将图像和文本这两种不同模态的信息映射到同一个高维编码空间,使匹配的文本和图像特征向量相近,而不匹配的则相互远离。这样,SD大模型能够理解并解析用户输入的文本提示或图像信息。
- **功能**:辅助模型理解用户需求,确保生成的图像与输入的文本描述高度一致。
### 2. **扩散模型(Diffusion Model)**
- **核心**:是SD的核心组成部分,负责通过加噪与去噪的过程来逐步还原或生成图像。
- **原理**:包括正向扩散和逆向扩散两个过程。正向过程逐渐将原始图像加噪直至变成纯高斯噪声,逆向过程则从噪声出发,逐步去噪恢复原始图像。DDPM等模型简化了这一过程,通过预测噪声并优化网络表达力来实现快速训练。
- **作用**:提供了强大的图像生成与处理能力,确保模型能够从文本生成逼真的图像。
### 3. **变分自编码器(VAE)**
- **功能**:将复杂的扩散过程编码到低维的潜在空间(Latent Space)进行操作,完成图像压缩与重构,提高生成效率和质量。
- **优势**:VAE不仅能重构图像,还能对潜在表示进行插值编辑,创造出介于两张图像之间的新图像。
### 4. **模型优化与扩展**
- **LoRA微调**:利用低成本训练工具LoRA对大模型进行微调,补充指定角色的特征、画风类型等知识,增强模型表现。
- **模型演进**:如SD1.5、SDXL、SD3等,每个版本都在不断优化网络结构,提高模型参数,以实现更好的生成效果和应用生态。例如,SDXL通过双模型(Base模型和Refiner模型)拼接实现更高质量的图像精细化处理,SD3则采用了MMDiT架构,增强了文本描述与空间位置的对应关系。
### 5. **下载与应用**
- **常见网站**:如Civitai、LiblibAI、Huggingface等平台提供SD模型的下载服务,支持用户便捷地获取并应用最新模型进行文生图创作。
Stable Diffusion凭借其独特的结构与算法,成为了当前文生图领域的主流工具之一,其不断发展与完善将为用户带来更多可能性与惊喜。