Stable Diffusion 是怎么从一团噪点里「画」出一张图的?

如果你在 2022 年第一次看到”输入一句话,AI 就生成一张图”,那种震撼至今想来还很清楚。把这件事带入大众视野的,很大程度上是一个叫 Stable Diffusion 的开源模型。它让文生图不再是实验室里的论文,而是任何人有张显卡就能跑起来的东西——从那以后,文生图真正变成了一项人人都能上手、随时可以定制的创作工具。

Stable Diffusion 是怎么从一团噪点里「画」出一张图的?

Stable Diffusion 是什么

Stable Diffusion 是 Stability AI 在 2022 年发布的开源文生图模型。它最革命性的一点,是”开源”——模型权重公开、可以在本地运行、可以自由微调和商用(在许可证范围内)。这直接催生了一个庞大的社区生态:成千上万的衍生模型、插件、工作流,让文生图从”云端服务”变成了”人人可自建”的能力。

在此之前,主流的文生图模型(如 DALL-E、Midjourney)都是闭源的,用户只能通过 API 或网页用。Stable Diffusion 的出现,改变了这个局面——它把”文生图”这一能力彻底民主化了。

核心原理:扩散模型是怎么”画”出图的

理解 Stable Diffusion,关键在”扩散”两个字。它的思路很反直觉:不是直接学”从文字到图”,而是学”从噪声到图”。

整个过程可以分两步理解:

训练阶段(正向扩散 + 学习去噪):先拿一张真实的图片,一步步往上加高斯噪声,直到它变成一团完全看不清的纯噪声。模型要学的,就是”给定一张加了噪声的图,把噪声去掉一点,还原出清晰一点的样子”。通过海量图片的训练,模型掌握了”去噪”的本领。

生成阶段(反向去噪):从一团纯随机噪声开始,让模型一步步”去噪”——每一步都根据文字提示,把噪声往”符合描述的画面”方向修正一点。经过几十步迭代,噪声就慢慢”显影”成一张清晰的图。

所以,文生图不是”凭空画”,而是”从噪声里逐渐雕刻出图像”。你可以把它想象成雕刻家从一块大理石里一点点凿出雕像的过程——初始的噪声是大理石,去噪过程是凿刻,文字提示是”你想要雕成什么样”的说明书。

为什么叫”潜在扩散”:在压缩空间里干活

如果直接在像素层面做扩散,计算量会大到不现实——一张 512×512 的图有 26 万个像素,高清图更是天文数字。Stable Diffusion 用了一个关键技巧:潜在扩散(Latent Diffusion)

它先训练一个”变分自编码器”(VAE),把图片压缩到一个更小的”潜在空间”(latent space)里表示——这个空间里的数据量比原始像素小得多,但保留了画面的核心信息。扩散过程在潜在空间里进行,最后再通过 VAE 解码回像素。这一步让计算量骤降,也是 Stable Diffusion 能在消费级显卡上跑起来的原因。

扩散过程的数学直觉:正向加噪、反向去噪

如果不满足于”从噪声变图”的比喻,想再深入一层,可以把扩散过程拆成两个方向来理解。

正向过程(加噪):从一张清晰图片 x₀ 出发,每一步按照一个预先设定好的”噪声调度”(noise schedule)往里掺一点高斯噪声,得到 x₁、x₂……直到第 T 步,图片 xₜ 已经几乎等同于纯高斯噪声。这个过程是固定的、不需要学习的,纯粹是往图里加噪声。

反向过程(去噪):这是模型要学的部分。给定第 t 步的带噪图 xₜ,模型要预测”这一步该去掉多少噪声”,从而还原出更接近 x₀ 的图。反复执行,就从纯噪声一步步走回清晰图片。训练时,模型拿”加了 t 步噪声的图”当输入,目标是最小化它预测的噪声和真实噪声之间的误差。

