从一句话到一张图:看懂 Stable Diffusion 的“潜空间扩散”生成流程(配图详解)

Stable Diffusion Pipeline

Source: Aayush’s Blog, “Stable Diffusion using Hugging Face – Putting everything together” (2022).Used with attribution.

当你输入一句 “A dog wearing a hat(戴帽子的狗)”,模型最后输出一张高清图片。中间到底发生了什么?
这张图展示的,其实就是 Stable Diffusion 这类潜空间扩散模型(Latent Diffusion Model)最核心的工作流:文本 → 语义向量 → 潜空间噪声 → 逐步去噪 → VAE 解码成图像
本文将按图逐块拆解,并补充它背后的关键概念与工程细节,让你真正理解扩散模型是如何“画画”的。

1. 这张图在讲什么?

这张图描述了典型的 Stable Diffusion 文生图管线

  1. Prompt 文本 → CLIP 文本编码得到 text embeddings
  2. 从高斯噪声开始初始化潜变量 latents
  3. U-Net 在 text embeddings 条件引导下做多步迭代去噪(由 scheduler 控制)
  4. 得到最终的 conditioned latents
  5. VAE 解码成真实像素图输出(如 512×512)

2. 模块一:CLIP Model —— 文本如何变成“可计算的语义”

图左侧是 CLIP Model,主要过程包括:

  • Tokenizer(分词器):把文字拆成 token
  • Token to Embedding:把 token 映射到向量空间
  • 输出 Text Embeddings (1×77×768)

2.1 为什么是 77×768?

以 SD 1.x 为例:

  • 最大 token 长度固定为 77(包含起止符号等)
  • 每个 token 对应一个 768 维语义向量(CLIP Text Encoder 的 hidden size)

因此最终的文本表示是一个矩阵:

\text{text\_embeddings} \in \mathbb{R}^{1 \times 77 \times 768}
这个 embedding 就是后续 U-Net 去噪过程的“条件信号”,相当于让模型知道:它去噪的目标应该朝向“戴帽子的狗”。

3. 模块二:Gaussian Noise → Latents —— 为什么从噪声开始?

图的右上角是 Gaussian Noise(高斯噪声)

  • 形状:1×4×64×64

这就是 Stable Diffusion 的“起点”。

3.1 为什么不是直接在 512×512 像素上扩散?

这是 Stable Diffusion 的核心创新:不在像素空间扩散,而在潜空间(latent space)扩散

  • 真实图像:3×512×512
  • 潜空间:4×64×64

这相当于把图像压缩了 8 倍(512 / 64 = 8),计算量大幅下降。

这就是 Latent Diffusion 的意义:更快、更省显存,同时保持画质。

3.2 这 4 个通道是什么?

这是 VAE 编码后的 latent feature map 的通道数(对 SD 1.x 常见配置就是 4)。


4. 模块三:U-Net —— 扩散模型真正“画画”的地方

图中黄色块是 U-Net,它是扩散模型的核心网络,负责:

  • 输入:当前 timestep 的 noisy latents(含噪潜变量)
  • 条件:text embeddings
  • 输出:噪声预测(或直接预测 x0 / v,取决于训练方式)

4.1 U-Net 为什么叫 U-Net?

因为它是“编码器-解码器”的结构,中间通过 skip connection 保留空间细节,适合做图像相关任务。

4.2 文本是怎么“进”U-Net 的?

通常通过 Cross-Attention(交叉注意力)

  • Query 来自 latent feature
  • Key/Value 来自 text embeddings

这意味着:

模型每一步去噪时,都在不断“对齐”文字语义与图像潜空间结构。

4.3 CFG:提示词引导

虽然图里没写,但实际流程几乎都会用 Classifier-Free Guidance(CFG)

  • 同时跑 有条件(prompt)无条件(空 prompt)
  • 两者结果线性组合,让生成更贴近 prompt
\epsilon = \epsilon_{\text{uncond}} + s \left( \epsilon_{\text{cond}} - \epsilon_{\text{uncond}} \right)

