本記事は Mac でローカル画像生成 10モデル比較したら、最強候補が裏返った のスピンオフ。各モデル単独レビューの v2。
TL;DR
- SDXL base 1.0 は Stability AI が 2023年に公開した SD 1.5 の正統後継、1024px 学習の dense 系
- Mac M1 Max 64GB / Apple MPS で 1枚 約60秒 (30 step / 1024px)
- SD 1.5 から大きく進化したが、「要素を勝手に追加・変更する癖」 が SDXL あるある
- ライセンスは CreativeML OpenRAIL-M、商用 OK
- SDXL Turbo / SD 3.5 / Flux 系の登場で立ち位置は微妙、派生エコシステム(LoRA/ControlNet)が現役なら依然有用
なぜこのモデルを試したか
SD 1.5 の正統後継として、ローカル画像生成の中堅枠。本記事のシリーズで 「中堅安定枠」 がどのモデルになるかを確かめる必要があった。
期待:
- SD 1.5 から 1024px 化 + テキストエンコーダ強化(CLIP-G 追加)でどこまで進化したか
- 「指消失問題」「文字描画」「複雑構図」が SD 1.5 比でどう改善したか
- SDXL 系のエコシステム(LoRA、ControlNet、Inpaint)の中心モデルとしての健在度
期待外れだった点:
- 要素を勝手に追加・変更する癖(「SDXL あるある」と呼ばれる)
- アジア要素は依然として弱い
結果: 「動くが、現代では中位」。Flux dev / Qwen Lightning が登場した今、SDXL base 単体の出番は派生エコシステム経由が中心。
環境セットアップ
pip install diffusers==0.37.1 torch==2.11.0 transformers
ロードコード:
from diffusers import StableDiffusionXLPipeline
import torch
pipe = StableDiffusionXLPipeline.from_pretrained(
"stabilityai/stable-diffusion-xl-base-1.0",
torch_dtype=torch.float16,
).to("mps")
image = pipe(
prompt="...",
num_inference_steps=30,
guidance_scale=7.0,
height=1024,
width=1024,
).images[0]
ハード要件:
| 項目 | 値 |
|---|---|
| Mac | M1 Max / 64GB(実質 24GB ほどあれば動く) |
| モデル | 7GB (fp16) |
| 解像度 | 1024x1024(学習解像度、512 にすると逆に崩れる) |
| 1枚あたり | 約60秒 (30 step / 1024px / MPS) |
iogpu.wired_limit_mb の上限引き上げは不要。SD 1.5 より重いが、Flux 系の 23GB と比べれば軽量。
8プロンプト全結果
| # | プロンプト | 画像 |
|---|---|---|
| 01 | a cute cat sitting on a wooden bench in a sunny park | ![]() |
| 02 | a bowl of ramen with chashu and soft-boiled egg | ![]() |
| 03 | a wooden sign with "LOCAL AI" | ![]() |
| 04 | a developer's t-shirt with "M1 MAX 64GB" retro 80s style | ![]() |
| 05 | a woman developer working at a laptop | ![]() |
| 06 | a glowing AI brain made of circuits and neon | ![]() |
| 07 | three robots playing chess in a sunlit library | ![]() |
| 08 | a wooden izakaya sign with the kanji "居酒屋" | ![]() |
8枚合計 約 8分。Qwen Full の 12時間と比べて 90倍速、Flux dev の 12分/枚 と比べて 12倍速。
個別プロンプト評価
01 猫 — 絵本イラスト寄り
ベンチに座る縞猫、暖色光、緑の背景。SD 1.5 より明らかに進化しているが、プロンプト指定の photorealistic を完全無視してアイソメ・絵本調になる。SDXL の base ではアニメ調・イラスト調に流れる癖が残っている。
02 ラーメン — フラットイラスト調
写実プロンプト指定なのにアイソメ・フラットイラスト調。「やる気のないストックイラスト」感。卵3個、チャーシュー、緑要素、構図は破綻していない。
03 LOCAL AI — "LOCAL LL" のように崩れる
期待の "LOCAL AI" は出ず、"LOCAL LL" or "LOCAII" のように "AI" の "I" が "L" と混じって判読困難。SD 1.5 の OOLDD AIXNIA よりはマシだが、SDXL は「文字を綴ろうとして失敗する」段階。CLIP-G text encoder 追加で形にはなったが、意味のある綴りには到達できていない。
| Flux dev (2024) | SDXL base (2023) |
|---|---|
![]() |
![]() |
| "LOCAL AI" 完璧、夕陽のレンズフレアまで | "LOCAL LL" に崩れる |
→ text encoder のキャパシティの壁。SDXL の CLIP 系 (77 トークン制限) では英文字の綴りすら不安定で、Flux 系の T5-XXL(数千トークン対応)になって初めて文字描画が安定する。ここが SDXL → Flux 世代交代の決定打。
04 M1 MAX 64GB Tシャツ — Tシャツが消えてロボットキャラに
プロンプトは "a developer's t-shirt with the text 'M1 MAX 64GB' printed in retro 80s style" なのに、出てきたのは Tシャツが消えてロボット風キャラのイラスト。シンセウェーブカラーは反映されているが、肝心のTシャツ概念が消失している。
文字描画も:
- "M1" → "M5" に(数字が変わる)
- "MAX" → 消失
- "64GB" → "64" に(GB 消失)
| Flux dev (2024) | SDXL base (2023) |
|---|---|
![]() |
![]() |
| Tシャツに "M1 MAX 64GB" 完璧、80s シンセウェーブ調も再現 | Tシャツ消失、ロボットキャラ化、"M5 64" |
→ 「Tシャツに何かをプリント」というプロンプト構造が、SDXL では「ロゴデザインを描く」と解釈される典型例。プロンプトの目的語(Tシャツ)と修飾子(プリント文字)の関係を text encoder が捉えきれていない。Flux dev (T5-XXL) では「Tシャツに正確な文字 + 80s スタイル指定」までちゃんと反映する(Gemini に至っては Tシャツを着た開発者本人まで描く)のと対照的。
05 女性開発者 — 「SDXL あるある」の典型
一見まとも、でも詳細を見ると:
- 左手の指が消失 or 不自然
- プロンプトに無い 2杯目のマグカップが背景にも追加される
- ラップトップ画面にプロンプト指定外のグラフィックが表示
| SDXL Turbo (2023) | Flux dev (2024) | SDXL base (2023) |
|---|---|---|
![]() |
![]() |
![]() |
| 描かないことで安定 | 実写として完璧 | 指消失 + 追加マグカップ |
→ SDXL base の最大の癖: プロンプトに無い要素を勝手に追加・変更する。コーヒーシーンと聞いたら追加マグカップ、開発者と聞いたら追加デバイス、を「飾る」癖がある。
06 AI brain — 横顔シルエット + ネオン回路、Flux dev に近い
人の横顔シルエットの中にネオン回路の脳。抽象アート系では SDXL base は意外と健闘。Flux dev の解像度感には及ばないが、雰囲気は出ている。
07 ロボとチェス — 3体ちゃんと描ける、SD 1.5 から進化
プロンプトは "three robots" 通り、3体のロボットが描けてる。SD 1.5 がロボットを完全に忘れて子供を描いた領域から、SDXL base は 数の指定を反映できる 段階に進化。
| SD 1.5 (2022) | SDXL base (2023) |
|---|---|
![]() |
![]() |
| ロボット忘却、子供を描く | 3体ちゃんと描ける |
→ 数の指定 が SDXL base 段階で通るようになる。SD 1.5 → SDXL の text encoder 強化(CLIP-G 追加)の効果。意外なことに、後継の SD 3.5 Medium では逆に「2体に減らす」症状が出る (v4 参照)。これは text encoder ではなく DiT 側のキャパシティ問題と推測。
08 居酒屋 — 架空字「兄ノ廊」「日方廴」
雰囲気のある木造の建物、提灯、夜の路地。SD 1.5 のお経・巻物よりは「居酒屋らしい何か」になっている。看板の漢字は 「兄ノ廊」「日方廴」のような架空字。
→ アジア要素は SD 1.5 比で「形にはなった」が、漢字としては成立せず。Qwen 系の登場まで、ローカルでは「居酒屋」が書けるモデルが無かった。
良かった点
- SD 1.5 から明確に進化: 1024 解像度、文字描画も部分的に改善
- 派生エコシステム健在: LoRA / ControlNet / Inpaint の情報量が SDXL 中心
- CreativeML OpenRAIL-M ライセンス: 商用 OK
- 抽象アート系で健闘: AI brain など雰囲気重視のプロンプトは SDXL base でも実用域
- 構図破綻が少ない: 多要素プロンプトでも要素配置は破綻しない(数は崩れる)
悪かった点
- 「要素を勝手に追加・変更する」癖: 追加マグカップ、減らすロボット、勝手な装飾
- 指消失・人物の細部に弱い: 1枚で完璧は難しい、ガチャ前提
- 写実プロンプトでもイラスト調に流れる: 01 猫・02 ラーメンが顕著
- アジア要素は弱いまま: 漢字は架空字、ラーメンはイラスト調
- Flux dev / Qwen Lightning の登場で立ち位置が微妙: base 単体の出番は減少
このモデルが活きるユースケース
正直に書く:SDXL base 単体のクオリティは、2026年の基準で実用域じゃない。
- 03 で "LOCAL AI" が "LOCAL LL" に崩れる
- 04 で Tシャツが消えてロボットキャラになる
- 05 で指消失と勝手な追加マグカップが出る
- 07 で「3体」を勝手に「2体」に減らす
これらは Flux schnell / Qwen Lightning では発生しない。SDXL base を「現代の挿絵候補」として使う場面は無い、というのが本記事の結論。
それでも使う理由を挙げるなら:
- ✅ 少ないリソースでどうしても動かしたい: 7GB は Flux dev (23GB) / Qwen Full + Lightning (40GB) と比べて圧倒的に軽い。VRAM 8GB の GPU でも動く
- ✅ LoRA / ControlNet エコシステムが必須なとき: 派生ツール・LoRA モデルの情報量・選択肢は SDXL が最大
- ✅ Inpaint / Outpaint の既存ワークフロー: 部分編集系の既存パイプラインを壊したくない場合
- ❌ 記事の挿絵として直接使う: 現代基準で見るに耐えない、Flux schnell (商用 OK) / Qwen Lightning (アジア要素 OK) へ
- ❌ 本記事の採用方針に入る: 用途別 2モデル併用(英語圏 = Flux dev / アジア圏 = Qwen Lightning)に SDXL base が入るシーンは無い
ハマりポイント / Tips
1. base + refiner の存在を理解
公式には SDXL は base + refiner の2段構成。本記事では base のみを使ったが、refiner を通すと細部が改善する。ただし2段構成は 生成時間が倍になり、Mac の MPS では遅さが目立つ。
# refiner 段(細部を磨く)
from diffusers import StableDiffusionXLImg2ImgPipeline
refiner = StableDiffusionXLImg2ImgPipeline.from_pretrained(
"stabilityai/stable-diffusion-xl-refiner-1.0", ...
)
final = refiner(image=base_image, ...).images[0]
実用上は base 単体で十分だが、原寸利用時は refiner を試す価値あり。
2. 1024 学習なので 512 は逆効果
# ❌ SD 1.5 の感覚で 512 を指定
image = pipe(prompt=p, height=512, width=512, ...)
SDXL base は 1024 学習。512 にすると構図が崩れる。SD 1.5 とは逆の落とし穴。
3. ネガティブプロンプトはまだ有効
SD 1.5 と同様、SDXL でもネガティブプロンプトは有効。Flux 系では不要になったが、SDXL では:
neg = "low quality, blurry, distorted, extra fingers, bad anatomy, watermark"
を入れると指消失や追加要素が緩和する。
4. seed ガチャは依然必要
「SDXL あるある」を回避するには seed ガチャ。同じプロンプトで seed を 5-10 振って、要素追加が控えめな1枚を選ぶ。Flux dev / Qwen Lightning は 1発で安定するが、SDXL は数撃ち前提。
5. SDXL Turbo / Lightning との関係を整理
| モデル | Step | 速度 | 品質劣化 | 用途 |
|---|---|---|---|---|
| SDXL base | 30 | 60秒 | — (本家) | 中量級、エコシステム中心 |
| SDXL Turbo (2023) | 1 | 1秒 | 大 (細部崩壊) | サムネ、プロト |
| SDXL Lightning | 4-8 | 7-15秒 | 中 | base と Turbo の中間 (本記事範囲外) |
→ SDXL を蒸留する系統は3つあり、目的に応じて選ぶ。本記事では base / Turbo を扱った。
比較記事と次のモデルへ
- まとめ記事: Mac でローカル画像生成 10モデル比較したら、最強候補が裏返った
- 前作 (LLM 6モデル比較): ローカルLLMで読める記事は書けるのか
シリーズ内の関連記事:
- v1 SD 1.5 — 2022年生まれの古典(直系の前身)
- v3 SDXL Turbo — Adversarial Diffusion Distillation の代償(同サイズで蒸留した派生)
- v4 SD 3.5 Medium — サムネ OK、ズームすると変(次世代の SD)
検証環境: Mac M1 Max 64GB / macOS 25.4 / Python 3.14 / Diffusers 0.37.1 / PyTorch 2.11 (MPS) 作業ログ: 2026-04-29、SDXL base 1.0 (stabilityai/stable-diffusion-xl-base-1.0, 30-step / guidance 7.0 / 1024px)












