<h1 class="wp-block-heading">Diffusion Modelの画像生成メカニズム: ノイズからの創造と最新進歩</h1>
<h2 class="wp-block-heading">要点(3行)</h2>
<ul class="wp-block-list">
<li><p>Diffusion Modelは、ランダムノイズから段階的にノイズを除去することで高品質な画像を生成し、特にテキストからの画像生成において飛躍的な進歩をもたらしました。</p></li>
<li><p>主な技術キーポイントは、ノイズ予測U-Net、潜在空間での処理、高速サンプリング手法、およびTransformerベースのアーキテクチャ進化です。</p></li>
<li><p>高品質な生成には多くのサンプリングステップが必要ですが、Consistency ModelやLCMなどの高速化手法を活用することで、リアルタイムに近い生成も可能です。</p></li>
</ul>
<h2 class="wp-block-heading">背景(課題/先行研究/最新動向)</h2>
<p>Diffusion Modelは、画像生成モデルとして、敵対的生成ネットワーク(GAN)や変分オートエンコーダ(VAE)と比較して、学習の安定性と生成される画像の多様性において優れた特性を示します。しかし、初期のDiffusion Modelは推論速度が遅く、高解像度画像の生成には膨大な計算リソースが必要であるという課題を抱えていました。</p>
<p><strong>最新動向(直近90日)</strong></p>
<ul class="wp-block-list">
<li><p><strong>Stable Diffusion 3の発表</strong>: Stability AIは2024年2月22日にStable Diffusion 3の技術レポートを発表しました。このモデルはMulti-modal Diffusion Transformer (MMDiT) アーキテクチャを採用しており、画像品質とプロンプト忠実度が大幅に向上しています[4]。</p></li>
<li><p><strong>Kandinsky 3.0の登場</strong>: SberAIは2024年3月4日にKandinsky 3.0を発表しました。これは「Diffusion on Diffusion」アーキテクチャを採用し、複雑なテキストプロンプトからの高品質な画像生成をより効率的に実現します[6]。</p></li>
<li><p><strong>潜在整合性モデル (Latent Consistency Models; LCM)</strong>: 2023年10月6日に発表されたLCMは、潜在拡散モデルをわずか1〜4ステップで高速に画像生成できる技術です。これはConsistency Modelの概念を潜在空間に応用したもので、推論速度の劇的な改善に貢献しています[7]。</p></li>
</ul>
<h2 class="wp-block-heading">提案手法 / モデル構造</h2>
<p>Diffusion Modelの画像生成メカニズムは、主に「順方向拡散過程」と「逆方向拡散過程」の2つのフェーズで構成されます。</p>
<ul class="wp-block-list">
<li><p><strong>順方向拡散過程 (Forward Diffusion Process)</strong>: この過程では、元の画像 <code>x₀</code> に対して、決められたステップ数 <code>T</code> にわたって徐々にガウスノイズが加えられていきます。最終的には、画像は完全にランダムなノイズ <code>x_T</code> になります。この過程は、各ステップ <code>t</code> で前のステップ <code>x_{t-1}</code> に少量のノイズを加えるマルコフ連鎖として定義されます[1]。</p></li>
<li><p><strong>逆方向拡散過程 (Reverse Diffusion Process)</strong>: Diffusion Modelの学習対象となるのがこの過程です。ノイズ <code>x_T</code> から開始し、順方向拡散過程の逆をたどってノイズを段階的に除去し、元の画像を再構築します。このノイズ除去は、各ステップでノイズ予測器(通常はU-Net)によって予測されたノイズ <code>ε</code> を使って行われます[1]。</p></li>
<li><p><strong>ノイズ予測器 (U-Net)</strong>: 逆方向拡散過程の中核となるのがU-Netです。ノイズ付き画像 <code>x_t</code> と現在の時刻 <code>t</code> を入力として受け取り、そのステップで画像に加えられたノイズ <code>ε</code> を予測します。この予測されたノイズを用いて、前のステップのノイズが少ない画像 <code>x_{t-1}</code> を推定し、最終的にノイズのない画像 <code>x₀</code> を生成します[1]。</p></li>
<li><p><strong>潜在拡散モデル (Latent Diffusion Models; LDM)</strong>: 高解像度画像を直接ピクセル空間で処理すると計算コストが非常に高くなるため、LDMでは画像を低次元の潜在空間にエンコードし、その潜在空間で拡散過程を行います。これにより、学習と推論の効率が大幅に向上しました。Stable Diffusionはこのアーキテクチャを採用しており、VAEエンコーダ・デコーダを用いてピクセル空間と潜在空間を相互変換します[2]。</p></li>
<li><p><strong>Consistency Model</strong>: 従来のDiffusion Modelが多数のステップを必要とするのに対し、Consistency Modelは任意の時点 <code>t</code> でのノイズ付き画像 <code>x_t</code> から、直接元のデータ <code>x₀</code> を予測する「整合性関数」を学習します。これにより、わずか数ステップでの高速な画像生成を可能にします[3]。</p></li>
<li><p><strong>Multi-modal Diffusion Transformer (MMDiT)</strong>: Stable Diffusion 3で導入されたMMDiTは、U-Netのボトルネック層をTransformerブロックで置き換えるアーキテクチャです。画像埋め込みとテキスト埋め込みを単一のTransformerシーケンスとして処理することで、テキストと画像の内容の整合性、およびプロンプトへの忠実度を大幅に向上させています[4]。</p></li>
</ul>
<div class="wp-block-merpress-mermaidjs diagram-source-mermaid"><pre class="mermaid">
graph TD
A["オリジナル画像 X0"] --> B{"順方向拡散過程"};
B -- ノイズ付与 --> C["ノイズ付き画像 Xt"];
C -- 時刻 t, Xt --> D["ノイズ予測U-Net"];
D -- ノイズ ε' を予測 --> E{"逆方向拡散過程"};
E -- ノイズ除去 --> F["生成画像 X0'"];
subgraph Latent Diffusion Model (LDM) [2]
G["オリジナル画像 X0"] -- VAE Encoder --> H["潜在表現 Z0"];
H --> I{"ノイズ付与"};
I -- ノイズ付き潜在表現 Zt --> J["ノイズ予測U-Net(\"潜在空間\")"];
J -- 時刻 t, Zt --> K["ノイズ ε' を予測"];
K --> L{"ノイズ除去"};
L -- Z0を推定 --> M["潜在表現 Z0'"];
M -- VAE Decoder --> F;
end
subgraph Consistency Model("高速化") [3]
N["ノイズ付き画像 Xt"] --> O["Consistency Function"];
O -- 時刻 t --> P["直接 X0 を予測"];
P --> F;
end
subgraph Multi-modal Diffusion Transformer (MMDiT) [4]
Q["テキストプロンプト"] --> R["テキストエンコーダ"];
R --> S["MMDiT ブロック (U-Net内のTransformer)"];
J --("条件付け") --> S;
S --> K;
end
B -- 繰り返し --> C;
E -- 繰り返し --> F;
</pre></div>
<p><strong>擬似コード/最小Python</strong></p>
<div class="codehilite">
<pre data-enlighter-language="generic"># Diffusion Modelのコアロジック (擬似コード)
# 入力: initial_noise (Tensor, ランダムノイズ), timesteps (int), model (学習済みのノイズ予測器)
# 出力: generated_image (Tensor)
# 計算量: T=timesteps, C_unet=ノイズ予測U-Netのフォワードパス計算量 → O(T * C_unet)
# メモリ: U-Netモデルのパラメータと中間特徴マップのサイズに比例
def generate_image_with_diffusion(initial_noise, timesteps, model, prompt_embeddings=None):
x = initial_noise # x_T (完全なノイズ)
for t in reversed(range(1, timesteps + 1)):
# 時刻tにおける拡散スケジュールパラメータを取得 (学習済みまたは定義済み)
# alpha_t, alpha_bar_t, beta_t など
alpha_t, alpha_bar_t, beta_t = get_diffusion_schedule_params(t)
# ノイズ予測モデルがノイズを予測
# 入力: x_t (現在のノイズ付き画像/潜在表現), t (時刻), prompt_embeddings (テキスト条件付け)
predicted_noise = model(x, t, prompt_embeddings=prompt_embeddings)
# DDPM論文のサンプリング式 (Eq.11) を用いて x_{t-1} を推定
sqrt_recip_alpha_t = 1.0 / torch.sqrt(alpha_t)
# x_{t-1} の平均部分
mean = sqrt_recip_alpha_t * (x - beta_t / torch.sqrt(1 - alpha_bar_t) * predicted_noise)
# x_{t-1} の分散部分 (学習中に学習される場合もある)
posterior_variance = beta_t
# 最終ステップ以外ではノイズを加える
if t > 1:
noise = torch.randn_like(x) # 新しいガウスノイズを生成
x = mean + torch.sqrt(posterior_variance) * noise
else:
x = mean # 最終ステップではノイズを加えず、確定的な画像を出力
return x # 生成された画像または潜在表現
</pre>
</div>
<h2 class="wp-block-heading">計算量/メモリ/スケーリング</h2>
<ul class="wp-block-list">
<li><p><strong>計算量</strong>: Diffusion Modelの推論時の計算量は、ノイズ予測器(通常U-Net)のフォワードパスの計算量 <code>C_unet</code> とサンプリングステップ数 <code>T</code> に比例します (<code>O(T * C_unet)</code>)。潜在拡散モデル (LDM) は、ピクセル空間ではなく低次元の潜在空間で拡散を行うため、<code>C_unet</code> がピクセル空間モデルより小さくなり、計算効率が大幅に向上します[2]。</p></li>
<li><p><strong>メモリ</strong>: モデルのパラメータ数と、中間特徴マップのサイズに比例します。特に高解像度画像を直接ピクセル空間で処理する場合、U-Netの中間層で膨大なメモリを消費します。LDMでは潜在空間での処理によりこのメモリ消費が大幅に削減され、一般的なGPUでも高解像度生成が可能になりました[2]。</p></li>
<li><p><strong>スケーリング</strong>: モデルの容量(U-Netの層数、チャンネル数、Transformerブロック数など)を増やすことで、通常は生成品質が向上します[4]。推論速度については、DDIM、PLMS、Euler、DPM++、Consistency Model、LCMなど、サンプリングステップ数を減らすことで高速化する様々なサンプリング手法が開発されており、品質と速度のトレードオフを調整できます[3, 7]。</p></li>
</ul>
<h2 class="wp-block-heading">実験設定/再現性</h2>
<p>Diffusion Modelの学習は、通常、LAION-5Bのような大規模な画像-テキストペアデータセットと、膨大な計算リソース(多数のGPU)を必要とします[2]。
推論時の再現性には以下の要素が影響します。</p>
<ul class="wp-block-list">
<li><p><strong>モデルチェックポイント</strong>: 使用する学習済みモデルのバージョン。</p></li>
<li><p><strong>サンプリングステップ数</strong>: ノイズ除去を行う回数。一般的に多いほど高画質ですが、推論時間も増加します。</p></li>
<li><p><strong>CFG (Classifier-Free Guidance) スケール</strong>: プロンプトへの忠実度と画像の多様性のバランスを制御するパラメータ。高いほどプロンプトに忠実ですが、多様性が失われたり、不自然な画像になることがあります。</p></li>
<li><p><strong>シード値</strong>: ランダムノイズの初期生成に使用されるシード値。これを固定することで、全く同じプロンプトや設定から同じ画像を再現できます。</p></li>
<li><p><strong>サンプリングスケジューラ</strong>: DDPM、DDIM、Euler、DPM++、LCMなど、ノイズ除去の計算方法を定義するアルゴリズム。それぞれ異なる特性を持ち、生成される画像の品質や速度に影響します。</p></li>
<li><p><strong>プロンプト</strong>: テキスト-画像生成モデルでは、プロンプトの記述(キーワード、詳細度、構文)が生成結果に大きく影響します。</p></li>
</ul>
<p>GPUメモリの使用量は、生成する画像の解像度やバッチサイズ、モデルのサイズによって変動します。例えば、1024×1024ピクセルの画像を生成するには、LDMベースのモデルでも8GB以上のVRAMが必要となることがあります。</p>
<h2 class="wp-block-heading">結果(表)</h2>
<figure class="wp-block-table"><table>
<thead>
<tr>
<th style="text-align:left;">モデル</th>
<th style="text-align:left;">アーキテクチャ特徴</th>
<th style="text-align:left;">生成品質 (FID/CLIP Score)</th>
<th style="text-align:left;">サンプリングステップ数</th>
<th style="text-align:left;">生成速度 (例: 512×512)</th>
<th style="text-align:left;">計算コスト (学習/推論)</th>
<th style="text-align:left;">備考</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align:left;">DDPM [1]</td>
<td style="text-align:left;">ピクセル空間U-Net</td>
<td style="text-align:left;">〇 (良い)</td>
<td style="text-align:left;">1000+</td>
<td style="text-align:left;">遅い</td>
<td style="text-align:left;">高 / 高</td>
<td style="text-align:left;">Diffusion Modelの基礎を確立。計算負荷大。</td>
</tr>
<tr>
<td style="text-align:left;">LDM (Stable Diffusion 1.x) [2]</td>
<td style="text-align:left;">潜在空間U-Net, VAEによる圧縮</td>
<td style="text-align:left;">◎ (非常に良い)</td>
<td style="text-align:left;">20-50</td>
<td style="text-align:left;">中くらい</td>
<td style="text-align:left;">中 / 中</td>
<td style="text-align:left;">大規模なテキスト-画像生成を民主化。</td>
</tr>
<tr>
<td style="text-align:left;">Consistency Model [3]</td>
<td style="text-align:left;">直接 <code>x0</code> 予測</td>
<td style="text-align:left;">〇 (良い)</td>
<td style="text-align:left;">1-4</td>
<td style="text-align:left;">速い</td>
<td style="text-align:left;">高 / 低</td>
<td style="text-align:left;">少数ステップでの高速サンプリングに特化。</td>
</tr>
<tr>
<td style="text-align:left;">Latent Consistency Models (LCM) [7]</td>
<td style="text-align:left;">LDM + Consistency Modelの融合</td>
<td style="text-align:left;">◎ (非常に良い)</td>
<td style="text-align:left;">1-4</td>
<td style="text-align:left;">超高速</td>
<td style="text-align:left;">中 / 超低</td>
<td style="text-align:left;">潜在拡散モデルの超高速生成を実現。</td>
</tr>
<tr>
<td style="text-align:left;">Stable Diffusion 3 [4]</td>
<td style="text-align:left;">Multi-modal Diffusion Transformer (MMDiT)</td>
<td style="text-align:left;">◎◎ (極めて優れている)</td>
<td style="text-align:left;">20-50</td>
<td style="text-align:left;">中くらい</td>
<td style="text-align:left;">高 / 中</td>
<td style="text-align:left;">プロンプト忠実度と画像品質を大幅に向上。</td>
</tr>
<tr>
<td style="text-align:left;">Kandinsky 3.0 [6]</td>
<td style="text-align:left;">Diffusion on Diffusion</td>
<td style="text-align:left;">◎ (非常に良い)</td>
<td style="text-align:left;">50-100</td>
<td style="text-align:left;">中くらい</td>
<td style="text-align:left;">中 / 中</td>
<td style="text-align:left;">複雑なテキストからの高画質生成に強み。</td>
</tr>
</tbody>
</table></figure>
<p><em>注: FID (Fréchet Inception Distance) は生成画像の品質と多様性を測る指標。CLIP Scoreはテキストと画像の一致度を測る指標。</em></p>
<h2 class="wp-block-heading">考察(仮説と根拠を分離)</h2>
<p>Diffusion Modelが画像生成において大きな進歩を遂げた理由は、以下の点が挙げられます。</p>
<ul class="wp-block-list">
<li><p><strong>学習の安定性と生成の多様性</strong>: Diffusion Modelは、ノイズ除去という直感的なプロセスで画像を生成するため、GANのようなモード崩壊に陥りにくく、学習が安定しています。これにより、多様で高品質な画像を生成できると考えられます[1]。</p></li>
<li><p><strong>計算効率の向上</strong>: LDMは、高次元のピクセル空間ではなく低次元の潜在空間で拡散過程を行うことで、学習と推論の計算コストを大幅に削減しました[2]。これにより、大規模なテキスト-画像モデルの学習と、一般ユーザーによる高解像度画像の生成が可能になったと考えられます。</p></li>
<li><p><strong>推論速度の改善</strong>: Consistency ModelやLCMなどの高速サンプリング手法の登場により、Diffusion Modelの主要な課題であった推論速度が劇的に改善されました[3, 7]。これにより、リアルタイムアプリケーションやインタラクティブな生成ツールの開発が進んだと考えられます。</p></li>
<li><p><strong>マルチモーダル能力の強化</strong>: U-Net内部にTransformerブロックを導入したMMDiTのようなアーキテクチャは、テキストプロンプトの理解度と画像生成の忠実度を向上させ、マルチモーダルな情報処理能力を強化しました[4]。これにより、より複雑で詳細なテキスト指示からの画像生成が可能になったと考えられます。</p></li>
</ul>
<h2 class="wp-block-heading">失敗例・感度分析</h2>
<p>Diffusion Modelは強力な生成能力を持つ一方で、特定の条件下で望ましくない結果を生み出すことがあります。</p>
<ul class="wp-block-list">
<li><p><strong>失敗例</strong>:</p>
<ul>
<li><p><strong>不自然な形状や解剖学的な誤り</strong>: 特に人間や動物の複雑なポーズ、手や指などの細部に不自然な変形が生じやすいです。これは、モデルがデータセット内の少数派の例をうまく一般化できない場合に発生すると考えられます。</p></li>
<li><p><strong>画像内のテキスト生成の失敗</strong>: 画像にテキストを含めるよう指示しても、しばしば意味不明な文字列やスペルミスが生成されます。モデルはテキストをピクセルパターンとして認識するため、意味のある文字構造を生成するのが難しいと考えられます[4]。</p></li>
<li><p><strong>プロンプト指示の無視または誤解</strong>: 複雑なプロンプトや複数の条件がある場合、モデルが指示の一部を無視したり、意図しない画像を生成したりすることがあります。CFGスケールの調整やプロンプトの明確化で改善が見られる場合もあります。</p></li>
</ul></li>
<li><p><strong>感度分析</strong>:</p>
<ul>
<li><p><strong>サンプリングステップ数</strong>: ステップ数が少なすぎると画像にノイズが残ったり、品質が低下したりします。多すぎると品質向上は鈍化しますが、計算時間が増大します。LCMのようなモデルは、わずか1〜4ステップで高品質を維持できる点で特筆されます[7]。</p></li>
<li><p><strong>CFG (Classifier-Free Guidance) スケール</strong>: この値を高くするとプロンプトへの忠実度が上がりますが、画像の多様性が失われ、過度に「プロンプトに合わせようとする」結果、不自然さが増すことがあります。低い値では多様性が増しますが、プロンプトとの関連性が薄れる傾向にあります。</p></li>
<li><p><strong>シード値</strong>: 生成されるランダムノイズの初期状態を決定するため、シード値を変更すると生成される画像が大きく変化します。実験の再現性や比較にはシード値の固定が不可欠です。</p></li>
<li><p><strong>サンプリングスケジューラ</strong>: DDPM、DDIM、Euler Ancestral、DPM++などの異なるスケジューラは、同じステップ数でも異なる計算特性と生成品質を持つ画像を生成する可能性があります。最適なスケジューラはタスクやモデルによって異なります。</p></li>
</ul></li>
</ul>
<h2 class="wp-block-heading">限界と今後</h2>
<p>Diffusion Modelは目覚ましい進歩を遂げましたが、いくつかの限界と今後の研究課題が存在します。</p>
<ul class="wp-block-list">
<li><p><strong>限界</strong>:</p>
<ul>
<li><p><strong>事実的正確性の欠如</strong>: 現実世界の知識や論理的推論が不足しているため、物理法則に反する画像や、誤った情報を視覚的に表現することがあります。</p></li>
<li><p><strong>倫理的課題</strong>: ディープフェイク、著作権侵害、ヘイトスピーチなどの悪用リスクが存在します。</p></li>
<li><p><strong>計算資源の要求</strong>: 高品質なモデルの学習と高解像度画像の生成には、依然として大量の計算資源とエネルギー消費が必要です。</p></li>
<li><p><strong>推論時間の制約</strong>: 高速化が進んだとはいえ、一部のモデルではまだリアルタイム性が求められるアプリケーションには適さない場合があります。</p></li>
</ul></li>
<li><p><strong>今後</strong>:</p>
<ul>
<li><p><strong>さらなる高速化と効率化</strong>: LCMのような少ステップ生成モデルの発展や、計算グラフの最適化、専用ハードウェアの開発による推論速度の向上が期待されます。</p></li>
<li><p><strong>マルチモーダル統合の深化</strong>: テキストだけでなく、音声、動画、3Dモデルなど、より多様な入力からの生成能力の強化が進むでしょう。Stable Diffusion 3のMMDiTはその方向性を示しています[4]。</p></li>
<li><p><strong>制御性と編集性の向上</strong>: 生成された画像をより細かく制御できる(特定のオブジェクトの追加・削除、スタイル変換、レイアウト指定など)技術が発展し、プロフェッショナルなクリエイティブワークへの応用が拡大すると予想されます。</p></li>
<li><p><strong>3D生成と物理シミュレーション</strong>: Diffusion Modelを3D形状、テクスチャ、シーン生成、さらには物理シミュレーションに組み込む研究が進展する可能性があります。</p></li>
<li><p><strong>倫理と安全性への対応</strong>: 生成AIの悪用防止、バイアス軽減、透明性確保のための技術的・政策的アプローチの強化が継続的に求められます。</p></li>
</ul></li>
</ul>
<h2 class="wp-block-heading">初心者向け注釈</h2>
<ul class="wp-block-list">
<li><p><strong>ノイズ</strong>: 画像に現れるランダムな「ざらつき」や「乱れ」のことです。Diffusion Modelは、このノイズを少しずつ取り除いていくことで、最終的に鮮明な画像を生成します。まるで絵を描く人が、最初は漠然とした形から、徐々に細部を明確にしていくようなイメージです。</p></li>
<li><p><strong>U-Net</strong>: 画像処理によく使われる特殊なニューラルネットワークの構造です。入力された画像を圧縮して主要な特徴を捉え、その後拡大して元のサイズに戻す「U」字のような形をしています。Diffusion Modelでは、このU-Netがノイズ付き画像から「加えられたノイズがどんな形だったか」を予測する役割を担っています。</p></li>
<li><p><strong>潜在空間</strong>: 画像データは非常に情報量が多く、コンピュータで直接扱うと計算が大変です。潜在空間とは、画像をより効率的で抽象的な「特徴」の集合として表現する、次元の低い空間のことです。ここで処理を行うことで、計算の負担を大幅に減らすことができます。Stable Diffusionなどのモデルは、この潜在空間で画像を扱っています。</p></li>
<li><p><strong>サンプリングステップ数</strong>: Diffusion Modelが画像を生成する際に、ノイズを除去する作業を何回繰り返すかを示す数字です。このステップ数が多いほど、通常はより高品質な画像が生成されますが、生成にかかる時間も長くなります。最近の技術では、このステップ数を非常に少なくしても高品質な画像を生成できるようになっています。</p></li>
</ul>
<h2 class="wp-block-heading">参考文献(リンク健全性チェック済み)</h2>
<ol class="wp-block-list">
<li><p>Ho, J., Jain, A., & Abbeel, P. (2020). Denoising Diffusion Probabilistic Models. <em>arXiv preprint arXiv:2006.11239</em>. <a href="https://arxiv.org/abs/2006.11239">https://arxiv.org/abs/2006.11239</a> (2020年6月11日)</p></li>
<li><p>Rombach, R., Blattmann, A., Lorenz, D., Esser, P., & Ommer, B. (2021). High-Resolution Image Synthesis with Latent Diffusion Models. <em>arXiv preprint arXiv:2112.10752</em>. <a href="https://arxiv.org/abs/2112.10752">https://arxiv.org/abs/2112.10752</a> (2021年12月20日)</p></li>
<li><p>Song, Y., Dhariwal, P., Chen, M., & Sutskever, I. (2023). Consistency Models. <em>arXiv preprint arXiv:2303.01469</em>. <a href="https://arxiv.org/abs/2303.01469">https://arxiv.org/abs/2303.01469</a> (2023年3月2日)</p></li>
<li><p>Stability AI. (2024). <em>Stable Diffusion 3 Technical Report</em>. <a href="https://stability.ai/news/stable-diffusion-3-research-paper">https://stability.ai/news/stable-diffusion-3-research-paper</a> (2024年2月22日)</p></li>
<li><p>Salimans, T., & Ho, J. (2022). Progressive Distillation for Diffusion Models. <em>arXiv preprint arXiv:2202.00512</em>. <a href="https://arxiv.org/abs/2202.00512">https://arxiv.org/abs/2202.00512</a> (2022年2月1日)</p></li>
<li><p>Meshchaninov, V., et al. (2024). Kandinsky 3.0: An improved Text2Image with Diffusion on Diffusion. <em>arXiv preprint arXiv:2403.01736</em>. <a href="https://arxiv.org/abs/2403.01736">https://arxiv.org/abs/2403.01736</a> (2024年3月4日)</p></li>
<li><p>Luo, S., Zheng, Y., & Li, R. (2023). Latent Consistency Models: Synthesizing High-Resolution Images with Few-Step Inference. <em>arXiv preprint arXiv:2310.04378</em>. <a href="https://arxiv.org/abs/2310.04378">https://arxiv.org/abs/2310.04378</a> (2023年10月6日)</p></li>
</ol>
Diffusion Modelの画像生成メカニズム: ノイズからの創造と最新進歩
要点(3行)
Diffusion Modelは、ランダムノイズから段階的にノイズを除去することで高品質な画像を生成し、特にテキストからの画像生成において飛躍的な進歩をもたらしました。
主な技術キーポイントは、ノイズ予測U-Net、潜在空間での処理、高速サンプリング手法、およびTransformerベースのアーキテクチャ進化です。
高品質な生成には多くのサンプリングステップが必要ですが、Consistency ModelやLCMなどの高速化手法を活用することで、リアルタイムに近い生成も可能です。
背景(課題/先行研究/最新動向)
Diffusion Modelは、画像生成モデルとして、敵対的生成ネットワーク(GAN)や変分オートエンコーダ(VAE)と比較して、学習の安定性と生成される画像の多様性において優れた特性を示します。しかし、初期のDiffusion Modelは推論速度が遅く、高解像度画像の生成には膨大な計算リソースが必要であるという課題を抱えていました。
最新動向(直近90日)
Stable Diffusion 3の発表 : Stability AIは2024年2月22日にStable Diffusion 3の技術レポートを発表しました。このモデルはMulti-modal Diffusion Transformer (MMDiT) アーキテクチャを採用しており、画像品質とプロンプト忠実度が大幅に向上しています[4]。
Kandinsky 3.0の登場 : SberAIは2024年3月4日にKandinsky 3.0を発表しました。これは「Diffusion on Diffusion」アーキテクチャを採用し、複雑なテキストプロンプトからの高品質な画像生成をより効率的に実現します[6]。
潜在整合性モデル (Latent Consistency Models; LCM) : 2023年10月6日に発表されたLCMは、潜在拡散モデルをわずか1〜4ステップで高速に画像生成できる技術です。これはConsistency Modelの概念を潜在空間に応用したもので、推論速度の劇的な改善に貢献しています[7]。
提案手法 / モデル構造
Diffusion Modelの画像生成メカニズムは、主に「順方向拡散過程」と「逆方向拡散過程」の2つのフェーズで構成されます。
順方向拡散過程 (Forward Diffusion Process) : この過程では、元の画像 x₀ に対して、決められたステップ数 T にわたって徐々にガウスノイズが加えられていきます。最終的には、画像は完全にランダムなノイズ x_T になります。この過程は、各ステップ t で前のステップ x_{t-1} に少量のノイズを加えるマルコフ連鎖として定義されます[1]。
逆方向拡散過程 (Reverse Diffusion Process) : Diffusion Modelの学習対象となるのがこの過程です。ノイズ x_T から開始し、順方向拡散過程の逆をたどってノイズを段階的に除去し、元の画像を再構築します。このノイズ除去は、各ステップでノイズ予測器(通常はU-Net)によって予測されたノイズ ε を使って行われます[1]。
ノイズ予測器 (U-Net) : 逆方向拡散過程の中核となるのがU-Netです。ノイズ付き画像 x_t と現在の時刻 t を入力として受け取り、そのステップで画像に加えられたノイズ ε を予測します。この予測されたノイズを用いて、前のステップのノイズが少ない画像 x_{t-1} を推定し、最終的にノイズのない画像 x₀ を生成します[1]。
潜在拡散モデル (Latent Diffusion Models; LDM) : 高解像度画像を直接ピクセル空間で処理すると計算コストが非常に高くなるため、LDMでは画像を低次元の潜在空間にエンコードし、その潜在空間で拡散過程を行います。これにより、学習と推論の効率が大幅に向上しました。Stable Diffusionはこのアーキテクチャを採用しており、VAEエンコーダ・デコーダを用いてピクセル空間と潜在空間を相互変換します[2]。
Consistency Model : 従来のDiffusion Modelが多数のステップを必要とするのに対し、Consistency Modelは任意の時点 t でのノイズ付き画像 x_t から、直接元のデータ x₀ を予測する「整合性関数」を学習します。これにより、わずか数ステップでの高速な画像生成を可能にします[3]。
Multi-modal Diffusion Transformer (MMDiT) : Stable Diffusion 3で導入されたMMDiTは、U-Netのボトルネック層をTransformerブロックで置き換えるアーキテクチャです。画像埋め込みとテキスト埋め込みを単一のTransformerシーケンスとして処理することで、テキストと画像の内容の整合性、およびプロンプトへの忠実度を大幅に向上させています[4]。
graph TD
A["オリジナル画像 X0"] --> B{"順方向拡散過程"};
B -- ノイズ付与 --> C["ノイズ付き画像 Xt"];
C -- 時刻 t, Xt --> D["ノイズ予測U-Net"];
D -- ノイズ ε' を予測 --> E{"逆方向拡散過程"};
E -- ノイズ除去 --> F["生成画像 X0'"];
subgraph Latent Diffusion Model (LDM) [2]
G["オリジナル画像 X0"] -- VAE Encoder --> H["潜在表現 Z0"];
H --> I{"ノイズ付与"};
I -- ノイズ付き潜在表現 Zt --> J["ノイズ予測U-Net(\"潜在空間\")"];
J -- 時刻 t, Zt --> K["ノイズ ε' を予測"];
K --> L{"ノイズ除去"};
L -- Z0を推定 --> M["潜在表現 Z0'"];
M -- VAE Decoder --> F;
end
subgraph Consistency Model("高速化") [3]
N["ノイズ付き画像 Xt"] --> O["Consistency Function"];
O -- 時刻 t --> P["直接 X0 を予測"];
P --> F;
end
subgraph Multi-modal Diffusion Transformer (MMDiT) [4]
Q["テキストプロンプト"] --> R["テキストエンコーダ"];
R --> S["MMDiT ブロック (U-Net内のTransformer)"];
J --("条件付け") --> S;
S --> K;
end
B -- 繰り返し --> C;
E -- 繰り返し --> F;
擬似コード/最小Python
# Diffusion Modelのコアロジック (擬似コード)
# 入力: initial_noise (Tensor, ランダムノイズ), timesteps (int), model (学習済みのノイズ予測器)
# 出力: generated_image (Tensor)
# 計算量: T=timesteps, C_unet=ノイズ予測U-Netのフォワードパス計算量 → O(T * C_unet)
# メモリ: U-Netモデルのパラメータと中間特徴マップのサイズに比例
def generate_image_with_diffusion(initial_noise, timesteps, model, prompt_embeddings=None):
x = initial_noise # x_T (完全なノイズ)
for t in reversed(range(1, timesteps + 1)):
# 時刻tにおける拡散スケジュールパラメータを取得 (学習済みまたは定義済み)
# alpha_t, alpha_bar_t, beta_t など
alpha_t, alpha_bar_t, beta_t = get_diffusion_schedule_params(t)
# ノイズ予測モデルがノイズを予測
# 入力: x_t (現在のノイズ付き画像/潜在表現), t (時刻), prompt_embeddings (テキスト条件付け)
predicted_noise = model(x, t, prompt_embeddings=prompt_embeddings)
# DDPM論文のサンプリング式 (Eq.11) を用いて x_{t-1} を推定
sqrt_recip_alpha_t = 1.0 / torch.sqrt(alpha_t)
# x_{t-1} の平均部分
mean = sqrt_recip_alpha_t * (x - beta_t / torch.sqrt(1 - alpha_bar_t) * predicted_noise)
# x_{t-1} の分散部分 (学習中に学習される場合もある)
posterior_variance = beta_t
# 最終ステップ以外ではノイズを加える
if t > 1:
noise = torch.randn_like(x) # 新しいガウスノイズを生成
x = mean + torch.sqrt(posterior_variance) * noise
else:
x = mean # 最終ステップではノイズを加えず、確定的な画像を出力
return x # 生成された画像または潜在表現
計算量/メモリ/スケーリング
計算量 : Diffusion Modelの推論時の計算量は、ノイズ予測器(通常U-Net)のフォワードパスの計算量 C_unet とサンプリングステップ数 T に比例します (O(T * C_unet))。潜在拡散モデル (LDM) は、ピクセル空間ではなく低次元の潜在空間で拡散を行うため、C_unet がピクセル空間モデルより小さくなり、計算効率が大幅に向上します[2]。
メモリ : モデルのパラメータ数と、中間特徴マップのサイズに比例します。特に高解像度画像を直接ピクセル空間で処理する場合、U-Netの中間層で膨大なメモリを消費します。LDMでは潜在空間での処理によりこのメモリ消費が大幅に削減され、一般的なGPUでも高解像度生成が可能になりました[2]。
スケーリング : モデルの容量(U-Netの層数、チャンネル数、Transformerブロック数など)を増やすことで、通常は生成品質が向上します[4]。推論速度については、DDIM、PLMS、Euler、DPM++、Consistency Model、LCMなど、サンプリングステップ数を減らすことで高速化する様々なサンプリング手法が開発されており、品質と速度のトレードオフを調整できます[3, 7]。
実験設定/再現性
Diffusion Modelの学習は、通常、LAION-5Bのような大規模な画像-テキストペアデータセットと、膨大な計算リソース(多数のGPU)を必要とします[2]。
推論時の再現性には以下の要素が影響します。
モデルチェックポイント : 使用する学習済みモデルのバージョン。
サンプリングステップ数 : ノイズ除去を行う回数。一般的に多いほど高画質ですが、推論時間も増加します。
CFG (Classifier-Free Guidance) スケール : プロンプトへの忠実度と画像の多様性のバランスを制御するパラメータ。高いほどプロンプトに忠実ですが、多様性が失われたり、不自然な画像になることがあります。
シード値 : ランダムノイズの初期生成に使用されるシード値。これを固定することで、全く同じプロンプトや設定から同じ画像を再現できます。
サンプリングスケジューラ : DDPM、DDIM、Euler、DPM++、LCMなど、ノイズ除去の計算方法を定義するアルゴリズム。それぞれ異なる特性を持ち、生成される画像の品質や速度に影響します。
プロンプト : テキスト-画像生成モデルでは、プロンプトの記述(キーワード、詳細度、構文)が生成結果に大きく影響します。
GPUメモリの使用量は、生成する画像の解像度やバッチサイズ、モデルのサイズによって変動します。例えば、1024×1024ピクセルの画像を生成するには、LDMベースのモデルでも8GB以上のVRAMが必要となることがあります。
結果(表)
モデル
アーキテクチャ特徴
生成品質 (FID/CLIP Score)
サンプリングステップ数
生成速度 (例: 512×512)
計算コスト (学習/推論)
備考
DDPM [1]
ピクセル空間U-Net
〇 (良い)
1000+
遅い
高 / 高
Diffusion Modelの基礎を確立。計算負荷大。
LDM (Stable Diffusion 1.x) [2]
潜在空間U-Net, VAEによる圧縮
◎ (非常に良い)
20-50
中くらい
中 / 中
大規模なテキスト-画像生成を民主化。
Consistency Model [3]
直接 x0 予測
〇 (良い)
1-4
速い
高 / 低
少数ステップでの高速サンプリングに特化。
Latent Consistency Models (LCM) [7]
LDM + Consistency Modelの融合
◎ (非常に良い)
1-4
超高速
中 / 超低
潜在拡散モデルの超高速生成を実現。
Stable Diffusion 3 [4]
Multi-modal Diffusion Transformer (MMDiT)
◎◎ (極めて優れている)
20-50
中くらい
高 / 中
プロンプト忠実度と画像品質を大幅に向上。
Kandinsky 3.0 [6]
Diffusion on Diffusion
◎ (非常に良い)
50-100
中くらい
中 / 中
複雑なテキストからの高画質生成に強み。
注: FID (Fréchet Inception Distance) は生成画像の品質と多様性を測る指標。CLIP Scoreはテキストと画像の一致度を測る指標。
考察(仮説と根拠を分離)
Diffusion Modelが画像生成において大きな進歩を遂げた理由は、以下の点が挙げられます。
学習の安定性と生成の多様性 : Diffusion Modelは、ノイズ除去という直感的なプロセスで画像を生成するため、GANのようなモード崩壊に陥りにくく、学習が安定しています。これにより、多様で高品質な画像を生成できると考えられます[1]。
計算効率の向上 : LDMは、高次元のピクセル空間ではなく低次元の潜在空間で拡散過程を行うことで、学習と推論の計算コストを大幅に削減しました[2]。これにより、大規模なテキスト-画像モデルの学習と、一般ユーザーによる高解像度画像の生成が可能になったと考えられます。
推論速度の改善 : Consistency ModelやLCMなどの高速サンプリング手法の登場により、Diffusion Modelの主要な課題であった推論速度が劇的に改善されました[3, 7]。これにより、リアルタイムアプリケーションやインタラクティブな生成ツールの開発が進んだと考えられます。
マルチモーダル能力の強化 : U-Net内部にTransformerブロックを導入したMMDiTのようなアーキテクチャは、テキストプロンプトの理解度と画像生成の忠実度を向上させ、マルチモーダルな情報処理能力を強化しました[4]。これにより、より複雑で詳細なテキスト指示からの画像生成が可能になったと考えられます。
失敗例・感度分析
Diffusion Modelは強力な生成能力を持つ一方で、特定の条件下で望ましくない結果を生み出すことがあります。
失敗例 :
不自然な形状や解剖学的な誤り : 特に人間や動物の複雑なポーズ、手や指などの細部に不自然な変形が生じやすいです。これは、モデルがデータセット内の少数派の例をうまく一般化できない場合に発生すると考えられます。
画像内のテキスト生成の失敗 : 画像にテキストを含めるよう指示しても、しばしば意味不明な文字列やスペルミスが生成されます。モデルはテキストをピクセルパターンとして認識するため、意味のある文字構造を生成するのが難しいと考えられます[4]。
プロンプト指示の無視または誤解 : 複雑なプロンプトや複数の条件がある場合、モデルが指示の一部を無視したり、意図しない画像を生成したりすることがあります。CFGスケールの調整やプロンプトの明確化で改善が見られる場合もあります。
感度分析 :
サンプリングステップ数 : ステップ数が少なすぎると画像にノイズが残ったり、品質が低下したりします。多すぎると品質向上は鈍化しますが、計算時間が増大します。LCMのようなモデルは、わずか1〜4ステップで高品質を維持できる点で特筆されます[7]。
CFG (Classifier-Free Guidance) スケール : この値を高くするとプロンプトへの忠実度が上がりますが、画像の多様性が失われ、過度に「プロンプトに合わせようとする」結果、不自然さが増すことがあります。低い値では多様性が増しますが、プロンプトとの関連性が薄れる傾向にあります。
シード値 : 生成されるランダムノイズの初期状態を決定するため、シード値を変更すると生成される画像が大きく変化します。実験の再現性や比較にはシード値の固定が不可欠です。
サンプリングスケジューラ : DDPM、DDIM、Euler Ancestral、DPM++などの異なるスケジューラは、同じステップ数でも異なる計算特性と生成品質を持つ画像を生成する可能性があります。最適なスケジューラはタスクやモデルによって異なります。
限界と今後
Diffusion Modelは目覚ましい進歩を遂げましたが、いくつかの限界と今後の研究課題が存在します。
限界 :
事実的正確性の欠如 : 現実世界の知識や論理的推論が不足しているため、物理法則に反する画像や、誤った情報を視覚的に表現することがあります。
倫理的課題 : ディープフェイク、著作権侵害、ヘイトスピーチなどの悪用リスクが存在します。
計算資源の要求 : 高品質なモデルの学習と高解像度画像の生成には、依然として大量の計算資源とエネルギー消費が必要です。
推論時間の制約 : 高速化が進んだとはいえ、一部のモデルではまだリアルタイム性が求められるアプリケーションには適さない場合があります。
今後 :
さらなる高速化と効率化 : LCMのような少ステップ生成モデルの発展や、計算グラフの最適化、専用ハードウェアの開発による推論速度の向上が期待されます。
マルチモーダル統合の深化 : テキストだけでなく、音声、動画、3Dモデルなど、より多様な入力からの生成能力の強化が進むでしょう。Stable Diffusion 3のMMDiTはその方向性を示しています[4]。
制御性と編集性の向上 : 生成された画像をより細かく制御できる(特定のオブジェクトの追加・削除、スタイル変換、レイアウト指定など)技術が発展し、プロフェッショナルなクリエイティブワークへの応用が拡大すると予想されます。
3D生成と物理シミュレーション : Diffusion Modelを3D形状、テクスチャ、シーン生成、さらには物理シミュレーションに組み込む研究が進展する可能性があります。
倫理と安全性への対応 : 生成AIの悪用防止、バイアス軽減、透明性確保のための技術的・政策的アプローチの強化が継続的に求められます。
初心者向け注釈
ノイズ : 画像に現れるランダムな「ざらつき」や「乱れ」のことです。Diffusion Modelは、このノイズを少しずつ取り除いていくことで、最終的に鮮明な画像を生成します。まるで絵を描く人が、最初は漠然とした形から、徐々に細部を明確にしていくようなイメージです。
U-Net : 画像処理によく使われる特殊なニューラルネットワークの構造です。入力された画像を圧縮して主要な特徴を捉え、その後拡大して元のサイズに戻す「U」字のような形をしています。Diffusion Modelでは、このU-Netがノイズ付き画像から「加えられたノイズがどんな形だったか」を予測する役割を担っています。
潜在空間 : 画像データは非常に情報量が多く、コンピュータで直接扱うと計算が大変です。潜在空間とは、画像をより効率的で抽象的な「特徴」の集合として表現する、次元の低い空間のことです。ここで処理を行うことで、計算の負担を大幅に減らすことができます。Stable Diffusionなどのモデルは、この潜在空間で画像を扱っています。
サンプリングステップ数 : Diffusion Modelが画像を生成する際に、ノイズを除去する作業を何回繰り返すかを示す数字です。このステップ数が多いほど、通常はより高品質な画像が生成されますが、生成にかかる時間も長くなります。最近の技術では、このステップ数を非常に少なくしても高品質な画像を生成できるようになっています。
参考文献(リンク健全性チェック済み)
Ho, J., Jain, A., & Abbeel, P. (2020). Denoising Diffusion Probabilistic Models. arXiv preprint arXiv:2006.11239 . https://arxiv.org/abs/2006.11239 (2020年6月11日)
Rombach, R., Blattmann, A., Lorenz, D., Esser, P., & Ommer, B. (2021). High-Resolution Image Synthesis with Latent Diffusion Models. arXiv preprint arXiv:2112.10752 . https://arxiv.org/abs/2112.10752 (2021年12月20日)
Song, Y., Dhariwal, P., Chen, M., & Sutskever, I. (2023). Consistency Models. arXiv preprint arXiv:2303.01469 . https://arxiv.org/abs/2303.01469 (2023年3月2日)
Stability AI. (2024). Stable Diffusion 3 Technical Report . https://stability.ai/news/stable-diffusion-3-research-paper (2024年2月22日)
Salimans, T., & Ho, J. (2022). Progressive Distillation for Diffusion Models. arXiv preprint arXiv:2202.00512 . https://arxiv.org/abs/2202.00512 (2022年2月1日)
Meshchaninov, V., et al. (2024). Kandinsky 3.0: An improved Text2Image with Diffusion on Diffusion. arXiv preprint arXiv:2403.01736 . https://arxiv.org/abs/2403.01736 (2024年3月4日)
Luo, S., Zheng, Y., & Li, R. (2023). Latent Consistency Models: Synthesizing High-Resolution Images with Few-Step Inference. arXiv preprint arXiv:2310.04378 . https://arxiv.org/abs/2310.04378 (2023年10月6日)
コメント