一、技术解读
1 核心思想:两阶段生成框架的革命性设计
传统文本到图像生成方法通常采用端到端的单一模型,但DALL-E 2创新性地提出了两阶段生成框架 ,将文本到图像的复杂任务分解为两个相对简单的子任务。
传统方法需同时处理语义理解和细节生成,导致优化困难。unCLIP引入CLIP图像嵌入作为中间表征,将任务解耦为:
- 文本→语义嵌入(先验模型)
- 语义嵌入→图像生成(解码器)
核心概率分解公式 :
P(x∣y)=P(x,zi∣y)=P(x∣zi,y)P(zi∣y)P(x|y) = P(x,z_i|y) = P(x|z_i,y)P(z_i|y)P(x∣y)=P(x,zi∣y)=P(x∣zi,y)P(zi∣y)
先验阶段 :P(zi∣y)P(z_i|y)P(zi∣y) - 文本到CLIP嵌入的映射
- 输入 :文本标题yyy + CLIP文本嵌入ztz_tzt
- 模型选择:扩散先验优于自回归先验
- 损失函数 :Lprior=Et,zi(t)[∥fθ(zi(t),t,y)−zi∥2]L_{prior} = \mathbb{E}{t,z_i^{(t)}}[\|f\theta(z_i^{(t)},t,y)-z_i\|^2]Lprior=Et,zi(t)[∥fθ(zi(t),t,y)−zi∥2]
解码阶段 :P(x∣zi,y)P(x|z_i,y)P(x∣zi,y) - CLIP嵌入到图像的生成
- CLIP嵌入整合到扩散模型条件机制
- 无分类器引导提升生成质量
- 多尺度上采样实现高分辨率输出
多样性生成 :其中xTx_TxT是扩散过程的最终噪声状态。
P(x∣zi,y)=∫P(x∣zi,y,xT)P(xT∣zi,y)dxTP(x|z_i,y) = \int P(x|z_i,y,x_T)P(x_T|z_i,y)dx_TP(x∣zi,y)=∫P(x∣zi,y,xT)P(xT∣zi,y)dxT
2 核心技术
2.1 先验模型
unCLIP在先验模型设计中比较了自回归(AR)先验和扩散先验两种方案,最终确定扩散先验在计算效率和生成质量上更具优势。
2.1.1 扩散先验:高效的连续潜变量生成
损失函数设计 :
Lprior=Et∼[1,T],zi(t)∼qt[∥fθ(zi(t),t,y)−zi∥2]L_{prior} = \mathbb{E}{t\sim[1,T],z_i^{(t)}\sim q_t}[\|f\theta(z_i^{(t)},t,y)-z_i\|^2]Lprior=Et∼[1,T],zi(t)∼qt[∥fθ(zi(t),t,y)−zi∥2]
- t∼[1,T]t\sim[1,T]t∼[1,T]:从扩散过程的1到T步随机采样时间步
- zi(t)∼qtz_i^{(t)}\sim q_tzi(t)∼qt:从前向扩散分布中采样的加噪CLIP嵌入
- fθf_\thetafθ:扩散先验模型,基于加噪嵌入、时间步和文本条件预测原始嵌入
- yyy :文本条件信息,包含原始文本编码和CLIP文本嵌入ztz_tzt的双重表示
- ∥⋅∥2\|\cdot\|^2∥⋅∥2:均方误差,衡量预测与真实嵌入的差距
扩散先验的Transformer序列结构精心整合了多源条件信息:该设计通过交叉注意力机制将文本条件yyy和ztz_tzt深度融合到去噪过程中,确保生成的CLIP图像嵌入与文本语义高度对齐。
python
[文本编码] + [CLIP文本嵌入 $z_t$] + [时间步嵌入] + [加噪图像嵌入 $z_i^{(t)}$] → [预测头(输出原始 $z_i$)]
2.1.2 自回归(AR)先验
自回归先验将CLIP图像嵌入 ziz_izi 的生成建模为离散标记序列的预测任务,其损失函数为:
LAR=−∑k=1319logP(tokenk∣token<k,y,zt)L_{AR} = -\sum_{k=1}^{319} \log P(token_k | token_{<k}, y, z_t)LAR=−k=1∑319logP(tokenk∣token<k,y,zt)
其中条件信息包括文本标题 yyy 和CLIP文本嵌入 ztz_tzt。
数据预处理流程:
- 降维处理:通过主成分分析将1024维CLIP图像嵌入降至319维
- 离散化量化:将每个连续维度量化为1024个离散桶
- 序列构建:按特征值重要性排序,形成319个标记的序列
自回归生成架构 :
自回归先验采用因果Transformer架构,通过以下序列结构实现条件生成:
[点积标记] + [文本编码] + [CLIP文本嵌入 $z_t$] + [图像嵌入标记序列]
点积条件机制 是该设计的创新点,通过计算 ztz_tzt 与 ziz_izi 的点积并量化为标记添加到序列开头,引导模型生成与文本相关性更高的图像嵌入。实验表明,从点积分布的上半部分(top 50%)采样能获得最佳效果。
2.1.3 条件机制设计
无论是扩散先验还是自回归先验,其核心挑战之一都是如何将文本条件信息 yyy 和 ztz_tzt 有效地融入生成过程。
扩散先验接受双模态条件输入:
- 文本标题yyy:提供具体的语言描述
- CLIP文本嵌入ztz_tzt:提供语义空间密集表示
通过交叉注意力机制将条件信息融入去噪过程,确保生成的CLIP图像嵌入与文本语义高度匹配。在自回归先验中,额外引入了点积条件机制,实验表明,从点积分布的上半部分(top 50%)采样能获得最佳效果。
- 计算文本嵌入ztz_tzt与图像嵌入ziz_izi的点积
- 将点积量化为离散标记添加到序列开头
- 引导模型生成与文本更高相关性的图像嵌入
2.2 解码器核心架构
unCLIP的解码器承担着将CLIP图像嵌入转换为高质量图像的关键任务,本质上是"CLIP图像编码器的逆过程"。论文选择扩散模型作为解码器基础,源于扩散模型在生成高保真图像方面的卓越能力,且支持无分类器引导,能有效平衡生成质量与多样性。
解码器架构:
- 纯卷积设计:解码器仅使用空间卷积操作,无注意力机制
- 全局条件注入 :CLIP图像嵌入 ziz_izi 通过MLP投影后,与时间步嵌入相加,作为U-Net所有残差块的增益和偏置条件
- 空间依赖性处理:图像生成过程中的空间关系完全由卷积层捕获,不涉及交叉注意力操作
解码器的核心创新体现在如何将CLIP图像嵌入ziz_izi有效地整合到扩散模型中。
时间步嵌入融合(路径一)
- CLIP嵌入经MLP投影后与扩散模型时间步嵌入相加
- 确保语义信息在生成全流程持续作用
- 公式:embedcombined=MLP(zi)+TimeEmbed(t)\text{embed}_{\text{combined}} = \text{MLP}(z_i) + \text{TimeEmbed}(t)embedcombined=MLP(zi)+TimeEmbed(t)
上下文标记扩展(路径二)
- CLIP嵌入投影为4个上下文标记,与256个文本标记拼接
- 形成260标记的增强序列,提升条件信息密度
- 实现细粒度的空间条件控制
文本条件路径保留
- 维持完整文本处理路径作为冗余保障
- 捕捉CLIP可能遗漏的语言细节(如变量绑定)
- 为后续多模态扩展预留接口