这套机制之所以能工作,核心在于”每一步只去一点点噪声”——把”从噪声直接生成整张图”这个极难的任务,拆解成了很多个”去掉一点点噪声”的简单子任务。而文字提示(prompt)的作用,是通过条件机制(conditioning)把”你要什么样的图”注入到去噪过程的每一步里,引导噪声往符合描述的方向收敛。理解了这一点,你就明白为什么文生图需要”多步迭代”,而不是一步到位。

VAE:压缩与还原的幕后功臣

前面提到 Stable Diffusion 用”潜在空间”来省计算,这个压缩和解压的任务,由一个叫 VAE(变分自编码器,Variational Autoencoder)的模块完成。

VAE 有两个角色:编码器(encoder)和解码器(decoder)。编码器把一张高分辨率的像素图片,压缩成一个低维的潜在表示(latent),这个表示保留了画面的主要结构和语义,但数据量小得多。扩散过程就在这个潜在表示上进行。最后,解码器再把去噪后的潜在表示还原成一张清晰的像素图片。

这样做的好处是计算量的大幅下降:在 64×64 的潜在空间里做扩散,比在 512×512 的像素空间里做扩散,要便宜得多。代价是 VAE 本身也会带来一些信息损失——这解释了为什么某些文生图模型在高频细节(如毛发、细小的文字)上偶尔会失真,因为压缩过程丢失了一部分细微信息。

提示词工程:从”随便写”到”精准控图”

文生图的提示词(prompt)有它自己的套路,和聊天模型不太一样。掌握一些基本技巧,出图质量能明显提升。

  • 主体 + 细节 + 风格 + 质量词:一个完整的提示词通常包含”画什么主体”、”什么细节/动作/环境”、”什么风格(写实/动漫/油画)”、”什么质量词(高清、细节丰富)”。
  • 负向提示词同样重要:告诉模型不要什么,如”模糊、低质量、变形的手、多余的手指、水印”。文生图对”手”的处理一直是难点,负向提示词能有效减少翻车。
  • 风格与艺术家风格词:SD 生态里常用一些风格词(如 “trending on artstation”、”unreal engine”、”masterpiece”)来引导风格,虽然这些词多少有点”玄学”,但社区经验表明它们确实影响出图。
  • 权重与括号:一些工具支持用括号或权重数字来强调/弱化某个词,比如 “(红色头发:1.3)” 表示加重这个词的影响。

提示词的本质,是把你的意图翻译成模型”能听懂”的描述。多参考社区里成功的提示词案例,是最快的入门方式。

版权、安全与伦理:开源的另一面

文生图的爆发也带来了一连串争议,值得每个使用者了解。

训练数据版权:扩散模型是在海量网络图片上训练的,这些图片是否获得了授权,一直存在法律争议。一些艺术家和版权方对模型公司提起了诉讼,认为未经许可使用其作品训练模型构成侵权。这个问题至今没有定论,也提醒使用者:用 AI 生成商用图片时,要留意潜在的版权风险。

深度伪造与滥用:文生图技术可以被用来生成逼真的虚假照片、伪造他人形象,这带来了严重的伦理和社会风险。主流平台和模型都加入了内容审核和水印机制来缓解,但开源模型因为可自由部署,监管难度更大。

敏感内容:开源模型的自由部署,意味着内容过滤的责任更多落在使用者和部署者身上。做产品时,需要自己考虑内容安全策略,而不是依赖模型自带过滤。

理解这些,不是为了劝退,而是为了负责任地使用这项技术——开源带来自由,也带来相应的责任。

从 SD1.5 到 Flux:一条演进线

文生图模型这几年迭代极快,理清主线能帮你少踩坑。

Stable Diffusion 1.5(SD1.5):2022 年的经典版本,U-Net 架构,约 8 亿参数。虽然画质和文字理解已经落后,但生态极其成熟,衍生模型、LoRA、插件最多,硬件要求最低(4GB 显存能跑)。

SDXL:2023 年的大版本,约 35 亿参数,画质、细节、构图明显提升,仍然是 U-Net 架构。8GB 显存可跑,是目前生态里”质量与硬件门槛”平衡得比较好的一个。

