名称
DALLE2: Hierarchical Text-Conditional Image Generation with CLIP Latents
也叫 UnCLIP
时间:22.04
机构:OpenAI
TL;DR
OpenAI的首篇从CLIP的image embedding生成图像的方法,实验证明这种方法生成的图像能够保留丰富的语义与风格分布。
Method
Prior
Prior模块作用是给定text先验输入,生成image embedding zi。作者尝试了两种方案AR(auto-regressor) or DM(diffusion model)。最终认为基于DM的版本效果更高,效率更高。
基于AR
将image embedding PCA成discrete codes序列,作为AR的回归目标。AR的input是text token与text embeddings。除此之外,训练过程会在输入序列最前方加入text embedding与image embedding之间相似度分数,个人理解是类似于逐样本的Loss权重作用,出发点是图文越匹配的样本对于训练Prior越有帮助。
基于DM
diffusion prior也是基于Transformer实现的(输入输出都是sequence的Decoder-only Transformer,代替DM中的UNet)。input: text, CLIP text embedding, diffusion timestamp, noise image embedding by CLIP encoder,最终目标是预测unnoise的CLIP image embedding。不同于AR Prior将zi与zt相似度作为input sequence,DM Prior挑选zi与zt相似度高的pair来训练。另外,不同与DDPM训练噪声预测模型,DM Prior直接预测去噪之后的image embedding。
Decoder
Decoder还是一个DM,输入image embedding prior,恢复出原图。网络结构主要参考CVPR22的篇论Diffusion Autoencoders,下图是Diffusion AE原文的作法。不同于原文,本文是将GLIDE text embedding与image embeding prior concat到一起,输入到Condition DDIM中。其中,image embedding也做了类似于GLIDE中classifier-free的guidance,即随机去除部分text or image embedding信息。为了提升图像分辨率,又在Decoder之后外挂了两个DM,分辨率64->256->1024。
Experiment
展示了UnCLIP具有较好可插值性(Interpolations),以及分布丰富性(Variations)。下面实验结果也表示了FID等指标也超过之前方法(主要比了GLIDE)。
总结与发散
与LDM不同点:
- latent feature生成网络不同:
UnCLIP是通过transformer输入text-condition作为input,扩散出CLIP image embedding(一维)。
LDM把text-condition通过cross attention混合到latent diffusion的UNet中间层,扩散出latent feature(猜测是二维)。
- DM Prior的学习目标不同:
UnCLIP是以学习denoise之后的image embedding作为目标
LDM类似于常规DM,以学习噪声为目标。
- Decoder不同:
UnCLIP参考Diffusion Autoencoders将DM Prior生成的image embedding作为先验,本质上使用的是DDIM来生成图像。
LDM将直接使用AE的decoder将latent feature一步生成图像。
- encoder不同
UnCLIP的image/text embedding是使用CLIP encoder提取的,CLIP encoder是用(image, text)的对比学习训练出来的,两种embedding天然就在同一个latent space
LDM是图像encoder是通过AE的图像重建Loss训练出来的,text embedding是通过外挂language model提取,DM Prior学习过程还得兼顾将两种embedding空间对齐。
相关链接
DALLE2: Hierarchical Text-Conditional Image Generation with CLIP Latents
Diffusion Autoencoders