跳到主要内容

扩散模型怎么画画,以及怎么让它同时听两个条件(协作扩散)

这一章讲三件事: 一类会画画的模型到底在算什么(从零讲,不需要任何基础); 为什么它一次只听得进一个条件; 以及怎么让两个已经训好的模型分工合作,而不重训任何一个。 它在全书链条里的位置: 从这一章起,全书从「认」转向「造」, 而 CLIP 从主角退成了打分器——后面第 16 到 19 章全部建在这一章的前两节上。 第 07 章欠的那笔账也在这里还:那一章说「把一串数变回一张图的那个还原器是一个扩散模型, 它内部怎么算第 15 章讲」——就是本章第 2、3 节。

1. 顶层全景:先看它怎么画一张,再看两个怎么合作

第一半(第 2–4 节):一个模型怎么画画

一张真照片 ──加一点噪声──→ ──再加一点──→ …… ──→ 一片纯噪声
↑ 这个方向叫「前向」,不需要学,照着配方加就行

一片纯噪声 ──减掉一点──→ ──再减一点──→ …… ──→ 一张新照片
↑ 这个方向要学:**每一步认出「这一步该减掉的噪声长什么样」**

第二半(第 5–8 节):两个模型怎么合作

这一步的半成品(还很花的那张图)

├──→ 模型甲(听文字的) :按「一个留胡子的中年男人」,预测该减的噪声 → 一张图
├──→ 模型乙(听掩码的) :按那张脸部区域图, 预测该减的噪声 → 另一张图

└──→ **一个小 30 倍的网络**,看着这三样东西(半成品、第几步、各自的条件),
**给每一路吐出一张逐像素的权重图**


两张噪声预测**按像素加权混合** → 这一步真正要减掉的噪声

图说:注意这条链里,**甲和乙的权重从头到尾一个都没改。**
唯一被训练的是那个小网络,它只学一件事:**在哪个位置、哪一步,该多听谁的。**

这一章的主走查:生成一张人脸,条件有两个—— 一句话「一个留着胡子的中年男人」,外加一张画好的脸部区域图(哪块是头发、哪块是脸、哪块是背景)。

发生了什么具体的数或状态
从一片纯噪声开始,准备倒着走 T 步起点是一张全是随机点的图
走到第 t 步,手上是一张「半成品」——还很花,但已经有个人形了记作 x_t
模型甲(403.6M 参数)读半成品 + 第几步 + 那句话,吐出它认为该减的噪声一张和图一样大的噪声图
模型乙(403.6M 参数)读半成品 + 第几步 + 那张区域图,吐出它认为该减的噪声另一张噪声图
小网络(13.1M,小 30 倍) 分别为两路各吐一张权重图两张 h×w 的图
两张权重图在每个像素上摊平成加起来等于 1早期:掩码 0.8 / 文字 0.2
按这个权重把两张噪声预测逐像素混合,减掉,进入下一步得到 x_{t-1}
走到后期,权重翻过来后期:掩码 0.3 / 文字 0.7
走完最后一步,这一步的产物是一张图整批图一起量出来才有画质分:FID 111.36(第 8 节讲这个分怎么算)

⑥ 和 ⑧ 那四个具体的权重数是为演示编的——书里只给了「掩码早期强、文字后期强」这个方向, 没有给具体数值。403.6M、13.1M、111.36 是书里的真数1

2. 从零讲:这类模型是怎么画出一张图的

这一节和下一节是全书后半本的地基,所以讲慢一点。

先从一个能验证的现象说起

你有没有见过老照片修复? 一张布满噪点、雪花、划痕的照片,被一点点擦回清晰的样子。 这类模型干的事和那个很像,只是它更极端:它从一张「全是雪花、什么都没有」的图开始擦。

两个方向

方向一:前向(加噪声)—— **不需要学,是一条固定的配方**

真照片 x₀
│ 加一点点高斯噪声(**高斯噪声**:每个像素上叠一个随机数,
│ 这些随机数中间多、两头少,是最常见的那种随机)