其中 s 是 guidance scale(常见 5~12)。


5. 模块四:Scheduler —— 控制“加噪/去噪”的时间策略

图右侧橙色块是 Scheduler algorithm to add noise,它负责管理扩散过程中的:

  • 时间步(timestep)
  • 噪声强度(noise schedule)
  • 采样算法(DDIM、Euler、DPM++ 等)

5.1 为什么图里写 “Repeat N times”?

因为扩散模型的生成不是“一步到位”,而是 多步迭代

  • 通常 N = 20~50
  • 每一步根据 scheduler 指定的规则更新 latents

这就是所谓的 采样过程(sampling)

去噪步数越多,通常细节越丰富,但耗时越长;不同采样器会影响风格与稳定性。

6. 模块五:VAE —— 从潜空间回到像素世界

图中绿色块是 VAE,它是一个:

  • Encoder:把图像压缩到 latent
  • Decoder:把 latent 解码回图像

在文生图里我们只用 Decoder

image = VAE.decode(conditioned_latents)

输出图像尺寸是:3×512×512(RGB)

这也是图右下角 Output Image 的来源。


7. 串起来:Stable Diffusion 的整体流程(对应图)

结合图,我们可以用“工程视角”的伪流程理解:

  1. 输入 prompt
  2. 用 CLIP 把 prompt 编码成 text embeddings
  3. 初始化随机高斯噪声 latents(1×4×64×64)
  4. for t in timesteps:
    • U-Net(latents, t, text_embeddings) → 预测噪声
    • Scheduler 根据预测噪声更新 latents
  5. VAE 解码 latents → 输出 512×512 图片

8. 为什么这种结构强大?有三个关键优势

8.1 潜空间扩散:速度与质量的折中最佳解

相比像素扩散:更快、更省显存
相比 GAN:更可控、更稳定

8.2 CLIP 语义空间:文本可精细控制图像内容

Cross-attention + CFG 让 prompt 能精准影响形状、颜色、风格、细节。

8.3 Scheduler 可插拔:采样策略决定“生成气质”

不同 scheduler(Euler、DDIM、DPM++)决定:

  • 清晰度
  • 细节锐利程度
  • 风格偏向
  • 收敛速度

9. 读图小结

Stable Diffusion = 文本条件 + 潜空间扩散 + U-Net 去噪 + VAE 解码

Prompt 给方向
CLIP 给语义
U-Net 做生成
Scheduler 控节奏
VAE 把结果搬回像素世界

理解了这条链路,就可以掌握扩散模型最重要的知识骨架。

Read more

Llama-Factory在金融舆情分析中的实际应用案例

Llama-Factory在金融舆情分析中的实际应用案例 在一家大型券商的风控中心,分析师每天要处理来自新闻、股吧、微博、公告等渠道的上万条文本信息。一条看似普通的评论——“这次回购更像是缓兵之计”——如果被忽略,可能预示着公司现金流紧张的前兆。传统的关键词匹配或BERT类模型往往只能捕捉表面情绪,而真正理解这种隐含风险,需要更深层次的语言建模能力。 这正是大语言模型(LLM)进入金融领域的契机。但问题也随之而来:通用大模型不懂“缩表”是货币政策收紧,“做空”不是简单的负面词,而是特定操作行为。直接使用未经调整的LLM进行推理,结果常常南辕北辙。 于是,如何让一个“通才”变成“专才”,成为落地的关键。微调(Fine-tuning)自然成了首选路径。然而,现实并不乐观:训练脚本复杂、显存爆炸、多卡并行配置繁琐、不同模型架构适配困难……这些技术门槛让许多金融机构望而却步。 直到像 Llama-Factory 这样的集成化框架出现,局面才开始改变。它不是一个简单的工具包,而是一整套面向企业级应用的大模型定制流水线。通过模块化设计和可视化交互,即便是没有深度学习背景的数据工程师,也能在

AI绘画神器Z-Image-Turbo:输入文字秒出图,艺术创作从未如此简单

