Stable Diffusionは、プロンプトと言われる単語を入力し、綺麗な絵を生成するAIを生成します。
幾つか重要な要素がありますが、その中でも仕上げに影響するのが「VAE」となります。

彩度やシャープさに影響する事が多いです
使用するモデルにも、VAEの指定があったりしますがモデルとの相性も大きいです。
VAEを適用する必要がないモデル(モデルに組み込まれている)ものまであります。
この記事では、下記の内容について詳しく触れています。
- VAEのインストール方法
- 主要なVAEの種類
- 適用イメージの具体例
- VAEの簡単な仕組み
インストール方法
後ほどのVAEの種類で配布URLを確認しますが、まずはVAEをダウンロードします。
(インストールフォルダ)/stable-diffusion-webui/models/VAE


配置が終われば、Web UI の設定(setting)画面にいきます。
※リスト内になければ、右のリフレッシュボタンを押してください。
選択が完了すれば、画面上部の「Apply settings」を押します。





さらに毎回切り替えが面倒であれば、メイン画面の上部に表示できます。
設定画面のメニュー一番下の全ての設定を表示(show all pages)を押してください。


画面から「Quicksettings list」という項目を探してください。


そこに「sd_vae」を追記し、「Apply settings」と「UI Reload」を押します。


すると、画面が再描画され下記のようにメイン画面に選択肢が移ります





先程のようにメニューに出したい項目の名称はどこで選択すればいいのか?
"sd_checkpoint_cache": 0,
"sd_vae_checkpoint_cache": 0,
"sd_vae": "None",
"sd_vae_as_default": true,
"inpainting_mask_weight": 1.0,
"initial_noise_multiplier": 1.0,
こちらに項目名が記載されています。
Automatic という選択肢は何をするのか?
モデルのファイル名(拡張子除く)と一致するVAEを自動的に選択する様子です。
def find_vae_near_checkpoint(checkpoint_file):
checkpoint_path = os.path.splitext(checkpoint_file)[0]
for vae_location in [checkpoint_path + ".vae.pt", checkpoint_path + ".vae.ckpt", checkpoint_path + ".vae.safetensors"]:
if os.path.isfile(vae_location):
return vae_location
return None
※VAE名には「vae.pt」や「vae.chpt」などvaeという文字が必要です。
主要なVAEの種類
モデルに添付されているものや、有名所を集めました。
それほど種類はありません。それは、モデルに添付されているVAEをバイナリ比較するとどれかに一致することが多かった為です。
ファイル名 | URL |
---|---|
autoencoder_fix_kl-f8-trinart_characters.ckpt | https://huggingface.co/naclbit/trinart_characters_19.2m_stable_diffusion_v1/tree/main |
Counterfeit-V2.5.vae.pt | https://huggingface.co/gsdf/Counterfeit-V2.5/tree/main |
kl-f8-anime.ckpt | https://huggingface.co/hakurei/waifu-diffusion-v1-4/tree/main/vae |
kl-f8-anime2.ckpt | https://huggingface.co/hakurei/waifu-diffusion-v1-4/tree/main/vae |
pastel-waifu-diffusion.vae.pt | https://huggingface.co/andite/pastel-mix/tree/main |
vae-ft-ema-560000-ema-pruned.safetensors | https://huggingface.co/stabilityai/sd-vae-ft-ema-original/tree/main |
vae-ft-mse-840000-ema-pruned.safetensors | https://huggingface.co/stabilityai/sd-vae-ft-mse-original/tree/main |
適用イメージのサンプル



先ずは適用しない場合のイメージがこちらです
実写風とアニメ風の二種類をピックアップします。







上記のVAEを適用したイメージがこちらです





Counterfeit-V2.5の発色が特徴ありますね。





vae-ft-mse-840000-ema-prunedは実写風によく選ばれます
お好みのVAEはありましたでしょうか?
私は実写は「vae-ft-mse-840000-ema-pruned」でそれ以外は、「kl-f8-anime2」か「vae-ft-ema-560000-ema-pruned」を使う事が多いです。
VAEのざっくり役割
多少小難しい話になるかもしれません。(私もソースを見てもあまり理解出来ませんでした(^_^;))
Stable Diffusionの実態である潜在拡散モデルは、潜在空間で使用される潜在変数にて行われています。
難しそうに聞こえますが、要は画像を直接扱わず、何らかで変換した数値で計算しているといった意味合いです。
画像を直接扱わないのは、計算量が膨大になることが原因です。
この、変換した数値を求めるのがVAEの役割になります。
また、計算した結果を画像に戻すのもVAEの役割になります。



話を聞くと仕上がり以外も変わりそうですが、そんな役割みたいです
まとめ
VAEが適用されていない(組み込まれていない)モデルを使用する場合は、VAEは必須になるでしょう。
また、頻繁にモデルを変更する場合は、VAEはautoで選択するのが良いと思います。
モデル毎にVAEをコピーすることになるので、多少容量は必要ですがモデルとくらべると小さいファイルです。



最後までご覧いただき、ありがとうございました!
コメント