x₁ ──→ x₂ ──→ …… ──→ x_T
↑ 加了 T 步之后,原图彻底看不出来了,**只剩一片纯噪声**

每一步加多少,由一张事先定好的表说了算(书里叫方差表)。

方向二:反向(去噪声)—— **这才是要训练的东西**

纯噪声 x_T ──→ x_{T-1} ──→ …… ──→ x₀(一张新图)

每一步问同一个问题:**「从 x_t 到 x_{t-1},该减掉什么?」**

图说:一句话概括——**这类模型学的是「怎么把加噪声这件事倒着做」。**
这类模型的名字叫**扩散模型**——你在任何一份讲图像生成的材料里都会撞见它。

为什么倒着走能画出「新」图

因为反向那一步不是确定的。 加噪声是确定的(照配方加), 但「这片噪声原来是什么」有无数种答案——同一片雪花可以是任何一张脸。

所以:从不同的随机起点出发,倒着走完,就得到不同的新图。 这就是它的「创造力」的全部来源。

3. 它学的到底是什么:不是「该画什么」,是「这一步加了什么」

这一节是很多人对这类模型的第一个误解,值得单独讲。

训练时它做的事

① 拿一张真照片 x₀
② 随机挑一个步数 t(比如 t = 640)
③ 按配方一次性算出「加噪 t 步之后长什么样」,得到 x_t
—— 注意这一步不用真的加 640 次,配方允许一步到位
④ 把 x_t 和 t 一起喂给模型,**让它猜:刚才加进去的那份噪声长什么样?**
⑤ 拿它猜的和真加的比一比,差多少就往回改多少

图说:第 ⑤ 步比的方式是**逐像素求差、平方、取平均**——第 06 章讲过的均方误差。
**整个训练目标就这一句:让预测的噪声和真加的噪声尽量一样。**

书里给的目标函数就是这一条2

这就是那个误解的位置: 它从来没有被教过「一张脸该长什么样」。 它被教的是「这张花图上,哪些是后来加上去的脏东西」。 能画出脸,是因为把脏东西一层层剥掉之后,剩下的必然是它见过的那类东西。

条件从哪儿进来

上面讲的是「随便画一张」。要它按你说的画,就得多喂一样东西3:

原来:模型(半成品 x_t, 第几步 t) → 预测的噪声
现在:模型(半成品 x_t, 第几步 t, **条件 c**) → 预测的噪声

条件 c 可以是:一句话变成的那串数、一张分割掩码、一张草图……
(**分割掩码**:一张和原图一样大的图,但每个像素上存的不是颜色,
而是「这个位置属于哪一块」的编号——头发、皮肤、眼睛、背景各一个号。
这一章用的那套有 19 个号。)

图说:**关键是「每一步都要喂」**,不是开头喂一次就完事。
因为每一步都是一次独立的预测,每一次都得知道你要什么。

4. 卡点:一次只听得进一种条件

这一节是这一章存在的理由,书里在开头就把它讲清楚了。

现状

书里说,现有的探索基本都限于一次用一种条件——要么文字,要么掩码,要么草图4而人真正想要的是同时用:用文字说年龄和胡子,用画笔画发型轮廓。

直接的办法为什么不行

你当然可以从头训一个同时吃两种条件的模型。书里给了两条反对理由5:

  1. 贵。 从头训一个大模型,再加上大量的超参调试和结构设计;
  2. 更要命的是不灵活:一个训好的模型只接受一种固定的条件组合。 少一种要重训,多一种也要重训。

第 2 条才是真问题。 条件的组合是会爆炸的: 文字、掩码、草图、深度图、姿态图……两两组合、三三组合,你训不过来。 所以需要的不是「一个更全能的模型」,而是「一种把现成模型拼起来的办法」。 (这一层推论是我们补的,书里只说了「需要一个统一框架」。)

这一章的切入点

作者的观察是一句很具体的话6:

不同的条件是互补的——文字管年龄,掩码管发型。

所以有没有可能:让两个已经训好的单条件模型「横向连起来」,而不动它们的权重?

