【論文メモ】DiffusionCLIP: Text-Guided Diffusion Models for Robust Image Manipulation

# 論文概要
タイトル：DiffusionCLIP: Text-Guided Diffusion Models for Robust Image Manipulation
著者：Gwanghyun Kim, Taesung Kwon, Jong Chul Ye, Dept. of Bio and Brain Engineering, Kim Jaechul Graduate School of AI Korea Advanced Institute of Science and Technology (KAIST), Daejeon, Korea
学会：CVPR 2022
URL：https://arxiv.org/abs/2110.02711
内容：Diffusionベースの生成モデルに、画像とテキストの大規模ペアデータセットで事前学習されたCLIPモデルを用いて、テキストプロンプトを用いて画像を編集するモデルDiffusionCLIPを提案した。

# はじめに
近年、GANベースの生成モデルに画像とテキストのマルチモーダルな潜在表現を獲得できるCLIP(Contrastive Language and Image Pre-training)が、テキストプロンプトによるゼロショット画像編集において高い性能を見せている。しかし、GANの実画像を潜在変数に変換する能力の限界により、実社会の応用はまだ難しい。特に画像の多様性が大きいデータセットにおいては、最構成はかなり困難である。
一方、DDPMなどのDIffusionベースの生成モデルが画像生成のタスクにおいて高い性能を誇る。さらに、最近のノイズ除去拡散暗黙モデル（DDIM）により、サンプリング手順がさらに加速され、ほぼ完全なinversion（画像→潜在変数）が可能になった。
そこで著者らは、CLIPによる誘導を用いたロバストな画像編集を可能にするDiffusionモデル、DiffusionCLIPを提案している。Keyアイデアはサンプリングの際のスコア関数をCLIPのロスを用いて微調整するというものである。
DiffusionCLIPは、学習済みのドメインとそうでないドメインの両方で画像編集を成功させている。
さらに、高品質で高速な画像編集につながる最適なサンプリング条件を見つけるための体系的なアプローチを提案する。定性的な比較と人間による評価の結果、本手法がSOTAベースラインを凌駕する、ロバストで正確な画像編集を提供できることが実証された。

# 関連研究
## Diffusionモデル
Diffusionモデルでは、画像データ$x_0$に対して、ガウシアンノイズを繰り返しかけていき、潜在変数$x_1,x_2,\cdots x_T$を求めるForward Processと、逆に完全なガウシアンノイズ$x_T$から少しずつデノイズ（ノイズを除去）して、$x_{T-1}, x_{T-2},..x_0$を求めることで画像を生成する。

## CLIP
CLIPは、自然言語による教師あり学習で視覚的な概念を効率的に学習するために提案された。CLIPでは、テキストエンコーダと画像エンコーダが事前学習され、データセット中のどのテキストがどの画像とマッチするかを識別する。
したがって、テキスト駆動型の画像編集には、事前に学習されたCLIPモデルを使用する。
CLIPから効果的に知識を抽出するために、グローバルターゲットロスとローカル方向性ロスの2種類の損失が提案されている。

グローバルCLIPロスは、以下のように、生成された画像と与えられたターゲットテキストとの間のCLIP空間におけるコサイン距離を最小化しようとするものである：
$$L_{\text{global}}( x_ {\text{gen}}, y_{\text{tar}}) = D_{\text{CLIP}} (x_{\text{gen}}, y_{\text{tar}}) $$

一方、ローカル方向性CLIPロスは参照画像と生成画像の埋め込み方向が、CLIP空間における参照テキストとターゲットテキストの組の埋め込み方向と一致するように誘導する：
$$L_{\text{direction}}( x_ {\text{gen}}, y_{\text{tar}}; x_ {\text{ref}}, y_{\text{ref}}) = 1- \frac{\langle \Delta I, \Delta T \rangle}{||\Delta I|| ||\Delta T||}$$
$$\Delta T = E_T(y_{\text{tar}}) - E_T(y_{\text{ref}}), \Delta I = E_I(x_{\text{gen}}) - E_I(x_{\text{ref}})$$
ここで、$E_T,E_I$はそれぞれCLIPのテキストと画像のエンコーダを表す。

