Chapter 01

什么是 Diffusion · 模型家族全景

动手跑图之前,先建立一层直觉:Diffusion 到底在干嘛,为什么它能干过 GAN,SDXL / Flux / SD3 这些名字分别对应什么,我该用哪个。这章不堆公式,把脑中画面搭起来,后面每一章都好懂。

一、一句话理解 Diffusion:从噪声"雕刻"出图像

想象一块大理石——米开朗基罗说"雕像本来就在石头里,我只是把多余的部分去掉"。Diffusion 模型做的事一模一样:

为什么要分成很多步?因为一次性从纯噪声变出完整图像太难——把任务拆成"每步只优化一点点",每一步的模型负担都很小,训练和推理都稳定。这是 Diffusion 能压 GAN 一头的核心原因之一。

记一句话 Diffusion = 一个"预测当前图像里有多少噪声"的神经网络,反复调用它、每次减去它预测的一部分噪声——图像就从噪声里长出来了。

二、训练阶段 vs 推理阶段

两阶段镜像,理解任何一端另一端就通了:

训练(forward + 学反过程): 原图 ──加噪声 t 步──▶ 噪声图 │ U-Net/DiT 预测"加了多少噪声" │ 与真实噪声对比,算 loss,反向更新 推理(reverse,一步步去噪): 纯噪声 ──去一点──▶ ──去一点──▶ ... ──▶ 清晰图 ↑ ↑ 每步用训练好的模型预测噪声量 每步同时把 text prompt 喂进去,决定"去哪个方向"

训练时模型学的是"给我一张带噪声的图,你告诉我里面有多少噪声";推理时把这个能力反复调用,每调一次减掉一部分,图就出来了。推理步数(steps)本质就是"调多少次",20-30 步一般就够——不是越多越好,到一定步数后收益递减。

三、Latent Diffusion:SD 之所以能跑在家用显卡上

原始的 Diffusion 直接在像素空间去噪——512×512×3 有 78 万维,VRAM 和时间都顶不住。Stable Diffusion 的关键突破:先用一个 VAE 把图像压到 latent 空间(8×64×64 ≈ 3 万维),在那里做 diffusion,最后再用 VAE 解码回像素

VAE(Variational AutoEncoder)
一个压缩+解压的网络。编码器把 512×512 图压成 64×64 的 latent,解码器再还原。压缩率 8× 但语义信息几乎无损——因为神经网络学到了"图像的本质结构",不是像 zip 那样按像素压。
Latent Space
VAE 编码后的那个低维空间。SD 的所有去噪、LoRA、ControlNet 其实都在 latent 空间里工作,最后才解码。所以你看 ComfyUI 节点里很多叫 "Latent xxx",不是 Image。
U-Net / DiT
预测噪声的神经网络本身。SD1.5/SDXL 用 U-Net(带跳连的卷积网络),SD3/Flux 换成了 DiT(Diffusion Transformer,效果更好但更重)。
Text Encoder
把文字 prompt 编成向量喂给 U-Net/DiT。SD1.5 用 CLIP ViT-L,SDXL 用两个(CLIP-L + CLIP-G),SD3/Flux 加入了 T5-XXL(理解长句与抽象概念更强)。

四、为什么 Diffusion 打败了 GAN

维度GANDiffusion
训练稳定性难,动辄崩溃(mode collapse)稳定,loss 单调下降
样本多样性有 mode collapse 风险天生覆盖整个分布
文本控制难加入 text conditionclassifier-free guidance 原生支持
可控性靠 z 空间插值,难精确ControlNet / LoRA / Inpaint 生态完整
速度单次 forward 就出图,快要 N 步,慢(但有 LCM/Turbo 加速)

Diffusion 唯一输的就是推理速度,但工业上能做很多事情来弥补——这也是后面 LCM、Turbo、投机采样这些技巧出现的原因。

五、模型家族全景(2024-2026 主流)

模型架构text encoder分辨率甜点显存门槛定位
SD 1.5U-NetCLIP-L5124-6GB古董但生态最全,LoRA/插件几万个
SDXL 1.0 / TurboU-Net(更大)CLIP-L + CLIP-G10248-12GB质量跃升,商用主力
SD3 / 3.5 Medium/LargeDiT(MMDiT)CLIP-L+G + T5-XXL102412-24GBStability AI 新一代,长 prompt 强
Flux.1 [dev] / [schnell]DiT(改进)CLIP-L + T5-XXL1024-204816-24GBBlack Forest Labs,当前最强开源
Pony V6 / IllustriousSDXL 微调CLIP-L + CLIP-G10248-12GB二次元/NSFW 专精
Hunyuan DiT / WanDiT多语102412-24GB国产,中文理解好
LCM / Turbo / Lightning蒸馏版 SDXL同上10248GB1-4 步出图,实时场景
给你一个选型速查
① 4-6GB 老卡、只想玩玩 → SD1.5 + Realistic Vision / AnythingV5
② 8-12GB 主流卡、商用质量 → SDXL(Juggernaut/DreamShaper)或 Pony(二次元)
③ 16GB+ 想要当前最强画质 → Flux.1 dev
④ 实时/批量低延迟 → SDXL Lightning(4 步)或 LCM