5. 办法:一个小 30 倍的网络,决定每一步该多听谁的

这一节是主走查第 ③–⑦ 步,是全章的方法本身。

关键的一步:合作发生在哪儿

回忆第 2 节:反向过程的每一步,模型吐出的是「这一步该减掉的噪声」。

两个模型的输出是同一种东西、同一个形状——都是一张和图一样大的噪声图。 所以它们可以直接混。

这就是整个方法能成立的结构性理由。(这句因果是我们点明的,书里没有单独强调, 但它是后面所有设计的前提。)

那个小网络

它读三样东西:
① 当前的半成品 x_t —— 现在画到什么样了
② 当前是第几步 t —— 是刚开始还是快收尾
③ 这一路自己的条件 c —— 我这一路负责什么

它吐一样东西:
一张 h×w 的图,**每个像素一个数** —— 这个位置上,我这一路该占多大分量

书里管这个小网络叫**动态扩散器**,管它吐的那张图叫**影响力图**。

图说:每一路各有一个自己的小网络。
两路(或 M 路)的影响力图在**每个像素上**摊平成加起来等于 1
(就是第 01 章讲的那个 softmax,只不过这次是在「几路」之间摊,不是在「几个类」之间摊)。

合成

这一步真正要减掉的噪声
= 甲的权重图 ⊙ 甲预测的噪声 + 乙的权重图 ⊙ 乙预测的噪声

⊙ 表示**逐像素相乘**:头发那块多用乙的,脸颊那块多用甲的。

图说:这一步是这个方法的全部。**没有别的模块。**

代价小到值得单说

东西参数量
听文字的那个已训好的模型403.6M
听掩码的那个已训好的模型403.6M
每一路的小网络13.1M

小 30 倍7而且两个大模型全程冻住,只训这两个小网络。

和一个近似做法的区别

已经有人做过「把多个扩散模型的中间结果加起来」这件事。书里明确划清了界限8:

那个做法只能组合同一个模型的多个副本(权重完全相同), 目的是把一句复杂的话拆成几段分别处理; 这一章的做法能组合权重不同、结构不同、听的条件也不同的模型。

6. 分工看得出来:空间上,一个管轮廓一个管皮肤

这一节是这一章最漂亮的发现,而且它是可视化出来的,不是推测的。

把影响力图画出来看,分工非常清楚9:

哪一路影响力集中在哪儿书里给的理由
听掩码的轮廓:头发的外沿、脸的边界、眼睛的边界这些区域决定脸的布局
听文字的皮肤区域:脸颊、下巴因为年龄、胡子长度这类属性,是皮肤上的纹理,用文字描述得更好

这个分工不是设计出来的,是训出来的。 没有人告诉那个小网络「头发归掩码管」—— 它是从「怎么混才能让最终结果同时满足两个条件」这个目标里自己学出来的。 (这一句是我们的解读,书里只报告了现象。)

7. 分工也发生在时间上:先摆布局,后填细节

同一张可视化图,横着看是空间,竖着看是时间10:

t 大(刚从纯噪声出发,早期)
**掩码那一路的影响力更强**
—— 早期在干的事是「把脸的布局先立起来」:头在哪、头发多大一片

t 小(快收尾了,后期)
**文字那一路的影响力上来了**
—— 后期在干的事是「把纹理细节填进去」:皱纹、胡子长度

图说:这条时间线和第 2 节那个「一步步擦回来」的过程是对得上的——
**先有形,后有质。**

8. 两个都必要:去掉哪一个都掉分

这一节把上面两个现象从「好看」变成「有证据」,并且顺带把画质怎么量讲清。

先讲怎么量画质

这一节第一次出现全书后半本唯一贯穿的指标,必须讲清11:

FID:把生成的一批图和真实的一批图,各自过一个现成的图像模型抽出特征, 再量这两堆特征的分布差多远。越低越好。

