【Stable Diffusion】ckpt形式のVAEを変換してDiffusersで使えるようにする方法を紹介!

こんにちは!悠です!

 

今回は、WebUIユーザーにおなじみのVAE「vae-ft-mse-840000-ema-pruned」や「kl-f8-anime」をDiffusersで利用する方法に関して紹介していきます。

 

Diffusersを無料版のGoogle Colaboratoryで使う方法に関しては下記の記事でまとめていますので、まずはこちらをご覧ください。

【Stable Diffusion】Diffusersを使ってColab無料枠でAIイラストを生成する方法【2023年】
無料版のGoogle Colaboratoryでも、規約違反することなく「Stable Diffusion」でAIイラストを生成できる「Diffusers」の使い方についてまとめた記事です。

 

ダウンロードしたckptファイルをそのままDiffusersで利用することはできませんが、スクリプトを使ってDiffusersの形式に変換することで問題なく使えるようになります。

 

アイキャッチ画像は「Yuzu」で生成しています!
スポンサーリンク
スポンサーリンク

ckptのVAEをDiffusersの形式に変換する方法

今回もGoogle Colaboratoryを使って変換スクリプトを実行していきます。

ただPython環境を構築している方は、ローカルでも実行できると思います。

 

新しくVAE変換専用にノートブックを作成しても構いませんし、この記事で紹介している7つ目のセル以降に追記してもOKです。

ただ新しくノートブックを作成する場合は、事前にGoogle Driveをマウントするのを忘れないようにしてください。

 

なお、下記の記事を参考にさせていただきました。

 

Google Drive内での事前準備

まずはGoogle Driveに必要なファイルをアップロードしていきます。

 

下記のURLからVAE変換スクリプト「convert_vae_pt_to_diffusers.py」をダウンロードしてください。

https://github.com/huggingface/diffusers/blob/main/scripts/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名のフォルダ内に格納するのがおすすめです。

VAE名のフォルダ内に格納するのは必須ではありませんが、こうすると後々パスを指定するときに楽になります。

 

/content/drive/MyDrive/StableDiffusion/VAE/vae-ft-mse-840000/vae-ft-mse-840000-ema-pruned.ckpt

 



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の使い方

【Stable Diffusion】Diffusersを使ってColab無料枠でAIイラストを生成する方法【2023年】
無料版のGoogle Colaboratoryでも、規約違反することなく「Stable Diffusion」でAIイラストを生成できる「Diffusers」の使い方についてまとめた記事です。

 

上の記事で紹介している4つ目のセルのVAEの欄に、変換したファイルが格納されているフォルダのパスを入力してください。

今回の場合なら「/content/drive/MyDrive/StableDiffusion/VAE/vae-ft-mse-840000」ですね。

 

これだけで変換したVAEを利用して画像を生成できます。



まとめ

以上が、ckpt形式のVAEをDiffusersで利用する方法の紹介でした。

Civitai等のモデルデータをDiffusersで使える形式に変換するスクリプトに関しては、下の記事で紹介しているのでぜひ参考にしてくださいね!

【Stable Diffusion】DiffusersでCivitaiのモデルデータを変換して使う方法を紹介!
「Diffusers」を使って、Google Drive上にアップロードしたCivitaiのモデルデータを利用する方法についてまとめています。

 

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

コメント