AI绘画的原理是什么?从扩散模型到出图机制

AI绘画的原理是什么?从扩散模型到出图机制
AI绘画扩散模型原理,从噪声到清晰图像的生成过程示意

简单说:AI绘画的核心是扩散模型——先把一张清晰图逐步加噪声到看不清,再训练神经网络学会"逆向去噪",推理时从纯噪声开始一步步擦掉噪声,擦出的就是新图。文字通过CLIP编码成向量引导去噪方向,提示词本质是在指挥擦噪声往哪擦。

每隔几天就有人问我"AI绘画原理到底是不是搜索引擎找图拼图"。老实讲真不是。这事不搞清楚,你写提示词永远是盲人摸象。这篇我把扩散模型、CLIP、采样器这些名词讲成人话,结合我自己跑图踩的坑,让你看完就知道你那行提示词到底影响了哪个环节。

扩散模型:从加噪声到去噪声

原子答案:扩散模型分两步——前向扩散把图加噪声直到变纯噪声,反向扩散训练神经网络逐步去掉噪声还原图,推理时直接从纯噪声出发逆向去噪生成新图。

打个比方。你往一杯清水里滴墨水,墨慢慢扩散开变浑浊,这是前向扩散,不可逆地"毁图"。训练时AI看了几亿张"加墨过程"的视频,学会逆向操作——从浑浊里把墨水抽回来,让水重新变清。推理时它面对的就是一杯已经全浑的"噪声水",按学到的规律一点点抽墨,抽出一张从未存在过的清晰图。

具体到代码层面,前向过程是固定的——按调度表给图加高斯噪声,T步后图变成纯噪声。反向过程是学出来的——一个 U-Net 神经网络预测"这一步噪声长啥样",然后从图里减掉。这个 U-Net 就是 SD、Midjourney 这些工具里最贵的那部分模型。

Stability AI 的技术博客,SDXL 的 U-Net 参数量约 26 亿,训练用了 LAION 数据集中数十亿张图文对,单次完整训练成本在百万美元量级。这就是为什么个人玩不起大模型从头训练,只能微调。

CLIP:把文字翻译成向量

原子答案:CLIP是OpenAI提出的图文对齐模型,把你的提示词编码成一个向量,和图像向量对齐到同一空间,扩散过程中U-Net用这个文字向量当"导航"决定去噪方向。

为什么写"a cat"模型就能画猫?因为CLIP训练时见过海量"猫的图+a cat的文字"配对,它学会把cat这个词和猫的视觉特征向量拉到空间里很近的位置。你输入cat,CLIP吐一个向量,U-Net拿这个向量当指南针往"猫的方向"去噪。CLIP最早由 OpenAI 在2021年公开,是后来DALL-E系列能"听懂人话"的基石。

这解释了几个常见困惑。第一,为什么英文词比中文词好用?因为CLIP训练语料英文为主,中文向量覆盖稀疏。第二,为什么权重词加括号有效?(cat:1.5)其实是把cat的向量在引导方向上放大1.5倍,U-Net更使劲往猫方向去。第三,为什么写一堆冲突词AI会鬼畜?因为多个向量互相拉扯,U-Net不知道听谁的。

想入门写词可以看 SD提示词合集,理解了CLIP再看那些词会有新的体会。

潜在空间:为什么不直接在像素上扩散

原子答案:潜在扩散(Latent Diffusion)把图像先压到一个小得多的潜在表示上做扩散,再解码回像素,比直接在像素上扩散快几十倍、省显存几十倍,这是SD能在4GB显卡上跑起来的关键。

一张512×512的RGB图有78万个数值,直接在这上面跑扩散每步计算量惊人。SD用了一个叫VAE的编码器,把512×512压成64×64×4的潜在张量(数据量缩小64倍),扩散在潜在空间里跑完几十步,再用VAE解码器还原成像素图。视觉细节几乎无损,但算力省下一大截。

这也解释了为什么SD对"局部细节"控制力弱——它工作在压缩后的潜在表示里,对单个像素的控制是间接的。你写"把左眼改成蓝色",潜在空间里没有"左眼"这个独立维度,U-Net只能模糊地响应,所以局部修改经常牵一发动全身。

采样步数和采样器到底在干啥

