Diffusionモデルが登場する前の画像生成

Diffusionモデルが普及する前、画像生成の主役はGAN(Generative Adversarial Network)でした。GANは「生成器」と「識別器」が競い合いながら学習する仕組みですが、学習が不安定になりやすく、多様な画像を生成するのが難しいという課題がありました。

Diffusionモデルはこれらの課題を別のアプローチで解決し、2022年以降のStable Diffusionの公開とともに一気に注目を集めました。

拡散過程——画像を徐々に壊す

Diffusionモデルの学習は2段階に分かれます。まず「拡散過程(Forward Process)」から理解しましょう。

拡散過程は、きれいな画像にステップごとに少量のガウスノイズを加えていく処理です。たとえば1000ステップかければ、最終的にどんな画像も完全なランダムノイズに変わります。猫の写真も風景写真も、最終的に同じように見えるノイズになります。

重要なのは、このノイズ付加には数式が決まっているため、t番目のステップでどれくらいノイズが乗っているかを計算で求められる点です。1ステップずつ計算せずに「500ステップ後の状態」を一発で生成できます。

逆拡散過程——ノイズから画像を復元する

次が「逆拡散過程(Reverse Process)」です。ランダムなノイズから出発して、少しずつノイズを取り除いていくことで画像を生成します。

ここでニューラルネットワーク(主にUNetと呼ばれるアーキテクチャ)が登場します。「このノイズ画像から、どの部分がノイズで何が元の信号か」を予測するよう学習します。

具体的には、学習データとして「元画像 + どれくらいノイズを加えたか + 加えたノイズ」の3点セットを大量に使います。モデルは「この画像に含まれるノイズを当てる」タスクを繰り返し解くことで、ノイズの除去方法を身に付けます。

DDPMとDDIM——速度と品質のバランス

DDPM(Denoising Diffusion Probabilistic Models)

2020年にHoらが発表した手法で、Diffusionモデルの実用化を切り開きました。1000ステップの逆拡散を経て画像を生成するため、当初は1枚の生成に数分かかっていました。

DDIM(Denoising Diffusion Implicit Models)

DDPMの遅さを改善するために提案された手法です。DDPMが確率的(毎回結果が変わる)なのに対し、DDIMは決定論的で、同じシードから常に同じ画像が生成されます。また50〜100ステップ程度でもDDPMの1000ステップに近い品質を出せるため、生成速度が大幅に改善されました。現在のStable Diffusionのデフォルトサンプラーとして広く使われています。

テキスト条件付き生成の仕組み

「猫の写真を描いて」という指示をモデルが理解するには、テキストと画像生成を結びつける仕組みが必要です。ここで活躍するのがCLIP(Contrastive Language-Image Pre-training)です。

CLIPの役割

CLIPはテキストと画像を同じベクトル空間に埋め込むモデルです。「猫」というテキストと猫の写真が近いベクトルを持つよう大量のペアデータで学習されています。

クロスアテンションで条件付け

Stable DiffusionではCLIPでテキストをベクトルに変換し、UNetの各レイヤーにクロスアテンションで注入します。「ノイズを除去するとき、このテキストの意味を参考にしてください」という形で、テキストが逆拡散の方向をガイドします。

Classifier-Free Guidance(CFG)

テキストの影響力を調整するパラメータがCFGスケールです。値が高いほど入力テキストへの忠実度が上がりますが、多様性は失われます。7〜12が一般的な設定で、高すぎると色飽和や過剰な強調が起きます。

Stable DiffusionとMidjourneyの違い

Stable Diffusionはオープンソースで自分のマシンでも動かせますが、MidjourneyはクローズドなサービスとしてDiscord経由で提供されています。技術的にはどちらもDiffusionモデルを基礎としていますが、Midjourneyは独自のファインチューニングと報酬モデルを組み合わせており、美的クオリティの高さで評価されています。

Stable Diffusionの強みは拡張性で、LoRAによるスタイル追加やControlNetによる構図制御など、コミュニティ製のツールが豊富に揃っています。

まとめ

Diffusionモデルは「ノイズを付加して壊す」「ノイズを除去して戻す」という単純な原理に基づきながら、テキスト条件付けとCFGを組み合わせることで高品質な画像生成を実現しています。DDPMからDDIMへの進化でリアルタイムに近い速度が実現し、今日の画像生成AIブームの基盤になりました。