跳到主要内容

扩散模型 — 从噪声里洗出图片

这一章讲三件事: 图像生成模型(生成新图像的那类模型)内部在干什么——加噪、学去噪,文字描述当条件; 为什么「提示」在图像侧的含义是「地图上的地址」,提示工程就是导航; 以及 DALL-E、Midjourney、Stable Diffusion 三家如何用三种完全不同的商业模式瓜分这个市场。 对应原书第 7 章全章。从这里起,本书进入图像侧——这是它区别于纯 LLM 提示工程书的下半幅。

1. 这一章讲什么

第 01 章讲五原则时,图像模型一直作为「另一类模型」被提及;现在拆开它。扩散模型(diffusion model)2015 年被提出,2022 年 DALL-E 2 让它出圈,随后开源的 Stable Diffusion 和社区宠儿 Midjourney 跟上,形成一个竞争充分的品类1

主走查:一句提示,三家出图。 书里把同一句提示「a corgi on top of the Brandenburg Gate」(勃兰登堡门上的柯基)喂给多个模型,并排展出结果(图 7-12)2。这句提示就是我们全章的走查输入:看它先被编成地址、再指挥噪声洗成图,最后看三家各自把它画成了什么风格——风格差异正是选型的依据。

2. 顶层全景:地址、噪声、洗照片

提示文字 → 编码成向量(潜空间里的地址)


一团随机噪声 → 反复「去噪」几十步,每步都朝地址指的方向挪一点 → 解码成像素

图说:训练时它学的是「加了噪的图 + 描述 → 原来的图」;
生成时反过来用:给噪声、给描述,一步步把图洗出来。
提示不是命令,是目的地坐标。

3. 核心原理

3.1 扩散:加噪再学去噪

训练过程朴素得可以一句话说完:拿一张图,分很多步往里加随机噪声,直到变成纯噪声;然后教模型反过来——给它加了噪的图和这段图的文字描述,让它预测怎么把噪声去掉3。预测得不像,就调整神经网络的权重(第 02 章:那些可调的数),让它下次更像。

「扩散」这个名字借自物理学——粒子在介质里散开的过程3。训完之后,模型就能从一团纯随机噪声出发,以提示文字为条件(condition:生成时对输出的约束——描述在哪,图就往哪洗),几十步之后洗出一张匹配描述的图3

3.2 它不是拼贴工具

「它就是从训练图库里东拼西凑」是对这类模型最常见的指控,书里给了一个硬反证:模型文件只有几个 GB,而训练集是几十亿张网络图片——物理上装不下。研究者(Carlini et al., 2023)做过直接实验:试图让 Stable Diffusion 复现它训练数据里的 35 万张图,只成功了 109 张4

那它存的是什么?书里的比方:更像一个人类画家看遍全网图片后,记住了「每个题材、每种风格各自长什么样」的规律——这些规律被编码成向量,指向一张地图上的位置5。版权归争议并没有因此消失(训练数据里大量图片未经授权),书里如实记录了这场争论,「复现率 0.03%」只是回答了「拼贴」这一种具体指控4

3.3 潜空间:提示是地址,提示工程是导航

那张地图有名字:潜空间(latent space,潜在空间——这个模型能生成的所有可能图像的集合,每个位置一张图)5。流程因此变成:你的提示先被编码成向量=地图上的地址;模型按地址找到那片区域,洗出图来;图再解码回像素给你看5

这张地图有一个对提示工程至关重要的性质:它是连续的。 你可以从「一只狗」的地址出发,沿直线走到「一碗水果」的地址,中途每一站都是一张连贯的图——狗的轮廓逐渐化成果盘的形状。这种在两个地址之间走中间路线的操作叫插值(interpolate)6。连续性意味着:提示词(提示里的措辞)差一点,图就差一点,而不会突然跳变——微调提示就是在这张地图上小步挪位置

所以书里给图像侧提示工程的定义是:在潜空间里导航,从所有可能的图像里找到匹配你想象的那一张7。第 01 章的五原则在这里全部有对应物,第 12 章会把导航的具体手法讲完。

3.4 三家路线:同一句话,三种生意

书里点出一个和 LLM 市场不同的结构:LLM 是 OpenAI 一家独大,图像侧却是三家分庭抗礼,而且商业模式完全不同——封闭先进、订阅(按月付费)制、开源免费各走一路7。拿主走查那句柯基提示对比三家出图(图 7-12),风格差异肉眼可辨;差异的根源在三家的来历2:

