こんにちは!悠です!
今回は、WebUIユーザーにおなじみのVAE「vae-ft-mse-840000-ema-pruned」や「kl-f8-anime」をDiffusersで利用する方法に関して紹介していきます。
Diffusersを無料版のGoogle Colaboratoryで使う方法に関しては下記の記事でまとめていますので、まずはこちらをご覧ください。

ダウンロードしたckptファイルをそのままDiffusersで利用することはできませんが、スクリプトを使ってDiffusersの形式に変換することで問題なく使えるようになります。
ckptのVAEをDiffusersの形式に変換する方法
今回もGoogle Colaboratoryを使って変換スクリプトを実行していきます。
ただPython環境を構築している方は、ローカルでも実行できると思います。
新しくVAE変換専用にノートブックを作成しても構いませんし、この記事で紹介している7つ目のセル以降に追記してもOKです。
ただ新しくノートブックを作成する場合は、事前にGoogle Driveをマウントするのを忘れないようにしてください。
なお、下記の記事を参考にさせていただきました。
Google Drive内での事前準備
まずはGoogle Driveに必要なファイルをアップロードしていきます。
下記のURLからVAE変換スクリプト「convert_vae_pt_to_diffusers.py」をダウンロードしてください。
Rawの右側にある下矢印をクリックすると.pyファイルをダウンロードできます。
DLした「convert_vae_pt_to_diffusers.py」をGoogle Drive内の任意のフォルダにアップロードします。
私の場合は、script → convert_vae_for_diffusersというフォルダに格納しました。
次に変換したいVAEをGoogle Drive上の任意のフォルダにアップロードします。下記のようにそのVAE名のフォルダ内に格納するのがおすすめです。
Colabで変換スクリプトの実行
Google Colaboratoryを起動し、セル内に下記のコードを記入します。
#スクリプトを格納するフォルダを作成 !mkdir -p /content/script #Driveから変換スクリプトをコピー !cp /content/drive/MyDrive/StableDiffusion/script/convert_vae_for_diffusers/convert_vae_pt_to_diffusers.py /content/script
!cpの後のパスは自分の環境に合わせて変更してください。
次に下記のコマンドでVAE変換スクリプトを起動します。
!pip install omegaconf %cd /content/script #VAEを変換する !python convert_vae_pt_to_diffusers.py --vae_pt_path /content/drive/MyDrive/StableDiffusion/VAE/vae-ft-mse-840000/vae-ft-mse-840000-ema-pruned.ckpt --dump_path /content/drive/MyDrive/StableDiffusion/VAE/vae-ft-mse-840000
VAE変換コマンドは下記の要領で入力してください。
!python convert_vae_pt_to_diffusers.py --vae_pt_path (変換するVAEファイルのパス) --dump_path (ファイルの出力先)
これで出力先に「config.json」と「diffusion_pytorch_model.bin」が生成されます。
この2つがDiffusersでVAEを使用するために必要なファイルです。
変換したVAEの使い方

上の記事で紹介している4つ目のセルのVAEの欄に、変換したファイルが格納されているフォルダのパスを入力してください。
今回の場合なら「/content/drive/MyDrive/StableDiffusion/VAE/vae-ft-mse-840000」ですね。
これだけで変換したVAEを利用して画像を生成できます。
まとめ
以上が、ckpt形式のVAEをDiffusersで利用する方法の紹介でした。
Civitai等のモデルデータをDiffusersで使える形式に変換するスクリプトに関しては、下の記事で紹介しているのでぜひ参考にしてくださいね!

では、ここまで読んでいただきありがとうございました。
コメント