SD3:2024 年发布,架构从 U-Net 转向了 DiT(Diffusion Transformer),约 80 亿参数,文字渲染有所改善。

Flux:2024 年 8 月由 Black Forest Labs 发布——注意,这家公司正是当初开发 Stable Diffusion 的核心团队离开 Stability AI 后创立的。Flux 同样用 DiT 架构,约 120 亿参数,分三个版本:Pro(最高质量、付费 API)、Dev(开发版、非商用)、Schnell(快速版、Apache 2.0 可商用)。Flux 在照片真实感、提示词遵循、文字渲染(能在图里生成可读文字)上大幅领先,成为开源文生图的新标杆。

一句话总结这条线:架构从 U-Net 走向 DiT,参数从 8 亿涨到 120 亿,画质和文字理解越来越强,硬件门槛也越来越高

这些参数到底是干什么的

玩过文生图的人,都会遇到一堆让人头大的参数。挑几个最常用的讲清楚:

  • 采样步数(Steps):去噪的迭代次数。步数越多,画面通常越精细,但耗时也越长;步数太少,画面会糊、细节缺失。SD 常用 20-30 步,Flux Schnell 靠蒸馏技术 1-4 步就能出图。
  • 采样器(Sampler):去噪时用哪种数值算法,比如 DPM++ 2M Karras、Euler 等。不同采样器在速度和效果上有差异,DPM++ 系列是当前比较常用的选择。
  • CFG Scale(无分类器引导强度):控制”文字提示对画面的约束力”。CFG 越低,画面越自由、越有创意,但可能偏离描述;CFG 越高,越贴合文字,但过高会画面发灰、失真。常用值在 7 左右。
  • 种子(Seed):随机噪声的初始值。固定种子,同样提示词和参数就能复现同一张图;换种子,就换一种随机结果。这是”可控性”的关键。
  • 负向提示词(Negative Prompt):告诉模型”不要出现什么”,比如”模糊、低质量、多手指”。这是 SD 生态里很重要的一环。

理解了这些参数,你才不是”瞎调”,而是知道每个旋钮在控制什么。

生态:为什么开源这么重要

Stable Diffusion 最大的护城河,可能不是模型本身,而是它催生的生态。

模型广场:Civitai、Hugging Face 上有成千上万的社区微调模型,覆盖动漫、写实、建筑、奇幻等几乎你能想到的任何风格。

LoRA:一种轻量的微调技术,可以训练特定人物、风格、物体的”小补丁”,几 MB 到几十 MB,随时挂载卸载。

ControlNet:精确控制画面结构的神器——用线稿、姿势、深度图来约束构图,实现”精准控图”。

工具链:Automatic1111(A1111)是最流行的图形界面,ComfyUI 则是节点式的可视化工作流工具,功能更强但上手更难。

这些生态的存在,意味着开源文生图不只是”一个模型”,而是一整套可以深度定制的创作系统。这也是闭源服务(如 Midjourney)给不了的自由度。

采样器与生成参数:再深入一层

前面把几个核心参数过了一遍,这里再补几个容易混淆、但影响实际体验的点。

采样器(Sampler)的差异:采样器是”去噪时用哪种数值方法”的选择。早期常见的有 Euler、DDIM,后来 DPM++ 系列(尤其 DPM++ 2M Karras)成为主流——它在相同的步数下通常能出更好的图,收敛更快。不同采样器对”步数”的敏感度不同:有的采样器 20 步就够,有的需要更多步才能稳定。这也是为什么新手常困惑”为什么我换了采样器,图的质量变了”。

分辨率与尺寸:文生图模型对分辨率敏感。SD1.5 原生训练在 512×512,SDXL 在 1024×1024,超出原生尺寸太多,容易出现”画面重复、多头多手”的构图崩坏。想要更大尺寸,通常是先出小图再用高清放大(upscale)或 outpainting 补边,而不是直接一步生成超大图。

