はじめに
Stable Diffusion WebUI で SDXL を使うときには、 SDXL に合わせて設定を最適化する必要があります。 SDXL で必要な設定と、 ui-config を変更してデフォルト設定を変更する方法をまとめました!わーわー。
WebUI で SDXL が使える!
Stable Diffusion WebUI を使うことで、簡単に SDXL を使うことができます!
詳しくは、以下の記事を参照してみてください!
【PR】
ちなみに、このサーバーは、Innovation Farm 株式会社 さまのサーバーを使わせてもらっています!本来は企業向けにクラウドを提供したり、IoT機器の製造から量産までを一気通貫に行うサービスを提供している会社です!最近では、AIを活用した新規プロダクトの研究開発なども行っているとのこと!今回は特別に、個人でも使用させていただいています!わーわー。
デフォルト設定がめんどくさい!
SDXL になって、従来の設定とは違う部分が多数あります。
毎回それを設定するのは、面倒になってきました・・・。
デフォルト設定を変えるには?
stable-diffusion-webui フォルダにある ui-config.json が設定ファイルになっています。ここを変更することで、デフォルトの値を変更したり、上限を変更したりすることができます。
そもそも SDXL に最適な設定とは?
公式のドキュメントに、 SDXL の注意事項みたいなのが載ってました。
ここを参考にして、大事そうなとこを設定していきます。
dimensions / 幅と高さ
dimensions | |||
---|---|---|---|
1024 x 1024 | 1152 x 896 | 896 x 1152 | 1216 x 832 |
832 x 1216 | 1344 x 768 | 768 x 1344 | 1536 x 640 |
640 x 1536 |
Steps / サンプリングステップ数
Steps | |
---|---|
デフォルト | 30 |
範囲 | 30-50 |
CFG Scale / CFG スケール
CFG Scale | |
---|---|
デフォルト | 7.0 |
範囲 | 4-14 |
Sampler / サンプリング方法
Sampler | |
---|---|
ddim | plms |
k_euler | k_euler_ancestral |
k_heun | k_dpm_2 |
k_dpmpp_2s_ancestral | k_dpmpp_2m |
k_dpmpp_sde |
早速変更しよう!
早速、 ui-config.json を変更していきましょう。上記の値の他、 img2img の Denoising strength を 0.3 にするのと、ついでなので、バッチの最大値を 1000 にしておきます。
以下は変更前と変更後の設定です。本当は各行の前後に他の項目があるけど省略しています。
変更前
"txt2img/Width/value": 512,
"txt2img/Height/value": 512,
"txt2img/Sampling steps/value": 20,
"txt2img/Sampling method/value": "Euler a",
"txt2img/Batch count/maximum": 100,
"img2img/Sampling steps/value": 20,
"img2img/Sampling method/value": "Euler a",
"img2img/Batch count/maximum": 100,
"img2img/Denoising strength/value": 0.75,
変更後
"txt2img/Width/value": 1024,
"txt2img/Height/value": 1024,
"txt2img/Sampling steps/value": 40,
"txt2img/Sampling method/value": "DPM++ SDE Karras",
"txt2img/Batch count/maximum": 1000,
"img2img/Sampling steps/value": 40,
"img2img/Sampling method/value": "DPM++ SDE Karras",
"img2img/Batch count/maximum": 1000,
"img2img/Denoising strength/value": 0.3,
できたー
初期値が設定されて便利!
おまけ
ためしに、 1000 枚画像生成したら、どのくらいの速度か測ってみました。
manga of cat in akihabara
100%|███████████████████████████████████████████| 40/40 [00:17<00:00, 2.28it/s]
100%|███████████████████████████████████████████| 40/40 [00:17<00:00, 2.32it/s]
55%|███████████████████████▋ | 22/40 [00:09<00:07, 2.28it/s]
Total progress: 0%| | 102/40000 [00:44<4:51:58, 2.28it/s]
約 5 時間かかるみたいですねー。1 枚 17 秒かかってる計算!
(サーバーのスペックは、この記事を参照してくださいー)
おまけ 2
ためしに、昔の設定だとどのくらいかかるのか試してみました。モデルは BraV6 です。
100%|███████████████████████████████████████████| 20/20 [00:01<00:00, 11.33it/s]
100%|███████████████████████████████████████████| 20/20 [00:01<00:00, 11.46it/s]
100%|███████████████████████████████████████████| 20/20 [00:01<00:00, 11.45it/s]
10%|████▍ | 2/20 [00:00<00:02, 8.72it/s]
Total progress: 0%| | 63/20000 [00:06<34:23, 9.66it/s]
サンプリングステップ数が小さいのと、解像度が 512x512 なので、 1 枚 1 秒で終わりますね。 1000 枚でも 34 分! うーん。こうしてみると Brav6 なので女の子は可愛いけど、 SDXL に比べると解像度が圧倒的に低いのが気になりますね・・・。
おまけ 3
BraV6 で作った画像を、 refiner で生成してみました! 画像サイズは 1024x1024 に設定してみます。
じゃーん。なんかいい感じに拡大&細部の描写ができた気がします!ただ、顔の印象が変わっちゃってるので、この辺はやっぱりガチャなのかなあ・・・。 SDXL 対応の新しいモデルが発表されるまでは、こういう手法もありかもしれないですね!
まとめ
・Stable Diffusion WebUI の初期設定は、 ui-config.json で変更できる
・SDXL は、従来のモデルとは推奨設定が違う
・デフォルトを変更しておくと便利!
・こないだは manga of にしたら白黒だったのに今日はカラーだな・・・
・わーわー