はじめに:「なぜか色がくすむ」「顔がぼやける」の犯人はVAEかもしれない
Stable Diffusionを使い始めると、「プロンプトも設定も同じなのに、よそで見る画像より色が地味」「肌や顔のシャープさがなんか足りない」という場面に直面することがあります。
この問題の原因の多くは VAE(Variational Autoencoder) にあります。VAEは地味な存在ですが、最終的な画像の色調・鮮明度・肌の質感に直接影響します。本記事ではVAEの基礎と実践的な選び方を解説します。
VAEとは何か
VAEは「潜在空間と画像空間の変換器」です。
Stable Diffusionは画像を直接生成するのではなく、まず**潜在空間(Latent Space)**と呼ばれる圧縮された数値表現の中でノイズを除去していきます。最終ステップで潜在表現を実際の画像(ピクセル)に変換するのがVAEのデコーダーの役割です。
[テキスト] → UNet(ノイズ除去) → 潜在表現 → VAEデコーダー → [最終画像]
エンコーダーは画像を潜在表現に変換する(img2imgなどで使用)、デコーダーは潜在表現を画像に変換する——この2つで1セットです。
VAEの品質が低いと、潜在表現から画像への変換で色情報が失われたり、ディテールがぼやけたりします。
なぜVAEを別途用意する必要があるのか
多くのCheckpointモデルは、ダウンロードした時点ではVAEが**「baked in(焼き込み済み)」か「デフォルトVAE使用」**のどちらかです。
- Baked in VAE:モデルファイルの中に最適なVAEが含まれている。追加不要
- デフォルトVAE:Stable Diffusionに付属の標準VAEを使用。これが品質問題の原因になることがある
標準VAE(vae-ft-mse-840000より古いもの)は色域が狭く、特に彩度が高い色や肌のトーンが正確に再現されません。これが「くすんで見える」原因です。

n*参考イメージ:VAE切替時の色・質感比較*n
主要VAEの比較
| VAE名 | 特徴 | 推奨用途 |
|---|---|---|
vae-ft-mse-840000-ema-pruned | SD1.5用の標準。安定性高い | SD1.5系全般 |
vae-ft-ema-560000-ema-pruned | MSEより若干シャープ。細部が締まる | SD1.5ポートレート |
kl-f8-anime2 | アニメ系に最適化。鮮やかな発色 | アニメ系モデル |
orangemix.vae | OrganicMix系モデルに付属。アニメ向け | アニメ系ファインチューン |
SDXL内蔵VAE | SDXLモデルに統合済み。別途不要 | SDXL系全般 |
ae.safetensors(FLUX.1用) | FLUX.1に内蔵。別途不要 | FLUX.1 |
基本的な選び方の結論:
- SD1.5系アニメモデル →
kl-f8-anime2またはorangemix.vae - SD1.5系リアル系モデル →
vae-ft-mse-840000-ema-pruned - SDXLモデル → モデル内蔵のVAEを使用(別途不要)
- FLUX.1 → 内蔵のため不要
VAEのダウンロードと配置方法
WebUI(AUTOMATIC1111)の場合
- HuggingFace または Civitai からVAEをダウンロード
- 以下のフォルダに配置:
stable-diffusion-webui/
└── models/
└── VAE/
└── vae-ft-mse-840000-ema-pruned.safetensors
- WebUIを起動(または再起動)
- 設定画面 →
Stable Diffusion→SD VAEでVAEを選択 Apply settingsをクリックして適用
ComfyUIの場合
- VAEファイルを以下に配置:
ComfyUI/
└── models/
└── vae/
└── vae-ft-mse-840000-ema-pruned.safetensors
- ワークフロー内の
Load VAEノードでファイルを選択
VAEを切り替える方法(WebUI)
WebUIでは2種類の方法でVAEを指定できます。
方法1:グローバル設定(全モデル共通)
設定 → Stable Diffusion → SD VAE で選択します。すべてのモデルに適用されます。
方法2:モデルごとの設定
設定 → Stable Diffusion → Override settings per model を有効にすると、モデルごとに異なるVAEを割り当てられます。アニメ系とリアル系を使い分ける場合に便利です。
FLUX.1でのVAEの扱い
FLUX.1 は独自のVAEがモデルに内蔵されています。SD系とは異なるアーキテクチャを採用しており、外部VAEを別途用意する必要はありません。
FLUX.1の場合、ComfyUIのワークフローに VAE Decode ノードが含まれていますが、ここで参照するVAEもFLUX.1専用の ae.safetensors です。SD用VAEを誤って指定しないよう注意してください。
よくある症状と対処法
症状1:画像全体がグレーがかっている
原因: VAEが設定されていない、または古いデフォルトVAEを使用中
対処: vae-ft-mse-840000-ema-pruned を設定する
症状2:色が飽和しすぎて不自然
原因: アニメ用VAEをリアル系モデルに使っている
対処: リアル系には vae-ft-mse-840000-ema-pruned を使う
症状3:顔がわずかにぼやける
原因: VAEデコーダーの精度不足
対処: vae-ft-ema-560000-ema-pruned に変更してみる。または ADetailer で顔を後処理
症状4:VAEを変えても変化がない
原因: モデルにVAEが Baked in(焼き込み済み)になっている可能性 対処: モデルの配布ページでVAEの有無を確認する。Baked inなら外部VAE設定は上書きされない
まとめ:どのVAEを選べばいいか
VAE選びは複雑に見えますが、実際は以下のシンプルなルールで大半のケースに対応できます。
| 使用モデル | 推奨VAE |
|---|---|
| SD1.5系アニメモデル(NoobAI等) | kl-f8-anime2 |
| SD1.5系リアル系 | vae-ft-mse-840000-ema-pruned |
| SDXL系(Illustrious等) | モデル内蔵(設定不要) |
| FLUX.1系 | 内蔵(設定不要) |
迷ったらまず vae-ft-mse-840000-ema-pruned を入れてみてください。SD1.5系ではほとんどのモデルで「入れる前より良くなる」結果が得られます。
LoRAの選び方 と合わせて、モデル・VAE・LoRAの三つを整えると、プロンプト改善と同等かそれ以上の画質向上が見込めます。