方向性ロスによって導かれる操作画像は、画像表現間の方向を参照テキストとターゲットテキスト間の方向に合わせることで、明確に異なる画像が生成されるため、GANなどで多く見られるモード崩壊問題に対してロバストであるらしい。また、画像によって摂動が異なるため、敵対的な攻撃（モデルの認識を混乱させる攻撃）に対してよりロバスト。

# 提案手法：DiffusionCLIP
提案する画像編集のためのDiffusionCLIPの全体的な流れは下図のようになっている。 

![Screenshot from 2023-06-05 17-18-04.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3375139/d09993be-f339-b639-6a41-6c6180380c76.png)

ここで、まず入力画像$x_0$は、事前に学習された拡散モデル$\varepsilon_\theta$を用いて潜在変数$x_{t_0}(\theta)$へと変換される。次に、CLIPロスによって誘導され、逆経路（潜在変数→画像）の拡散モデルが微調整され、ターゲットテキスト$y_{\text{tar}}$によって操作された画像が生成される。決定論的な順逆プロセスはDDIMに基づいている。未知のドメイン間の変換では、潜在変数の生成も順方向DDPMプロセスで行われる。

## DiffusionCLIPのFine-tuning
Fine-tuningとして、潜在変数や拡散モデルそのものを変更することも可能である。著者らは、直接的なモデルの微調整がより効果的であることを発見した。具体的に、逆拡散モデルの微調整のため$\varepsilon_\theta$は、方向性CLIPロス$L_{\text{direction}}$とアイデンティティロス $L_{ID}$で構成される以下の目的関数を使用する：

$$ L_{\text{direction}}( \hat{x}_ {0} (\hat{\theta}), y_{\text{tar}}; x_0, y_{\text{ref}}) + L_{ID} (\hat{x}_ {0} (\hat{\theta}), x_0) $$

ただし、$x_0$は元画像、$\hat{x}_ {0} (\hat{\theta})$は潜在変数$x_{t_0}$と最適化されたパラメータ$\hat{\theta}$から生成された画像を表す。

ここでは、前述した2種類のCLIP損失のうち、良い性質を持つ方向性CLIPロスを採用している。テキストプロンプトの場合、方向性CLIPロスは、学習中に参照テキスト$y_{\text{ref}}$とターゲットテキスト$y_{\text{tar}}$を必要とする。例えば、与えられた顔画像の表情を怒った表情に変える場合、参照テキストとして「face」、ターゲットテキストとして「angry face」を使用することができる。この論文では、各テキストプロンプトを参照するために、簡潔な単語を用いることが多い（例えば、'tanned face' → 'tanned')。

アイデンティティロス$L_{ID}$は、対象物の同一性を保持するために採用される。一般的にはL1ロスを用いているが、人間の顔画像を操作する場合には、事前学習済みのArcFaceネットワーク（顔認識モデル）に基づいたFace Identity Lossを追加する：

$$ L_{\text{ID}}( \hat{x}_ {0} (\hat{\theta}),x_0) = \lambda_{L1} ||x_0 - \hat{x}_ {0} (\hat{\theta})|| + \lambda_{\text{face}} L_{\text{face}} (\hat{x}_ {0} (\hat{\theta}), x_0) $$

アイデンティティロスの必要性は、制御の種類によって異なる。表情や髪の色の制御では、ピクセルの類似性と人間の同一性の保持が重要であり、芸術作品、種の変化などの制御では、激しい形や色の変化が好まれる。

従来の拡散モデルでは、Transformerで使用されているようなsin関数の位置埋め込みを用いてtの情報を挿入することにより、全てのtに対して共有のU-Netのアーキテクチャを採用している。このアーキテクチャにより、DiffusionCLIPの微調整時の勾配の流れは下図のように表現でき、再帰的ニューラルネットワークの学習と同様のプロセスであることがわかる。

![Screenshot from 2023-06-05 17-56-20.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3375139/d3259101-314b-9d22-0350-b6fc9087ccf8.png)