参照物摆在同一张表里才有意义。表里第一行那个对照方法属于扩散模型出现之前最主流的一类画图模型: 两个网络对着干,一个负责造假、一个负责鉴别,被鉴别出来就改,互相逼着变强—— 这类模型叫生成对抗网络,缩写 GAN,本章之后的几章里会反复出现。

方法FID(越低越好)文字一致性掩码一致性
一个基于 GAN 的老方法157.8124.2772.19
那个「组合同一个模型的多个副本」的方法124.6223.9476.11
本章的方法111.3624.5180.25

三项全胜。另外有一个 25 人的用户研究:生成任务上 69.40% 的时候选它最好, 编辑任务上 84.37%12

消融:两种变化各去掉一次

配置FID文字一致性掩码一致性
去掉空间变化(整张图一个权重)117.8124.3680.08
去掉时间变化(每一步同一个权重)117.3424.4877.07
完整111.3624.5180.25

两条读法13:

  1. 去掉哪一个,画质都掉六个点左右——两者都必要;
  2. 去掉时间变化时,掉得最惨的是掩码一致性(80.25 → 77.07)。 这正好印证第 7 节:掩码的活儿是在早期干的, 把时间抹平就等于让它在该出力的时候没出上力。 这条对应关系书里没有点破,是我们从两张表读出来的。

9. 顺手扩到编辑:同一批小网络,不必重训

这一节说明这个方法为什么比它看起来更有用。

生成和编辑是两件事

生成是「凭空画一张」,编辑是「拿一张真照片改一处,别的地方别动」。

书里借用了一个现成的文本编辑方法,它有三步14:

① 先优化那句话的条件嵌入,让模型能用它把**原图重建出来**
—— 目的是让条件「贴住这张脸的身份」
② 再微调模型本身,进一步提高还原度
③ 在「你想要的那句话」和「优化出来的那串数」之间**插值**
—— 插值系数决定改多狠

图说:这三步是别人的方法,和本章的框架无关;
书里把它推广到掩码那一侧,得到一个掩码编辑。

关键的一句

然后用那批已经训好的小网络,把「一次文字编辑」和「一次掩码编辑」合起来。 扩到编辑不需要再训任何一个小网络。14

这一条的实际含义是:那些小网络学到的「什么时候该听谁的」是一种通用的东西, 它不绑定在「生成」这个任务上。

10. 一件老实事:把三个属性从文字里删掉了

这一节短,但它是这一章最值得记住的一个工程细节。

数据是这样的:三万张名人脸照片,配两套标注15:

  • 区域图:19 个编号,背景、皮肤、鼻子、左右眼、眉毛、耳朵、嘴、上下唇、头发、帽子、眼镜、耳环、项链、脖子、衣服;
  • 文字描述:五个属性——刘海、眼镜、胡子、微笑、年龄

问题一眼可见:刘海、眼镜、微笑这三样,区域图里也有。

书里的处理:把这三样从文字描述里删掉,理由是「避免掩码和文本冲突」。

为什么这值得单说: 多条件系统里最容易出的事故就是两个条件在说同一件事、而且说得不一样这一步删除等于事先把打架的可能拿掉了。 而它也是一个提醒: 这一章的漂亮结果,建立在「两个条件被人工分工过」的前提上。

11. 作者自己写的社会影响

书里专门有一节,不是套话,值得照实转述16:

  1. 可能被用来恶意篡改真人的脸,作者明确劝告只用于正当的娱乐用途;
  2. 采样过程可能在数据所有者不知情的情况下泄露训练数据;
  3. 训练数据是名人脸,与普通人的长相分布有偏。

第 3 条尤其要注意,因为它会直接影响你对上面所有分数的解读: 111.36 这个 FID 是在「名人脸」这个分布上量出来的。

12. 作者的判断与证据

书里给了证据的:

说法证据
不同条件是互补的影响力图的可视化:掩码压轮廓、文字压皮肤
分工也发生在时间上同一张可视化:掩码早期强、文字后期强
两种变化都必要消融表:去掉任一个 FID 都涨六个点左右
比两个对照方法好三项指标全胜 + 25 人用户研究
小网络代价很小13.1M 对 403.6M
能扩到编辑且不必重训编辑任务的用户研究 84.37%
和「组合同一个模型的副本」不同方法层面的对照说明