3 训练策略的创新:无分类器引导与多尺度上采样
unCLIP在训练策略上实现了两项重要创新:无分类器引导技术和多尺度上采样架构,共同解决了生成质量与计算效率的关键平衡问题。
3.1 无分类器引导技术:质量与多样性的精细控制
核心创新:通过训练时的条件丢弃和推理时的引导调节,实现生成质量与多样性的精准平衡。
训练策略设计:
- 双重条件丢弃机制 :
- CLIP嵌入丢弃率10%:使模型学习无条件生成
- 文本标题丢弃率50%:平衡不同条件源的影响
- 增强模型对不完整条件的鲁棒性
推理机制 :
x^=xc+s⋅(xc−xu)\hat{x} = x_c + s \cdot (x_c - x_u)x^=xc+s⋅(xc−xu)
其中:
- xcx_cxc:完整条件生成结果(CLIP+文本)
- xux_uxu:无条件生成结果(随机丢弃条件)
- sss:引导尺度参数,控制条件强度
技术优势:
- 连续调节能力 :通过引导尺度sss在质量-多样性间平滑过渡
- 训练稳定性:避免传统分类器引导的对抗训练不稳定
- 无需额外模型:单一模型同时支持有条件和无条件生成
3.2 多尺度上采样架构:高效的高分辨率生成
渐进式上采样策略将高分辨率生成分解为三个阶段,显著优化计算效率:
基础生成阶段(64×64):
- 使用完整注意力机制生成语义完整的低分辨率图像
- 整合CLIP嵌入和文本条件,建立图像基础结构
- 为后续上采样提供高质量的初始表示
一级上采样(64×64 → 256×256):
python
# 技术实现要点
(注:320通道ADMNet、3个残差块为工程实现参考,论文未明确指定具体参数)
上采样器输入:64×64基础图像 + 高斯模糊条件(核大小3,σ=0.6)
网络架构:320通道ADMNet,3个残差块每分辨率
训练策略:增强对模糊输入的鲁棒性
二级上采样(256×256 → 1024×1024):
- 应用BSR多样化退化增强泛化能力
- 192通道简化架构提升计算效率
- 1/4尺寸随机裁剪训练,大幅减少计算量
架构优化创新:
- 空间卷积专用:上采样器仅使用卷积操作,无注意力层
- 分离式训练:低分辨率基础生成与高分辨率上采样解耦
- 泛化能力:小尺寸训练直接泛化到目标分辨率
4 图像操作能力的突破:基于CLIP潜空间的语义编辑
unCLIP的两阶段设计使其具备独特的图像操作能力,图像被编码为二分潜在表示(zi,xT)(z_i, x_T)(zi,xT),其中ziz_izi是CLIP语义嵌入,xTx_TxT是解码器重建所需的残差信息。这一架构支持三种强大的图像操作功能:
4.1 图像变体生成:保留语义,改变细节
核心能力 :给定一张图像xxx,生成语义相同但细节不同的多个变体,如改变物体方向、姿态等。
实现原理:
- 二分表示 :图像被分解为ziz_izi(语义核心)和xTx_TxT(细节噪声)
- 可控随机性 :通过DDIM采样中的η\etaη参数控制细节变化程度
- 标准扩散模型(DDPM) :
- 完全随机的前向和反向过程
- 每个采样步骤都添加随机噪声
- 生成过程具有固有的随机性
- DDIM(去噪扩散隐式模型) :
- 引入确定性采样的扩散模型变体
- 通过重新参数化实现确定性生成
- η\etaη参数控制随机性与确定性的平衡
- 在DDIM的采样公式中,η\etaη控制着随机噪声的注入量:
xt−1=αt−1(xt−1−αtϵθ(xt,t)αt)+1−αt−1−σt2⋅ϵθ(xt,t)+σt⋅zx_{t-1} = \sqrt{\alpha_{t-1}} \left( \frac{x_t - \sqrt{1-\alpha_t}\epsilon_\theta(x_t, t)}{\sqrt{\alpha_t}} \right) + \sqrt{1-\alpha_{t-1}-\sigma_t^2} \cdot \epsilon_\theta(x_t, t) + \sigma_t \cdot zxt−1=αt−1 (αt xt−1−αt ϵθ(xt,t))+1−αt−1−σt2 ⋅ϵθ(xt,t)+σt⋅z
σt=η(1−αt−1)/(1−αt)1−αt/αt−1 \sigma_t = \eta \sqrt{(1-\alpha_{t-1})/(1-\alpha_t)} \sqrt{1-\alpha_t/\alpha_{t-1}} σt=η(1−αt−1)/(1−αt) 1−αt/αt−1
数学表达:
- η=0\eta = 0η=0:确定性采样,精准重建原始图像
- η>0\eta > 0η>0:引入随机性,η\etaη越大细节变化越明显
- 语义信息由ziz_izi保持,确保变体与原始图像主题一致
4.2 图像插值:平滑的语义过渡
核心能力 :在两张图像x1x_1x1和x2x_2x2之间生成平滑过渡的中间图像,实现概念融合。
球面插值公式 :
ziθ=slerp(zi1,zi2,θ)z_{i_\theta} = \text{slerp}(z_{i_1}, z_{i_2}, \theta)ziθ=slerp(zi1,zi2,θ)
参数说明:
- zi1z_{i_1}zi1、zi2z_{i_2}zi2:两张图像的CLIP图像嵌入
- θ\thetaθ:插值系数(0→1对应x1x_1x1→x2x_2x2)
- slerp\text{slerp}slerp:球面线性插值,保持嵌入的归一化特性
4.3 文本差异编辑:语言引导的语义修改
核心能力:通过文本描述直接修改图像内容,无需手动指定编辑区域或方向。
实现步骤:
-
计算文本差异向量 :
zd=norm(zt−zt0)z_d = \text{norm}(z_t - z_{t_0})zd=norm(zt−zt0)- zt0z_{t_0}zt0:原始图像描述的文本嵌入
- ztz_tzt:目标描述的文本嵌入
- norm\text{norm}norm:归一化操作,控制修改强度
-
语义嵌入插值 :
zθ=slerp(zi,zd,θ)z_\theta = \text{slerp}(z_i, z_d, \theta)zθ=slerp(zi,zd,θ)- θ\thetaθ:插值系数(通常取0.25-0.5)
- ziz_izi:原始图像的CLIP图像嵌入
-
解码生成:
- 固定xTx_TxT(xTx_TxT为解码器DDIM反转得到的残差噪声,固定xTx_TxT可保持原始图像的细节一致性)
- 解码zθz_\thetazθ得到修改后图像
应用示例:
- 原始图像:"一只黑猫"
- 目标描述:"一只白猫"
- 操作:计算"白猫"与"黑猫"的文本差异向量,在图像嵌入空间进行插值
- 结果:生成白猫图像,保持姿态、背景等细节不变
4.4 技术实现基础
CLIP潜空间的统一性:
- 图像和文本嵌入共享同一语义空间
- 支持跨模态的直接操作和比较
- 实现"文本-图像-文本"的闭环编辑
两阶段架构的优势:
- 分离语义(ziz_izi)和细节(xTx_TxT),实现精确控制
- 支持独立操作不同成分,灵活性高
- 保持生成质量的同时实现复杂编辑
操作流程示意:
python
原始图像 → CLIP编码(得到z_i)+ DDIM反转(得到x_T) → (z_i, x_T) → 操作处理 → 解码 → 编辑后图像
文本描述 → CLIP编码 → 文本嵌入
二、论文翻译:Hierarchical Text-Conditional Image Generation with CLIP Latents(基于 CLIP 潜变量的分层文本条件图像生成)
0 摘要
对比模型如CLIP已被证明能够学习图像的鲁棒表征,同时捕捉语义和风格。为了利用这些表征进行图像生成,我们提出了一个两阶段模型:一个先验模型,根据文本标题生成CLIP图像嵌入;以及一个解码器,根据图像嵌入生成图像 。我们表明,显式生成图像表征能够在保持照片真实感和标题相似性的同时,显著提高图像多样性。我们基于图像表征的条件解码器还能够生成图像的变体,这些变体在保留语义和风格的同时,改变图像表征中缺失的非必要细节。此外,CLIP的联合嵌入空间使得能够以零样本方式实现语言引导的图像操作。我们使用扩散模型作为解码器,并对自回归和扩散模型作为先验进行了实验,发现后者在计算上更高效,并且能够产生更高质量的样本。
1 引言
计算机视觉的最新进展是由在从互联网收集的大规模标注图像数据集上扩展模型所驱动的[10, 44, 60, 39, 31, 16]。在这一框架下,CLIP[39]已成为一种成功的图像表征学习器。CLIP嵌入具有许多理想的特性:对图像分布偏移具有鲁棒性,具有令人印象深刻的零样本能力,并且经过微调后能够在各种视觉和语言任务上实现最先进的结果[45]。同时,扩散模型[46, 48, 25]已成为一种有前景的生成建模框架,在图像和视频生成任务上推动了最新技术[11, 26, 24]。为了获得最佳结果,扩散模型利用了一种引导技术[11, 24],该技术以样本多样性为代价提高了样本保真度(对于图像,即照片真实感)。
在这项工作中,我们结合了这两种方法来解决文本条件图像生成的问题。我们首先训练一个扩散解码器来反转CLIP图像编码器。我们的反转器是非确定性的,可以为给定的图像嵌入生成多个对应的图像。编码器及其近似逆(解码器)的存在使得能够实现超越文本到图像翻译的能力。与GAN反转[62, 55]类似,对输入图像进行编码和解码会产生语义相似的输出图像(图3)。我们还可以通过反转它们图像嵌入的插值来在输入图像之间进行插值(图4)。然而,使用CLIP潜在空间的一个显著优势是能够通过沿任何编码文本向量的方向移动来语义地修改图像(图5),而在GAN潜在空间中发现这些方向需要运气和细致的手动检查。此外,对图像进行编码和解码也为我们提供了一种工具,用于观察CLIP识别或忽略了图像的哪些特征。
为了获得完整的图像生成模型,我们将CLIP图像嵌入解码器与一个先验模型相结合,该先验模型根据给定的文本标题生成可能的CLIP图像嵌入。我们将我们的文本到图像系统与其他系统(如DALL-E[40]和GLIDE[35])进行比较,发现我们的样本在质量上与GLIDE相当,但生成多样性更大。我们还开发了在潜在空间中训练扩散先验的方法,并表明它们在实现与自回归先验相当性能的同时,计算效率更高。我们将我们的完整文本条件图像生成堆栈称为unCLIP,因为它通过反转CLIP图像编码器来生成图像。
2 方法

