はじめに
Stable Diffusionは、テキストや画像から様々な画像を生成することができる技術で、逆算プロセス処理という手法を用いて、入力したテキストや画像を徐々にぼやかしていき、その逆のプロセスで徐々に鮮明にしていくことで、新しい画像を生成します。
AUTOMATIC1111 WebUIは、Stable Diffusionという画像生成AIを使って、Webブラウザ上で簡単に画像を作ることができるアプリケーションで、テキストや画像を入力すると、それに合った画像を出力します。AUTOMATIC1111 WebUIは、Stable Diffusionの機能を豊富に使えるようにしてくれます。
AUTOMATIC1111 WebUIを利用する上でのStable Diffusionの画像生成の多くのパラメータの中からVAEとClip skipという2つの設定項目について解説します。
VAEについて
VAEとは?
VAEとは、変分オートエンコーダという機械学習の技術で、画像やテキストなどのデータを圧縮して復元することができるもので、データの特徴を表す潜在変数という確率分布を学習し、その分布から新しいデータを生成することができます。
VAEは逆算プロセス処理後の画像出力時のデコードに利用され、VAEの違いが画像の出力の違いに影響します。
例えば、同じモデルやプロンプトやシード値でVAEだけを変えて生成した画像を比較すると、色彩や質感、細部などが変わってきます。
Stable Diffusionでよく使われるVAEには、以下のようなものがあります。
- vae-ft-mse-840000-ema-pruned
実写系や描画系の画像に対応できる汎用性の高いVAEです。「Hagging Face」の「sd-vae-ft-mse-original」の「Files and versions」タブから「vae-ft-mse-840000-ema-pruned.safetensors」をダウンロード。 - Clear VAE
イラストや描画系の画像に適したVAEで、Checkpointモデルの推奨VAEとして指定されている場合が多くあります。ClearVAEのページにアクセスし、右のダウンロードボタンをクリックして、「clearvae_v23.safetensors」をダウンロード。 - kl-f8-anime2
イラストや描画系の画像に適したVAEです。pastel-waifu-diffusionと同一ファイルです。モデルの推奨VAEとして指定されているものが数多くあります。「Hagging Face」のWaifu Difussion 1.4のHubのページにアクセスし「Files and versions」タブ⇒「VAE」から「kl-f8-anime2.ckpt」をダウンロード。 - orangemix / Counterfeit-V2.5 / Anything 4.0
これらは同一ファイルです。OrangeMixモデルやAnything 4.0モデルなどと合わせて提供されているVAEです。「Hagging Face」の「xyn-ai/anything-v4.0」の「Files and versions」タブから「anything-v4.0.vae.pt」をダウンロード。 - blessed / blessed-fix / blessed2
これらは鮮やかな彩度の高いカラー、強めのハイライトが出力される傾向があるVAEです。「Hagging Face」の「NoCrypt/blessed_vae」の「Files and versions」タブから「blessed2.vae.pt」をダウンロード。
ダウンロードしたVAEファイルは、AUTOMATIC1111 WebUIをインストールしたVAEディレクトリーに入れてください。私の場合は、「C:\A1111 Web UI Autoinstaller\stable-diffusion-webui\models\VAE」になります。
VAEの設定方法と効果
AUTOMATIC1111 WebUIをインストールした当初は、VAEの設定をWebUIから変更ができません。
そこで、VAEの設定をAUTOMATIC1111 WebUIから簡単に設定できるようにします。
AUTOMATIC1111 WebUIを起動し、AUTOMATIC1111 WebUIを本語化していればメニューの「設定」⇒左メニューの「ユーザーインターフェース」⇒「[info]クイック設定」をクリックして、表示されるものから「sd_vae」をクリックすると、それが「[info]クイック設定」に設定されます。 上までスクロールして戻し、「設定を適用」⇒「UIの再読み込み」と順にクリックします。
すると、「SD VAE」が上部に表示され、右の「▼」をクリックすると、先ほどダウンロードしたVAEを選択することができるようになります。
VAEを指定しない場合やAutomaticを選択した場合は、モデルと同名のVAEを自動で利用します。モデルによってはVAEが内蔵されている場合もあります。
VAEの設定によって画像がどう変わるかを示すために、以下のような実験を行いました。
- モデル:Anything V4.5
- プロンプト:「A girl with black hair and a green dress is standing in front of a graffiti wall」
- negative prompt:なし
- サンプリング方法:DPM++ 2M
- サンプリングステップ数:30
- 顔の修復、タイリング用の画像を生成、高解像度補助:にチェックなし
- 画像のサイズ:512×512、シード値:123456
- バッチ回数:1、バッチサイズ:1
- CFGスケール:7、スクリプト:None
- VAEだけを変えて、それぞれの画像を生成しました。
以下に、生成した画像とVAEの名前を示します。
VAE | 画像 |
None | |
vae-ft-mse-840000-ema-pruned | |
Clear VAE | |
kl-f8-anime2 | |
orangemix / Counterfeit-V2.5 / Anything 4.0 | |
blessed / blessed-fix / blessed2 |
上記の画像から、VAEが「なし」の場合は、画像全体に霞がかかったようになっていますが、いずれのVAEでも設定することにより、画像がすっきりと明確になっていることが分かります。
VAEの違いについては、わずかな違いがみられるようですが、この程度の解像度では明確な違いは出てきていないようで、画像を拡大しないと分からない程度の違いと私には思われます。
Clip skipについて
Clip skipとは?
Clip skipは、Stable Diffusionでプロンプトを画像に反映するために用いられるCLIP(Text Encoder)の最後の層の出力を変更できる設定項目で、Clip skipの値が小さいほどプロンプトどおりのイラストが生成されやすく、値が大きいほどプロンプトを無視したイラストが生成されやすくなります 。
Clip skipの値は、1から12までの整数で指定でき、Clip skipの値が小さいと、プロンプトの内容に忠実なイラストが生成されやすくなります。
Clip skipの値が大きいと、プロンプトの内容を無視したイラストが生成されやすくなります。Clip skipの値を変えて生成したイラストを比較することで、その効果を確認することができます。
Clip skipの通常使われている値は、モデルやプロンプトによって異なりますが、一般的には1か2がおすすめです。
Clip skipが1か2の場合は、プロンプトの効果が最も高く、画像の品質も良く、Clip skipが3以上になると、プロンプトの効果が低下し、画像が不自然になることがあります。
Clip skipの設定方法と効果
Clip skipは、AUTOMATIC1111 WebUIではデフォルトでは表示されません。
しかし、AUTOMATIC1111 WebUIを起動し、AUTOMATIC1111 WebUIを日本語化していればメニューの「設定」⇒左メニューの「ユーザーインターフェース」⇒「[info]クイック設定」をクリックして、表示されるものから「CLIP_stop_at_last_layers」をクリックすると、それが「[info]クイック設定」に設定されます。
上までスクロールして戻し、「設定を適用」⇒「UIの再読み込み」と順にクリックすることにより、画面上部に「Clip skipを設定するスライダー」が表示されます。
- モデル:Anything V4.5
- プロンプト:「A girl with black hair and a green dress is standing in front of a graffiti wall」
- negative prompt:なし
- サンプリング方法:DPM++ 2M
- サンプリングステップ数:30
- 顔の修復、タイリング用の画像を生成、高解像度補助:にチェックなし
- 画像のサイズ:512×512、シード値:123456
- バッチ回数:1、バッチサイズ:1
- CFGスケール:7、スクリプト:None
- Clip skipだけを1,2,5,8,12と変化させて、それぞれの画像を生成しました。
以下に、生成した画像とVAEの名前を示します。
Clip skip | 画像 |
1 | |
2 | |
5 | |
8 | |
10 | |
12 |
上記の画像から、Clip skip1、又は2の場合は、画像がほとんど変化がありませんが、Clip skipが大きくなるほど明らかに「A girl with black hair and a green dress is standing in front of a graffiti wall」のプロンプトから大きく外れて画像が生成されることが分かります。
以上のことから、Clip skipの値は1又は2に設定しておくのが良いことが分かります。
おわにり
この記事では、AUTOMATIC1111 WebUIでの画像生成におけるVAEとClip skipの設定方法とそれらの設定変更が画像生成にどのような影響を及ぼすのかについて詳しく解説しました。
Clip skipはプロンプトの画像への影響度を調整する重要な設定項目で、その値の適切な設定によって目的の画像生成が可能となります。
いくつかの比較例を通じて、Clip skipの値による画像生成の差をご覧いただくことで、ご自身の目的に最も適した設定の選択に役立つことを願っています。
以上です。
コメント