本記事は 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)
Flux dev LOCAL AI SDXL base LOCAL AI
"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)
Flux dev M1 MAX 64GB tee SDXL base M1 MAX tee — robot character
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 Turbo woman Flux dev woman SDXL base woman
描かないことで安定 実写として完璧 指消失 + 追加マグカップ

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)
SD 1.5 robots SDXL base robots
ロボット忘却、子供を描く 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 系の登場まで、ローカルでは「居酒屋」が書けるモデルが無かった。

良かった点

  1. SD 1.5 から明確に進化: 1024 解像度、文字描画も部分的に改善
  2. 派生エコシステム健在: LoRA / ControlNet / Inpaint の情報量が SDXL 中心
  3. CreativeML OpenRAIL-M ライセンス: 商用 OK
  4. 抽象アート系で健闘: AI brain など雰囲気重視のプロンプトは SDXL base でも実用域
  5. 構図破綻が少ない: 多要素プロンプトでも要素配置は破綻しない(数は崩れる)

悪かった点

  1. 「要素を勝手に追加・変更する」癖: 追加マグカップ、減らすロボット、勝手な装飾
  2. 指消失・人物の細部に弱い: 1枚で完璧は難しい、ガチャ前提
  3. 写実プロンプトでもイラスト調に流れる: 01 猫・02 ラーメンが顕著
  4. アジア要素は弱いまま: 漢字は架空字、ラーメンはイラスト調
  5. 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 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)