eDiff-I:具有一组专家降噪器的文本到图像扩散模型
Paper Title:eDiff-I: Text-to-Image Diffusion Models with an Ensemble of Expert Denoisers
Paper是NVIDIA 公司发表在arxiv 2022的工作
Paper地址
项目页面地址
图 1. 我们提出的方法 eDiff-I 的示例结果和功能。第一行显示 eDiff-I 可以忠实地将复杂的输入文本提示转换为艺术和逼真的图像。在第二行中,我们首先展示 eDiff-I 可以将文本输入和参考图像结合起来以生成目标输出图像,其中参考图像可以方便地用于表示难以用文字描述但存在视觉示例的风格或概念。我们还展示了 eDiff-I 的逐字绘画功能,其中可以将输入文本中的短语绘制在画布上以控制输入文本中描述的对象的特定布局。逐字绘画功能补充了文本到图像功能,并为艺术家提供了对生成输出的更多控制。
Abstract
大规模基于扩散的生成模型已在文本条件下的高分辨率图像合成方面取得突破,展示了复杂的文本理解和出色的零样本泛化能力。从随机噪声开始,这种文本到图像的扩散模型在以文本提示为条件的同时,以迭代方式逐渐合成图像。我们发现它们的合成行为在整个过程中发生了质的变化:在采样的早期,生成强烈依赖于文本提示来生成文本对齐的内容,而后来,文本条件几乎完全被忽略,任务变为生成高视觉保真度的输出。这表明,在整个生成过程中共享模型参数(文献中的标准做法)可能并不理想,无法最好地捕捉生成过程中这些截然不同的模式。因此,与现有作品不同,我们建议训练一组专门用于不同合成阶段的文本到图像扩散模型。为了保持训练效率,我们最初训练一个模型,然后逐步将其拆分为专门的模型,并进一步针对迭代生成过程的特定阶段进行训练。我们的扩散模型集合称为 eDiff-I,它在保持相同推理计算成本和保持高视觉质量的同时,提高了文本对齐效果,在标准基准上的表现优于以前的大规模文本到图像扩散模型。此外,我们训练模型以利用各种嵌入进行调节,包括 T5 文本、CLIP 文本和 CLIP 图像嵌入。我们表明,这些不同的嵌入会导致不同的图像形成行为。值得注意的是,CLIP 图像嵌入允许以直观和即时的方式将参考图像的样式转移到目标文本到图像输出。最后,我们展示了一种启用 eDiff-I 的“用文字绘画”功能的技术。用户可以选择输入文本中的单词并将其绘制在画布上以控制输出,这对于在脑海中制作所需的图像非常方便。
1. Introduction
如图 2 所示,通过迭代去噪生成图像的扩散模型 [26,69,73] 正在彻底改变图像生成领域。它们是近期文本转图像模型的核心构建块,这些模型在将复杂的文本提示转换为照片级逼真的图像方面表现出惊人的能力,甚至对于从未见过的新概念也是如此 [57, 59, 63]。这些模型促成了众多交互式工具和创意应用程序的开发,并推动了内容创作的民主化。
图 2. 扩散模型中的合成对应于一个迭代去噪过程,该过程逐渐从随机噪声中生成图像;一维分布的相应随机过程可视化。通常,整个去噪过程中使用相同的去噪器神经网络。在 eDiff-I 中,我们训练一组专门用于生成过程不同间隔去噪的专家去噪器。
可以说,这一成功很大程度上归功于扩散模型的强大可扩展性,因为可扩展性为从业者提供了一条清晰的途径,可以将更大的模型容量、计算和数据集转化为更好的图像生成质量。这很好地提醒了我们惨痛的教训 [75],即长期使用大量数据和强大计算能力进行训练的可扩展模型往往比手工制作的专门模型表现更好。
在自然语言建模 [33]、图像分类 [23]、图像重建 [38] 和自回归生成建模 [21] 中也观察到了类似的趋势。
我们感兴趣的是进一步扩展扩散模型,以提升其在文本转图像生成任务中的模型能力。我们首先注意到,仅仅通过在每个去噪步骤中使用更深或更宽的神经网络来增加容量,将对采样的测试时间计算复杂度产生负面影响,因为采样相当于求解一个反向(生成)微分方程,其中去噪网络被调用多次。我们的目标是实现扩展目标,而不会产生测试时间计算复杂度开销。
我们的主要见解是,文本到图像的扩散模型在生成过程中表现出有趣的时间动态。
在早期采样阶段,当去噪网络的输入数据更接近随机噪声时,扩散模型主要依靠文本提示来指导采样过程。随着生成的继续,模型逐渐转向视觉特征来对图像进行去噪,大部分忽略输入文本提示,如图 3 和 4 所示。
图 3. 不同噪声水平下的注意力图可视化。我们绘制了视觉特征的自注意力热图(顶部)。每个值表示此位置的视觉特征的使用频率,是所有注意力查询的平均结果。我们还绘制了交叉注意力热图(底部),其中每个值表示相应文本标记的使用频率。我们绘制了 T5 文本标记和 CLIP 文本标记的交叉注意力热图。请注意,我们的交叉注意力层还包括一个空标记,图中未显示。当所有文本标记的注意力值都很低时,空标记最受关注。该图显示,在核心图像形成发生的较高噪声水平下,文本注意力值很强。在这些区域中,模型依赖文本来生成与文本描述一致的粗略布局。另一方面,在较低的噪声水平下,文本注意力值较弱,因为图像大多在此时形成。模型不需要依赖文本信息进行去噪。相反,在自注意力图的情况下,注意力值在较高的噪声水平下均匀分布,因为这些区域中的图像内容不具信息量。
在较低的噪声水平下,注意力图会显示出与图像内容更相关的模式。
图 4. 迭代去噪期间切换提示的影响。在使用提示 #1 执行固定百分比的去噪步骤后,我们将输入文本更改为提示 #2。如图所示,从左到右,5 张图像的转换百分比不同,分别为 0%、7%、30%、60% 和 100%。比较第一个和第二个输出,我们注意到文本输入在去噪的最后 7% 中使用时对输出没有明显影响,这表明在迭代去噪结束时未使用文本提示。
第三个输出显示了两个提示的影响,其中狐猴和卡片分别被狮子和蜂蜜取代。第四个输出表明,去噪前 40% 的文本输入被剩余 60% 的文本输入覆盖。从这些结果中,我们发现去噪器在不同噪声水平下对文本输入的利用方式不同。
受此观察的启发,我们建议通过训练一组专业去噪器来提高扩散模型的容量,每个去噪器都专门针对生成过程的特定阶段。虽然这不会增加每个时间步采样的计算复杂度,但它增加了训练复杂度,因为应该针对不同的阶段训练不同的去噪模型。为了解决这个问题,我们建议为所有阶段预先训练一个共享扩散模型。
然后,我们使用这个预先训练的模型来初始化专门的模型,并对其进行微调以减少迭代次数。该方案在基准数据集上产生了最先进的文本到图像生成结果。
我们还探索使用一组预训练的文本编码器为我们的文本到图像模型提供输入。我们同时使用 CLIP 文本编码器 [55](经过训练可将文本嵌入与相应的图像嵌入对齐)和 T5 文本编码器 [56](经过训练可完成语言建模任务)。尽管先前的研究 [51,57,59,60,63] 使用了这两个编码器,但它们尚未在一个模型中使用。由于这两个编码器是使用不同的目标进行训练的,它们的嵌入有利于使用相同的输入文本形成不同的图像。虽然 CLIP 文本嵌入有助于确定生成图像的整体外观,但输出往往会错过文本中的细粒度细节。
相比之下,单独使用 T5 文本嵌入生成的图像可以更好地反映文本中描述的各个对象,但它们的整体外观不太准确。在我们的模型中,联合使用它们可以产生最佳的图像生成结果。除了文本嵌入之外,我们还训练我们的模型以利用输入图像的 CLIP 图像嵌入,我们发现这对风格转换很有用。我们将我们的完整模型称为图像集成扩散,缩写为 eDiff-I。
虽然文本提示可以有效地指定要包含在生成的图像中的对象,但使用文本来控制对象的空间位置很麻烦。我们设计了一个无需训练的模型扩展,以实现“用文字绘画”,这是一种可控制的生成方法,使用我们的文本到图像模型,允许用户通过在画布上涂鸦来指定特定对象和概念的位置。
结果是一个图像生成模型,它可以将文本和语义掩码作为输入,以更好地帮助用户在脑海中制作完美的图像。
贡献 我们工作的主要贡献是
- 基于对文本到图像扩散模型在不同噪声水平下具有不同行为的观察,我们提出了专家去噪器集合设计,以提高生成质量,同时保持相同的推理计算成本。专家去噪器通过精心设计的微调方案进行训练,以降低训练成本。
- 我们建议使用一组编码器为扩散模型提供输入信息。它们包括 T5 文本编码器、CLIP 文本编码器和 CLIP 图像编码器。我们表明文本编码器有利于不同的图像形成,并且 CLIP 图像编码器提供了有用的风格转换功能,允许用户使用风格参考照片来影响文本到图像的输出。
- 我们设计了一个无需训练的扩展,通过交叉注意调制方案实现用文字绘画功能,这允许用户对文本到图像输出进行额外的空间控制。
2. Related Work
去噪扩散模型 [26, 69, 73] 是一类通过迭代去噪过程生成样本的深度生成模型。这些模型在不同噪声水平下使用去噪分数匹配 [31, 79] 目标进行训练,因此也称为噪声条件分数网络 [71, 72]。它们已经推动了文本到图像生成 [57, 59, 63]、自然语言生成 [41]、时间序列预测 [76]、音频合成 [39]、3D 形状生成 [49, 87, 91]、分子构象生成 [84]、蛋白质结构生成 [83]、机器学习安全 [52] 和差分隐私图像合成 [14] 等成功应用。
文本到图像扩散模型一些最高质量的文本到图像生成模型基于扩散模型。这些模型学习在图像空间(如 GLIDE [51] 和 Imagen [63])或单独的潜在空间(如 DALL·E 2 [57]、稳定扩散 [59, 60] 和 VQ-Diffusion [19])上执行以文本提示为条件的去噪任务。为了提高计算效率,扩散模型通常在低分辨率图像或潜在变量上进行训练,然后通过超分辨率扩散模型 [27] 或潜在变量到图像解码器 [68, 77] 将其转换为高分辨率图像。使用分类器(无)指导 [13, 28] 以及使用确定性 [15, 34, 43, 46, 70, 89] 或随机 [4, 5, 16, 90] 迭代更新的各种采样算法从这些扩散模型中抽取样本。一些研究从外部数据库中检索与文本提示相关的辅助图像,并对其进行条件生成以提高性能 [7, 9, 66]。最近,提出了几种文本到视频的扩散模型,并取得了高质量的视频生成结果 [20, 25, 29, 67, 85]。
文本到图像扩散模型的应用除了作为针对一般图像到图像翻译任务进行微调的骨干[80]之外,文本到图像扩散模型在其他下游应用中也表现出令人印象深刻的能力。扩散模型可以直接应用于各种逆问题,例如超分辨率[13,64]、修复[11,47]、去模糊[35,82]和JPEG恢复[36,62]。例如,混合扩散[2,3]使用自然语言描述进行修复。文本到图像的扩散模型还可以执行其他语义图像编辑任务。SDEdit[50]支持通过彩色笔触或图像块对现有图像进行重新合成、合成和编辑。DreamBooth[61]和文本反转[18]允许通过从一些图像中学习特定于主题的标记来实现模型的“个性化”。
即时调整可以通过修改用于生成相同图像的文本提示来实现图像编辑,而无需用户提供特定于对象的分割蒙版 [22]。 类似的图像编辑功能也可以通过微调模型参数 [37, 78] 或使用降噪器自动查找编辑蒙版 [12] 来实现。
扩大深度学习模型深度学习最近的成功主要得益于越来越大的模型和数据集。结果表明,只需扩大模型参数和数据量,就能显著提高各种任务的性能,如语言理解 [8, 10]、视觉识别 [88] 和多模态推理 [55]。然而,这些大容量模型在训练和推理过程中也会增加计算和能源成本。最近的一些研究 [1,58,65] 采用了稀疏专家模型,将每个输入示例路由到网络权重的一小部分,从而使计算量在扩展时易于处理。同样,我们提出的专家去噪器增加了可训练参数的数量,而不会增加测试时的计算成本。
3. Background
在文本到图像的生成模型中,输入文本通常由文本嵌入表示,该嵌入是从预训练模型(例如 CLIP [55] 或 T5 [56] 文本编码器)中提取的。
在这种情况下,根据文本提示生成图像的问题可以归结为学习条件生成模型,该模型将文本嵌入作为输入条件并生成与条件一致的图像。
文本到图像扩散模型通过从噪声分布中采样图像并使用去噪模型 D ( x ; e , σ ) D(\boldsymbol{x} ; \boldsymbol{e}, \sigma) D(x;e,σ) 迭代去噪生成数据,其中 x \boldsymbol{x} x 表示当前步骤中的噪声图像, e e e 是输入嵌入, σ \sigma σ 是指示当前噪声水平的标量输入。接下来,我们正式讨论去噪模型是如何训练的以及如何用于采样。
训练 去噪模型通过给定其腐蚀版本(通过添加不同尺度的高斯噪声生成)来恢复干净图像进行训练。根据 Karras 等人 [34] 提出的 EDM 公式及其建议的腐蚀调度 [34,70],我们可以将训练目标写为:
E p data ( x clean , e ) , p ( ϵ ) , p ( σ ) [ λ ( σ ) ∥ D ( x clean + σ ϵ ; e , σ ) − x clean ∥ 2 2 ] \mathbb{E}_{p_{\text {data }}\left(\boldsymbol{x}_{\text {clean }}, \boldsymbol{e}\right), p(\boldsymbol{\epsilon}), p(\sigma)}\left[\lambda(\sigma)\left\|D\left(\boldsymbol{x}_{\text {clean }}+\sigma \boldsymbol{\epsilon} ; \boldsymbol{e}, \sigma\right)-\boldsymbol{x}_{\text {clean }}\right\|_2^2\right] Epdata (xclean ,e),p(ϵ),p(σ)[λ(σ)∥D(xclean +σϵ;e,σ)−xclean ∥22]
其中 p data ( x clean , e ) p_{\text {data }}\left(\boldsymbol{x}_{\text {clean }}, \boldsymbol{e}\right) pdata (xclean ,e) 表示生成训练图像-文本对的训练数据分布, p ( ϵ ) = N ( 0 , I ) p(\boldsymbol{\epsilon})=\mathcal{N}(\mathbf{0}, \mathbf{I}) p(ϵ)=N(0,I) 是标准正态分布, p ( σ ) p(\sigma) p(σ) 是噪声水平采样的分布, λ ( σ ) \lambda(\sigma) λ(σ) 是损失加权因子。
去噪器公式 根据 Karras 等人 [34],我们使用以下公式对去噪器进行预处理:
D ( x ; e , σ ) : = ( σ data σ ∗ ) 2 x + σ ⋅ σ data σ ∗ F θ ( x σ ∗ ; e , ln ( σ ) 4 ) D(\boldsymbol{x} ; \boldsymbol{e}, \sigma):=\left(\frac{\sigma_{\text {data }}}{\sigma^*}\right)^2 \boldsymbol{x}+\frac{\sigma \cdot \sigma_{\text {data }}}{\sigma^*} F_\theta\left(\frac{\boldsymbol{x}}{\sigma^*} ; \boldsymbol{e}, \frac{\ln (\sigma)}{4}\right) D(x;e,σ):=(σ∗σdata )2x+σ∗σ⋅σdata Fθ(σ∗x;e,4ln(σ))
其中 σ ∗ = σ 2 + σ data 2 \sigma^*=\sqrt{\sigma^2+\sigma_{\text {data }}^2} σ∗=σ2+σdata 2, F θ F_\theta Fθ 是经过训练的神经网络。我们使用 σ data = 0.5 \sigma_{\text {data }}=0.5 σdata =0.5 作为自然图像中像素值标准差的近似值。对于 σ \sigma σ,我们使用对数正态分布 ln ( σ ) ∼ N ( P mean , P std ) \ln (\sigma) \sim \mathcal{N}\left(P_{\text {mean }}, P_{\text {std }}\right) ln(σ)∼N(Pmean ,Pstd ),其中 P mean = − 1.2 P_{\text {mean }}=-1.2 Pmean =−1.2, P std = 1.2 P_{\text {std }}=1.2 Pstd =1.2,加权因子 λ ( σ ) = ( σ ∗ / ( σ ⋅ σ data ) ) 2 \lambda(\sigma)=\left(\sigma^* /\left(\sigma \cdot \sigma_{\text {data }}\right)\right)^2 λ(σ)=(σ∗/(σ⋅σdata ))2 用于抵消公式 (1) 中 F θ F_\theta Fθ 的输出加权。
采样 使用扩散模型生成图像时,首先通过从先验分布 x ∼ N ( 0 , σ max 2 I ) \boldsymbol{x} \sim \mathcal{N}\left(\mathbf{0}, \sigma_{\max }^2 \mathbf{I}\right) x∼N(0,σmax2I) 中采样生成初始图像,然后使用生成常微分方程 (ODE) 进行求解:
d x d σ = − σ ∇ x log p ( x ∣ e , σ ) = x − D ( x ; e , σ ) σ \frac{\mathrm{d} \boldsymbol{x}}{\mathrm{d} \sigma}=-\sigma \nabla_{\boldsymbol{x}} \log p(\boldsymbol{x} \mid \boldsymbol{e}, \sigma)=\frac{\boldsymbol{x}-D(\boldsymbol{x} ; \boldsymbol{e}, \sigma)}{\sigma} dσdx=−σ∇xlogp(x∣e,σ)=σx−D(x;e,σ)
其中 σ \sigma σ 从 σ max \sigma_{\max } σmax 向 σ min ≈ 0 \sigma_{\min } \approx 0 σmin≈0 反向流动。上述公式中的 ∇ x log p ( x ∣ e , σ ) \nabla_x \log p(\boldsymbol{x} \mid \boldsymbol{e}, \sigma) ∇xlogp(x∣e,σ) 表示在噪声水平 σ \sigma σ 下被腐蚀数据的得分函数,该函数由去噪模型 [ 31 , 79 ] [31,79] [31,79] 获得。 σ max \sigma_{\text {max }} σmax 表示噪声水平很高,此时所有数据都被完全腐蚀,输入图像分布与腐蚀图像分布之间的互信息趋于零。注意,采样也可以表示为求解一个随机微分方程,如 Song 等人 [73] 所讨论的那样。
超分辨率扩散模型 文本条件下的超分辨率扩散模型的训练大致遵循上面描述的文本条件扩散模型的训练。主要区别在于超分辨率去噪模型还将低分辨率图像作为条件输入。根据以往的工作 [57],我们在训练期间对低分辨率输入图像施加了各种腐蚀 [81],以增强超分辨率模型的泛化能力。
4. Ensemble of Expert Denoisers
如我们在上一节中讨论的那样,文本到图像扩散模型依赖去噪模型将来自先验高斯分布的样本转换为以输入文本提示为条件的图像。形式上,生成的常微分方程 (2) 使用 D ( x ; e , σ ) D(\boldsymbol{x} ; \boldsymbol{e}, \sigma) D(x;e,σ) 来逐渐引导样本朝向与输入条件对齐的图像。
在每个噪声水平 σ \sigma σ 上,去噪模型 D D D 依赖于两个信息来源进行去噪:当前的噪声输入图像 x \boldsymbol{x} x 和输入文本提示 e \boldsymbol{e} e。我们的关键观察是,文本到图像扩散模型在依赖这两个来源时表现出独特的时间动态。生成初期,当 σ \sigma σ 较大时,输入图像 x \boldsymbol{x} x 大多是噪声。因此,直接从输入的视觉内容进行去噪是一项具有挑战性且不明确的任务。在这个阶段, D D D 主要依赖输入的文本嵌入来推断朝向文本对齐图像的方向。然而,随着 σ \sigma σ 在生成结束时变小,大部分粗略内容已经由去噪模型绘制出来。在这个阶段, D D D 主要忽略文本嵌入,使用视觉特征来添加细粒度的细节。
我们通过在图 3 中可视化视觉和文本特征之间的交叉注意力图与生成不同阶段的视觉特征上的自注意力图,验证了这一观察结果。在图 4 中,我们进一步检查了在去噪过程中不同阶段将输入标题从一个提示切换到另一个提示时生成的样本如何变化。当提示切换发生在去噪的最后 7 % 7 \% 7% 时,生成的输出保持不变。另一方面,当提示切换发生在训练的前 40 % 40 \% 40% 时,输出会完全改变。
在大多数现有的扩散模型工作中,去噪模型在所有噪声水平上是共享的,时间动态通过一个简单的时间嵌入表示,并通过 MLP 网络传递给去噪模型。我们认为,去噪扩散的复杂时间动态可能无法通过共享模型有效地从数据中学习,尤其是当模型容量有限时。相反,我们建议通过引入一组专家去噪器来扩大去噪模型的容量;每个专家去噪器都是针对特定噪声水平范围的去噪模型(见图 2)。通过这种方式,我们可以在不减慢采样速度的情况下增加模型容量,因为在每个噪声水平上评估 D D D 的计算复杂性保持不变。
然而,简单地为不同阶段分别训练去噪模型会显著增加训练成本,因为需要从头开始训练每个专家去噪器。为了解决这个问题,我们首先在所有噪声水平上训练一个共享模型。然后,我们使用这个模型来初始化下一阶段的去噪专家。接下来,我们讨论如何从一个预训练模型中正式地迭代创建去噪专家。
4.1. Efficient Training of Expert Denoisers
我们提出了一种基于二叉树实现的分支策略,以高效训练专家去噪器。我们首先使用全噪声水平分布 p ( σ ) p(\sigma) p(σ) 训练一个共享模型。然后,我们从这个基准模型初始化两个专家模型。我们称这些模型为一级专家,因为它们在二叉树的第一级上进行训练。这两个专家在噪声分布 p 0 1 ( σ ) p_0^1(\sigma) p01(σ) 和 p 1 1 ( σ ) p_1^1(\sigma) p11(σ) 上训练,这些分布是通过面积均等分割 p ( σ ) p(\sigma) p(σ) 获得的。因此,在 p 0 1 ( σ ) p_0^1(\sigma) p01(σ) 上训练的专家专注于低噪声水平,而在 p 1 1 ( σ ) p_1^1(\sigma) p11(σ) 上训练的专家则专注于高噪声水平。在我们的实现中, p ( σ ) p(\sigma) p(σ) 遵循对数正态分布(见第3节)。最近,Luhman 等人 [48] 也为图像生成的两阶段去噪训练了两个扩散模型,但他们的模型是在不同分辨率的图像上训练的,并且从头开始分别训练。
一旦一级专家模型训练完成,我们按照上面描述的方式对它们各自的噪声区间进行类似的分割,并为每个子区间训练专家。这一过程以递归方式重复进行多个层次。通常,在第 l l l 层,我们将噪声分布 p ( σ ) p(\sigma) p(σ) 分割为面积相等的 2 l 2^l 2l 个区间,表示为 { p i l ( σ ) } i = 0 2 l − 1 \left\{p_i^l(\sigma)\right\}_{i=0}^{2^l-1} {pil(σ)}i=02l−1,其中模型 i i i 在分布 p i l ( σ ) p_i^l(\sigma) pil(σ) 上训练。我们称这种模型或二叉树中的节点为 E i l E_i^l Eil。
理想情况下,在每个 l l l 层,我们需要训练 2 l 2^l 2l 个模型。然而,这在实际操作中是不现实的,因为模型数量会随着二叉树的深度呈指数增长。此外,在实践中,我们发现许多中间区间上训练的模型对最终系统的性能贡献不大。因此,我们主要集中在每一层的二叉树最左和最右的节点上扩展树: E 0 l E_0^l E0l 和 E 2 l − 1 l E_{2^l-1}^l E2l−1l。最右的区间包含高噪声水平的样本。如图 3 和图 4 所示,在高噪声水平上进行良好的去噪对于改进文本条件至关重要,因为核心图像的生成发生在这一阶段。因此,在这一阶段拥有一个专门的模型是理想的。同样,我们也专注于在低噪声水平上训练模型,因为在采样过程中去噪的最后步骤发生在这一阶段。因此,良好的模型对于获得清晰的结果是必需的。最后,我们在所有介于两个极端区间之间的中间噪声区间上训练一个单一的模型。
简而言之,我们的最终系统将由三个专家去噪器组成的集合:一个专注于低噪声水平的专家去噪器(由二叉树中最左的区间给出),一个专注于高噪声水平的专家去噪器(由二叉树中最右的区间给出),以及一个学习所有中间噪声区间的单一专家去噪器。我们的分支策略的更详细描述见附录 B。在第 5 节中,我们还考虑了其他类型的专家集合进行定量评估。
4.2. Multiple Conditional Inputs
为了训练我们的文本到图像的扩散模型,我们在训练期间使用以下条件嵌入:(1)T5XXL [56] 文本嵌入,(2)CLIP L/14 文本嵌入和(3)CLIP L/14 图像嵌入。我们为整个数据集预先计算这些嵌入,因为在线计算它们非常昂贵。与之前的工作 [27、59、63] 类似,我们将投影的条件嵌入添加到时间嵌入中,并在去噪模型的多个分辨率下执行交叉注意。我们在训练期间对每个嵌入独立使用随机 dropout [74]。当嵌入被丢弃时,我们将整个嵌入张量清零。当所有三个嵌入都被丢弃时,它对应于无条件训练,这对于执行无分类器指导很有用 [28]。我们在图 5 中可视化输入条件方案。
图 5. eDiff-I 由一个基本扩散模型组成,该模型生成 64×64 分辨率的图像。接下来是两个超分辨率扩散模型,分别将图像上采样到 256×256 和 1024×1024 分辨率,本文中称为 SR256 和 SR1024。所有模型都通过 T5 和 CLIP 文本嵌入以文本为条件。eDiff-I 还允许用户选择性地提供额外的 CLIP 图像嵌入。这可以对输出进行详细的风格控制(参见图 1 和 16)。
我们的完整管道由一系列扩散模型组成。具体来说,我们有一个可以生成 64×64 分辨率图像的基础模型和两个可以逐步将图像上采样到 256×256 和 1024×1024 分辨率的超分辨率扩散模型(见图 5)。为了训练超分辨率模型,我们以被随机退化破坏的真实低分辨率输入为条件 [81]。在训练期间添加退化可以使模型更好地泛化,以消除基础模型生成的输出中可能存在的伪影。
对于基础模型,我们使用 Dhariwal 等人 [13] 中提出的 U-net 架构的修改版本,而对于超分辨率模型,我们使用 Saharia 等人 [63] 中提出的高效 U-net 架构的修改版本。有关架构的更多详细信息,请参阅附录 A。
4.3. Paint-with-words
图 6. 所提出的“用文字绘画”方法的说明。用户可以通过选择短语(此处为“兔子法师”和“云”)并在画布上绘画来控制对象的位置。用户指定的掩码会增加交叉注意层中注意矩阵相应条目的值。
我们提出了一种无训练的方法,称为 paint-withwords,该方法使用户能够指定物体的空间位置。如图6所示,用户可以从文本提示中选择任意短语,并在画布上涂鸦,以创建与该短语对应的二进制掩码。这些掩码作为输入被传递到所有的交叉注意力层,并通过双线性下采样以匹配每一层的分辨率。我们使用这些掩码创建一个输入注意力矩阵 A ∈ R N i × N t A \in \mathbb{R}^{N_i \times N_t} A∈RNi×Nt,其中 N i N_i Ni 和 N t N_t Nt 分别表示图像和文本的token数量。矩阵A的每一列由展平成与该列文本token对应的短语的掩码生成。如果某列对应的文本token不包含在用户选择的任何短语中,则该列会被设为零。然后,我们将输入注意力矩阵添加到原始的交叉注意力层的注意力矩阵中,交叉注意力层的输出现在通过以下公式计算:
softmax ( Q K T + w A d k ) V \text{softmax} \left(\frac{Q K^T + w A}{\sqrt{d_k}}\right) V softmax(dkQKT+wA)V
其中, Q Q Q 是来自图像token的查询嵌入, K K K 和 V V V 分别是来自文本token的键和值嵌入, d k d_k dk 是 Q Q Q 和 K K K 的维度, w w w 是控制用户输入注意力强度的标量。直观上,当用户在某个区域为一个短语绘制时,该区域的图像token会被鼓励更多地关注包含该短语的文本token。因此,该短语对应的语义概念更有可能出现在指定的区域。
我们发现,在较高噪声水平下使用较大的权重是有益的,并且使 A A A 的影响与 Q Q Q 和 K K K 的尺度无关,这对应于一个在经验上效果良好的调度方式:
w = w ′ ⋅ log ( 1 + σ ) ⋅ max ( Q K T ) w = w^{\prime} \cdot \log(1+\sigma) \cdot \max(Q K^T) w=w′⋅log(1+σ)⋅max(QKT)
其中, w ′ w^{\prime} w′ 是用户指定的标量。
总结
- 3个Unet组成专家去噪器,一个专注于高噪声级别,一个专注于低噪声级别,一个专注于中间噪声级别
- 权重共享:高级别由低级别模型权重初始化,所有级别共享权重的Unet作为最开始的初始化
- 有一些权重ensemble的意思了