MarkdownとBullet Journal

いわゆるプログラマーのつぶやき

StabilityAI公開の新VAE(改良オートエンコーダー)

VAE(改良オートエンコーダー

Stable Diffsion1.5、そのimpainitingVAE版の公開に続いて、StabilityAIからモデルのオートエンコーダ部を置換するVAE(改良オートエンコーダー)が公開された。

huggingface.co

  • 公開されたのはモデルに含まれるオリジナルのkl-f8オートエンコーダから微調整された2つのkl-f8オートエンコーダバージョン。
  • ft-EMAは、元のチェックポイントから再開され、313198ステップのトレーニングを受け、EMAウェイトを使用
  • ft-MSEは、ft-EMAから再開され、EMA重みを使用し、MSE再構築(やや「より滑らかな」出力を生成する)に重点を置いて、再加重損失を使用してさらに280kステップのトレーニングを受けた。
  • 既存のモデルとの互換性を保つために、デコーダ部分のみを微調整しており、チェックポイントは、既存のオートエンコーダのドロップイン置換として使用できる。

VAEの威力

目や指など細部の生成が安定する。

左から ft-EMA 、 ft-MSE 、 original の例(256x256)

オリジナルでは潰れている文字が綺麗になっている
オリジナルは目の焦点が合っていない
オリジナルは看板の末尾の文字などが変

実はVAEの活用はNovelAIDiffusionで行われているもので、NovelAIDiffusionでVAEを使わずに生成すると目や指がおかしくなる(AUTOMATIC1111による実証)。このVAE:改良オートエンコーダーで画質改善するアイディアを考えて実装したNovelAIは凄いし、その威力をStable Diffusion本家も認めて取り入れたものと言えよう。もっとも漏洩が無ければこのアイディアが世の中に出回らなかったと考えると少々複雑だ。(NovelAIはハイパーネットワークという別のアイディアも実装している)

SDのVAEの入手先

とりあえずft-MSEの利用でよいと思う。

ft-EMA

https://huggingface.co/stabilityai/sd-vae-ft-ema-original/resolve/main/vae-ft-ema-560000-ema-pruned.ckpt

ft-MSE

https://huggingface.co/stabilityai/sd-vae-ft-mse-original/resolve/main/vae-ft-mse-840000-ema-pruned.ckpt

VAEの利用方法

VAEの利用手順はNovelAIDiffusionでモデルとVAEを利用する方法と同じ。

  1. VAEをダウンロード(前記のft-MSE、ft-EMAのいずれかを利用)
  2. モデルを保存しているフォルダにVAEを入れる
  3. VAEの名前をモデルの名前に合わせる

例えばStable diffusion1.5の場合はモデル名が「v1-5-pruned.ckpt」なので、VAEの名前を 「v1-5-pruned.vae.pt」に変更する。

※簡単に有意差を試せるcolabもある

Google Colab

多数存在する各モデルとVAEを組み合わせての実証を別途行う予定。

Waifu Diffusion1.4の概要

NovelAIに追いつけ追い越せとばかりに頑張っているWaifu Diffusion。12月に1.4公開予定で以下は概要を記載するサイト。こちらでもVAEに言及している。以下翻訳文。

VAE による微調整で、指、目、髪、唇などのより細かいディテールの生成を支援します。SD 1.4 VAEは実際のデータでトレーニングされ、一般的な画像の優れたベースラインとして機能するため多くの詳細が失われていますが、これはアニメスタイルの画像ではうまく機能しません。

gist.github.com