AI绘画神器Z-Image-Turbo:输入文字秒出图,艺术创作从未如此简单 你有没有过这样的时刻:脑子里已经浮现出一张绝美的画面——晨雾中的山寺飞檐、赛博朋克街角的霓虹猫、水墨晕染的敦煌飞天——可当你打开绘图软件,却卡在第一步:怎么把脑海里的东西,变成屏幕上真实可感的图像? 不是不会画,是没时间学;不是不想试,是怕折腾半天只出一张糊图。更别提那些动辄要配3090显卡、等五分钟才出一张图的工具,还没开始创作,热情就被加载条浇灭了。 今天我要分享的,不是又一个“理论上很厉害”的模型,而是一个真正能让你合上笔记本、拿起手机、输入一句话、三秒后就看到高清大图的工具——Z-Image-Turbo 极速云端创作室。 它不教你怎么调参数,不让你研究CFG值和采样器区别,甚至不需要你记住任何英文术语。它只有一个按钮:“ 极速生成”。点下去,结果就来了。 这不是未来科技,是今天就能用上的现实。我用它给朋友做生日贺图,12秒生成一张带名字的星空手绘风插画;用它帮设计师同事赶海报初稿,输入“极简风咖啡馆LOGO,暖棕+米白,有手冲壶剪影”,第一张就通过了;甚至用它给孩子讲古诗,输入“

【回眸】AI新鲜事(一)如何使用Copilot制定一个60天的系统学习AI计划细化落实到每天并导入Outlook日程?

【回眸】AI新鲜事(一)如何使用Copilot制定一个60天的系统学习AI计划细化落实到每天并导入Outlook日程?

前言 今早刷到一位老师的视频号视频,马上开始实践起来,第一个目标是系统学习AI使用,重实用技能,轻理论知识。顺便使用AI指定一个小计划,帮我这个P人完成一个具体详细的计划吧!下面我将告诉你,我是如何给AI提示词,逐步生成一个可以导入Outlook日程的文件。 一、准备一个并不完美的提示词 不需要考虑到一次性能让AI回答出最符合心意的答案,因为我们可以通过多轮对话让AI自然回答出我们想要的答案,所以可以直接给出你心里想的问题。 比如,我提的问题是: 问题(最初版) 你是一个超级AI专家讲师,给我制定一个系统学习AI的步骤流程 Copilot是这样回答的 下面我会以“超级AI专家讲师”的视角,为你设计一套 从零到精通的系统化 AI 学习路线图。这套路线特别适合你作为 Autonomous Linux/QNX BSP 软件工程师 的背景,会强调实战、工程能力和可落地的 AI 应用。 🚀 AI 系统学习完整路线(从零到行业级应用) 🎯 阶段 0:明确目标(1 天) 先为自己定一个方向,

圣女司幼幽-造相Z-Turbo开源镜像评测:对比Stable Diffusion本地部署的易用性优势

圣女司幼幽-造相Z-Turbo开源镜像评测:对比Stable Diffusion本地部署的易用性优势 想体验AI绘画的魅力,但被Stable Diffusion复杂的本地部署劝退?今天,我们来评测一个能让你“开箱即用”的解决方案——圣女司幼幽-造相Z-Turbo开源镜像。这个基于Z-Image-Turbo LoRA模型打造的镜像,究竟在易用性上带来了哪些革命性的提升?它和传统本地部署方式相比,优势在哪里?这篇文章将带你一探究竟。 1. 从“折腾”到“开箱即用”:两种部署方式的直观对比 在深入评测之前,我们先来快速了解一下两种方式的根本区别。这能帮你立刻明白,为什么这个镜像值得关注。 1.1 传统本地部署:技术爱好者的“闯关游戏” 如果你尝试过在个人电脑上部署Stable Diffusion,可能会对以下步骤记忆犹新: * 环境搭建:安装Python、配置CUDA、安装PyTorch,版本兼容性问题层出不穷。 * 模型管理:手动下载数GB的基础模型和各类LoRA模型,文件路径配置复杂。 * WebUI启动:通过命令行启动,需要处理端口占用、依赖缺失等各种报错。 *