Stable Diffusion WebUI : HuggingFace モデル / VAE の導入 (ブログ)
作成 : Masashi Okumura (@ClassCat)
作成日時 : 04/07/2023
* サンプルコードの動作確認はしておりますが、必要な場合には適宜、追加改変しています。
* ご自由にリンクを張って頂いてかまいませんが、sales-info@classcat.com までご一報いただけると嬉しいです。
- 人工知能研究開発支援
- 人工知能研修サービス(経営者層向けオンサイト研修)
- テクニカルコンサルティングサービス
- 実証実験(プロトタイプ構築)
- アプリケーションへの実装
- 人工知能研修サービス
- PoC(概念実証)を失敗させないための支援
- お住まいの地域に関係なく Web ブラウザからご参加頂けます。事前登録 が必要ですのでご注意ください。
◆ お問合せ : 本件に関するお問い合わせ先は下記までお願いいたします。
- 株式会社クラスキャット セールス・マーケティング本部 セールス・インフォメーション
- sales-info@classcat.com ; Website: www.classcat.com ; ClassCatJP
Stable Diffusion WebUI : HuggingFace モデル / VAE の導入
Stable Diffusion WebUI を利用する場合、デフォルトのモデルのままでは高品質な画像を生成することは難しいです。そのため、通常は目的や好みに合致した再調整モデルと (利用可能であれば) それに付随する VAE (変分オートエンコーダ) を追加インストールした上で利用します。
この記事では、🤗 モデルハブ の人気モデル Openjourney と Anything をインストールして利用してみます。Anything では付属の VAE が利用可能になっています。
前提条件 : Google Colab 上で Stable Diffusion WebUI の最小構成がインストールされているものと仮定しています。その方法については以下を参照してください :
Openjourney モデルのインストールとテスト
Openjourney は Midjourney 画像上で再調整された Stable Diffusion モデルで、(stabilityai, CompVis, runwayml のオリジナルモデルを別にすれば) 🤗 モデルハブで最も多くダウンロードされている人気モデルです。
Stable Diffusion WebUI への導入は簡単です。モデルページの Files and versions タブからモデル本体 mdjrny-v4.safetensors のダウンロード URL を確認してダウンロードするだけです。注意点は :
- モデル形式は .ckpt と .safetensors があります。.safetensors は安全性を考慮したファイル形式ですので、両方の形式がある場合には .safetensors ファイルを利用しましょう。
- Stable Diffusion WebUI の models/Stable-diffusion ディレクトリに収めます。
!wget https://huggingface.co/prompthero/openjourney/resolve/main/mdjrny-v4.safetensors -O /content/stable-diffusion-webui/models/Stable-diffusion/mdjrny-v4.safetensors
準備ができたら Stable Diffusion WebUI を起動します :
%cd /content/stable-diffusion-webui
!python launch.py --xformers --opt-sdp-attention --opt-sdp-no-mem-attention --share --gradio-debug
◆ 起動後、WebUI の左上のチェックポイントを選択するプルダウンメニューから mdjrny-v4.safetensors を選択するとモデルがロードされます (デフォルトで表示されている場合にはロード済みですのでそのまま利用できます) :
動作確認として、モデルカードに記載されているプロンプト “retro serie of different cars with different colors and shapes, mdjrny-v4 style” を使用して画像を生成してみましょう :
Anything モデルと付属 VAE のインストールとテスト
Anything は Fantasy.ai が提供しているモデルで、やはり 🤗 モデルハブで数多くダウンロードされている人気モデルです。VAE が付属していますので併せて利用します。
モデルファイルと VAE ファイル
モデルファイルの導入は Openjourney と同様です。モデルページの Files and versions タブからモデル本体のダウンロード URL を確認してダウンロードし、models/Stable-diffusion ディレクトリに収めます。
ここでは一番軽い anything-v4.0-pruned-fp16.safetensors を使用します :
!wget https://huggingface.co/andite/anything-v4.0/resolve/main/anything-v4.0-pruned-fp16.safetensors -O /content/stable-diffusion-webui/models/Stable-diffusion/anything-v4.0-pruned-fp16.safetensors
◆ VAE ファイルについても同様なのですが、ファイル名は anything-v4.0.vae.pt で拡張子が異なりますので注意してください :
!wget https://huggingface.co/andite/anything-v4.0/resolve/main/anything-v4.0.vae.pt -O /content/stable-diffusion-webui/models/VAE/anything-v4.0.vae.pt
ここまでの準備ができたら Stable Diffusion WebUI を起動します :
%cd /content/stable-diffusion-webui
!python launch.py --xformers --opt-sdp-attention --opt-sdp-no-mem-attention --share --gradio-debug
WebUI 画面上で設定変更
WebUI 左上のプルダウンメニューで anything-v4.0-pruned-fp16.safetensors を選択すると、モデルがロードされるのは mdjrny-v4.safetensors の場合と同じです :
しかしこのままでは VAE が選択できませんので、VAE が選択できるプルダウンメニューが表示されるように画面設定を変更する必要があります。その具体的な手順は :
- まず “Settings” タブを選んだ上で、左サイドのメニューから “User Interface” メニューを選択します :
- この “User Interface” メニュー・ページの下の方に “Quicksettings list” という項目あり、通常は “sd_model_checkpoint” が設定されています :
sd_model_checkpoint, sd_vae
VAE を選択可能にするためには、このテキスト入力フィールドに sd_vae を追加します。区切りは “,” です :
sd_model_checkpoint, sd_vae
すると以下のようになります :
- 設定変更項目はこれだけですので、上方にある “Apply settings” ボタンをクリックしてこの変更を適用します :
設定変更が完了すると、例えば次のようなメッセージが返ってきます :
6 settings changed: ldsr_steps, ldsr_cached, SWIN_tile, SWIN_tile_overlap, sd_lora, quicksettings.
- 設定変更を画面に反映するためには再起動が必要になります。つまり、起動したセルを停止してから再び以下で起動します :
%cd /content/stable-diffusion-webui !python launch.py --xformers --opt-sdp-attention --opt-sdp-no-mem-attention --share --gradio-debug
動作確認
再起動すると、チェックポイントを選択するプルダウンの隣に、VAE を選択するためのプルダウン・メニューが出現します。デフォルトは “Automatic” になっていますので、導入した “anything-v4.0.vae.pt” を選択しましょう :
これで OK です。動作確認として、モデルカードに記載されているプロンプトで画像を生成してみましょう。
プロンプト : “masterpiece, best quality, 1girl, white hair, medium hair, cat ears, closed eyes, looking at viewer, :3, cute, scarf, jacket, outdoors, streets”
プロンプト : “scenery, village, outdoors, sky, clouds”
以上