拡散モデルの微調整が完了すると、図4(a)に示すように、事前学習したドメインから任意の画像をターゲットテキスト$y_{\text{tar}}$に対応する画像に操作することができる。

## 順拡散過程と生成過程
DDPMの生成過程は確率的であるため、同じ潜在変数から生成されるサンプルは毎回異なることになる。また、生成過程が決定論的であっても、ランダムなガウシアンノイズを加えるDDPMの順拡散過程も確率的であるため、元画像の再構成は保証されない。拡散モデルの画像生成性能を画像編集の目的で十分に活用するためには、画像編集を成功させるための事前学習済みの拡散モデルによる順方向・逆方向の決定論的な処理が必要となる。一方、未知の領域間の画像変換には、DDPMによる確率的サンプリングが役立つことが多いが、これについては後で詳しく説明することにする。

完全なエンコードのために、生成過程として決定論的な逆DDIM過程を採用し、その反転を順拡散過程としてODE近似している。具体的には、以下の式のように表される。：
$$x_{t+1} = \sqrt{\alpha_{t+1}} f_\theta (x_t, t) + \sqrt{1-\alpha_{t+1}} \varepsilon_{\theta} (x_t,t)$$
一方、このようにして得られた潜在変数からサンプルを生成する決定論的逆DDIMプロセスは以下のようになる：
$$x_{t-1} = \sqrt{\alpha_{t-1}} f_\theta (x_t, t) + \sqrt{1-\alpha_{t-1}} \varepsilon_{\theta} (x_t,t) $$
これらの式において$f_\theta$は$x_t$から元画像$x_0$を予測する関数であり、$\varepsilon _\theta $は$x_t$からノイズを予測する関数である。

DiffusionCLIPのもう一つの重要な貢献は、高速サンプリング戦略である。具体的には、最後の時間ステップTまで順拡散を行う代わりに、$t_0＜T$まで行うことで順拡散を加速できることを発見し、これを「リターンステップ」と呼んでいる。さらに、$[1, t_0]$の間の離散化ステップを少なくすることで学習を加速することができ、それぞれ順拡散と生成過程の$S_{for}、S_{gen}$と表記する。定性的・定量的な分析により、$t_0$、$S_{for}$、$S_{gen}$の最適なハイパーパラメータ群を見出した。例えば、一般的な選択として$T$を1000に設定した場合、$t_0 \in [300, 600]$、$(S_{for}, S_{gen}) = (40, 6)$の選択は目的を満たすものである。$S_{gen}=6$では再構成が不完全になる可能性があるが、訓練に必要なオブジェクトの同一性は十分に保たれることがわかった。$S_{for}$、$S_{gen}$、$t_0$に関する定量的・定性的な解析結果は、後ほど実験で紹介する。
最後に、複数の潜在変数が事前に計算されている場合（アーキテクチャ図の灰色の四角い領域）、潜在変数を再利用して他の属性を合成することにより、微調整の時間をより短縮することができる。これらの設定により、NVIDIA Quardro RTX 6000では、1∼7分で微調整が終了する。


## 未知のドメイン間の画像変換
DiffusionCLIPによって微調整されたモデルは、下図に示すように、追加の新規画像操作タスクの実行に活用することができる。

![Screenshot from 2023-06-05 18-43-58.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3375139/d397fb9c-ed73-5b77-16dc-3df08f348dbf.png)

まず、図の(b)と(c)に示すように、それぞれ未知のドメインから別の未知ドメインへの画像変換と、未知のドメインでのなぞり（ストローク）条件付き画像合成を実行することができる。この難問を解決するための重要なアイデアは、比較的収集しやすいデータセットで学習した拡散モデルを挿入して、2つのドメイン間の橋渡しをすることである。具体的には、事前に学習させた拡散モデルを用いることで、データセット内にないドメインで学習した画像を学習済みドメインの画像に変換できることが判明している。この方法をDiffsuionCLIPと組み合わせることで、ソースドメインとターゲットドメインの両方について、ゼロショット設定で画像を翻訳することができるようになった。具体的には、まずソース未知ドメインの画像$x_0$を順方向DDPM処理により、ドメイン関連成分がぼやけるがオブジェクトのアイデンティティやセマンティクスは保たれる十分な時間ステップ$t_0$まで摂動させる。これは通常、500に設定される。
次に、逆DDIM処理により、事前学習済みドメインの画像 $\tilde x_0$ 内を、事前学習済みオリジナルモデル$\varepsilon_\theta$でサンプリングする。
次に、図の(a)で行っているように、微調整したモデル$\varepsilon_\thetaˆ$で$\tilde x_0$をCLIPガイドの未知ドメインの画像$\hat x_0$に操作する。