DALL-E(OpenAI)MidjourneyStable Diffusion(Stability AI 等)
路线封闭,先进 ChatGPT社区 + 订阅(按月付费)制开源,权重公开
关键事实DALL-E 2 发布时排队名单破百万82023 年 3 月时仅 11 名员工,2022 年 8 月已盈利98GB 显存(显卡上的内存)的家用显卡就能跑,90 天拿下 33,600 个 GitHub 星10
用户关系版权当时归 OpenAI 保留付费用户拥有生成图的版权11随意改、随意商用、随意微调
独门与 ChatGPT 集成,构图强美学最佳,幻想与写实通吃最灵活可扩展,多数 AI 产品建在它的底座上12

Midjourney 的社区设计值得单独记一笔:用它必须进 Discord(一个群组聊天平台),在公开频道里提交提示——所有人的提示和出图默认互相可见,新手直接抄高手的提示学。社区 2022 年 7 月近百万人,一年后超过 1,300 万11。书里还有一个圈内猜测:用户点「放大(upscale)」选出满意图的行为,可能被当成了类似 RLHF(第 03 章:用人类反馈调教模型)的训练信号13

Stable Diffusion 这边,开源的另一个效果是所有旋钮都暴露给了用户——Classifier Free Guidance(CFG:跟提示跟得多紧)、Denoising(往底图加多少噪)、Seed(从哪团噪声出发)——这三个旋钮是第 13 章的全部起手式14。围绕它长出了真实的小生意:PhotoAI 和 InteriorAI 两家加起来月入超过 10 万美元14

3.5 简史的另一面:纠偏、过滤与灰区

三家的历史都不是一路向好,书里如实记了几笔:

  • DALL-E 2 的笨拙纠偏:早期禁止生成人物、禁了一长串敏感词;研究者还发现它会给「一张医生的照片」这类提示自动塞进 black 或 female 字样——用强行加词的方式对冲训练数据里「医生多为白人男性」的偏置(系统性偏向),书里称之为 hamfisted(笨手笨脚)的尝试15。同时期的硬伤:图上文字乱码、手眼畸形16;
  • Stable Diffusion 的过滤反噬:v2.0 训练时过滤了 NSFW(not safe for work,不宜在工作场合展示的内容)图片,结果重度用户抱怨性能下降——他们推测训练集里那部分图片对学「真实人体结构」是必要的17;
  • 版权灰区贯穿全场:训练数据的授权问题悬而未决;第 12 章讲「模仿在世艺术家风格」时还会再撞上一次。

3.6 选型与延伸:视频在隔壁

书里的选型结论很干脆,不存在「最强」12:要构图准确和 ChatGPT 的便利,用 DALL-E 3;要美学,用 Midjourney;要可控、可扩展、可自托管,用 Stable Diffusion(书的进阶章节全用它)。

版本还有一个细节:SD 的 v1.5(2022 年 10 月)至今仍是社区主力;SDXL 1.0 把参数从 0.98B(9.8 亿)提到 6.6B(66 亿)——约 6.7 倍,质量明显更强,本书的 ControlNet 示例却仍基于 v1.5,因为它的配套生态最全18

视频是图像的自然延伸:RunwayML 的 Gen-2、Stable Video Diffusion(2023 年 11 月)、近实时的 SD Turbo、OpenAI 的 Sora(2024 年 2 月)。书里明确说:视频提示技术本书不展开,但图像提示的一切手法直接适用19

4. 作者的判断与证据

  • 「不是拼贴」给了硬证据(35 万张复现 109 张,Carlini et al. 2023)4;
  • 「潜空间连续、插值连贯」有示意(狗→水果碗)和图 7-36;
  • 三家的商业数据(百万排队、11 名员工、33,600 星、月入 10 万美元)都有出处或当事人访谈910;
  • 「upscale 行为被当训练信号」书里标注是 speculation(圈内猜测),不是官方确认13——照实分开;
  • 「v2.0 过滤导致性能下降」是用户社区的推测,书里用了「speculating」17,同样照录。

