Stable Diffusion:Diffusion Model
文章目录
- Diffusion Model
- 1. **前向扩散(Forward Diffusion)—— 加噪**
- 2. **反向扩散(Reverse Diffusion)—— 去噪**
- 3. **在 Stable Diffusion 中的特殊设计**
- 4. **Diffusion 在生成图像时的作用**
- 总结
- U-Net 的使用
- **1. 前向扩散(Forward Diffusion)**
- **2. 反向扩散(Reverse Diffusion)**
- **3. 为什么前向扩散不需要 U-Net?**
- **4. 总结**
- **5. 补充说明**
- 变分自编码器(VAE)
- 1. 基本概念
- 2. 核心思想
- 3. 工作原理
- 4. 架构与结构图
- 5. 数学模型
- 6. 关键创新点
- 7. 优缺点分析
- 8. 主要应用领域
- 9. 重要变体
- 10. 与其他生成模型的对比
- 11. 实现注意事项
- 12. 发展现状与趋势
- **MMDiT(多模态扩散Transformer)**
- **1. 背景与核心创新**
- **2. 与DiT(Sora架构)的对比**
- **3. MMDiT的三大核心设计**
- **(1) 分模态Transformer**
- **(2) 跨模态共享注意力**
- **(3) 多模态位置编码**
- **4. 工作流程(以SD3为例)**
- **5. 性能优势**
- **6. 代码结构示意(PyTorch风格)**
- **7. 总结**
- **多模态扩散Transformer(MMDiT)架构流程图解析**
- **1. 整体架构概述**
- **2. 模块功能分解**
- **(1)输入层**
- **(2)调制(Modulation)与线性变换(Linear)**
- **(3)联合注意力(Joint Attention)**
- **(4)重复处理(Repeat d times)**
- **3. 关键设计亮点**
- **4. 与SD3的关联**
- **5. 设计特点总结**
- **6. 总结**
- **与经典架构(如 SD1.5)的对比**
- 概念
- **潜在空间特征图(Latent Feature Map)详解**
- **1. 什么是潜在空间特征图?**
- **2. 为什么需要潜在空间?**
- **3. 潜在空间特征图的结构**
- **4. 潜在空间 vs. 像素空间**
- **5. 潜在空间的操作**
- **6. 实例说明**
- **7. 总结**
在 Stable Diffusion (SD) 中, Diffusion(扩散) 是模型的核心生成机制,它指的是 扩散模型(Diffusion Model) 的工作原理。简单来说,扩散模型通过逐步“去噪”来生成图像,其过程可以分为两个阶段:
Diffusion Model
1. 前向扩散(Forward Diffusion)—— 加噪
- 给定一张真实图像 x 0 x_0 x0,模型会逐步添加高斯噪声(Gaussian Noise),经过 T T T 步后,图像逐渐变成纯噪声噪声 x T x_T xT(类似于一张完全随机的图片)。
- 这个过程可以看作是一个马尔可夫链(Markov Chain),每一步的噪声强度由调度器(Scheduler)控制(如 DDPM、DDIM 等)。
- 数学上,前向扩散可以表示为:
q ( x t ∣ x t − 1 ) = N ( x t ; 1 − β t x t − 1 , β t I ) q(x_t | x_{t-1}) = \mathcal{N}(x_t; \sqrt{1-\beta_t} x_{t-1}, \beta_t \mathbf{I}) q(xt∣xt−1)=N(xt;1−βtxt−1,βtI)
其中 β t \beta_t βt 是噪声调度参数,控制每一步的噪声强度。 - 前向扩散不需要 U-Net
- 前向扩散是一个 固定的、预定义的加噪过程,它只是按照预设的噪声调度(如线性、余弦等)逐步向图像添加高斯噪声。加噪过程完全由噪声调度(如
beta_t
或alpha_t
)定义,无需学习。 - 这是一个纯数学操作,不涉及任何神经网络(包括 U-Net)。
- 公式表示:
x t = α t ⋅ x t − 1 + 1 − α t ⋅ ϵ , ϵ ∼ N ( 0 , I ) x_t = \sqrt{\alpha_t} \cdot x_{t-1} + \sqrt{1 - \alpha_t} \cdot \epsilon, \quad \epsilon \sim \mathcal{N}(0, I) xt=αt⋅xt−1+1−αt⋅ϵ,ϵ∼N(0,I)
其中 α t \alpha_t αt 是噪声调度参数, ϵ \epsilon ϵ 是随机噪声。
- 前向扩散是一个 固定的、预定义的加噪过程,它只是按照预设的噪声调度(如线性、余弦等)逐步向图像添加高斯噪声。加噪过程完全由噪声调度(如
2. 反向扩散(Reverse Diffusion)—— 去噪
-
模型的任务是学习如何从噪声 x T x_T xT 逐步“去噪”,最终恢复出清晰的图像 x 0 x_0 x0。
-
在训练阶段,模型(通常是 U-Net)会学习预测当前步的噪声 ϵ \epsilon ϵ,然后根据预测的噪声计算下一步的 x t − 1 x_{t-1} xt−1 。去噪过程必须建模复杂的数据分布,因此需要 U-Net 这样的强大网络来预测噪声。
-
数学上,反向扩散可以表示为:
p θ ( x t − 1 ∣ x t ) = N ( x t − 1 ; μ θ ( x t , t ) , Σ θ ( x t , t ) ) p_\theta(x_{t-1} | x_t) = \mathcal{N}(x_{t-1}; \mu_\theta(x_t, t), \Sigma_\theta(x_t, t)) pθ(xt−1∣xt)=N(xt−1;μθ(xt,t),Σθ(xt,t))其中 μ θ \mu_\theta μθ 和 Σ θ \Sigma_\theta Σθ 是模型预测的均值和方差。
3. 在 Stable Diffusion 中的特殊设计
- Latent Diffusion(潜在扩散):SD 并不直接在像素空间(如 512x512 图像)上做扩散,而是先通过 VAE(变分自编码器)将图像压缩到 潜在空间(Latent Space)(如 64x64),然后在低维空间进行扩散,大幅降低计算量。
- 条件扩散(Conditional Diffusion):SD 的扩散过程受 文本提示(Prompt) 控制,通过 CLIP 文本编码器(如 OpenAI 的 CLIP 或 SD3 的 T5)将文本转换为嵌入向量,引导 U-Net 在去噪时生成符合描述的图像。
4. Diffusion 在生成图像时的作用
- 在推理(生成图像)时,SD 从一个随机噪声 x T x_T xT 开始,通过 U-Net 逐步去噪,每一步都根据文本提示调整去噪方向,最终得到清晰的图像。
- 由于扩散是逐步进行的,模型可以生成细节丰富、符合语义的高质量图像。
总结
- Diffusion(扩散) 在 Stable Diffusion 中指的是 “加噪-去噪” 的生成过程,核心思想是通过学习如何逆转噪声的扩散过程来生成数据。
- Latent Diffusion 使其高效,条件扩散 使其可控,从而能够根据文本生成高质量的图像。
这种方法的优势在于:
- 生成的图像质量高,细节丰富。
- 可以通过调节噪声步数(如 DDIM 的
num_inference_steps
)平衡生成速度和质量。 - 结合文本条件,实现高度可控的图像生成。
U-Net 的使用
1. 前向扩散(Forward Diffusion)
- 不需要 U-Net
前向扩散是一个 固定的、预定义的加噪过程,它只是按照预设的噪声调度(如线性、余弦等)逐步向图像添加高斯噪声。- 这是一个纯数学操作,不涉及任何神经网络(包括 U-Net)。
- 公式表示:
x t = α t ⋅ x t − 1 + 1 − α t ⋅ ϵ , ϵ ∼ N ( 0 , I ) x_t = \sqrt{\alpha_t} \cdot x_{t-1} + \sqrt{1 - \alpha_t} \cdot \epsilon, \quad \epsilon \sim \mathcal{N}(0, I) xt=αt⋅xt−1+1−αt⋅ϵ,ϵ∼N(0,I)
其中 α t \alpha_t αt 是噪声调度参数, ϵ \epsilon ϵ 是随机噪声。
2. 反向扩散(Reverse Diffusion)
- 完整使用 U-Net
反向扩散是 生成图像的核心过程,由 完整的 U-Net 完成。U-Net 的任务是 预测当前时间步的噪声 ϵ \epsilon ϵ,以便从带噪图像 x t x_t xt 逐步恢复出清晰图像 x 0 x_0 x0。- 输入:带噪的 latent 特征 x t x_t xt、时间步 t t t、条件(如文本嵌入
text_embeddings
)。 - 输出:预测的噪声 ϵ ^ \hat{\epsilon} ϵ^,用于计算下一步的 x t − 1 x_{t-1} xt−1。
- U-Net 结构:
- 编码器(Downsample):逐步压缩空间维度,提取高层语义特征。
- 解码器(Upsample):逐步恢复空间细节,结合跳跃连接(Skip Connections)保留局部信息。
- 时间嵌入(Timestep Embedding):将时间步 t t t 编码为特征,控制去噪过程。
- 交叉注意力(Cross-Attention):在 U-Net 的中间层引入文本条件(如
"a cat"
),确保生成内容与提示对齐。
- 输入:带噪的 latent 特征 x t x_t xt、时间步 t t t、条件(如文本嵌入
3. 为什么前向扩散不需要 U-Net?
- 前向扩散是确定性的:加噪过程完全由噪声调度(如
beta_t
或alpha_t
)定义,无需学习。 - 反向扩散需要学习:去噪过程必须建模复杂的数据分布,因此需要 U-Net 这样的强大网络来预测噪声。
4. 总结
阶段 | 是否使用 U-Net | 输入 | 输出 | 作用 |
---|---|---|---|---|
前向扩散 | ❌ 不需要 | 真实图像 x 0 x_0 x0 | 带噪图像 x T x_T xT | 破坏数据,生成训练样本 |
反向扩散 | ✅ 完整 U-Net | 带噪图像 x t x_t xt、时间步 t t t、文本条件 | 预测噪声 ϵ ^ \hat{\epsilon} ϵ^ | 逐步去噪,生成目标图像 |
5. 补充说明
- 训练时:U-Net 的输入是前向扩散生成的带噪图像 x t x_t xt,目标是预测添加的噪声 ϵ \epsilon ϵ。
- 推理时:U-Net 从随机噪声 x T x_T xT 开始,逐步去噪生成图像。
- U-Net 是唯一可训练部分:扩散模型的其他组件(如 VAE、CLIP 文本编码器)通常是预训练且冻结的。
变分自编码器(VAE)
1. 基本概念
变分自编码器(Variational Autoencoder, VAE)是一种深度 生成模型,结合了自编码器(Autoencoder)和概率统计方法。它通过学习数据的潜在低维表示(latent representation)来实现数据生成和特征学习。
其核心特点是:
- 概率编码:将输入数据映射到潜在空间(Latent Space)的概率分布(如高斯分布),而非固定值。
- 生成能力:通过采样潜在变量生成多样化的数据。
2. 核心思想
VAE的核心思想是通过变分推断(Variational Inference)来近似复杂的真实数据分布,主要特点包括:
- 将输入数据映射到潜在空间的概率分布
- 使用重参数化技巧使采样过程可微分
- 通过最大化证据下界(ELBO)进行优化
3. 工作原理
- 编码器(Encoder):输入数据 ( x ) → 输出潜在分布参数(均值 μ \mu μ、方差 σ 2 \sigma^2 σ2)。
- 重参数化(Reparameterization):采样 z = μ + σ ⋅ ϵ z = \mu + \sigma \cdot \epsilon z=μ+σ⋅ϵ , ( ϵ ( \epsilon (ϵ 来自标准正态分布)。
- 解码器(Decoder):从 z z z 重建数据 x ^ \hat{x} x^。
VAE的工作流程可以分为三个阶段:
码阶段:
输入数据x → 编码器 → 潜在分布的参数(μ, σ)
采样阶段:
使用重参数化技巧:z = μ + σ⊙ε,其中ε ∼ N(0,I)
解码阶段:
采样得到的z → 解码器 → 重构数据x̂
4. 架构与结构图
[VAE架构示意图]
输入数据 → 编码器网络 → (μ, σ) → 重参数化采样 → z → 解码器网络 → 重构输出↓ ↑KL散度约束 重构误差
主要组件:
- 编码器(推理网络):qφ(z|x)
- 解码器(生成网络):pθ(x|z)
- 潜在空间:z ∼ N(μ,σ²)
5. 数学模型
VAE优化的是证据下界(ELBO):
ELBO(θ,φ) = 𝔼[log pθ(x|z)] - KL(qφ(z|x) || p(z))
其中:
- 第一项是重构项(reconstruction term)
- 第二项是正则化项(KL散度)
6. 关键创新点
- 重参数化技巧:使随机采样过程可微分
- 概率编码器:输出分布而非确定值
- ELBO目标函数:联合优化生成和推理
7. 优缺点分析
- 优点:
- 生成稳定,无需对抗训练(对比GAN)。
- 潜在空间可解释(如控制生成图像的属性)。
- 缺点:
- 生成结果可能模糊(因高斯分布假设)。
- 生成多样性不如GAN丰富。
8. 主要应用领域
-
数据生成
- 从潜在空间采样生成新数据(如图像、文本)。
- 示例:生成人脸、艺术品或补全缺失图像部分。
-
数据降维与特征提取
- 将高维数据(如图像)压缩到低维潜在空间,保留关键特征。
- 应用:可视化高维数据(类似PCA但非线性)。
-
异常检测
- 通过重构误差(输入与生成的差异)识别异常样本。
- 示例:检测工业设备故障或医疗影像异常。
-
Stable Diffusion 等模型的基础组件
- 在扩散模型中,VAE 负责将图像压缩到潜在空间,大幅降低计算量。
9. 重要变体
变体名称 | 主要特点 | 应用场景 |
---|---|---|
β-VAE | 引入β系数控制KL散度权重 | 解耦表示学习 |
VQ-VAE | 使用离散潜在空间 | 语音、视频生成 |
CVAE | 加入条件信息 | 条件生成任务 |
NVAE | 使用层级化潜在变量 | 高分辨率图像生成 |
10. 与其他生成模型的对比
特性 | VAE | GAN | 扩散模型 |
---|---|---|---|
训练稳定性 | 较高 | 较低 | 中等 |
生成质量 | 中等 | 高 | 很高 |
多样性 | 高 | 中等 | 高 |
理论解释性 | 强 | 弱 | 中等 |
采样速度 | 快 | 快 | 慢 |
11. 实现注意事项
- 网络结构设计:编码器/解码器的深度和宽度
- 潜在空间维度选择
- KL散度权重的调整
- 激活函数的选择(通常使用ReLU/LeakyReLU)
- 训练技巧(如KL退火)
12. 发展现状与趋势
VAE作为重要的生成模型框架,仍在持续发展中:
- 与Transformer架构结合(如VQ-VAE-2)
- 在3D生成领域的应用扩展
- 与物理引擎结合用于科学计算
- 作为更大模型系统的组件(如Stable Diffusion中的VAE)
VAE因其坚实的数学基础和灵活性,在生成模型领域保持着重要地位,特别是在需要明确概率解释和潜在空间操作的应用场景中。
MMDiT(多模态扩散Transformer)
——基于DiT(Sora同款)的多模态扩展设计
1. 背景与核心创新
MMDiT(Multimodal Diffusion Transformer)是Stable Diffusion 3的核心架构,基于DiT(Diffusion Transformer)改进而来,专为多模态数据(文本+图像)联合扩散设计。其核心创新在于:
- 多模态兼容性:统一处理文本嵌入与图像潜在特征,解决传统扩散模型对跨模态对齐的依赖。
- 计算效率优化:通过分模态Transformer与共享注意力机制,降低多模态融合的计算成本。
2. 与DiT(Sora架构)的对比
特性 | DiT(Sora) | MMDiT(SD3) |
---|---|---|
输入类型 | 单模态(图像或视频潜在表示) | 多模态(文本+图像) |
模态交互方式 | 无 | 跨模态注意力+分模态Transformer |
位置编码 | 图像块位置编码 | 图像补丁+文本token联合编码 |
应用场景 | 无条件视频生成 | 文本引导的图像生成 |
3. MMDiT的三大核心设计
(1) 分模态Transformer
- 独立参数:
文本和图像模态使用独立的Transformer分支,避免模态间特征混淆。- 图像分支:处理VAE编码的潜在补丁(如
64×64×4 → 1024×16
展平序列)。 - 文本分支:处理文本嵌入(如T5编码的
77×768
序列)。
- 图像分支:处理VAE编码的潜在补丁(如
- 模态专属特征提取:
图像分支关注局部视觉模式,文本分支聚焦语义关联。
(2) 跨模态共享注意力
- 注意力输入:
将图像序列与文本序列拼接为统一输入(如[1024+77, D]
),送入共享的注意力层。 - 动态交互机制:
- 图像补丁通过注意力权重聚焦相关文本token(如“狗”的文本引导狗的视觉特征生成)。
- 文本token通过图像特征调整语义权重(如“红色”更关注图像中的颜色区域)。
(3) 多模态位置编码
- 图像位置编码:
对2×2图像补丁的绝对位置编码(正弦函数或可学习参数)。 - 文本位置编码:
标准Transformer位置编码(如T5的相对位置编码)。 - 联合归一化:
对不同模态的位置编码进行尺度对齐,避免数值差异。
4. 工作流程(以SD3为例)
- 输入编码:
- 图像 → VAE编码为
64×64×4
潜在图 → 分割为2×2补丁 → 展平为1024×16
序列。 - 文本 → T5编码为
77×768
序列。
- 图像 → VAE编码为
- 模态特征投影:
- 图像补丁投影到
1024×768
(与文本维度对齐)。
- 图像补丁投影到
- MMDiT处理:
- 分模态Transformer提取特征 → 跨模态注意力融合 → 预测噪声。
- 输出生成:
- 去噪后的潜在特征 → VAE解码为图像。
5. 性能优势
- 生成质量:
文本-图像对齐精度提升30%(相比CLIP引导的SD2.1)。 - 训练效率:
多模态联合训练速度比两阶段模型(如DALL·E 2)快2倍。 - 可扩展性:
支持未来扩展至音频、视频等多模态输入(如SD3的未来版本)。
6. 代码结构示意(PyTorch风格)
class MMDiT(nn.Module):def __init__(self):# 分模态Transformerself.image_transformer = TransformerBlocks(dim=768)self.text_transformer = TransformerBlocks(dim=768)# 跨模态注意力self.cross_attn = MultiHeadAttention(dim=768, heads=8)def forward(self, image_emb, text_emb):# 分模态处理image_feat = self.image_transformer(image_emb) # [1024, 768]text_feat = self.text_transformer(text_emb) # [77, 768]# 跨模态交互combined = torch.cat([image_feat, text_feat], dim=0) # [1101, 768]output = self.cross_attn(combined)return output
7. 总结
MMDiT通过分模态处理+联合注意力的设计,实现了:
- 更精准的文本-图像对齐(减少语义漂移)。
- 高效的多模态联合扩散(计算成本线性增长,而非平方级)。
- 为未来多模态生成模型树立新范式(如视频+文本的Sora后续版本)。
这一架构不仅是SD3的核心突破,也为后续多模态扩散模型提供了可扩展的蓝图。
多模态扩散Transformer(MMDiT)架构流程图解析
流程图的详细解读,结合图中标注的模块和Stable Diffusion 3(SD3)的技术背景:
1. 整体架构概述
该图描述了 MMDiT(多模态扩散Transformer) 的核心处理流程,用于在扩散模型中联合处理 文本嵌入 和 图像嵌入,并通过动态调制(Modulation)实现多模态条件控制。
- 输入:噪声级别标记(Noise Level Token)、文本嵌入(Text Embeddings)、图像嵌入(Image Embeddings)。
- 输出:经过多轮联合注意力(Joint Attention)和MLP处理后的融合特征,用于扩散模型的噪声预测。
2. 模块功能分解
(1)输入层
-
Noise Level Token (t)
表示当前扩散步的噪声强度(时间步嵌入),用于控制生成过程中的动态调整。 通常与时间步嵌入(timestep embedding)结合,调制模型行为。- 作用:在调制(Modulation)中影响特征缩放/偏移,适应不同噪声阶段的生成需求。
-
Text Embeddings
来自 CLIP/T5 等文本编码器的语义特征,作为生成的条件输入。 通过文本编码器(如T5)生成的语义向量(如77×768
序列),描述生成目标(如“一只猫”)。 -
Image Embeddings
通过VAE编码器压缩后的图像潜在特征(如64×64×4
展平为1024×16
后投影到高维),是去噪过程的主体。
(2)调制(Modulation)与线性变换(Linear)
-
Modulation
动态生成缩放因子(γ)和偏移量(β),对文本/图像特征进行条件适配:
Output = γ ⋅ ( Linear ( x ) ) + β \text{Output} = \gamma \cdot (\text{Linear}(x)) + \beta Output=γ⋅(Linear(x))+β- 输入:Noise Level Token + 文本/图像嵌入。
- 作用:增强关键模态特征(如高噪声阶段强化文本引导)。
-
Linear
标准的线性变换层,将输入特征投影到统一维度(如768维),便于后续注意力计算。
目的:确保不同模态的特征在联合注意力前尺度对齐。
(3)联合注意力(Joint Attention)
- 输入:调制后的文本(Q)、图像(K, V)特征。
- 机制:
- Query (Q):通常来自文本嵌入,表示需要关注的语义。
- Key/Value (K, V):来自图像嵌入,提供视觉上下文。
- 作用:文本token通过注意力权重聚焦相关图像区域(如“猫”对应图像中的猫轮廓)。
通过自注意力机制实现跨模态交互:
- 图像 Token 可关注文本 Token(提升提示词跟随能力)。
- 文本 Token 也可反向关注图像 Token(改善排版和细节)。
区别于传统交叉注意力(Cross-Attention),MMDiT 的注意力是双向且对称的。
(4)重复处理(Repeat d times)
- 联合注意力与MLP模块堆叠 d次,逐步细化多模态特征融合:
- MLP:多层感知机,进一步非线性变换特征。 增强表达能力。
- 调制与线性层:每轮重新调整特征分布。
3. 关键设计亮点
-
动态调制(Modulation)
- 根据噪声级别和模态特性实时调整参数,平衡文本控制与图像生成自由度。
- 示例:早期扩散步(高噪声)强化文本引导,后期细化局部细节。
-
跨模态注意力(Joint Attention)
- 文本与图像特征通过注意力机制直接交互,避免传统CLIP引导的间接对齐。
-
分层重复处理
- 通过多轮(d次)迭代逐步优化特征,类似Transformer的解码器层。
4. 与SD3的关联
- 此图是 Stable Diffusion 3 中MMDiT的核心实现,解决了传统扩散模型在多模态融合中的两大问题:
- 模态冲突:文本和图像分支独立处理后再融合,减少干扰。
- 计算效率:调制机制避免全连接融合的高计算成本。
5. 设计特点总结
独立模态权重
文本和图像分支的线性变换(linear)权重独立,避免特征混淆。
动态调制
通过 modulation 注入时间步和噪声信息,控制生成过程。
双向注意力
联合注意力机制实现文本→图像和图像→文本的双向交互,解决传统模型“文本忽略”问题。
模块化堆叠
通过重复块(Repeat d times)构建深度网络,支持复杂生成任务。
6. 总结
该流程图展示了MMDiT如何通过 调制、联合注意力和分层处理 实现:
- 精准的文本-图像对齐(如生成符合描述的细节)。
- 自适应的噪声阶段控制(如从全局结构到局部细化)。
- 高效的多模态扩散(相比两阶段模型如DALL·E 2)。
这一设计是SD3生成质量显著提升的核心技术支撑。
与经典架构(如 SD1.5)的对比
组件 | 传统 U-Net + 交叉注意力 | MMDiT(本图) |
---|---|---|
模态交互方式 | 单向(文本→图像) | 双向(文本↔图像) |
权重共享 | 完全共享 | 文本/图像分支独立 |
条件注入 | 仅通过交叉注意力 | 调制层 + 联合注意力 |
计算效率 | 低(交叉注意力成本高) | 高(统一序列处理) |
概念
潜在空间特征图(Latent Feature Map)详解
在生成模型(如Stable Diffusion)中,潜在空间特征图是输入图像经过编码器(如VAE)压缩后得到的低维、稠密表示。它保留了图像的核心语义信息,同时显著降低了计算复杂度。以下是其核心要点:
1. 什么是潜在空间特征图?
- 定义:
潜在空间特征图是原始图像通过神经网络(如VAE的编码器)转换后的低维张量,通常具有以下特点:- 空间结构:保留二维布局(如
64×64
),但尺寸远小于原图(如512×512
)。 - 高信息密度:每个位置的值编码了原始图像局部区域的抽象特征(如形状、纹理)。
- 空间结构:保留二维布局(如
- 示例:
在Stable Diffusion中,一张512×512
的RGB图像被VAE编码为64×64×4
的潜在特征图(空间尺寸缩小8倍,通道数为4)。
2. 为什么需要潜在空间?
- 计算效率:
直接在高分辨率像素空间(如512×512×3
)进行扩散过程计算量极大,潜在空间(如64×64×4
)可将计算量减少约(512/64)^2 = 64
倍。 - 信息浓缩:
通过训练,VAE学会丢弃冗余信息(如噪声、高频细节),保留语义关键特征(如物体轮廓、颜色分布)。 - 生成质量:
低维潜在空间更易于模型学习数据分布,生成结果更稳定(对比像素空间的直接生成)。
3. 潜在空间特征图的结构
以SD的64×64×4
潜在图为例:
- 空间维度(64×64):
对应原始图像的空间结构,但每个“像素”实际是原图某个区域(如8×8
)的抽象表示。 - 通道维度(4):
每个空间位置有4个通道值,编码不同语义属性(如形状、颜色、深度等,具体含义由模型自动学习)。
4. 潜在空间 vs. 像素空间
特性 | 像素空间 | 潜在空间 |
---|---|---|
数据形式 | 原始RGB像素(如512×512×3 ) | 压缩后的张量(如64×64×4 ) |
信息类型 | 具体颜色、细节 | 抽象语义特征 |
计算复杂度 | 高 | 低 |
生成任务适用性 | 适合局部编辑(如超分辨率) | 适合全局语义生成 |
5. 潜在空间的操作
在生成模型中,潜在空间是核心工作区域:
- 扩散过程:
在潜在空间(而非像素空间)中添加/去除噪声(如SD的Latent Diffusion)。 - 条件控制:
文本提示通过交叉注意力机制影响潜在特征的生成方向。 - 插值与编辑:
潜在向量的线性插值可实现图像属性的平滑过渡(如风格混合)。
6. 实例说明
假设VAE编码器将图像转换为64×64×4
潜在图:
- 输入:
512×512
的猫图像 → 分割为8×8
的局部块(共64×64
块)。 - 编码:每个
8×8
块被压缩为4维向量,形成64×64×4
特征图。 - 生成:扩散模型在
64×64×4
空间中去噪,VAE解码器将其还原为512×512
图像。
7. 总结
潜在空间特征图是高维数据到低维语义空间的桥梁,它:
- 平衡了生成质量与计算效率;
- 是Stable Diffusion等现代生成模型的核心设计;
- 使模型能够专注于高级语义而非像素级细节。