画像生成の仕組み
テキストから画像を作る現代のモデルは、 おおむね次の 3 つの部品でできている。
テキスト → [テキストエンコーダ] → 条件ベクトル
↓
ノイズ → [ノイズ除去ネットワーク] × N回 → 潜在表現
↓
[デコーダ] → 画像テキストエンコーダ#
CLIP や T5 などで、プロンプトをベクトルに変換する。
CLIP は画像とテキストを同じ空間に埋め込むよう 対照学習で訓練されたモデル。 「テキストと画像の対応」を学習済みなので、 生成の条件付けに使える。
条件付けの方法#
条件ベクトルは、ノイズ除去ネットワークの cross-attention に注入される。 画像側が Query、テキスト側が Key/Value になり、 画像の各位置がプロンプトのどの語を参照するかを学習する。
Classifier-Free Guidance#
条件ありと条件なしの予測を両方計算し、外挿する。
で条件の効きを強める。 プロンプトへの忠実さと多様性のトレードオフを 1 つのつまみで調整できるため、広く使われている。
を上げすぎると彩度が飽和し、構図が単調になる。
デコーダ#
潜在空間で生成した表現を 実際の画素に戻す。VAE のデコーダを使うことが多い。
参考文献#
- Alec Radford et al. Learning Transferable Visual Models From Natural Language Supervision (CLIP). ICML, 2021. https://arxiv.org/abs/2103.00020
- Jonathan Ho, Tim Salimans. Classifier-Free Diffusion Guidance. 2022. https://arxiv.org/abs/2207.12598
- Robin Rombach et al. High-Resolution Image Synthesis with Latent Diffusion Models. CVPR, 2022. https://arxiv.org/abs/2112.10752