原子答案:采样步数是去噪声的迭代次数,步数太少图没擦干净显糊、太多没收益反而细节漂移;采样器是去噪的数学算法,Euler快、DPM++平衡、DDIM适合图生图。

我自己的经验:文生图一般20到30步够用,再往上加收益肉眼几乎看不见,反而会偶现细节轻微漂移(比如猫胡须方向变了)。低于15步图就开始糊,纹理细节都没磨出来。

采样器选择我讲个对比。Euler a 最快但细节偏柔和,跑草稿用;DPM++ 2M Karras 是综合最稳的,出正图首选;DDIM 在图生图改图时保形最好,因为它的去噪路径可逆。新手直接抄 DPM++ 2M Karras + 25步 + CFG 7 这套默认值,能解决八成场景。

这块和电脑配置直接挂钩,参考 AI绘画电脑配置 看你卡够不够跑高步数。

CFG Scale:文字引导强度的旋钮

原子答案:CFG Scale 控制模型对提示词的服从程度,值越低越自由发挥、越高越死扣提示词但容易过饱和,推荐区间5到9,写实战题材可调到8到9。

CFG本质是放大文字引导信号的倍数。CFG=1表示完全无视提示词AI瞎画,CFG=20表示疯狂服从提示词但画面会出现塑料感、过曝、颜色饱和到刺眼。我画人像常用7左右,画风景可以拉到8.5让色彩更"听话",二次元萌系反而要降到5.5才有呼吸感。

翻车场景很多。CFG过高会出现"提示词堆砌感"——眼睛蓝到发紫、头发金到发白,像P过头的网图。CFG过低又会出现"AI自由发挥"——你写cat它给你画狗。记住CFG是调节服从度和自然度的天平,没标准答案要试。

一个真实出图流程拆给你看

原子答案:典型出图流程=提示词经CLIP编码→生成随机潜在噪声→U-Net按采样器迭代25步去噪(每步读CLIP向量引导)→VAE解码潜在张量为像素图,全流程在中端显卡上约耗时10到15秒。

说具体点。你输入"a cute orange cat sitting on windowsill, soft afternoon light",文本编码器CLIP把这行词变成768维向量。模型从随机的64×64×4潜在噪声出发,第1步U-Net看着CLIP向量猜"这块噪声里应该有橙色毛绒质感",减掉一部分噪声;第2步再猜"窗户轮廓该出现了",继续减……25步后潜在张量里能看出猫和窗户,VAE解码放大到512×512像素,出图。

我实测RTX 3060上跑SDXL这套流程,512×512出图约8秒,1024×1024约18秒。这就是为什么大家觉得AI绘画"等十几秒出图"——绝大部分时间烧在U-Net那25次迭代上。

不同引擎原理一致但路径有差异。DALL-E 3原理仍是扩散但加了强化学习对齐人类偏好;Midjourney闭源未公开细节但据其创始人透露仍以扩散为主干。这块想看工具差异可以读 AI绘画软件横评

常见问题

AI绘画是不是从网上找相似图拼出来的?

不是。扩散模型从纯随机噪声出发生成,不检索不拼贴。训练阶段它学的是数据分布规律,推理阶段是创造不是搜索。这就是为什么它能画出训练集里根本不存在的场景组合。

为什么有些词AI死活画不出来?

两种情况。一是CLIP训练时这个词的样本太少,向量指向模糊;二是词太抽象(如"自由""孤独")没有直接视觉对应。解决方法是改用视觉化描述,把"孤独"换成"a lone figure standing in empty snowfield"。

采样步数越多图越清晰吗?

不是。步数到达临界值后图基本定型,再加只是徒增耗时,某些采样器反而会出现轻微细节漂移。一般25到30步是性价比最高的区间,没必要追求100步。

提示词顺序会影响出图吗?

会。靠前的词权重天然更高,这是CLIP和注意力机制的特性。所以核心主体放最前面,氛围细节往后排,负向词单独写一块。乱排顺序是新手常翻的车。

理解AI绘画原理不是为了装懂,是为了你下次写提示词知道自己在拧哪个旋钮——CFG、步数、CLIP权重这些参数背后都是有道理的。这篇讲得有点长,希望能帮你从盲调进阶到有意识地调。如果你身边也有朋友天天对着出图一脸懵,把这篇转给他,比让他继续瞎试强。更多原理相关的实战可以翻 AI画不出修复,那里讲怎么把这套原理用去定位问题。