我们的训练数据集由图像xxx及其对应标题yyy的配对(x,y)(x,y)(x,y)组成。给定图像xxx,令ziz_izi和ztz_tzt分别为其CLIP图像和文本嵌入。我们设计我们的生成堆栈,使用两个组件从标题生成图像:
- 一个先验P(zi∣y)P(z_i|y)P(zi∣y),根据标题yyy生成CLIP图像嵌入ziz_izi。
- 一个解码器P(x∣zi,y)P(x|z_i,y)P(x∣zi,y),根据CLIP图像嵌入ziz_izi(以及可选的文本标题yyy)生成图像xxx。
解码器允许我们根据给定的CLIP图像嵌入反转图像,而先验允许我们学习图像嵌入本身的生成模型。将这两个组件堆叠起来,得到一个给定标题yyy生成图像xxx的生成模型P(x∣y)P(x|y)P(x∣y):
P(x∣y)=P(x,zi∣y)=P(x∣zi,y)P(zi∣y).P(x|y)=P(x,z_i|y)=P(x|z_i,y)P(z_i|y).P(x∣y)=P(x,zi∣y)=P(x∣zi,y)P(zi∣y).
第一个等式成立是因为ziz_izi是xxx的确定性函数。第二个等式成立是因为链式法则。因此,我们可以通过首先使用先验采样ziz_izi,然后使用解码器采样xxx,来从真实条件分布P(x∣y)P(x|y)P(x∣y)中采样。在以下小节中,我们将描述我们的解码器和先验堆栈。有关训练细节和超参数,请参阅附录C。
2.1 解码器
我们使用扩散模型[25, 48]来生成以CLIP图像嵌入(以及可选的文本标题)为条件的图像。具体来说,我们修改了Nichol等人(2021)中描述的架构,通过投影CLIP嵌入并将其添加到现有的时间步嵌入中,并将CLIP嵌入投影为四个额外的上下文标记,这些标记与GLIDE文本编码器输出的序列连接。我们保留了原始GLIDE模型中存在的文本条件路径,假设它可能允许扩散模型学习CLIP未能捕捉的自然语言方面(例如变量绑定),但发现在这方面它提供的帮助很小(第7节)。
虽然我们可以直接从解码器的条件分布中采样,但过去使用扩散模型的工作表明,对条件信息使用引导[11, 24, 35]可以大大提高样本质量。我们通过在训练期间随机将CLIP嵌入设置为零(或一个学习到的嵌入)10%的时间,并随机丢弃文本标题50%的时间,来实现无分类器引导[24]。
为了生成高分辨率图像,我们训练了两个扩散上采样模型[34, 43]:一个将图像从64x64上采样到256x256分辨率,另一个进一步将这些图像上采样到1024x1024分辨率。为了提高上采样器的鲁棒性,我们在训练期间对条件图像进行轻微破坏。对于第一个上采样阶段,我们使用高斯模糊[43],对于第二个阶段,我们使用更多样化的BSR退化[42, 59]。为了减少训练计算量并提高数值稳定性,我们遵循Rombach等人[42]的方法,在目标大小四分之一大小的随机裁剪图像上进行训练。我们在模型中仅使用空间卷积(即没有注意力层),在推理时直接以目标分辨率应用模型,观察到它能够很好地泛化到更高分辨率。我们发现上采样器以标题为条件没有好处,因此使用无条件的ADMNets[11]且不进行引导。
2.2 先验
虽然解码器可以从CLIP图像嵌入ziz_izi反转生成图像xxx,但我们需要一个先验模型来从标题yyy生成ziz_izi,以实现从文本标题生成图像。我们探索了两种不同的模型类别作为先验模型:
- 自回归(AR)先验 :将CLIP图像嵌入ziz_izi转换为离散代码序列,并以标题yyy为条件自回归地预测。
- 扩散先验 :使用以标题yyy为条件的高斯扩散模型直接对连续向量ziz_izi进行建模。
除了标题之外,我们还可以将先验条件化于CLIP文本嵌入ztz_tzt,因为它是标题的确定性函数。为了提高样本质量,我们还通过训练期间随机丢弃此文本条件信息10%的时间,对AR和扩散先验启用无分类器引导采样。
为了更有效地训练和采样AR先验,我们首先通过应用主成分分析(PCA)[37]来降低CLIP图像嵌入ziz_izi的维度。特别是,我们发现当使用SAM[15]训练CLIP时,CLIP表示空间的秩显著降低,同时评估指标略有改善。我们通过仅保留原始1,024个主成分中的319个,能够保留几乎全部信息2^22。应用PCA后,我们按特征值大小递减的顺序对主成分进行排序,将319个维度中的每一个量化为1,024个离散桶,并使用具有因果注意力掩码的Transformer[53]模型预测结果序列。这在推理期间将预测的标记数量减少了三倍,并提高了训练稳定性。
我们通过将文本标题和CLIP文本嵌入编码为序列的前缀来条件化AR先验。此外,我们在序列前添加一个指示文本嵌入和图像嵌入之间(量化)点积的标记,即zi⋅ztz_i \cdot z_tzi⋅zt。这允许我们以更高的点积为条件,因为更高的文本-图像点积对应于更好地描述图像的标题。在实践中,我们发现从分布的上半部分采样点积是有益的。3^33
对于扩散先验,我们在一个序列上训练一个仅解码器的Transformer,该序列依次包含:编码的文本、CLIP文本嵌入、扩散时间步的嵌入、加噪的CLIP图像嵌入,以及一个最终嵌入,其来自Transformer的输出用于预测未加噪的CLIP图像嵌入。我们选择不像AR先验那样以zi⋅ztz_i \cdot z_tzi⋅zt为条件;相反,我们通过生成两个ziz_izi样本并选择与ztz_tzt点积较高的那个来提高采样时的质量。我们没有使用Ho等人[25]的ϵ\epsilonϵ预测公式,而是发现训练模型直接预测未加噪的ziz_izi更好,并对此预测使用均方误差损失:
Lprior=Et∼[1,T],zi(t)∼qt[∥fθ(zi(t),t,y)−zi∥2]L_{prior}=E_{t\sim[1,T],z_i^{(t)}\sim q_t}[\|f_\theta(z_i^{(t)},t,y)-z_i\|^2]Lprior=Et∼[1,T],zi(t)∼qt[∥fθ(zi(t),t,y)−zi∥2]
2^22 即在重建图像表示时平均均方误差小于1%。
3^33 我们在50%、70%、85%、95%这些百分位数上进行了扫描,发现50%在所有实验中都是最优的。
3 图像操作
我们的方法允许我们将任何给定图像xxx编码为一个二分潜在表示(zi,xT)(z_i, x_T)(zi,xT),该表示足以让解码器产生准确的 reconstruction。潜在ziz_izi描述了CLIP识别的图像方面,而潜在xTx_TxT编码了解码器重建xxx所需的所有残差信息。前者通过简单地使用CLIP图像编码器对图像进行编码获得。后者通过使用解码器对xxx应用DDIM反转(附录F in [11])获得,同时以ziz_izi为条件。我们描述了由这种二分表示启用的三种不同类型的操作。
3.1 变体