## ノイズの組み合わせ
### 他属性の転送
複数の微調整モデル$\\{ \varepsilon_{\hat \theta_i} \\}^M _{i=1}$から予測されるノイズをサンプリング時に組み合わせると、図4の（d）のように、1回のサンプリング処理だけで複数の属性を変更できることを発見した。したがって、複数の属性を定義するターゲットテキストで新たなモデルの微調整を行うことなく、複数の単一属性の微調整済みモデルを柔軟に異なる組み合わせで混合することができる。詳細には、まず、事前に学習したオリジナルの拡散モデルで画像をエンコードし、以下のサンプリングルールで複数の拡散モデルを使用する：

$$x_{t-1} = \sqrt{\alpha_{t-1}} \sum^M_{i=1} \gamma_i (t) f_{\hat \theta_i}(x_t, t) + \sqrt{1-\alpha_{t-1}} \sum^M_{i=1} \gamma_i (t) \varepsilon_{\hat \theta_i}(x_t, t) $$
ここで、$\\{ \gamma_{i} (t) \\}^T _{ｔ=1}$ は各微調整済みモデル $\varepsilon _ {\hat \theta_i}$の重み列であり、$i=1$から$M$までの総和は1になり、各属性の強さを制御する。 

既存の研究では、ユーザーはタスクに特化したトリッキーな損失設計やデータセットの準備を組み合わせ、大きな手作業を必要としますが、この研究はそのような努力なしに自然な形でタスクを実行することができる。

### 連続的な推移
また、単一属性操作時の変化度合いを制御するために、上記のノイズの組み合わせ方法を応用することができる。変化度合い$\gamma \in [0,1]$に関して、事前に学習した元のモデル$\varepsilon_\theta$と微調整したモデル$\varepsilon_{\hat \theta}$のノイズを混合することで、元の画像と操作した画像の間の補間を滑らかに行うことができる。

# 実験
DiffusionCLIPの性能評価をするために、実験を行った。

DiffusionCLIPによるすべて画像編集には、$256^2$サイズの画像を使用した。人の顔、犬、寝室、教会の画像の操作には、それぞれCelebA-HQ, AFHQ-Dog, LSUN-Bedroom, LSUN-Church datasetsで事前学習したモデルを使用した。テストには、これらのデータセットのうちtestsetの画像を使用する。拡散モデルを微調整するために、初期学習率を4e-6とし、50回の反復ごとに1.2ずつ直線的に増加させるAdam optmizerを使用する。使用する場合は$\lambda_{L1}$を0.3、$\lambda_{ID}$を0.3に設定した。
前で述べたように、タイムステップ$T$を1000としたとき、$t_0$を$[300, 600]$に設定する。また、訓練時には $(S_{for}, S_{gen}) = (40, 6) $を設定し、テスト時には $(200, 40)$ を設定する。また、事前学習データセットの各トレーニングセットにおいて、サイズ$256^2$の実画像50枚の潜在変数を事前計算した。

## 比較と評価
### 最構成
本手法のほぼ完璧な再構成性能を実証するために、SOTA GANインバージョン法である、pSp, e4e, ReStyle, HFGI との定量比較を実施した。下の表のように、本手法はすべてのメトリクスにおいて、すべてのベースラインよりも高い再構成品質を示す：
![Screenshot from 2023-06-06 11-37-32.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3375139/15b529f5-0fb1-86b3-8987-4cc0f8c9f81b.png)