批次数与种子控制:同一提示词、不同种子,会得到完全不同的构图。实际工作流里,常见做法是”小步快跑”——先用低步数、多批次快速出多个候选,挑出构图满意的,再固定种子、提高步数精修。

理解这些参数,能把文生图从”碰运气”变成”有方法论”的过程:先粗后精、先探索后定稿。

从文生图到文生视频:多模态生成的一步之遥

理解了文生图的扩散原理,再看文生视频就顺理成章了——它们共享同一套”从噪声去噪”的底层逻辑,只是把”生成一张静态图”扩展成了”生成一连串在时间上连贯的帧”。

文生视频的难点在于”时间一致性”:一张图只要空间上合理就行,但一段视频里,前一帧和后一帧之间的人物、动作、光影必须连贯,否则就会”闪屏””变形”。为此,视频模型在扩散的基础上,加入了时间维度的建模,让去噪过程同时考虑”空间”和”时间”两个方向。

从 Stable Diffusion 到 Sora、可灵、Seedance 这些视频模型,可以看到同一条技术脉络:扩散模型 + 潜在空间 + 条件注入,只是把”图像”这一维扩展到了”视频”这一时空联合的维度。所以,把文生图搞懂,是理解更广阔的多模态生成世界(图、视频、甚至 3D)的起点。

什么场景该用哪个

  • 追求极致画质、要写实、要图里带文字、不差硬件 → Flux Dev/Pro。
  • 要快速迭代、要生态丰富、要自定义风格、硬件一般 → SDXL 或 SD1.5 生态。
  • 要商用、要可本地部署、数据要私密 → Flux Schnell(Apache 2.0)或 SDXL(OpenRAIL-M 允许商用)。
  • 纯要好看、不想折腾、能接受付费 → 直接用 Midjourney 或云端 API。

硬件门槛也要心里有数:SD1.5 大约 4GB 显存、SDXL 大约 8GB、Flux Dev 官方 FP16 版本推荐 24GB 以上(量化版可降到 13GB 左右)。

上手流程:从零到第一张图

如果你想把文生图跑起来,大致流程是这样的:

  1. 确认硬件:一张 NVIDIA GPU,SD1.5 需要约 4GB 显存,SDXL 约 8GB,Flux Dev 官方 FP16 版本推荐 24GB 以上(量化版可降到 13GB 左右)。没有独立显卡,可以用 Google Colab、RunPod 等云端方案。
  2. 选工具:新手从 Automatic1111(A1111)入手,界面友好、教程多;进阶用 ComfyUI,节点式工作流更灵活,适合搭复杂的 ControlNet + LoRA 组合。
  3. 下载模型:从 Hugging Face 或 Civitai 下载基础模型(SDXL 或 Flux),再按需下载 LoRA、ControlNet 模型。
  4. 写提示词:主体 + 细节 + 风格 + 质量词,配上负向提示词。
  5. 设置参数:采样器选 DPM++ 2M Karras,步数 20-30,CFG 7 左右,尺寸对齐模型的原生分辨率。
  6. 迭代精修:低步数快速出候选,挑构图好的固定种子、提高步数精修,必要时挂 LoRA 换风格、用 ControlNet 控构图。

这个流程的价值在于:每一步都有明确的”为什么”,而不是照着教程瞎点。理解了原理,遇到”画面糊””手指多””构图歪”这些问题时,你才知道该去调步数、加负向词,还是上 ControlNet。

这套流程的完整闭环,也是开源文生图相比闭源服务最大的吸引力所在——你可以控制从模型到参数到工作流的每一个环节,而不是只能”输入一句话、等一张图”。

小结

文生图的核心,是扩散模型”从噪声去噪成图”的思路,加上”在潜在空间里运算”的效率技巧。Stable Diffusion 把这一切开源,点燃了一个庞大的创作生态;而 Flux 的出现,则把开源文生图的质量推到了新的高度。理解原理和参数,不是为了成为炼丹大师,而是为了在”生成一张图”这件事上,从”碰运气”变成”有掌控”——知道每一步在干什么、出了问题该往哪个方向调。

主要菜单