给定一个图像xxx,我们可以生成相关的图像,这些图像共享相同的基本内容,但在其他方面(如形状和方向)有所不同(图3)。为此,我们使用DDIM和η>0\eta > 0η>0进行采样,将解码器应用于二分表示(zi,xT)(z_i, x_T)(zi,xT)。当η=0\eta = 0η=0时,解码器变为确定性的,并将重建给定图像xxx。较大的η\etaη值在连续采样步骤中引入了随机性,从而产生感知上以原始图像xxx为中心的变体。随着η\etaη的增加,这些变体告诉我们哪些信息被捕获在CLIP图像嵌入中(因此在样本间保留),以及哪些信息丢失了(因此在样本间变化)。
3.2 插值

还可以在两个图像x1x_1x1和x2x_2x2之间进行混合以生成变体(图4),遍历CLIP嵌入空间中出现在它们之间的所有概念。为此,我们使用球面插值在它们的CLIP嵌入zi1z_{i_1}zi1和zi2z_{i_2}zi2之间进行旋转,随着θ\thetaθ从0变化到1,产生中间CLIP表示ziθ=slerp(zi1,zi2,θ)z_{i_\theta} = \text{slerp}(z_{i_1}, z_{i_2}, \theta)ziθ=slerp(zi1,zi2,θ)。生成轨迹上的中间DDIM潜在有两种选择。第一种选择涉及在它们的DDIM反转潜在xT1x_{T_1}xT1和xT2x_{T_2}xT2之间进行插值(通过设置xTθ=slerp(xT1,xT2,θ)x_{T_\theta} = \text{slerp}(x_{T_1}, x_{T_2}, \theta)xTθ=slerp(xT1,xT2,θ)),这产生一个单一轨迹,其端点重建x1x_1x1和x2x_2x2。第二种选择涉及将DDIM潜在固定为随机采样的值,用于轨迹中的所有插值。这导致在x1x_1x1和x2x_2x2之间存在无限多条轨迹,尽管这些轨迹的端点通常不再与原始图像重合。我们在图4中使用了这种方法。
3.3 文本差异