六、Checkpoint / VAE / Refiner / Base:词汇表

Checkpoint(.safetensors / .ckpt)
"整个模型"——U-Net + VAE + Text Encoder 打包成一个文件(SD1.5 约 2GB,SDXL 约 6GB,Flux 约 12GB)。你在 Civitai 下载的大模型文件就是这个。
VAE(独立文件)
有时 checkpoint 自带的 VAE 效果不好,可以替换成社区 VAE(sdxl_vae.safetensors)。SDXL 上大多数 checkpoint 自带 VAE 够用,SD1.5 常需要替换。
Base + Refiner(SDXL 的设计)
SDXL 官方原本设计是两阶段:Base 跑前 20 步出构图,Refiner 跑后 5 步出细节。实际上社区发现 Base 单独用效果也很好,Refiner 多数场景可以省。
LoRA(.safetensors,几 MB 到几百 MB)
轻量微调权重——只改 U-Net 的一部分,不改 checkpoint。加载时叠加到 base checkpoint 上。参见第 6 章。
Embedding / Textual Inversion(.pt,几 KB)
只在 text encoder 里加一个"新词"的向量,不改 U-Net。比 LoRA 更轻,效果也更弱,适合学特定概念。
ControlNet(.safetensors,1-3GB)
额外的条件注入网络——给一张参考图(边缘/深度/姿态)就能控制生成图的结构。参见第 7 章。

七、ComfyUI vs WebUI(AUTOMATIC1111):为什么选 ComfyUI

维度WebUI (A1111/Forge)ComfyUI
界面表单 + 滑块,上手 5 分钟节点图,上手半小时
可重现靠截图+参数记忆工作流 = JSON,可版本控制
灵活度固定 pipeline任意拼 pipeline,Flux/视频/新模型第一个接入
性能慢,重启频繁图节点缓存,同参数秒出
API有但粗糙原生 HTTP/WS,prompt JSON 直接跑
社区最大,插件多增长最快,新特性率先
适合小白玩票工程化、生产、自动化

这本教程主轴是 ComfyUI——但原理部分在哪个 UI 都通用。

八、一张图看清 ComfyUI 的"最小"文生图工作流

┌─────────────┐ ┌──────────────────┐ ┌──────────────┐ │ CheckpointLoader│──▶│ CLIP Text Encode(正)│──▶│ │ └─────────────┘ └──────────────────┘ │ │ │ │ │ │ ┌──────────────────┐ │ KSampler │──▶ Latent ──▶ VAE Decode ──▶ Save Image └────────▶│ CLIP Text Encode(负)│──▶│ (steps/cfg/seed) │ └──────────────────┘ │ │ │ │ ┌──────────────────┐ │ │ │ Empty Latent Image(分辨率)│──▶│ │ └──────────────────┘ └──────────────┘

这张图你先不用细看——第 2 章会带你手把手搭。现在建立印象:模型 + 正反 prompt + 空 latent(画布) + 采样器 是一切 SD 图像生成的四大件。

九、显存、硬盘、模型大小账

资源最低舒服豪华
VRAM4GB(SD1.5 fp16)12GB(SDXL + 1-2 LoRA)24GB+(Flux dev / 视频)
RAM16GB32GB64GB(大模型切换)
硬盘50GB(两三个 checkpoint)500GB(10+ checkpoint + LoRA 库)2TB+(视频/Flux 生态)
VRAM 不够怎么办?
ComfyUI 有 --lowvram / --medvram / --novram 三档;GGUF/NF4 量化版 Flux 能把 12GB 模型塞进 6GB;社区还有 MultiGPU 节点做跨卡分片。实在不行,用云——第 12 章讲 RunPod Serverless 起价 $0.00044/秒。

十、本章小结 + 下一章预告

记住:
① Diffusion = 反复"预测噪声 + 减去一部分",从随机噪声雕出图像。N 步推理,文字 prompt 在每一步决定方向。
② Stable Diffusion 的突破是 latent diffusion——在压缩后的 latent 空间里做去噪,家用显卡就能跑。
③ 模型家族按升级顺序:SD1.5 → SDXL → SD3 / Flux。选型看显存和用途,不追最新。
④ ComfyUI 相比 WebUI 的核心优势:工作流 = JSON,可版本化、可 API 调用、灵活度极高——工程化的唯一解。

下一章我们装 ComfyUI,跑第一张图——你会看到上面这个"模型 + 正反 prompt + 空 latent + 采样器"四大件真实长什么样。