統計ロードマップ
2026-04-30·実装·⏱ 約 4

拡散モデル 入門 ─ Stable Diffusion はなぜ動くのか

DALL-E・Midjourney・Stable Diffusion の基盤『拡散モデル(Diffusion Model)』の仕組みを、ノイズの順拡散と逆拡散プロセスで解説します。

拡散モデル(Diffusion Model) は 2022 年以降の生成 AI の主役。Stable Diffusion・DALL-E・Midjourney・Sora まで、画像 ・ 動画生成のほぼ全てが拡散モデルベースです。

順拡散と逆拡散

順過程(Forward Process)

元の画像 少しずつガウスノイズを加えていく プロセス。 回繰り返すと完全なノイズ になる。

逆過程(Reverse Process)

ノイズ から 元の画像 を復元 するプロセス。これを NN で学習する。

💡 なぜノイズ除去で生成?

ノイズを足す過程は確定的(数式で計算可)。逆向きを学習する → 純ノイズから画像を作れる、というのがアイデア。

学習目標 ─ ノイズ予測

実装上は 加えたノイズ を予測する タスクに置き換える(DDPM 論文の貢献)。

U-Net + 時刻埋め込み

ノイズ予測には U-Net(エンコーダ・デコーダ構造)を使用。さらに `t` を sinusoidal embedding で埋め込んで条件付け。

テキスト → 画像 の条件付け

CLIP テキストエンコーダで文字をベクトル化 → U-Net の各層に Cross-Attention で注入。これで『テキストに従う画像生成』が可能に。

Diffusers ライブラリで生成
from diffusers import StableDiffusionPipeline
import torch

pipe = StableDiffusionPipeline.from_pretrained(
    'stabilityai/stable-diffusion-2-1',
    torch_dtype=torch.float16,
).to('cuda')

image = pipe(
    prompt='A serene Japanese tea garden at sunset, oil painting style',
    num_inference_steps=30,
    guidance_scale=7.5,
).images[0]
image.save('output.png')

推論時の高速化テクニック

  • DDIM: 元の DDPM(1000 steps)を 50 steps 程度に高速化
  • Classifier-Free Guidance: 無条件と条件付き予測を線形結合、品質向上
  • LCM(Latent Consistency Model): 4 steps で生成可能
  • Distillation: 教師モデルの軌跡を小モデルに蒸留

代表的なモデル

  • Stable Diffusion: OSS、自分で動かせる、Civitai でカスタムモデル流通
  • DALL-E 3: OpenAI、ChatGPT 統合
  • Midjourney: 商用、芸術性で最強
  • SDXL: SD の高解像度版
  • Sora(動画): OpenAI、未公開だが衝撃的品質

応用と注意点

  • コンテンツ制作: ゲーム ・ 漫画 ・ 動画素材
  • プロトタイピング: UI ・ プロダクトデザイン
  • 広告: バナー量産
  • 注意: 著作権 ・ 学習データの問題、ディープフェイク懸念

学習リソース

  • [LLM 入門](/blog/llm-introduction)
  • [Transformer の数学](/blog/transformer-math)
  • [E 資格 教科書](/certs/e-shikaku/textbook)
  • [ベイズ統計と頻度論](/blog/bayes-vs-frequentist)

まとめ

拡散モデルは『ノイズに対するスコア関数を学習』というシンプルな枠組みで、GAN・VAE を圧倒する品質を実現。次は動画 ・ 3D ・ 音声生成へ展開中です。

Related Articles

関連記事