使用CLIP与其他图像表示模型相比的一个关键优势是,它将图像和文本嵌入到相同的潜在空间中,从而允许我们应用语言引导的图像操作(即文本差异),如图5所示。为了修改图像以反映新的文本描述yyy,我们首先获取其CLIP文本嵌入ztz_tzt,以及描述当前图像4^44的标题的CLIP文本嵌入zt0z_{t_0}zt0。然后我们通过取它们的差并进行归一化来计算一个文本差异向量zd=norm(zt−zt0)z_d = \text{norm}(z_t - z_{t_0})zd=norm(zt−zt0)。现在,我们可以使用球面插值在图像CLIP嵌入ziz_izi和文本差异向量zdz_dzd之间进行旋转,产生中间CLIP表示zθ=slerp(zi,zd,θ)z_\theta = \text{slerp}(z_i, z_d, \theta)zθ=slerp(zi,zd,θ),其中θ\thetaθ从0线性增加到最大值,通常在[0.25, 0.50]范围内。我们通过解码插值zθz_\thetazθ来生成最终输出,在整个轨迹中固定基础DDIM噪声为xTx_TxT。
4^44 除了当前图像的描述外,我们还尝试使用像"a photo"这样的虚拟标题作为基线,或者完全移除它。这些方法效果也很好。
4 探索CLIP潜在空间
我们的解码器模型提供了一个独特的机会,通过允许我们直接可视化CLIP图像编码器所看到的内容来探索CLIP潜在空间。作为一个示例用例,我们可以重新审视CLIP做出错误预测的情况,例如排版攻击[20]。在这些对抗性图像中,一段文本覆盖在一个物体上,导致CLIP预测文本描述的对象而不是图像中描绘的对象。这段文本在输出概率方面基本上隐藏了原始对象。

