扩散模型极简:从「满屏噪声」到「一张图」
一、背景
文生图产品(Midjourney、SD、DALL·E)这几年特别火:输入一句话,出一张 构图、光影、风格 都像样图。背后一大类技术是 扩散模型(Diffusion Model)——和 自回归一个个吐 token 的 LLM 不同,图像往往是 高维像素网格,扩散走另一条路:先学怎么给图加噪,再学怎么一步步去噪。
做应用的同学不必一开始就啃完全部数学,但懂 「前向加噪 / 反向去噪 / 条件(文本)怎么注入」,读 API参数(步数、CFG、种子)会顺很多;也能和 多模态 LLM 文章里「谁生成图、谁生成文」的分工对上号。
二、核心概念和核心原理(详细解答+通俗解释)
(一)核心概念(先通俗,再详细)
1. 前向过程——把清晰图磨成噪声通俗解释:像一张照片反复 复印失真,最后只剩雪花点;数学上是逐步加高斯噪声,已知 每一步的噪声分布。详细解答:前向是 固定规则,用来 造训练数据对(干净图 ↔ 各步噪声图)。
2. 反向过程——从噪声里「抠」出图通俗解释:模型学 预测这一步该减多少噪声,重复多步,慢慢显出结构。详细解答:采样步数 越多通常越细,但 更慢;少步采样依赖 蒸馏/加速算法。
3. 条件生成——文本怎么控制画面通俗解释:把 文本 Embedding 通过 Cross-Attention 或 Classifier-Free Guidance 注入 U-Net / DiT。详细解答:CFG scale 越大越「贴提示」,太大可能 过饱和、构图僵。
(二)核心原理(通俗拆解,一步一步讲清楚)
第一步:训练目标常是预测噪声通俗解释:网络输入 当前噪声图 + 时间步 t,输出 应去掉的噪声;MSE 拟合。详细解答:Stable Diffusion 类还在 潜空间(latent) 做扩散,降低分辨率维度,省算力。
第二步:采样是迭代去噪通俗解释:从纯噪声出发,for循环 T 次,每次 减一点;不同 调度器(scheduler) 是不同减噪配方。详细解答:随机种子 固定可复现;换种子换多样性。
**第三步:和 GAN、自回归图像的区别(直觉)**通俗解释:GAN 像 对抗博弈 生成;自回归图像 按块/按行生成;扩散 全局逐步细化,结构往往更稳。详细解答:各有优劣,扩散在 可控与质量 上近年占优。
三、补充进阶知识点(易懂不晦涩,适配新手进阶)
1. ControlNet / LoRA通俗解释:ControlNet 加边缘、深度等 条件;LoRA 低秩适配 风格/人脸。简单补充:和 LLM 的 LoRA 思想同源。
2. 视频扩散通俗解释:时间维 一起建模或 帧间一致性 约束;算力 远高于 单图。简单补充:与 多模态 里的视频理解是 相反方向(生成 vs 理解)。
3. 和之前知识点的关联****注意力 同样存在(U-Net/DiT);Embedding 把文本拉进条件空间;评测 看 FID/CLIP Score 与人类偏好;Agent 可 调用文生图工具 完成 UI 草图。
四、文章知识总结
- 背景:扩散 = 加噪再学去噪;文生图主流路线之一。
- 核心概念:前向固定、反向学习;条件用 cross-attn / CFG;潜空间扩散省算力。
- 核心原理:预测噪声 + 迭代采样;步数、调度器、种子是工程旋钮。
- 进阶:ControlNet、LoRA;视频更难;与 LLM 工具链结合。
- 核心逻辑:扩散不是 LLM,但「条件 + 迭代」直觉可以类比。
总结:把扩散想成 「雕刻」:从一团泥(噪声)慢慢修出形;读 API 文档里的参数时,你会知道 每个旋钮在动哪一步。