Stable Diffusion VAEの比較と使い方まとめ

Stable Diffusionは、プロンプトと言われる単語を入力し、綺麗な絵を生成するAIを生成します。

幾つか重要な要素がありますが、その中でも仕上げに影響するのが「VAE」となります。

彩度やシャープさに影響する事が多いです

使用するモデルにも、VAEの指定があったりしますがモデルとの相性も大きいです。

VAEを適用する必要がないモデル(モデルに組み込まれている)ものまであります。

この記事では、下記の内容について詳しく触れています。

  • VAEのインストール方法
  • 主要なVAEの種類
  • 適用イメージの具体例
  • VAEの簡単な仕組み
目次

インストール方法

後ほどのVAEの種類で配布URLを確認しますが、まずはVAEをダウンロードします。

配置場所
(インストールフォルダ)/stable-diffusion-webui/models/VAE

配置が終われば、Web UI の設定(setting)画面にいきます。

Stable Diffusionメニューを選択すると「SD VAE」というリストが選択できます。

※リスト内になければ、右のリフレッシュボタンを押してください。

選択が完了すれば、画面上部の「Apply settings」を押します。

さらに毎回切り替えが面倒であれば、メイン画面の上部に表示できます。

設定画面のメニュー一番下の全ての設定を表示(show all pages)を押してください。

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

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

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

先程のようにメニューに出したい項目の名称はどこで選択すればいいのか?

インストールフォルダ直下の「ui-config.json」を開いてください。

    "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をバイナリ比較するとどれかに一致することが多かった為です。

VAEの一覧
ファイル名URL
autoencoder_fix_kl-f8-trinart_characters.ckpthttps://huggingface.co/naclbit/trinart_characters_19.2m_stable_diffusion_v1/tree/main
Counterfeit-V2.5.vae.pthttps://huggingface.co/gsdf/Counterfeit-V2.5/tree/main
kl-f8-anime.ckpthttps://huggingface.co/hakurei/waifu-diffusion-v1-4/tree/main/vae
kl-f8-anime2.ckpthttps://huggingface.co/hakurei/waifu-diffusion-v1-4/tree/main/vae
pastel-waifu-diffusion.vae.pthttps://huggingface.co/andite/pastel-mix/tree/main
vae-ft-ema-560000-ema-pruned.safetensorshttps://huggingface.co/stabilityai/sd-vae-ft-ema-original/tree/main
vae-ft-mse-840000-ema-pruned.safetensorshttps://huggingface.co/stabilityai/sd-vae-ft-mse-original/tree/main

適用イメージのサンプル

先ずは適用しない場合のイメージがこちらです

実写風とアニメ風の二種類をピックアップします。

Cinnamon_mix_fixed
basil mix

上記の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をコピーすることになるので、多少容量は必要ですがモデルとくらべると小さいファイルです。

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

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

コメント

コメントする

目次