属于作者的推断:

  • 「文字压在皮肤上,是因为年龄和胡子是纹理属性」—— 这是对现象的解释,不是被单独验证的结论;
  • 「早期在立布局、后期在填细节」——同上,是对可视化的解读;
  • 社会影响那三条是判断与劝告,不是实验结果。

13. 边界与局限

① 只做了人脸,而且只做了两种条件。 全章的实验都在一个人脸数据集上、用「文字 + 区域图」这一种组合。 书里在结论里说这个思路可能启发动作和 3D 生成,但那是展望,不是结果。

② 两个条件被人工分工过。 见第 10 节——冲突的属性是被删掉的,不是被自动解决的。

③ 小网络还是要训的。 「不重训」指的是不重训那两个大模型; 每加一路条件,就要为它训一个小网络。

④ 没有报告推理时间。 每一步要跑两个大模型加两个小网络, 这显然比单模型慢,但书里没有给数17这一条是我们指出来的缺口。

⑤ 训练数据是名人脸。 见第 11 节第 3 条。

14. 可带走的

  1. 扩散模型的前向是固定配方:一步步往图里加高斯噪声,直到只剩纯噪声;
  2. 反向才是学出来的:每一步认出「该减掉的噪声长什么样」,减掉,再走下一步;
  3. 它学的不是「该画什么」,是「这一步加了什么脏东西」——训练目标是让预测的噪声和真加的噪声一样;
  4. 创造力来自反向那一步的不确定:同一片噪声可以还原成无数张不同的图;
  5. 条件要每一步都喂,不是开头喂一次;
  6. 卡点不是「训不出多条件模型」,是「组合会爆炸」:少一种要重训,多一种也要重训;
  7. 合作能成立的结构性理由:两个模型的输出是同一种东西(同样大小的噪声图),所以能直接混;
  8. 做法是给每一路配一个小网络,读「半成品 + 第几步 + 自己的条件」,吐一张逐像素的权重图;
  9. 两张权重图在每个像素上摊平成加起来等于 1,再逐像素加权混合两路的噪声预测;
  10. 小网络只有 13.1M,比它协调的模型小 30 倍,而那两个模型全程冻住;
  11. 分工在空间上:掩码压轮廓、文字压皮肤(因为年龄和胡子是皮肤纹理);
  12. 分工也在时间上:掩码早期强(立布局)、文字后期强(填细节);
  13. 两者都必要:去掉任一个 FID 从 111.36 涨到 117 上下; 去掉时间变化时掩码一致性掉得最狠,正好印证「掩码的活在早期」;
  14. FID 量的是「生成的一批图和真实的一批图,特征分布差多远」,越低越好;
  15. 扩到编辑不必重训小网络——它学到的「何时听谁」不绑定在生成任务上;
  16. 多条件系统最容易出的事故是两个条件说同一件事——书里的处理是事先把重复的属性从文字里删掉。

15. 原文地图

