授课讲义:第 05 次课:AI 绘图原理:Stable Diffusion 深度解析
一、上节课回顾
- 上节课三个要点:
- 强化学习用状态、动作、奖励和策略更新构成反馈闭环;奖励是可计算信号,不代表模型有情绪。
- RLHF 先用 SFT 建立指令行为,再用人类排序训练奖励模型,最后用强化学习优化对齐。
- DeepSeek-R1-Zero 才是跳过初始 SFT 的纯 RL 推理示例;DeepSeek-R1 采用多阶段训练,结合 rejection sampling、RL、SFT。
- 已经留下的基础:学生能区分训练信号来源,解释 CoT、GRPO、蒸馏和关键效率技术的边界。
- 今天要接上的问题:语言模型用 token 学“接着说什么”,绘图模型怎样从随机噪声中学出有结构的图像?
- 开场检查:请学生回答“R1-Zero 和 R1 的训练路径差别是什么?为什么不能把两者都叫纯强化学习?”
二、本节课主要内容和目标
本节课结束时,学生能:
- 用加噪和去噪解释扩散模型的前向训练与反向生成过程。
- 说明 VAE、潜在空间与像素空间的关系,并判断压缩带来的效率收益和细节损失。
- 解释 CLIP 文本编码器如何把提示词转成可引导生图的向量。
- 说明 U-Net 预测噪声、skip connection 和采样步数对生成质量与耗时的影响。
- 判断 CFG 强度、正向提示词和负面提示词如何改变图像与提示的关系。
- 区分 LoRA 与 ControlNet 的作用,并选择合适的风格化或构图控制方法。
| 顺序 | 知识点 | 学生能做到 | 课堂练习 | 时间 |
|---|---|---|---|---|
| M1 | 扩散模型 | 解释加噪训练与去噪生成 | 【M1-01】【M1-02】 | 10分钟 |
| M2 | 潜在空间与 VAE | 说明压缩、还原与效率边界 | 【M2-01】【M2-02】【M2-03】 | 12分钟 |
| M3 | CLIP 文本编码器 | 解释文字如何引导绘图 | 【M3-01】【M3-02】 | 12分钟 |
| M4 | U-Net 与采样步数 | 解释去噪网络和步数权衡 | 【M4-01】【M4-02】【M4-03】 | 15分钟 |
| M5 | CFG 与负面提示词 | 调整文本引导强度和排除目标 | 【M5-01】【M5-02】【M5-03】【M5-04】 | 16分钟 |
| M6 | LoRA 与 ControlNet | 区分风格微调和构图控制 | 【M6-01】【M6-02】【M6-03】【M6-04】 | 15分钟 |
课堂总时长 80 分钟,另留 10 分钟机动。教师准备一组加噪/去噪过程图、一张 VAE 压缩示意图、同一提示词在 CFG 3/7/15 下的三张图、有和无负面提示词对照图、10/30/50 步采样对照图,以及一张 ControlNet 线稿转图示例。
三、本节课知识内容
M1:扩散模型
问题开场:语言模型能根据上文预测下一个 token,但图像不是一条线性句子;一张图里有轮廓、纹理、光影、空间关系和细节。如果直接让模型“凭空输出所有像素”,搜索空间巨大,结果也难以稳定。怎么让模型先学会处理“坏掉的图”,再学会从噪声中重建图像?
旧解释失效:把绘图模型理解成“数据库里找图再拼贴”解释不了新构图和风格组合;直接训练一个从文本到完整像素图的映射,又会让模型同时承担理解语义、安排结构和渲染细节三件事,学习难度过高。GAN 曾用判别器对抗生成,但训练不稳定和模式坍缩仍是常见问题。
概念登场:扩散模型分前向过程和反向过程。前向过程把真实图片逐步加入高斯噪声,直到接近纯噪声;模型学习在给定噪声图和时间步下预测噪声。反向生成从一张随机噪声开始,反复预测并去除噪声,逐步得到清晰图像。它不是从数据库检索图片,而是在学到的分布中采样并生成新图。
机制拆解:训练时选取真实图,按时间步加入对应强度的噪声,把带噪图和时间步交给神经网络,让网络预测加入的噪声;损失函数衡量预测噪声与真实噪声的差距,训练因此变得稳定。生成时先随机采样一张噪声图,模型预测当前噪声,scheduler 计算去噪后的中间图,再进入下一轮,直到达到设定步数。种子决定初始噪声,所以相同种子、模型和参数更容易复现相似结果。
证据锚点:Ho 等人提出 Denoising Diffusion Probabilistic Models,用神经网络预测噪声,把扩散模型的质量和稳定性推到重要水平;论文报告在 CIFAR10 上取得 2.90 Inception Score,并在 LSUN 场景生成中表现良好。来源:Ho, Jain & Abbeel, 2020, Denoising Diffusion Probabilistic Models, arXiv:2006.11239。
类比展开:扩散模型像修复一张被霜花覆盖的玻璃画:加霜对应前向加噪,擦霜员学会判断“哪里像霜、哪里像画”对应噪声预测,一层层擦掉霜对应反向去噪。玻璃画对应图像,霜对应噪声,擦霜步骤对应 scheduler 的去噪更新。但它不是修复某一张真实旧画,而是从随机噪声生成新图;类比在“恢复原作”处失效。
边界与误读:扩散生成不是把脏图还原成原始照片,也不保证符合现实;它学习训练分布,可能复制训练数据中的偏差。步数少会粗糙,步数多也不一定持续变好,可能增加耗时并带来过度锐化。扩散模型还依赖提示词、模型权重和安全过滤器,不能把“能生成”当成“可发布”。
一句锚点:扩散模型先学会给图加噪,再学会从噪声中一步步去噪生成图。
课堂练习:讲完本模块后,在学习通完成【M1-01】识别扩散闭环、【M1-02】判断生成与修复边界。
M2:潜在空间与 VAE
问题开场:一张 512×512 的 RGB 图有近 79 万个像素值,批量训练和反复去噪时计算量很大。如果每一步都在完整像素空间里处理,普通电脑和云端服务都会很吃力。能不能先把图压缩成更小的表示,在这个小空间里完成扩散,再还原成图片?
旧解释失效:只降低分辨率会让模型丢掉大量轮廓和纹理,难以生成高清细节;只靠压缩算法也不够,因为扩散需要保留可还原的语义和结构特征。直接在像素空间训练扩散模型虽然效果好,但训练和推理成本高,部署门槛也高。
概念登场:VAE(Variational Autoencoder)包含编码器和解码器。编码器把像素图压缩到潜在空间,得到尺寸更小、维度更紧凑的特征;解码器再把潜在特征还原成像素图。Latent Diffusion 不直接对像素做扩散,而是在潜在空间中加噪和去噪,所以 Stable Diffusion 属于潜在扩散模型。
机制拆解:训练或生成前,图像先经 VAE 编码器压缩;以 512×512 RGB 图为例,常见 SD latent 的空间尺寸约 64×64,并带有若干通道。scheduler 在这个 latent 上加噪,U-Net 在 latent 中预测噪声,反复更新后仍得到 latent 图像;最后 VAE 解码器把它还原成像素图。这样把大部分迭代计算从像素空间搬到低维 latent,显著降低显存和耗时。但压缩不是无损复制,细小纹理、手部、文字和复杂边缘可能出现误差。
证据锚点:Rombach 等人提出 Latent Diffusion Models,把扩散过程放入通过自编码学习得到的潜在空间,并用交叉注意力引入文本等条件;论文说明该方法在保持质量的同时显著降低训练和推理计算需求。Stable Diffusion 正是基于这一路线发展的开源模型。来源:Rombach et al., 2022, High-Resolution Image Synthesis with Latent Diffusion Models, arXiv:2112.10752。
类比展开:VAE 像整理行李箱:大房间里的衣物对应像素图,按规则折叠装箱对应编码到潜在空间,箱子里的摆放对应 latent 特征,到达目的地取出复原对应解码。装箱后搬运更省力,低维计算对应小箱子好运输。但折叠压缩可能压皱细节,解码还原也不对应每一根纤维完全不变。
边界与误读:潜在空间不是“模糊的小图”,而是模型用来表示结构的特征空间;不能把所有 latent 都当成人眼可读缩略图。VAE 不保证文字、手部、微小纹理完全准确。不同模型家族的 VAE 可能不通用,混用基础模型、VAE 和 LoRA 会出现颜色偏移、噪点或结构崩坏。
一句锚点:VAE 先把图压进潜在空间,扩散在那里算完,再解码成像素图。
课堂练习:讲完本模块后,在学习通完成【M2-01】匹配 VAE 角色、【M2-02】判断潜在扩散收益与代价、【M2-03】解释压缩损失。
M3:CLIP 文本编码器
问题开场:用户输入“a dog running in the park”,计算机不能像人一样看见公园、狗和奔跑的画面。如果只是搜索关键词,也无法处理“红色雨衣”“赛博朋克灯光”“水彩笔触”这些组合描述。文字怎样变成模型可计算、并与图像语义对齐的信号?
旧解释失效:关键词匹配只能判断字符串是否相同,难以理解同义和组合关系;普通文本分类输出类别标签,也无法给 U-Net 提供连续、丰富的语义向量。绘图模型需要一种能把图像和文字放进相近语义空间的表示方法。
概念登场:CLIP 用图像编码器和文本编码器把成对图文映射到共同向量空间,让相似语义的图文向量靠近。Stable Diffusion 常用 CLIP 文本编码器把 prompt 转成文本嵌入,再通过交叉注意力注入 U-Net,使去噪过程知道“画什么、强调什么、避免什么”。
机制拆解:prompt 先被切成 token,token 经文本编码器变成一组连续向量;这些向量携带主体、属性、风格、场景和关系线索。U-Net 在去噪时用交叉注意力查询这些向量,把文本条件分配到图像区域和特征上。权重、括号、负面提示词和模型理解的词表都会影响结果,但它们不是魔法咒语,最终仍依赖训练分布和文本嵌入。
证据锚点:Radford 等人训练 CLIP 时使用 4 亿个图文对,让图像编码器和文本编码器共同学习对齐表示;论文报告 CLIP 在 ImageNet 零样本分类中达到 76.2% Top-1,说明图文对照学习有很强的迁移能力。来源:Radford et al., 2021, Learning Transferable Visual Models From Natural Language Supervision, arXiv:2103.00020。
类比展开:CLIP 像图文翻译官兼导游:中文或英文提示词对应游客需求,文本编码器把需求整理成导游能执行的路线单,向量对应路线单,U-Net 对应按路线单作画的画师。它传递语义方向,但不理解法律、审美或事实真伪;提示词写“真实照片”也不对应必然真实。
边界与误读:CLIP 不是全知语义解析器,长句中的数量、空间关系、否定和代词经常不稳定。“CLIP 只支持英文”不是绝对规律,只取决于具体模型训练和分词器;SD 1.x 常见英文 CLIP 编码器偏英文提示,很多新模型已支持多语言或翻译流程。提示词超过编码器上下文长度会被截断,后置内容可能失去影响。
一句锚点:CLIP 把提示词转成图文对齐的向量,供 U-Net 在去噪时理解画什么。
课堂练习:讲完本模块后,在学习通完成【M3-01】匹配 CLIP 作用、【M3-02】判断语言支持边界。
M4:U-Net 与采样步数
问题开场:潜在空间里有一张噪声 latent,模型需要判断哪里是噪声、哪里保留狗的轮廓、哪里是公园背景。一次预测所有细节通常很难;同时每次生成都重复几十轮,耗时明显上升。为什么 Stable Diffusion 选择 U-Net 反复去噪?步数越多是否一定越好?
旧解释失效:普通全卷积网络能提取特征,但上采样时容易丢失位置细节;只靠一步把纯噪声直接还原成完整图像,任务太难且中间监督弱。固定去噪次数也不合适,不同时间步的噪声强度不同,模型需要把时间步作为条件。
概念登场:U-Net 是一种编码器—解码器形状的网络:下采样路径提取大尺度结构,上采样路径恢复空间分辨率,skip connection 把浅层细节传给深层重建路径。在扩散模型中,U-Net 接收带噪 latent 和时间步 t,预测当前噪声或更新方向;文本嵌入通过交叉注意力参与预测。
机制拆解:每个采样步不是“重新画一张图”,而是在上一张 latent 基础上估计噪声并小幅更新。时间步告诉模型当前噪声程度:高噪声步优先确定构图和大色块,低噪声步处理边缘、纹理和细节。scheduler 控制每一步去噪幅度;迭代步数 10、30、50 会带来不同质量与耗时。更多步有机会补细节,但存在边际收益递减,某些模型还可能出现颜色偏重或过度锐化。
证据锚点:Ronneberger 等人提出 U-Net,用收缩路径捕捉上下文、扩张路径实现精确定位,并用 skip connection 连接特征;论文在生物医学分割任务中取得良好效果。DDPM 后续把 U-Net 用作噪声预测网络,为现代扩散模型奠定结构基础。来源:Ronneberger, Fischer & Brox, 2015, U-Net: Convolutional Networks for Biomedical Image Segmentation, arXiv:1505.04597;Ho, Jain & Abbeel, 2020, Denoising Diffusion Probabilistic Models, arXiv:2006.11239。
类比展开:U-Net 像修图工作台上的主笔师:先看整体污损程度定大形,再回头补边缘和纹理;skip connection 像把原稿草图像素递给后期,防止细节丢失。时间步对应当前污染等级,采样步数对应反复修图的次数。但主笔师不会无限次越修越好;类比在“步数与质量成正比”处失效。
边界与误读:U-Net 不是 Stable Diffusion 独有的魔法模块,也不是唯一可用的去噪结构;新模型也出现 Transformer、DiT 等路线。步数应按模型和 sampler 测试,不能只记“50 一定最好”。采样器、CFG、种子、模型版本共同影响结果,只改步数不能解决提示词结构错误。
一句锚点:U-Net 根据时间步预测噪声,skip connection 帮它边去噪边保细节。
课堂练习:讲完本模块后,在学习通完成【M4-01】识别 U-Net 任务、【M4-02】判断输入与结构作用、【M4-03】选择采样步数策略。
M5:CFG 与负面提示词
问题开场:同一个 prompt 会对应无数张可能图像,模型有时只画“大概像”,却忽略关键约束;提高提示词影响力后,又可能出现颜色过饱、人物变形或画面僵硬。怎样在“自由发挥”和“贴住描述”之间找平衡?不想要的内容又如何排除?
旧解释失效:简单把 prompt 重复几次,不能精确控制条件强度;只在生成后过滤不安全或低质量图,也无法改变生成方向。需要一种在采样时直接比较“有文本引导”和“弱文本引导”差异的方法。
概念登场:CFG(Classifier-Free Guidance)在同一时间步分别得到更贴条件的噪声预测和更弱条件的噪声预测,用二者差值放大文本方向。常见形式可理解为:最终方向 = 弱条件方向 + 强度 ×(正向条件方向 − 弱条件方向)。在许多 WebUI 中,负面提示词会参与弱条件或反向方向,使图像远离低质、畸形、水印等目标。
机制拆解:CFG 低时,模型更接近自身分布,图更有变化但可能不听 prompt;CFG 适中时,主体、风格和构图更容易贴合描述;CFG 过高时,文本方向被过度放大,可能出现高饱和、硬边、肢体错误和构图僵硬。负面提示词适合描述明确不想要的属性,如低分辨率、模糊、错误手指、水印;但它不能修复错误主体、错误模型或混乱 prompt。实际 CFG 常见范围在 5–8 之间,必须结合模型和 sampler 测试。
证据锚点:Ho 与 Salimans 提出 Classifier-Free Diffusion Guidance,训练时随机丢弃条件,使模型能分别学习条件和无条件预测;采样时用预测差值放大条件影响,论文说明该方法在 ImageNet 128×128 生成中将 1.79 提升到 3.93,并改善样本质量与条件符合度。来源:Ho & Salimans, 2022, Classifier-Free Diffusion Guidance, arXiv:2207.12598。
类比展开:CFG 像给画师下达修改指令的音量旋钮:正向 prompt 对应甲方需求,弱条件图对应画师自由草稿,二者差值对应“要改的方向”,旋钮对应 CFG。负面提示词像“不要水印、不要模糊”的排除清单。但这个类比的边界在于:旋钮对应条件方向放大倍数,排除清单对应远离目标,它们不对应画质必然提升;类比在 CFG 过高、属性冲突和隐藏错误处失效。
边界与误读:CFG 不是越高越准,过高会牺牲自然度和多样性;负面提示词也不是安全过滤器,不能替代版权、内容安全和平台审核。不同基础模型、LoRA 和 sampler 对 CFG 敏感度不同。把“masterpiece”当成必然高质量,把负面词写成互相冲突的长串,都会让结果更难解释。
一句锚点:CFG 放大正向方向,负面提示词推开不想要的方向,强度都要适中。
课堂练习:讲完本模块后,在学习通完成【M5-01】解释 CFG 机制、【M5-02】判断 CFG 高低影响、【M5-03】选择负面提示词、【M5-04】纠正参数误区。
M6:LoRA 与 ControlNet
问题开场:基础模型会画广泛风格,但项目常要求固定角色、统一画风、特定服装或严格线稿构图。全量微调很贵,改写 prompt 又不够稳定。怎样用小成本学习风格和人物,又用外部条件控制姿势、轮廓和空间布局?
旧解释失效:靠长 prompt 描述风格,跨图一致性差;每次手改提示词难以复现角色细节。DreamBooth 等全量微调能改变模型,但保存和部署成本高。只靠 CFG 能控制语义贴近度,却不能保证线稿、姿态和景深严格对齐参考图。
概念登场:LoRA 在预训练模型旁边训练低秩适配层,只保存新增小矩阵,不动或少量改动原模型权重,因此文件小、便于切换,常用于固定画风、角色和服装。ControlNet 训练一个附加控制网络,把线稿、边缘、深度、OpenPose 姿态等条件注入扩散过程,从而控制构图和结构。
机制拆解:LoRA 在加载时叠加到基础模型的相关层,依赖基础模型权重;换基础模型或版本时必须重新测试。ControlNet 先从参考图提取控制信号,例如 Canny 边缘、Lineart 线稿、Depth 深度或 OpenPose 骨架,再让附加网络影响 U-Net 的去噪结果,使生成图在构图、姿态和空间关系上跟随控制图。LoRA 管“长得像、风格像”,ControlNet 管“在哪里、什么姿势、什么轮廓”。
证据锚点:Hu 等人提出 LoRA,用低秩矩阵表示权重更新,冻结原预训练权重,只训练适配器;论文报告在 GPT-3 175B 场景中显著减少可训练参数量并降低部署负担。Zhang 等人提出 ControlNet,把视觉条件加入预训练扩散模型,实现线稿、深度、姿态等可控生成。来源:Hu et al., 2021, LoRA: Low-Rank Adaptation of Large Language Models, arXiv:2106.09685;Zhang, Rao & Agrawala, 2023, Adding Conditional Control to Text-to-Image Diffusion Models, arXiv:2302.05543。
类比展开:LoRA 像给主厨配一本风格手册:基础模型对应主厨,低秩适配层对应手册,手册教主厨用某种画风或固定角色,但主厨仍是基础。ControlNet 像给画师一张骨架稿或线稿:线稿对应构图条件,OpenPose 对应姿势骨架,Depth 对应空间层次。手册能改风格,不对应精确构图;骨架稿能控位置,不对应自动保证质感。
边界与误读:LoRA 不能脱离匹配的基础模型单独生图,风格标签写得多不等于训练到位;低权重可能无效,高权重可能破坏画面。ControlNet 的控制强度和预处理阈值也要调,不是上传参考图就一定复刻得好。人像、版权素材和真人风格都有法律与伦理风险,商用前要确认授权和平台规则。
一句锚点:LoRA 小成本学风格和角色,ControlNet 用线稿、姿态和深度控制构图。
课堂练习:讲完本模块后,在学习通完成【M6-01】识别 LoRA 机制、【M6-02】判断 LoRA 边界、【M6-03】匹配 ControlNet 条件、【M6-04】选择控图方法。
课后作业
- 【作业-01】在 LiblibAI(哩布哩布AI)用同一提示词完成 CFG、负面提示词、采样步数三组对照实验,记录参数、截图、变化结论和使用心得,截止下节课前一天 22:00;操作见《课前准备_第5次课_LiblibAI生图实验指南.md》。
资料与下载
- PPT 课件:已上传学习通网盘,待补充下载链接。
- 课堂/课后习题:请在学习通对应单元完成,待补充入口链接。
- 补充提示词或资料:如本页未列出,以老师课前在学习通发布的资料包为准。