三分钟秒懂:Stable Diffusion 系列模型的 推理流程

📅 2026/6/23 2:08:37
三分钟秒懂:Stable Diffusion 系列模型的 推理流程
【一】前序目前常用的主流的AI模型分为两大类 LLM大语言模型 和 SD文生图扩散生成模型。LLM 是 基于 transformer架构核心靠 自注意力机制 生成数据。而 SD 是基于 diffusion扩散架构核心靠 逐步去噪 生成数据。transformer架构 相信大家都很熟悉了几乎天天都在用 接下来重点给大家聊聊 Diffusion 的 推理流程。【二】Stable Diffusion 完整推理流程先记住核心一句话LLM Transformer 是从左到右逐字生成文字Stable Diffusion 是从满是噪点的纯灰图一步步擦掉噪声、还原出清晰图片。1、核心基础组件C U VCLIP文本编码器Transformer结构你熟的自注意力你输入的提示词比如“一只白猫站在草地上”会交给CLIP Transformer把文字转换成一组数字向量文本特征。后面画图的核心网络UNet全靠这组向量知道你想要什么画面。UNetSD核心去噪网络卷积注意力混合不是纯Transformer唯一干活的模块接收「带噪声的图片潜空间张量 CLIP文字向量」计算出当前图片里噪声长什么样输出噪声预测值用来擦掉噪声。VAE解码器UNet处理的不是真实像素图是压缩后的小尺寸“潜空间数据”VAE负责把压缩数据还原成肉眼可见的RGB图片。2、完整推理分步 大白话流程以文生图为例步骤1处理文字提示词CLIP Transformer你输入正向prompt、反向prompt负面提示比如模糊、畸形、低画质CLIP用自注意力理解词语之间的关系把文字转成 固定长度 的数字向量反向prompt向量会约束模型不要生成向量对应的糟糕画面。步骤2生成一张纯随机噪声图潜空间程序先造一张全是杂乱白点黑点的“纯噪声底片”潜空间格式尺寸很小比如512图对应64×64潜图这是绘图起点。类比相当于一张完全糊掉、什么都看不见的照片。步骤3循环迭代去噪核心流程步数就是采样步数比如20/28步循环N次采样步数每一轮做三件事把当前带噪声的潜图 CLIP文字向量一起喂进UNetUNet计算识别出这张图里哪些是无意义噪声输出噪声预测采样器Euler/DPM等根据预测的噪声从原图里减去一部分噪声画面变清晰一点点循环逻辑通俗比喻第1轮全是噪点只能隐约看出一点轮廓第10轮物体轮廓、颜色出现第28轮几乎所有噪声擦干净物体细节、光影完整。和Transformer自注意力的核心区别Transformer一次只生成1个字依赖上文UNet每一步 修改整张图靠文本向量全局约束画面。步骤4去噪循环结束得到干净潜空间数据几十轮循环跑完噪声基本全部剔除现在得到一张压缩版的清晰图像数据还不能直接看。步骤5VAE解码输出最终图片把压缩潜图送入VAE解码器还原成正常RGB像素图片保存/展示。重点说明为什么需要采样步数噪声不能一次性全部擦掉一步擦干净会画面崩坏分多轮缓慢去除画面稳定、细节丰富。步数越高画面越好但速度越慢。UNet里也有注意力层Cross-Attention交叉注意力这是SD连接文字和图片的关键和自注意力有区别自注意力只看图片自身像素、文字自身单词交叉注意力图片像素作为Query文字CLIP向量作为Key/Value让图片每一处像素都对齐文字描述。简单说交叉注意力保证“图像中 猫 的位置 对应 文字 里的猫草 地对应 文字 里的草地”。3、举个生活化完整例子需求生成“阳光下的橘猫草坪高清写实”CLIP Transformer解析文字输出「橘猫、阳光、草坪」语义向量生成一张纯雪花噪点底片循环28次每次UNet根据文字向量擦掉不匹配“橘猫草坪阳光”的噪声轮廓慢慢浮现前5步只有色块分不清是什么中间10步出现猫的轮廓、绿色地面、黄色光斑最后几步细化毛发、光影、草叶细节循环结束VAE把压缩底片转成真实照片输出图片。