Imagen(Google)とDALL-E(OpenAI)は、テキストから画像を生成する代表的なモデルです。両者は異なるアプローチでtext-to-image生成を実現しており、それぞれの設計思想を理解することで、現代の画像生成技術の全体像が見えてきます。
本記事では、Imagen、DALL-E 2、DALL-E 3の各アーキテクチャを解説し、それぞれの特徴と違いを比較します。
本記事の内容
- DALL-E(初代)のアーキテクチャ
- DALL-E 2のアーキテクチャ(unCLIP)
- Imagenのアーキテクチャ
- DALL-E 3の改良点
- 各モデルの比較
前提知識
この記事を読む前に、以下の記事を読んでおくと理解が深まります。
DALL-E(初代): 2021年
概要
DALL-E(2021年1月発表)は、GPT-3の言語モデルアーキテクチャを画像生成に応用した最初の大規模モデルです。
アーキテクチャ
[テキストプロンプト]
↓ トークナイズ
[テキストトークン (最大256)]
↓
[GPT風Transformer (120億パラメータ)]
↓ 自己回帰生成
[画像トークン (32×32 = 1024)]
↓
[dVAEデコーダ]
↓
[生成画像 (256×256)]
主要コンポーネント
1. dVAE(Discrete VAE)
画像を離散トークンに変換するために、dVAE(discrete Variational Autoencoder)を使用します。
- エンコーダ: 256×256画像を32×32の離散コードブック(8192語彙)に圧縮
- デコーダ: 離散コードから画像を復元
$$ \bm{z} = \text{argmax}(\text{Encoder}(\bm{x})), \quad \bm{z} \in \{1, \ldots, 8192\}^{32 \times 32} $$
2. Transformer(自己回帰モデル)
テキストトークンと画像トークンを連結した単一の系列として扱い、GPT風のTransformerで自己回帰的に生成します。
$$ p(\bm{x}, \bm{y}) = \prod_{i} p(z_i | z_{
ここで $z$ はテキストトークンと画像トークンの連結系列です。
特徴
- シンプルなアーキテクチャ: GPTと同じ自己回帰Transformer
- 統一的な系列モデリング: テキストと画像を同一のフレームワークで処理
- 推論時の柔軟性: 様々なサンプリング戦略(beam search、top-k等)が適用可能
限界
- 256×256という低解像度
- 自己回帰生成のため推論が遅い
- dVAEの離散化による品質の限界
DALL-E 2: 2022年(unCLIP)
概要
DALL-E 2(2022年4月発表)は、CLIPの表現空間を活用した「unCLIP」と呼ばれるアーキテクチャを採用しています。
アーキテクチャ
[テキストプロンプト]
↓
[CLIPテキストエンコーダ]
↓
[テキスト埋め込み]
↓
[Prior(拡散モデル)]
↓
[CLIP画像埋め込み(予測)]
↓
[Decoder(拡散モデル)]
↓
[64×64画像]
↓
[Super Resolution ×2]
↓
[256×256画像]
↓
[Super Resolution ×4]
↓
[1024×1024画像]
主要コンポーネント
1. Prior(事前分布モデル)
テキスト埋め込みからCLIP画像埋め込みを生成する拡散モデルです。
$$ p(\bm{z}_I | \bm{z}_T) = \text{DiffusionPrior}(\bm{z}_T) $$
ここで $\bm{z}_T$ はCLIPテキスト埋め込み、$\bm{z}_I$ はCLIP画像埋め込みです。
Priorには2つのバリアントがあります: – Autoregressive Prior: Transformerで自己回帰的に生成 – Diffusion Prior: 拡散モデルで生成(こちらが主に使用)
2. Decoder(画像デコーダ)
CLIP画像埋め込みから実際の画像を生成する拡散モデルです。
$$ p(\bm{x} | \bm{z}_I, \bm{z}_T) = \text{DiffusionDecoder}(\bm{z}_I, \bm{z}_T) $$
Decoderは、CLIP画像埋め込みとテキスト埋め込みの両方を条件として受け取ります。
3. Super Resolution
64×64から1024×1024まで段階的に超解像を行う拡散モデルです。
なぜCLIP空間を経由するのか
DALL-E 2のアイデアは、「CLIPが学習した画像-テキストの対応関係を活用する」ことです。
- CLIPは4億枚の画像-テキストペアから学習済み
- CLIP空間では、意味的に類似した画像とテキストが近くに配置される
- Priorでテキスト埋め込みから画像埋め込みを予測することで、CLIPの知識を活用
画像操作
DALL-E 2では、CLIP空間での補間や算術演算により、画像の意味的な操作が可能です。
$$ \bm{z}_{\text{new}} = \alpha \bm{z}_{\text{img1}} + (1-\alpha) \bm{z}_{\text{img2}} $$
Imagen: 2022年
概要
Imagen(2022年5月、Google発表)は、「大規模言語モデルのテキスト表現が画像生成に有効」という仮説に基づいて設計されています。
アーキテクチャ
[テキストプロンプト]
↓
[T5-XXL テキストエンコーダ(凍結)]
↓
[テキスト埋め込み (4096次元)]
↓
[ベース拡散モデル]
↓
[64×64画像]
↓
[Super Resolution (64→256)]
↓
[256×256画像]
↓
[Super Resolution (256→1024)]
↓
[1024×1024画像]
主要コンポーネント
1. T5-XXL テキストエンコーダ
ImagenはCLIPではなく、純粋なテキストモデルであるT5-XXL(110億パラメータ)を使用します。
重要な発見: – テキストエンコーダのスケーリングが画像品質に大きく寄与 – CLIPよりもT5の方が複雑なプロンプトの理解に優れる – テキストエンコーダは凍結(学習しない)
2. Efficient U-Net
Imagenのベースモデルは、効率化されたU-Netを使用します。
改良点: – より深いレイヤーにパラメータを集中 – Self-Attentionを低解像度レイヤーに限定 – Group Normalizationのスケーリング
3. Cascaded Diffusion Models
3段階のカスケード拡散モデルで、64×64 → 256×256 → 1024×1024と段階的に解像度を上げます。
各段階で前段階の出力を条件として使用:
$$ p(\bm{x}_{256} | \bm{x}_{64}, \bm{c}) = \text{SuperRes}(\bm{x}_{64}, \bm{c}) $$
Dynamic Thresholding
Imagenは、Classifier-Free Guidanceで高いガイダンススケールを使用する際の彩度飽和問題に対処するため、Dynamic Thresholdingを導入しています。
各デノイジングステップで、予測された$\bm{x}_0$の値をclipする際に、パーセンタイル値を動的に計算:
$$ s = \max(1, \text{percentile}(|\hat{\bm{x}}_0|, p)) $$
$$ \hat{\bm{x}}_0 = \text{clip}(\hat{\bm{x}}_0 / s, -1, 1) \cdot s $$
これにより、高いCFGスケール($w > 10$)でも安定した生成が可能になります。
DrawBench
Imagenと共に、DrawBenchという評価ベンチマークが提案されました。
カテゴリ: – 色属性 – カウント – 空間関係 – テキスト(画像内のテキスト) – 複合的なプロンプト
DALL-E 3: 2023年
概要
DALL-E 3(2023年9月発表)は、「プロンプト追従性」を大幅に向上させたモデルです。
主要な改良
1. 高品質キャプションによる学習
DALL-E 3の最大の革新は、学習データのキャプション品質の向上です。
- 専用のキャプションモデルで全学習データを再キャプション
- 短い・曖昧なキャプションを、詳細で正確な記述に置き換え
- これにより、プロンプトへの忠実度が大幅に向上
2. T5テキストエンコーダの採用
DALL-E 2のCLIPからT5に変更し、Imagenと同様のアプローチを採用。
3. ChatGPTとの統合
ユーザーの短いプロンプトをChatGPTで拡張・詳細化し、DALL-E 3に渡す:
ユーザー: "夕日を見る猫"
↓ ChatGPT拡張
"オレンジ色の夕日が水平線に沈む中、窓辺に座った
茶トラ猫が外を見つめている。温かい光が部屋に..."
↓
DALL-E 3で生成
安全性
DALL-E 3では、安全性への取り組みも強化されています: – 公人の顔生成の防止 – 暴力的・有害なコンテンツの拒否 – アーティストスタイルの模倣制限
アーキテクチャの比較
| 特徴 | DALL-E | DALL-E 2 | Imagen | DALL-E 3 |
|---|---|---|---|---|
| 発表 | 2021/01 | 2022/04 | 2022/05 | 2023/09 |
| テキストエンコーダ | GPT風 | CLIP | T5-XXL | T5 |
| 画像生成 | 自己回帰 | 拡散 | 拡散 | 拡散 |
| 中間表現 | 離散トークン | CLIP埋め込み | なし | なし |
| 最終解像度 | 256×256 | 1024×1024 | 1024×1024 | 1024×1024 |
| カスケード | なし | 2段階SR | 2段階SR | – |
テキストエンコーダの違い
CLIP(DALL-E 2): – 画像-テキストのペアから対照学習 – 画像との整合性に最適化 – 短い説明文に適している
T5(Imagen, DALL-E 3): – 大規模テキストコーパスで事前学習 – 複雑な文法・長い文の理解に優れる – 詳細なプロンプトに適している
中間表現の有無
DALL-E 2(CLIP空間経由): – 利点: CLIP空間での操作(補間、編集)が可能 – 欠点: 2段階のモデルが必要、情報の損失
Imagen(直接生成): – 利点: End-to-endでシンプル – 欠点: テキストと画像の中間表現がない
数式での比較
DALL-E(自己回帰)
$$ p(\bm{x}, \bm{y}) = \prod_{i=1}^{n} p(z_i | z_{
系列全体を1トークンずつ生成。
DALL-E 2(2段階拡散)
$$ p(\bm{x} | \bm{c}) = \int p(\bm{z}_I | \bm{z}_T) \cdot p(\bm{x} | \bm{z}_I, \bm{z}_T) \, d\bm{z}_I $$
Priorで画像埋め込みを予測し、Decoderで画像を生成。
Imagen(直接拡散)
$$ p(\bm{x} | \bm{c}) = p(\bm{x}_{64} | \bm{c}) \cdot p(\bm{x}_{256} | \bm{x}_{64}, \bm{c}) \cdot p(\bm{x}_{1024} | \bm{x}_{256}, \bm{c}) $$
カスケード拡散で段階的に解像度を上げる。
実装上の考慮点
計算コスト
| モデル | ベースモデル | 超解像 | 総計算量(概算) |
|---|---|---|---|
| Imagen | 2B | 0.6B + 0.4B | ~3B |
| DALL-E 2 | Prior 1B + Dec 3.5B | 1.5B | ~6B |
推論速度
- 自己回帰(DALL-E初代): 系列長に比例、遅い
- 拡散(DALL-E 2, Imagen): サンプリングステップ数に比例
まとめ
本記事では、Imagen/DALL-Eシリーズのアーキテクチャを比較解説しました。
DALL-E(初代): – GPT風の自己回帰Transformerで画像トークンを生成 – dVAEで画像を離散トークンに変換 – シンプルだが解像度・品質に限界
DALL-E 2(unCLIP): – CLIP空間を経由する2段階アプローチ – Priorでテキスト→画像埋め込み、Decoderで画像生成 – CLIP空間での操作が可能
Imagen: – T5-XXLテキストエンコーダの採用(テキスト理解の強化) – カスケード拡散モデルで高解像度化 – Dynamic Thresholdingで高CFGに対応
DALL-E 3: – 高品質キャプションによる学習データの改善 – プロンプト追従性の大幅な向上 – ChatGPTとの統合
これらのモデルの発展を通じて、テキストエンコーダの重要性、学習データの品質、カスケード生成の有効性など、多くの知見が得られています。
次のステップとして、以下の記事も参考にしてください。