主题原书章原文位置
一次只用一种条件,可控性有限13. Multimodal Face Generation and Manipulation with Diffusion Modelstext/43-ch13-13-multimodal-face-generation-and-manipulation-w.txt:37(搜「confined to the use of a single modality」)
从头训的两条反对理由同上text/43-ch13-13-multimodal-face-generation-and-manipulation-w.txt:41(搜「retraining is necessary」)
立论:不同模态互补(文字管年龄、掩码管发型)同上text/43-ch13-13-multimodal-face-generation-and-manipulation-w.txt:43(搜「text for age and mask for hair shape」)
前向加噪的定义与方差表同上text/43-ch13-13-multimodal-face-generation-and-manipulation-w.txt:53(搜「variance schedule」)
反向过程是一串学出来的高斯转移同上text/43-ch13-13-multimodal-face-generation-and-manipulation-w.txt:57(搜「learned Gaussian transition」)
训练目标退化成「预测这一步的噪声」同上text/43-ch13-13-multimodal-face-generation-and-manipulation-w.txt:61(搜「reparameterizes the learnable Gaussian transition」)
条件怎么进来同上text/43-ch13-13-multimodal-face-generation-and-manipulation-w.txt:71(搜「receives an additional input」)
小网络读什么、吐什么;逐像素摊平同上text/43-ch13-13-multimodal-face-generation-and-manipulation-w.txt:87(搜「adaptively determined by a dynamic diffuser」) · text/43-ch13-13-multimodal-face-generation-and-manipulation-w.txt:91(搜「we perform softmax across all modalities」)
逐像素加权合成同上text/43-ch13-13-multimodal-face-generation-and-manipulation-w.txt:103(搜「pixel-wise multiplication」)
与「组合同一模型副本」的区别同上text/43-ch13-13-multimodal-face-generation-and-manipulation-w.txt:107(搜「the weights of the diffusion models being composed are the same」)
扩到编辑不必重训小网络同上text/43-ch13-13-multimodal-face-generation-and-manipulation-w.txt:113(搜「requires no further training of dynamic diffusers」) · text/43-ch13-13-multimodal-face-generation-and-manipulation-w.txt:233(搜「three steps to complete an edit」)
参数量 403.6M 对 13.1M同上text/43-ch13-13-multimodal-face-generation-and-manipulation-w.txt:207(搜「much smaller model size」) · text/43-ch13-13-multimodal-face-generation-and-manipulation-w.txt:223(搜「13.1M」)
数据集、19 个区域号、五个文字属性、删掉三个同上text/43-ch13-13-multimodal-face-generation-and-manipulation-w.txt:253(搜「To avoid conflict between segmentation masks and texts」)
FID 是什么同上text/43-ch13-13-multimodal-face-generation-and-manipulation-w.txt:269(搜「A lower FID implies better sample quality」)
主表与用户研究同上text/43-ch13-13-multimodal-face-generation-and-manipulation-w.txt:299(搜「69.40% and 84.37%」) · text/43-ch13-13-multimodal-face-generation-and-manipulation-w.txt:311(搜「157.81」)
空间分工与时间分工同上text/43-ch13-13-multimodal-face-generation-and-manipulation-w.txt:339(搜「mainly lies on the contours」) · text/43-ch13-13-multimodal-face-generation-and-manipulation-w.txt:379(搜「stronger at earlier diffusion stages」)
两项消融同上text/43-ch13-13-multimodal-face-generation-and-manipulation-w.txt:355(搜「117.81」) · text/43-ch13-13-multimodal-face-generation-and-manipulation-w.txt:367(搜「77.07」)
社会影响三条同上text/43-ch13-13-multimodal-face-generation-and-manipulation-w.txt:409(搜「deviate from the looks of the general population」)