判断(我们的,不是书里的): 图像侧的竞争格局(三家分庭抗礼)不是偶然——开源模型把「底座」变成了公共品,竞争被迫上移到美学、社区和工作流(做事的整条流程)。LLM 侧那时没有同等力量的开源底座(Llama 3 刚发布),所以格局不同。这解释了为什么本书后半全力押注 Stable Diffusion:只有它的旋钮全部开放,提示工程之外的参数工程(第 13 章)才可能存在。 如果错,会错在: 如果闭源模型在质量上拉开代差(比如 DALL-E 3 集成后的便利压倒可控性),「开源底座决定格局」的论证就会弱化——书里「advanced users will likely continue to require direct access」那句1承认了这个前提依赖「高级用户需要直接访问」。

5. 边界与局限

  • 本章是「图像生成导论」,动手的技术细节全在第 12、13 章;本章交付的是地图(潜空间)和格局(三家);
  • 所有版本号、员工数、社区规模是 2024 年中的快照;Midjourney 后来开了网页版、SD 后续版本频出,选型结论的方向不变、具体数字已旧;
  • 版权与 NSFW 的讨论止于「如实记录」,没有法律结论——书里自己也说模仿艺术家的建议「不是法律意见」;
  • 「视频直接适用」是作者的判断,未在书里验证19

6. 可带走的

  1. 扩散模型 = 加噪、学去噪、以文字为条件;生成就是从噪声里按描述洗出图;
  2. 模型只有几个 GB,装不下训练集——它存的是规律,不是图;「拼贴」的指控有实验反证(35 万张→109 张);
  3. 提示是潜空间地图上的地址;改提示 = 挪位置,挪一点变一点;
  4. 图像侧比 LLM 侧竞争充分:封闭(DALL-E)、社区订阅(Midjourney)、开源(SD)三条路线并存;
  5. 选型没有「最强」:构图用 DALL-E 3,美学用 Midjourney,可控用 Stable Diffusion;
  6. 社区默认公开是 Midjourney 的隐形教程——提示和出图互相可见;
  7. 开源的全部意义在「旋钮暴露」:CFG、Denoising、Seed 是第 13 章的起手式;
  8. 纠偏和过滤都可能反伤质量——伦理设计与模型能力会打架;
  9. 视频是同一套提示手法的延伸,学会图像即会视频。

7. 原文地图

主题原书章原文位置
扩散模型 2015 与三强格局Ch.7 扩散模型导论text/61-fm-openai-dall-e.txt:8(搜「Introduced in 2015」)
加噪-去噪训练Ch.7 扩散模型导论text/61-fm-openai-dall-e.txt:10(搜「adding random noise」)
不是拼贴:350,000→109Ch.7 扩散模型导论text/61-fm-openai-dall-e.txt:18(搜「109」)
潜空间定义Ch.7 扩散模型导论text/61-fm-openai-dall-e.txt:20(搜「latent space」)
插值:狗到水果碗Ch.7 扩散模型导论text/61-fm-openai-dall-e.txt:26(搜「interpolate」)
提示工程=导航Ch.7 扩散模型导论text/61-fm-openai-dall-e.txt:32(搜「navigating the latent space」)
DALL-E 2 排队百万Ch.7 扩散模型导论text/61-fm-openai-dall-e.txt:40(搜「waitlist of one million」)
笨拙纠偏Ch.7 扩散模型导论text/61-fm-openai-dall-e.txt:44(搜「hamfisted」)
inpainting/outpainting 与畸形手Ch.7 扩散模型导论text/61-fm-openai-dall-e.txt:46(搜「disfigured」)
Midjourney 社区与版权Ch.7 扩散模型导论text/61-fm-openai-dall-e.txt:58(搜「owned the rights」) · text/61-fm-openai-dall-e.txt:60(搜「13 million」)
11 名员工与已盈利Ch.7 扩散模型导论text/61-fm-openai-dall-e.txt:75(搜「11 employees」)
upscale 当训练信号(猜测)Ch.7 扩散模型导论text/61-fm-openai-dall-e.txt:64(搜「reinforcement learning」)
SD 开源与 33,600 星Ch.7 扩散模型导论text/61-fm-openai-dall-e.txt:79(搜「33,600 stars」)
旋钮全暴露与小生意Ch.7 扩散模型导论text/61-fm-openai-dall-e.txt:83(搜「Classifier Free Guidance」)
v2.0 过滤反噬Ch.7 扩散模型导论text/61-fm-openai-dall-e.txt:87(搜「censorship」)
SDXL 66 亿参数Ch.7 扩散模型导论text/61-fm-openai-dall-e.txt:89(搜「6.6 billion」)
三家选型Ch.7 扩散模型导论text/61-fm-openai-dall-e.txt:101(搜「great at composition」)
柯基同提示对比Ch.7 扩散模型导论text/61-fm-openai-dall-e.txt:105(搜「Brandenburg Gate」)
视频延伸Ch.7 扩散模型导论text/61-fm-openai-dall-e.txt:97(搜「Sora」)