在图6中,我们展示了来自[20]的这种攻击的一个例子,其中一个苹果可能被误分类为iPod。令人惊讶的是,我们发现即使"Granny Smith"的预测概率接近零,我们的解码器仍然以高概率生成苹果的图片。更值得注意的是,尽管该标题的预测相对概率非常高,但模型从未生成iPod的图片。

PCA重建提供了另一种探索CLIP潜在空间结构的工具。在图7中,我们取少量源图像的CLIP图像嵌入,并用逐渐增多的PCA维度重建它们,然后使用我们的解码器和固定种子的DDIM可视化重建的图像嵌入。这使我们能够看到不同维度编码了哪些语义信息。我们观察到,早期的PCA维度保留了粗粒度的语义信息,例如场景中有哪些类型的物体,而后期的PCA维度编码了更细粒度的细节,例如物体的形状和确切形式。例如,在第一个场景中,早期维度似乎编码了存在食物和可能一个容器,而后期维度则具体编码了西红柿和一个瓶子。图7也作为AR先验建模的可视化,因为AR先验被训练为显式地按此顺序预测这些主成分。
5 文本到图像生成
5.1 先验的重要性
虽然我们训练了一个先验来从标题生成CLIP图像嵌入,但先验对于标题到图像生成并不是严格必需的。例如,我们的解码器可以同时以CLIP图像嵌入和标题为条件,但为了启用无分类器引导,在训练期间有5%的时间会丢弃CLIP图像嵌入。因此,在采样时,我们可以仅以标题为条件,尽管这种方式的表现不如完全以此方式训练的模型(该模型是GLIDE,我们将在第5.2和5.3节中与GLIDE进行全面比较)。另一种可能性是将CLIP文本嵌入作为图像嵌入馈送给解码器,如先前观察到的[61, 54]。

图8的前两行描述了以这两种方式获得的样本;第三行描述了使用先验获得的样本。仅以标题为条件的解码器显然最差,但以文本嵌入零样本为条件确实产生了合理的结果。基于这一观察,另一种方法是训练解码器以CLIP文本嵌入[9]为条件,而不是CLIP图像嵌入(尽管我们会失去第4节中提到的能力)。
为了量化这些替代方法的有效性,我们训练了两个模型:一个以CLIP文本嵌入为条件的小型解码器,以及一个小型unCLIP堆栈(扩散先验和解码器)。然后我们比较来自文本嵌入解码器的样本、来自unCLIP堆栈的样本,以及通过将文本嵌入零样本馈送给unCLIP解码器获得的样本,对所有模型进行引导尺度的扫描。我们发现这些方法在测试集上分别获得9.16、7.99和16.55的FID分数,表明unCLIP方法是最好的。我们还进行了人工评估,比较前两种设置,使用我们的人工评估代理模型(附录A)对每种设置的采样超参数进行扫描。我们发现,对于照片真实感,人类在57.0%±3.1%的情况下更喜欢完整的unCLIP堆栈,对于标题相似性,在53.1%±3.1%的情况下更喜欢。
考虑到先验的重要性,值得评估训练它的不同方法。我们在所有实验中比较了AR和扩散先验。在所有情况下(第5.2、5.4和5.5节),我们发现扩散先验在 comparable 模型大小和减少的训练计算量下优于AR先验。
5.2 人工评估