Footnotes

  1. 出处:「13. Multimodal Face Generation and Manipulation with Diffusion Models」表 13.2 所在的第 207–227 段(text/43-ch13-13-multimodal-face-generation-and-manipulation-w.txt:207,搜「much smaller model size」;text/43-ch13-13-multimodal-face-generation-and-manipulation-w.txt:223,搜「13.1M」)与表 13.3 所在的第 327 段(text/43-ch13-13-multimodal-face-generation-and-manipulation-w.txt:327,搜「111.36」)。主走查第 ⑥、⑧ 步里的 0.8 / 0.2 / 0.3 / 0.7 四个权重是为演示编的——书里只给了「掩码早期强、文字后期强」这个方向和一张可视化图,没有给具体数值。

  2. 出处:同上第 61 段(text/43-ch13-13-multimodal-face-generation-and-manipulation-w.txt:61,搜「reparameterizes the learnable Gaussian transition」)与第 53 段(text/43-ch13-13-multimodal-face-generation-and-manipulation-w.txt:53,搜「variance schedule」)。原文:前向过程按一张方差表逐步往数据里加高斯噪声,最终把原图破坏成近似的纯高斯噪声;训练目标被重参数化成「预测噪声」,损失是真噪声与预测噪声之差的平方;而且 x_t 可以由 x₀ 与噪声直接算出来,不必真的一步步加

  3. 出处:同上第 71 段(text/43-ch13-13-multimodal-face-generation-and-manipulation-w.txt:71,搜「receives an additional input」)。原文:无条件的扩散模型可以扩展成条件模型,条件可以是类别标签、分割掩码、文本描述;条件模型多接收一个输入——条件经过一个编码器得到的嵌入——并按「真噪声与在该条件下预测的噪声之差」训练。19 类分割掩码的具体类目见第 253 段(text/43-ch13-13-multimodal-face-generation-and-manipulation-w.txt:253,搜「left eyebrow」)。

  4. 出处:同上第 37 段(text/43-ch13-13-multimodal-face-generation-and-manipulation-w.txt:37,搜「confined to the use of a single modality」)。原文:扩散模型的一个吸引人的性质是能被多种模态条件化——文本、分割掩码、草图;但现有探索基本限于一次用一种,多条件的利用仍然研究不足,作为生成工具其可控性仍然有限。

  5. 出处:同上第 41 段(text/43-ch13-13-multimodal-face-generation-and-manipulation-w.txt:41,搜「retraining is necessary」)。原文:把现有的监督框架扩展到多模态在技术上不难,但从头训练大规模模型计算开销很大,尤其是还需要大量超参调试与精细的结构设计;更重要的是,每个训好的模型只接受一个固定的模态组合,少一种或多一种模态时都必须重训

  6. 出处:同上第 43 段(text/43-ch13-13-multimodal-face-generation-and-manipulation-w.txt:43,搜「text for age and mask for hair shape」)。原文:受「不同模态彼此互补(例如文本管年龄、掩码管发型)」这一事实启发,探索在被不同模态驱动的模型之间建立横向连接的可能性。

  7. 出处:同上第 87 段(text/43-ch13-13-multimodal-face-generation-and-manipulation-w.txt:87,搜「adaptively determined by a dynamic diffuser」)、第 91 段(text/43-ch13-13-multimodal-face-generation-and-manipulation-w.txt:91,搜「we perform softmax across all modalities」)、第 103 段(text/43-ch13-13-multimodal-face-generation-and-manipulation-w.txt:103,搜「pixel-wise multiplication」)与表 13.2。原文:每一路的影响力由一个动态扩散器根据「当前噪声图、时间步、该路条件」自适应给出,它本身用一个 UNet 实现,输出是一张 h×w 的图;为了约束总强度,在每个像素上对所有模态做一次 softmax;最终这一步的噪声预测是各路影响力图与各路噪声预测的逐像素相乘再求和。参数量:两个已训好的条件扩散模型各 403.6M,两个动态扩散器各 13.1M。「小 30 倍」这个倍数是我们做的除法。

  8. 出处:同上第 107 段(text/43-ch13-13-multimodal-face-generation-and-manipulation-w.txt:107,搜「the weights of the diffusion models being composed are the same」)。原文:那个对照方法把同一个文生图模型的两个实例组合起来,通过中间结果相加实现组合式生成,目的是把文本条件拆成基本片段;而本章的框架能整合权重、结构、模态都不同的模型。

  9. 出处:同上第 339 段(text/43-ch13-13-multimodal-face-generation-and-manipulation-w.txt:339,搜「mainly lies on the contours」)。原文:影响力函数在不同空间区域表现不同——掩码驱动那一路的影响力主要落在面部区域的轮廓上,例如头发、脸、眼睛的外形,因为这些区域对确定面部布局至关重要。文字那一路落在皮肤区域的说法见同段后半与图 13.10 的说明。

  10. 出处:同上第 379 段(text/43-ch13-13-multimodal-face-generation-and-manipulation-w.txt:379,搜「stronger at earlier diffusion stages」)。原文:掩码驱动那一路的影响力在扩散的早期阶段(t 较大时)更强,因为早期的重点是用它的预测把面部布局立起来;到后期文字那一路的影响力上升,因为皮肤皱纹、胡子长度这类纹理细节要靠文本里的信息来落实

  11. 出处:同上第 269 段(text/43-ch13-13-multimodal-face-generation-and-manipulation-w.txt:269,搜「A lower FID implies better sample quality」)。原文:用 FID 衡量各方法合成图像的质量,它计算生成图与真实图在特征表示上的距离,FID 越低表示样本质量越好。(「过一个现成的图像模型抽特征」这一句是我们补的常识说明,书里只说「特征表示」。)

  12. 出处:同上第 299 段(text/43-ch13-13-multimodal-face-generation-and-manipulation-w.txt:299,搜「69.40% and 84.37%」)与表 13.3 各行(text/43-ch13-13-multimodal-face-generation-and-manipulation-w.txt:311,搜「157.81」;text/43-ch13-13-multimodal-face-generation-and-manipulation-w.txt:319,搜「124.62」;text/43-ch13-13-multimodal-face-generation-and-manipulation-w.txt:327,搜「111.36」)。原文:三项客观指标全面胜过两个对照方法;用户研究中,生成任务上有 69.40% 的时候被选为最好,编辑任务上是 84.37%。

  13. 出处:同上第 343 段(text/43-ch13-13-multimodal-face-generation-and-manipulation-w.txt:343,搜「removing the spatial variance」)、第 381 段(text/43-ch13-13-multimodal-face-generation-and-manipulation-w.txt:381,搜「remove the temporal variation」)与表 13.4(text/43-ch13-13-multimodal-face-generation-and-manipulation-w.txt:355,搜「117.81」;text/43-ch13-13-multimodal-face-generation-and-manipulation-w.txt:367,搜「77.07」)。原文:去掉空间变化后,输出质量与条件一致性都退化;去掉时间变化同样如此。「掩码一致性掉得最狠,正好印证掩码的活在早期」这条对应关系是我们从两张表读出来的,书里没有点破。

  14. 出处:同上第 113 段(text/43-ch13-13-multimodal-face-generation-and-manipulation-w.txt:113,搜「requires no further training of dynamic diffusers」)与第 233–247 段(text/43-ch13-13-multimodal-face-generation-and-manipulation-w.txt:233,搜「three steps to complete an edit」)。原文:借用一个已有的文本编辑方法,它分三步——优化文本条件使模型能重建输入图、固定优化后的条件再微调模型、在目标条件与优化条件之间插值;书里把同一套推广到掩码那一侧,再用已经训好的动态扩散器把两次编辑合成一次协作编辑;并明确写道:框架扩展到编辑不需要再训练动态扩散器。 2

  15. 出处:同上第 253 段(text/43-ch13-13-multimodal-face-generation-and-manipulation-w.txt:253,搜「To avoid conflict between segmentation masks and texts」)。原文:数据是三万张高分辨率名人脸(两万七训练、三千验证),掩码有 19 类面部部件与配饰,文字描述覆盖刘海、眼镜、胡子、微笑、年龄五个属性;为避免掩码与文本冲突,把刘海、眼镜、微笑三项从自然语言描述里裁掉了,因为掩码也在描述它们。

  16. 出处:同上第 407 段(text/43-ch13-13-multimodal-face-generation-and-manipulation-w.txt:407,搜「maliciously manipulate real human faces」)与第 409 段(text/43-ch13-13-multimodal-face-generation-and-manipulation-w.txt:409,搜「deviate from the looks of the general population」)。原文三条:更容易制造虚假影像或恶意篡改数据,可能助长错误信息传播;采样过程可能在数据所有者未明确同意的情况下泄露训练数据;生成模型可能继承训练数据里的偏见,而这里训练用的是名人脸,可能偏离普通人群的长相分布。作者并劝告读者审慎使用。

  17. 这一条是我们指出来的缺口,不是书里的说法。 全章没有任何一处报告推理时延或显存占用;表 13.2 只给了参数量。与第 12 章形成对照——那一章把慢这件事单列了一节。