Footnotes

  1. 出处:「Ch.7 扩散模型导论」第 8 段(text/61-fm-openai-dall-e.txt:8,搜「Introduced in 2015」)。 2

  2. 出处:「Ch.7 扩散模型导论」第 105 段(text/61-fm-openai-dall-e.txt:105,搜「Brandenburg Gate」)与第 109 段(图 7-12 图题)。三家的出图差异在图片里,文本层只有提示本身——照实说明。 2

  3. 出处:「Ch.7 扩散模型导论」第 10 段(text/61-fm-openai-dall-e.txt:10,搜「adding random noise」)。「以描述为条件」在同段:「The predictions are conditioned on the description of the image」。 2 3

  4. 出处:「Ch.7 扩散模型导论」第 18 段(text/61-fm-openai-dall-e.txt:18,搜「109」)。35 万张里只复现出 109 张,约 0.03%。 2 3

  5. 出处:「Ch.7 扩散模型导论」第 20 段(text/61-fm-openai-dall-e.txt:20,搜「latent space」)。 2 3

  6. 出处:「Ch.7 扩散模型导论」第 26 段(text/61-fm-openai-dall-e.txt:26,搜「interpolate」)。 2

  7. 出处:「Ch.7 扩散模型导论」第 32 段(text/61-fm-openai-dall-e.txt:32,搜「navigating the latent space」)。同段点名:图像领域比 OpenAI 主导的 LLM 领域选择更多元。 2

  8. 出处:「Ch.7 扩散模型导论」第 40 段(text/61-fm-openai-dall-e.txt:40,搜「waitlist of one million」)。同段:DALL-E Mini 后应 OpenAI 要求改名 Craiyon;「宇航员骑马」图出自 DALL-E 2 论文。

  9. 出处:「Ch.7 扩散模型导论」第 75 段(text/61-fm-openai-dall-e.txt:75,搜「11 employees」)。 2

  10. 出处:「Ch.7 扩散模型导论」第 79 段(text/61-fm-openai-dall-e.txt:79,搜「33,600 stars」)。 2

  11. 出处:「Ch.7 扩散模型导论」第 58 段(text/61-fm-openai-dall-e.txt:58,搜「owned the rights」)与第 60 段(text/61-fm-openai-dall-e.txt:60,搜「13 million」)。 2

  12. 出处:「Ch.7 扩散模型导论」第 101 段(text/61-fm-openai-dall-e.txt:101,搜「great at composition」)。 2

  13. 出处:「Ch.7 扩散模型导论」第 64 段(text/61-fm-openai-dall-e.txt:64,搜「reinforcement learning」)。原文措辞:「Many have speculated…」。 2

  14. 出处:「Ch.7 扩散模型导论」第 83 段(text/61-fm-openai-dall-e.txt:83,搜「Classifier Free Guidance」)。 2

  15. 出处:「Ch.7 扩散模型导论」第 44 段(text/61-fm-openai-dall-e.txt:44,搜「hamfisted」)。

  16. 出处:「Ch.7 扩散模型导论」第 46 段(text/61-fm-openai-dall-e.txt:46,搜「disfigured」)。

  17. 出处:「Ch.7 扩散模型导论」第 87 段(text/61-fm-openai-dall-e.txt:87,搜「censorship」)。 2

  18. 出处:「Ch.7 扩散模型导论」第 89 段(text/61-fm-openai-dall-e.txt:89,搜「6.6 billion」)与第 87 段(「Ch.7 扩散模型导论」,text/61-fm-openai-dall-e.txt:87,搜「still in use today」)。

  19. 出处:「Ch.7 扩散模型导论」第 97 段(text/61-fm-openai-dall-e.txt:97,搜「Sora」)。 2