我们在图1中观察到unCLIP能够合成复杂、真实的图像。虽然我们可以使用FID将样本质量与过去的模型进行比较,但它并不总是与人类判断一致。为了更好地衡量我们系统的生成能力,我们进行了系统的人工评估,将unCLIP与GLIDE在照片真实感、标题相似性和样本多样性方面进行比较。
我们遵循Ramesh等人、Nichol等人[40, 35]的协议进行前两项评估:对于照片真实感,向用户展示成对的图像,必须选择哪个看起来更真实;对于标题相似性,用户还会收到一个标题,必须选择哪个图像更匹配标题。在这两项评估中,都有第三个"不确定"选项。对于多样性,我们提出了一个新的评估协议,向用户展示两个4x4的样本网格,必须选择哪个更多样化(第三个选项是"不确定")。对于此评估,我们使用来自MS-COCO验证集的1,000个标题生成样本网格,并始终比较相同标题的样本网格。在进行人工比较之前,我们使用训练为人工照片真实感评估代理的CLIP线性探针(附录A)对每个模型的采样超参数进行了扫描。这些超参数在所有三种类型的评估中都是固定的。

我们在表1中展示了我们的结果。总的来说,在与GLIDE的 pairwise 比较中,扩散先验的表现优于AR先验。我们发现,在照片真实感方面,人类仍然略微偏好GLIDE而不是unCLIP,但差距非常小。即使在照片真实感相似的情况下,unCLIP在多样性方面也明显优于GLIDE,突出了其优势之一。
5.3 使用引导改进多样性-保真度权衡
与GLIDE相比,我们定性地观察到unCLIP能够在利用引导技术提高样本质量的同时生成更多样的图像。要理解原因,请考虑图9,其中我们增加了GLIDE和unCLIP的引导尺度。对于GLIDE,语义(相机角度、颜色、大小)随着我们增加引导尺度而收敛,而对于unCLIP,场景的语义信息被冻结在CLIP图像嵌入中,因此在引导解码器时不会崩溃。

在第5.2节中,我们观察到unCLIP在保持更多多样性的同时实现了与GLIDE相似的照片真实感,但其标题匹配能力稍差。很自然地会问,是否可以降低GLIDE的引导尺度以获得与unCLIP相同的多样性水平,同时保持更好的标题匹配。在图10中,我们通过在不同GLIDE引导尺度下进行人工评估来更仔细地研究这个问题。我们发现,在引导尺度为2.0时,GLIDE在照片真实感和标题相似性方面与unCLIP非常接近,同时仍然产生较少多样性的样本。

最后,在图11中,我们在对unCLIP和GLIDE的引导尺度进行扫描的同时计算了MS-COCO零样本FID[23],发现引导对unCLIP的FID损害远小于GLIDE。在此评估中,我们固定了unCLIP先验的引导尺度,仅改变解码器的引导尺度。这是另一个迹象,表明引导对GLIDE多样性的损害远大于unCLIP,因为FID严重惩罚非多样性的生成。

5.4 MS-COCO上的比较
在文本条件图像生成文献中,在MS-COCO[28]验证集上评估FID已成为标准做法。我们在表2中展示了该基准测试的结果。与GLIDE和DALL-E一样,unCLIP没有直接在MS-COCO训练集上训练,但仍然可以零样本泛化到验证集。我们发现,与这些其他零样本模型相比,当使用扩散先验进行采样时,unCLIP实现了10.39的最新FID。在图12中,我们在几个来自MS-COCO的标题上,将unCLIP与各种最近的文本条件图像生成模型进行了视觉比较。我们发现,与其他方法一样,unCLIP生成了捕捉文本提示的现实场景。

5.5 美学质量比较
我们还进行了自动化的美学质量评估,比较unCLIP和GLIDE。我们此评估的目标是评估每个模型在生成艺术插图和照片方面的表现。为此,我们使用GPT-3[4]生成了512个"艺术性"标题,通过使用现有艺术品(包括真实的和AI生成的)的标题来提示它。接下来,我们训练了一个CLIP线性探针,使用AVA数据集[33](附录A)预测人类美学判断。对于每个模型和一组采样超参数,我们为每个提示生成四张图像,并报告整批2048张图像的平均预测美学判断。

