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
関連記事
- 2026-04-30実装OpenAI API 実装入門 ─ Chat / Embeddings / Function CallingOpenAI API を使ったプロダクション開発の基礎。Chat Completion・Embedding・Function Calling・ストリーミング・コスト管理まで実装パターンを網羅。
- 2026-04-30実装Vercel で AI アプリをデプロイする ─ Next.js + AI SDK 入門Vercel にデプロイする最短ルート。Next.js の AI SDK + AI Gateway で OpenAI/Claude を統合し、ストリーミングチャット UI を 1 時間で公開する手順。
- 2026-04-30実装Streamlit で 1 時間で ML デモアプリ ─ 転職に効くポートフォリオPython だけで動くインタラクティブな ML デモを Streamlit で作る方法。データ可視化・ファイルアップロード・モデル予測 UI までの最小実装。