はじめに
Stable Diffusionを始めると、まず直面するのが 「SD 1.5とSDXL、どっちを使えばいいの?」 という疑問ですわよね。
この記事では、その違いを2段階で解説します。 まずは「ざっくり理解」で全体像をつかみ、 そのあと「技術的な深掘り」で仕組みまで理解する構成です。
🌟 ざっくり比較:一言で言うと
SD 1.5 = 軽くて速い。LoRAが豊富。古いけどまだ現役。
SDXL = 高画質。プロンプトをよく理解する。ただし重い。
主要スペック比較表
| 項目 | SD 1.5 | SDXL |
|---|---|---|
| 📐 基本解像度 | 512 × 512 | 1024 × 1024 |
| 📝 プロンプト上限 | 75 トークン × 1 CLIP | 75 トークン × 2 CLIP |
| 🖼️ 画質 | 良い | とても良い |
| ⚡ 生成速度 | 速い | 遅い(約2〜3倍) |
| 💾 必要VRAM | 4GB〜 | 8GB〜 |
| 📦 モデルサイズ | 約2GB | 約6.5GB |
| 🎨 LoRAの数 | 非常に多い | 増加中 |
| ✋ 手の描写 | 苦手 | 改善あり |
| 🔤 文字の描写 | ほぼ不可能 | ある程度可能 |
画質の違い
最も大きな違いは解像度です。SD 1.5は512×512ピクセルで生成するため、 顔のディテールや細部が潰れがちです。SDXLは1024×1024で生成するため、 4倍のピクセル数でより精細な画像が得られます。
SD 1.5: 512 × 512 = 約26万ピクセル
SDXL: 1024 × 1024 = 約105万ピクセル
→ SDXLは約4倍の情報量を持つ
プロンプトの理解力
SD 1.5は75トークン(約40〜50語)の処理が基本単位です。 WebUIでは自動チャンク分割で拡張されますが、後方チャンクの影響力は弱まります。
SDXLは2つのテキストエンコーダー(CLIP-L/14 + OpenCLIP ViT-bigG)を搭載し、 それぞれが75トークンを処理します。同じプロンプトが両方に渡されることで、 よりニュアンスのある指示を理解できます。
速度とスペック
SDXLはSD 1.5の約2〜3倍の生成時間がかかります。 必要なVRAMも倍以上です。
| スペック | SD 1.5 | SDXL |
|---|---|---|
| 最低VRAM | 4GB | 8GB |
| 推奨VRAM | 6GB+ | 12GB+ |
| 生成時間(20ステップ) | 約5〜10秒 | 約15〜30秒 |
| LoRA学習 | 8GB〜 | 12GB〜 |
LoRAの互換性
SD 1.5用のLoRAはSDXLでは使えません。逆も同様です。 モデル構造が全く異なるため、互換性がありません。
SD 1.5はコミュニティの歴史が長く、 Civitaiなどで数万種類のLoRAが公開されています。 SDXLのLoRAも急速に増えていますが、まだSD 1.5ほどの数はありません。
🎯 結論:どっちを選ぶ?
✅ SD 1.5がおすすめの人
・GPUのVRAMが8GB未満(GTX 1060, RTX 3060 6GBなど)
・使いたい特定のLoRAがSD 1.5用しかない
・大量生成したい(速度重視)
・アニメ系の定番モデルを使いたい
✅ SDXLがおすすめの人
・GPUのVRAMが8GB以上(RTX 3060 12GB, RTX 4070以上など)
・高画質な画像を生成したい
・複雑なプロンプトで細かく指示したい
・リアル系の画像を生成したい
多くのユーザーは用途によって使い分けています。 ラフな構図出しや大量生成はSD 1.5、本番の高画質生成はSDXLという使い方が効率的です。
🔬 技術的な深掘り
ここからは、SD 1.5とSDXLのアーキテクチャレベルの違いを解説します。 「なぜSDXLの方が高画質なのか」「なぜLoRAに互換性がないのか」が技術的に理解できます。
1. モデル構造の違い
最も根本的な違いは、モデルの規模と構造です。
| アーキテクチャ | SD 1.5 | SDXL |
|---|---|---|
| U-Netパラメータ数 | 約8.6億 | 約35億(約4倍) |
| テキストエンコーダー | CLIP ViT-L/14(1つ) | CLIP ViT-L/14 + OpenCLIP ViT-bigG(2つ) |
| テキスト埋め込み次元 | 768次元 | 768 + 1280 = 2048次元 |
| 潜在空間チャンネル数 | 4チャンネル | 4チャンネル |
| 潜在空間解像度 | 64 × 64 | 128 × 128 |
| VAE | SD VAE | 改良版 SDXL VAE |
2. U-Netの構造比較
SD 1.5とSDXLでは、ノイズ除去を担うU-Netの内部構造が大きく異なります。
【SD 1.5 U-Net】
入力(4ch, 64×64) → DownBlock×4 → MiddleBlock → UpBlock×4 → 出力(4ch, 64×64)
320→640→1280→1280 1280→1280→640→320
Cross-Attention: 各ブロックで768次元のテキスト埋め込みと照合
Attention Head: 8
【SDXL U-Net】
入力(4ch, 128×128) → DownBlock×3 → MiddleBlock → UpBlock×3 → 出力(4ch, 128×128)
320→640→1280 1280→640→320
Cross-Attention: 各ブロックで2048次元のテキスト埋め込みと照合
Attention Head: 20 (1280次元ブロック) / 10 (640次元ブロック)
SD 1.5は4段階のダウンサンプリングですが、SDXLは3段階です。 SDXLは解像度の高い段階で計算を打ち切り、その分Attention Headの数を増やすことで テキストとの対応精度を上げています。
これがSDXLの「プロンプト理解力が高い」理由の一つです。
3. デュアルテキストエンコーダー
SDXLの最大の革新は、2つのCLIPモデルを組み合わせていることです。
【SD 1.5のテキスト処理】
プロンプト → CLIP ViT-L/14 → 768次元ベクトル × 77トークン → U-Net
【SDXLのテキスト処理】
プロンプト → CLIP ViT-L/14 → 768次元ベクトル × 77トークン ─┐
→ OpenCLIP ViT-bigG → 1280次元ベクトル × 77トークン ─┼→ 結合 → 2048次元 → U-Net
│
→ プーリング出力(1280次元) ──────┘→ タイムステップ埋め込みに加算
CLIP ViT-L/14は「一般的な概念」を捉え、 OpenCLIP ViT-bigGは「より細かいニュアンス」を捉えます。 2つのベクトルを連結(concatenate)してU-Netに渡すことで、 テキストの意味をより正確に画像に反映できます。
プーリング出力の活用
SDXLではさらに、OpenCLIP ViT-bigGのプーリング出力(プロンプト全体の意味を 1つのベクトルに圧縮したもの)をタイムステップ埋め込みに加算しています。 これにより、U-Netは各デノイジングステップで 「プロンプト全体の雰囲気」を把握しながら処理を行えます。
4. マイクロコンディショニング
SDXLにはマイクロコンディショニングという独自の仕組みがあります。 学習時に各画像の以下の情報をモデルに教えます。
| 条件 | 説明 | 効果 |
|---|---|---|
| original_size | 元画像のオリジナルサイズ | アップスケールされた低品質画像を区別 |
| crop_coords | トリミングの座標 | 中央からずれた切り取りを意識 |
| target_size | 目標とする出力サイズ | 様々なアスペクト比に対応 |
この仕組みにより、SDXLは「元が小さい画像を拡大しただけ」のぼやけた画像と 「元から高解像度」のシャープな画像を区別して学習できます。 結果として、生成画像の品質が向上しています。
SD 1.5は512×512に強制リサイズした画像で学習しているため、 元画像の品質情報が失われています。だから「低品質な学習データ」の影響を受けやすいのです。
5. リファイナー(Refiner)
SDXLには2段階生成の仕組みがあります。
【SDXLの2段階生成(オプション)】
ステップ 1〜25: SDXL Base(構図・構造を生成)
↓ 潜在空間をそのまま受け渡し
ステップ 26〜40: SDXL Refiner(ディテール・テクスチャを改善)
Refinerは小さめの専用モデルで、Baseモデルが生成した画像の 細部のクオリティを上げる役割を持ちます。 特に肌のテクスチャ、髪の毛の描写、背景の精密さが向上します。
Refinerの効果は限定的で、多くのユーザーはBaseモデル単体で使用しています。 代わりにHires.Fix(高解像度修正)やADetailer(顔補正)を使う方が一般的です。
6. VAEの違い
潜在空間と画像を相互変換するVAE(変分オートエンコーダー)も改良されています。
| VAE | SD 1.5 | SDXL |
|---|---|---|
| ダウンスケール倍率 | 8倍(512→64) | 8倍(1024→128) |
| 色再現性 | 普通(彩度が落ちることがある) | 改善(fp16で安定) |
| 細部の保持 | 普通 | 向上 |
SD 1.5のデフォルトVAEは彩度が低くなりがちで、 多くのユーザーが外部VAE(kl-f8-anime2など)に差し替えて使っていました。 SDXLのVAEはこの問題が改善されています。
7. LoRAの非互換性の技術的理由
「なぜSD 1.5のLoRAはSDXLで使えないのか」を技術的に説明します。
LoRAはU-NetのAttention層の重み行列に小さな差分(ΔW = A × B)を加算する技術です。
SD 1.5のAttention層のサイズ: 768 × 768, 1280 × 1280 等
SDXLのAttention層のサイズ: 640 × 2048, 1280 × 2048 等
行列のサイズが違うため、物理的に差分を加算できません。 これがLoRAの互換性がない根本的な理由です。
8. トレーニングデータの違い
| 学習データ | SD 1.5 | SDXL |
|---|---|---|
| 主要データセット | LAION-5B (サブセット) | LAION-5B (品質フィルタ済み) |
| 学習画像の品質 | 混在(低品質画像含む) | 高品質のみ厳選 |
| 解像度フィルター | 256×256以上 | 高解像度を優先 |
| 美的品質スコア | フィルタなし | 美的スコアでフィルタ |
SDXLの学習データは品質と美的価値の両面でフィルタリングされており、 これが生成画像の品質向上に大きく貢献しています。
🎯 技術的結論
SDXLが優れている技術的理由のまとめ
1. U-Netのパラメータ数が約4倍 → より複雑な特徴を学習可能
2. デュアルテキストエンコーダー → プロンプトの理解力が向上
3. マイクロコンディショニング → 画質に関する情報を保持
4. 改良されたVAE → 色再現と細部の描写が向上
5. 高品質な学習データ → ベースラインの品質が高い
SD 1.5がまだ現役な技術的理由
1. パラメータ数が少ない → 推論が高速、省メモリ
2. コミュニティの蓄積 → LoRA、拡張機能が豊富
3. ControlNet等のエコシステム → 制御ツールの完成度が高い
4. ファインチューニングが容易 → 8GB VRAMでLoRA学習可能
参考文献
- "High-Resolution Image Synthesis with Latent Diffusion Models" (Rombach et al., 2022) - SD論文
- "SDXL: Improving Latent Diffusion Models for High-Resolution Image Synthesis" (Podell et al., 2023) - SDXL論文
- "Learning Transferable Visual Models From Natural Language Supervision" (Radford et al., 2021) - CLIP論文
- Stability AI 公式ドキュメント
- プロンプトガイド ─ プロンプトの仕組みをさらに深く理解
- おすすめチェックポイント紹介 ─ 厳選モデルの得意・苦手まとめ