在图13中,我们展示了美学质量评估的结果。我们发现引导提高了GLIDE和unCLIP的美学质量。对于unCLIP,我们只引导解码器(我们发现引导先验会损害结果)。我们还绘制了美学质量与Recall5^55的关系图,因为引导通常会在保真度和多样性之间进行权衡。有趣的是,我们发现根据这个指标,引导unCLIP不会降低Recall,同时仍然提高了美学质量。
5^55 Recall是相对于训练数据集计算的。
6 相关工作
合成图像生成是一个被充分研究的问题,大多数流行的无条件图像生成技术也被应用于文本条件设置。许多先前的工作在公开可用的图像标注数据集上训练GANs[21]以产生文本条件图像样本[56, 63, 49, 58, 57]。其他工作通过训练自回归变换器对文本标记后接图像标记的序列进行训练,使VQ-VAE方法[52]适应文本条件图像生成[40, 12, 1]。最后,一些工作将扩散模型应用于该问题,训练连续[35]或离散[22]扩散模型,并辅以辅助文本编码器来处理文本输入。
先前的工作利用分层生成过程来创建高质量的合成图像。Razavi等人[41]训练了一个多层离散自编码器,允许他们首先采样粗粒度的潜在代码,然后在采样更高分辨率的潜在代码时将其作为条件信息。Child、Vahdat和Kautz[5, 50]使用具有潜在代码层次结构的VAEs生成图像,这些潜在代码随着分辨率逐渐增加。与我们的工作同时,Gafni等人[17]将生成图像模型条件化于分割掩码,允许生成过程首先采样图像的语义图,然后将生成的图像条件化于此信息。
使用扩散在潜在空间中进行建模的计算优势已被先前的工作注意到。Preechakul等人[38]提出了一个自编码器框架,其中扩散模型用于将潜在变量渲染为图像,第二个扩散模型用于生成这些潜在变量(类似于我们的扩散先验)。Vahdat等人[51]在VAE的潜在空间中使用基于分数的模型,而Rombach等人[42]在从VQGAN[14]类自编码器获得的潜在变量上使用扩散模型。
自发布以来,CLIP[39]已被广泛用于将生成图像模型引导向文本提示。Galatolo等人、Patashnik等人、Murdock、Gal等人[19, 36, 32, 18]使用来自CLIP模型的梯度引导GANs。对于扩散模型,Dhariwal和Nichol[11]引入了分类器引导,作为一种使用在加噪图像上训练的分类器的梯度来将模型引导向更高质量生成的方法。Nichol等人[35]在加噪图像上训练了一个CLIP模型并引导一个文本条件扩散模型,而Crowson、Crowson[7, 8]使用未加噪的CLIP模型来引导无条件或类条件扩散模型。Ho和Salimans[24]引入了无分类器引导,并表明可以隐式地从有条件和无条件条件下模型的预测中进行引导,从而消除了对分类器的需求。Nichol等人[35]表明无分类器引导比CLIP引导更有利于文本条件图像生成。
一些先前的工作训练了直接以CLIP嵌入为条件的生成图像模型。Zhou等人[61]将GAN模型条件化于随机扰动的CLIP图像嵌入,发现这些模型可以泛化到CLIP文本嵌入以产生文本条件图像。Crowson[9]训练了以CLIP文本嵌入为条件的扩散模型,允许直接的文本条件图像生成。Wang等人[54]训练了一个以CLIP图像嵌入为条件的自回归生成模型,发现它能够很好地泛化到CLIP文本嵌入,从而允许文本条件图像合成。
Bordes等人[3]训练了以对比模型的图像表示为条件的扩散模型。虽然扩散模型本身不能无条件生成图像,但作者通过采用核密度估计来采样图像表示,实验了一种简单的两阶段图像生成方法。通过将这些生成的表示馈送给扩散模型,他们可以以类似于我们提出的技术的方式端到端地生成图像。然而,我们的工作与此有两个不同之处:首先,我们使用多模态对比表示而不是仅图像表示;其次,我们在生成层次结构的第一阶段采用了更强大的生成模型,并且这些生成模型是以文本为条件的。
7 局限性与风险
尽管以CLIP嵌入为条件进行图像生成提高了多样性,但这一选择确实带来了一些局限性。特别是,unCLIP在将属性绑定到对象方面比相应的GLIDE模型差。在图14中,我们发现unCLIP在处理必须将两个独立对象(立方体)绑定到两个独立属性(颜色)的提示时比GLIDE更困难。

我们假设这是因为CLIP嵌入本身没有显式地将属性绑定到对象,并且发现解码器的重建经常混淆属性和对象,如图15所示。一个类似且可能相关的问题是unCLIP难以生成连贯的文本,如图16所示;可能是因为CLIP嵌入没有精确编码渲染文本的拼写信息。这个问题可能因为我们在BPE编码中模糊了标题中单词的拼写而变得更加严重,因此模型需要独立地在训练图像中看到每个标记被写出来,才能学会渲染它。


我们还注意到,我们的堆栈在处理复杂场景中的细节时仍然很困难(图17)。我们假设这是我们解码器层次结构的一个限制,它生成一个基础分辨率为64×6464\times 6464×64的图像,然后对其进行上采样。以更高的基础分辨率训练我们的unCLIP解码器应该能够缓解这个问题,但需要额外的训练和推理计算。

正如GLIDE论文中所讨论的,图像生成模型携带与欺骗性及其他有害内容相关的风险。unCLIP的性能改进也提高了相对于GLIDE的风险状况。随着技术的成熟,它留下的痕迹和指示输出是AI生成的指标更少,使得更容易将生成的图像误认为是真实的,反之亦然。还需要更多研究来了解架构的变化如何改变模型学习训练数据中偏见的方式。
8 致谢
我们要感谢Jong Wook Kim、Hyeonwoo Noh、Alec Radford、Pranav Shyam和Ilya Sutskever对我们工作的有益讨论和贡献。我们还要感谢Yunxin Jiao创建了本文中使用的几个图表。我们感谢OpenAI的加速和超级计算团队为该项目使用的软件和硬件基础设施所做的工作。