名稱
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