一、一句话总览
从纯随机噪声出发,在文本提示词的引导下,一步步减去噪声,最终"雕刻"出一张清晰图像。
二、核心原理:扩散模型
两个阶段
| 阶段 | 方向 | 操作 | 目的 |
|---|---|---|---|
| 训练 | 清晰 → 噪声 | 加噪声 | 让模型学会识别噪声 |
| 生成 | 噪声 → 清晰 | 去噪声 | 得到图像 |
训练学"加",生成用"减",这就是扩散模型的核心对称性。
三、完整生成流程(文生图)
① 文字提示词
│
▼
② [CLIP 文本编码器] → 文本特征向量
│
▼
③ [Empty Latent Image] → 纯噪声图(潜空间)
│
▼
④ [KSampler] 循环去噪 N 次 ←── 文本特征作为引导
│
▼
⑤ 干净的潜空间图
│
▼
⑥ [VAE Decode] → 像素图像
│
▼
⑦ [Save Image] → 最终图片
四、每一步详解
① 输入提示词
- 正向提示词:你想要的内容
- 负向提示词:你不想要的内容
② 文本编码
- CLIP 把文字转成数值向量
- 这个向量贯穿整个去噪过程,作为"方向引导"
③ 生成纯噪声
Empty Latent Image生成随机数值张量- 例如 1024×1024 图 → 潜空间 128×128×4
- 全是随机数,没有任何图像信息
④ KSampler 去噪(核心)
每一步重复:
- 模型看着当前带噪图,预测里面的噪声
- 用 CFG 公式结合提示词方向
- 减掉预测的噪声
- 得到稍微干净一点的图
- 重复 N 次(N = 采样步数)
CFG 公式:
最终噪声预测 = 无条件预测 + CFG ×(有条件预测 − 无条件预测)
- CFG 越大 → 越听提示词
- CFG 越小 → 越自由发挥
⑤ 得到干净潜空间图
- 去噪完成后,潜空间里已是"确定数值"
- 但人眼还看不懂,需要解码
⑥ VAE Decode
- 把潜空间图还原成像素图
- 潜空间(128×128×4)→ 像素(1024×1024×3)
⑦ 保存输出
- 得到最终可见的图片
五、三个核心参数
| 参数 | 控制什么 | 推荐值 |
|---|---|---|
| 采样步数 Steps | 去噪次数 | 20~30 |
| CFG Scale | 听提示词的程度 | 5~8 |
| 分辨率 | 图像大小 | SDXL 用 1024 |
六、关键概念回顾
| 概念 | 含义 |
|---|---|
| 像素空间 | 人眼可见的 RGB 图像世界 |
| 潜空间 | AI 内部压缩表示,计算在此进行 |
| 纯噪声图 | 全随机数值,生成的起点 |
| 去噪 | 把随机数值逐步修正为确定值 |
| VAE Encode | 像素 → 潜空间(压缩) |
| VAE Decode | 潜空间 → 像素(还原) |
七、为什么在潜空间做?
| 对比 | 像素空间 | 潜空间 |
|---|---|---|
| 尺寸 | 1024×1024×3 | 128×128×4 |
| 数据量 | ~314 万 | ~6.5 万 |
| 速度 | 慢 | 快约 48 倍 |
| 显存 | 大 | 小 |
扩散全程在潜空间,最后才 Decode 回像素 ------ 这就是 Latent Diffusion。
八、常见误区
| 误区 | 真相 |
|---|---|
| AI 凭空画出图像 | 从噪声逐步去噪而来 |
| 去噪 = 擦掉噪点 | 去噪 = 把随机数值修正为确定值 |
| 提示词直接画图 | 提示词只是引导方向 |
| 步数越多越好 | 20~30 步后收益递减 |
| 扩散在像素上做 | 实际在潜空间做 |
九、终极记忆口诀
噪声是起点,去噪是过程。
训练学加噪,生成反着减。
提示词指方向,CFG 定听话。
步数管细腻,潜空间里算。
Decode 回人间,像素终可见。