### 定性的な比較
他の手法との操作性能の定性的な比較のために、本手法と同様に制御対象の画像を必要としない、最先端のテキスト操作手法であるTediGAN, StyleCLIP, StyleGAN-NADA を使用した。
StyleCLIPとStyleGANNADAには、FFHQ-1024とLSUNChurch-256で事前学習したStyleGAN2が使用されている。TediGANには、FFHQ-256で事前学習したStyleGANが使用されています。GANのエンコードには、StyleCLIPの潜在最適化（LO）とグローバル方向（GD）にはe4eエンコーダが、StyleGAN-NADAにはpSpとRestyleエンコーダが、TediGANにはIDInvertが、それぞれの元の論文と同様に使用されている。また、StyleCLIPとStyleGAN-NADAでは、公式実装としてフェイスアライメントアルゴリズムが使用されている。
本手法では、CelebA-HQ-256と LSUN-Church-256で事前学習した DDPM を使用する。下図に示すように、SOTA GANを用いた反転処理では、斬新なポーズや細部を持つ顔画像を処理することができず、歪んだ結果となった。また、教会画像の場合、操作結果が別の建物のものと認識されることがある。これらの結果は、実用上の大きな制約を意味する。これに対し、著者らの再構成結果は、細部や背景までほぼ完璧に再現されており、忠実な操作を可能にしている。また、DiffusonCLIPは、学習済み領域での操作に加え、未視聴領域への操作にも成功し、StyleCLIPやTediGANは失敗した。
![Screenshot from 2023-06-06 11-49-44.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3375139/d2ba827f-6305-12d6-942c-40d5aca7141e.png)

### ユーザースタディ 
CelebA-HQを用いて、実顔の画像操作性能を評価するユーザスタディを実施した。CelebA-HQを用いて、実顔の画像操作の性能を評価するユーザースタディを実施した。StyleCLIP-GD、StyleGAN-NADAを用いて評価した。
アンケートプラットフォームを用い、50人から6000票の投票を得る。CelebA-HQテストセットの最初の20枚の画像を一般的なケースとして使用し、新しい見え方、手のポーズ、細かいディテールを持つ別の20枚の画像を難しいケースとして使用した。公平に比較するために、、ベースラインの研究で使用されている4つのドメイン内属性（怒り、化粧、髭、日焼け）と2つのドメイン外属性（ゾンビ、スケッチ）を使用している。ここでは、各アプローチの公式な事前学習済みチェックポイントと実装を使用する。
下表に示すように、一般的なケースと難しいケースの両方でDiffusionCLIPの結果は全てベースラインと比較して好ましい（>50%）。特筆すべきは、難しいケースにおいて、我々のものに対する選好率がすべて上昇し、強固な操作性能を示していることである。ドメイン外操作の結果でStyleCLIPに対する選好率が高い（≒90％）ことは、ドメイン外操作において我々の手法がStyleCLIPを大幅に上回ることを示唆していることは注目に値する。

![Screenshot from 2023-06-06 11-57-38.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3375139/3fc4ed3b-ecd1-51ac-64f9-96794ca231a9.png)

### 定量的な評価

また、方向性CLIP類似度（$S_{\text{dir}}$）、セグメンテーション整合性（SC）、顔同一性類似度（ID）という3つの品質指標を用いて、操作性能を比較する。
各メトリクスの計算には、それぞれ事前に学習させたCLIP、セグメンテーション、顔認識モデルを使用する。
そして、CelebA-HQ（化粧、日焼け、白髪）とLSUN-Church（黄金、赤レンガ、夕焼け）の3属性間の変換時に、$S_{\text{dir}}$、SC、IDの観点からより良いスコアを達成することを目標とする。以下の表に示すように、本手法はすべての指標でベースラインを上回り、高い属性対応性（$S_{\text{dir}}$）、意図しない変更を伴わないアイデンティティの保存性（SC、ID）を実証している。

![Screenshot from 2023-06-06 12-05-13.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3375139/ff4b2804-063b-c260-807a-2ca0b612317e.png)

