扩散模型与图像生成

Midjourney、Stable Diffusion、即梦这些图像生成工具共同依赖的一套原理。

阅读约 5 分钟更新于 2026-07

把一张图逐步加噪,再学着把噪去掉

扩散模型的训练过程可以这样理解:拿一张清晰图片,每一轮往里面加一点点随机噪点(也就是"扩散"),记录下"加噪前是什么样、加噪后又是什么样"。反复加几十次之后,图片就完全变成了没有意义的雪花。

同时训练一个神经网络,让它学会"给定一张带噪的图,预测去噪后应该是什么"。训练好之后,从一张纯噪声出发,让网络一步步去噪,最终就能生成一张新图。

提示词是怎么"接"到图像上的

光会"去噪"还不够——用户输入的是文字提示词。要让网络知道"去噪的方向",需要一个文本编码器先把提示词转成一串数字(向量)。这串向量会作为条件,在去噪的每一步都参与计算,把生成过程"引向"符合文字描述的结果。

所以一个图像生成系统其实由两部分组成:一个懂文字的编码器(通常本身是个语言模型),和一个懂图像的扩散模型。两者在大量"图 + 描述"配对数据上联合训练。

它擅长什么,不擅长什么

扩散模型对局部细节(光影、纹理、材质)非常擅长,对全局结构(手指数目、文字、空间关系)常常出错。原因在于它的去噪过程是逐像素、局部相关性强,全局约束弱。

这解释了为什么"画一只狗在草地上跑"效果惊艳,"画六根手指的手"却常常失败。前者是局部特征的组合,后者依赖对解剖结构的全局理解。

与 GAN 的区别

在扩散模型流行之前,主流的图像生成方法是 GAN(生成对抗网络)。GAN 通过两个网络的对抗训练(一个生成、一个鉴别)来逼近真实图像分布,训练过程不稳定。

扩散模型的训练目标更直接(预测噪声),更稳定,生成质量也更高,因此在 2022 年之后迅速取代 GAN 成为主流。