## 他のデータセットでの画像編集
下図は、AFHQ-Dog-256, LSUNBedroom-256, ImageNet-512 データセットで事前学習した拡散モデルを用いて、犬の顔、寝室、一般画像をそれぞれ操作した例をさらに示したものである。その結果、再構成はほぼ完璧であり、高解像度画像は学習済みドメインの境界を越えて柔軟に操作できることが実証された。
特に、ImageNetに含まれる画像の多様性から、ImageNetの潜在空間におけるGANベースのエンコードやその操作には限界があることが分かっている。DiffusionCLIPは、一般的な画像のゼロショットでのテキスト駆動型操作を可能にし、一般的なテキスト駆動型操作への一歩を踏み出すことができる。

![Screenshot from 2023-06-06 12-11-02.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3375139/b8535b08-5782-5ed5-6195-d7279babb546.png)

## 未知のドメインへの画像編集
DiffusionCLIPを用いた微調整された拡散モデルにより、ある未知のドメインの画像を別の未知のドメインに変換することも可能である。この場合、ソースドメインとターゲットドメインの画像を収集したり、外部モデルを導入する必要はない。図7では、肖像画やアニメーション画像から、他の未知領域であるPixar、ゴッホの絵画、ネアンデルタール人への画像変換結果を示している。また、複数のカラーブロックで描かれた粗い画像であるストロークから、未知の領域での画像生成に成功したことも示している。これらの応用は、ソースドメインとターゲットドメインの両方について十分な画像を収集することが困難な場合に有用である。

![Screenshot from 2023-06-06 12-15-15.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3375139/e6518ce6-0895-4f5c-3947-9ae8455734dd.png)

### ノイズの組み合わせ
下図に示すように、1回のサンプリングで複数の属性を変更することができる。前述したように、多属性の変換を行うためには、複雑な損失設計や、大きな手作業を伴う特定のデータ収集は必要ない。

![Screenshot from 2023-06-06 12-21-49.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3375139/d81eac74-6ceb-5898-1b3d-d886746bd4ec.png)

最後に、下の図9は、オリジナルモデルと微調整モデルのノイズを混合することで、単一の対象属性の変化度合いを!　
$\gamma$に応じて制御できることを示している。

![Screenshot from 2023-06-06 12-21-59.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3375139/4e6676e3-4288-0588-7188-11ef675e5b63.png)

## ハイパーパラメータへの依存性
図10は、$t_0 = 500$のときの$S_{for}, S_{gen}$に依存する再構成性能の結果である。$S_{for}=6$の場合でも、再構成は同一性をよく保存していることがわかる。$S_{for} = 40$の場合、$S_{gen} = 6$の結果は高域のディテールが失われるが、トレーニングが台無しになる程度ではない。$S_{for}=200,S_{gen}=40$の場合、再構成結果は非常に優れており、原画の再構成結果と区別がつかないほどである。そこで、$(S_{for}, S_{gen}) = (40, 6)$をトレーニングに使うこととし、推論には$(S_{for}, S_{gen}) = (200, 40)$を用いる。

![Screenshot from 2023-06-06 12-31-19.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3375139/6f5b6e3a-9302-281b-f2bb-ccc5bd0be77d.png)

また、他のパラメータを固定したまま$t_0$ を変更し、他のパラメータを固定した結果を図11に示す。肌の色の変化の場合、300で十分である。しかしピクサーのような形状変化の激しい変化の場合は、$t_0 = 500$や$t_0 = 700$のように、より大きなステップバックが必要です。このように、属性によって異なる$t_0$を設定する。

![Screenshot from 2023-06-06 12-31-37.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3375139/272705e3-8082-da09-2caa-30495cf8878d.png)

# 議論と結論

本論文では、事前に学習させた拡散モデルとCLIP損失を用いたテキストガイド付き画像操作法であるDiffusionCLIPを提案した。DiffusionCLIPは、完璧に近い反転特性により、拡散モデルを微調整することで、ドメイン内操作とドメイン外操作の両方において優れた性能を発揮した。また、様々なサンプリング戦略を組み合わせることで、微調整されたモデルを使用したいくつかの新しいアプリケーションを紹介した。
DiffusionCLIPには制限と社会的リスクがある。そのため、本手法を利用する際には、適切な目的に応じて慎重に利用することをお勧めする。