Stable Diffusion XL(SDXL)が登場した当初は対応していなかった、便利な定番拡張機能の ControlNet ですが、今回、AUTOMATIC 版 WebUI v1.6.0 以降と ControlNet v1.1.400 以降において SDXL に部分的に対応したとのことですので、ご紹介したいと思います。
ControlNetとは
ControlNetは、基礎となる画像から特定の形状属性(ポーズ、輪郭、奥行きなど)を捉え、これを新しく作成する画像に適応させる手法です。この形状データのどの部分を取り出すかは、プリプロセッサの選択リストとモデルの選択で行い、その結果、新しく生成される画像にも元画像の形状属性が反映されます。
SDXL版ControlNetのモデルについて
SDXL 1.0 版の ControlNet は、以下のページでアナウンスされています。
ここには、以下のような非常に多くのモデルがリストアップされています。
diffusers_xl_canny_full.safetensors
diffusers_xl_canny_mid.safetensors
diffusers_xl_canny_small.safetensors
diffusers_xl_depth_full.safetensors
diffusers_xl_depth_mid.safetensors
diffusers_xl_depth_small.safetensors
ioclab_sd15_recolor.safetensors
ip-adapter_sd15.pth
ip-adapter_sd15_plus.pth
ip-adapter_xl.pth
kohya_controllllite_xl_depth_anime.safetensors
kohya_controllllite_xl_canny_anime.safetensors
kohya_controllllite_xl_scribble_anime.safetensors
kohya_controllllite_xl_openpose_anime.safetensors
kohya_controllllite_xl_openpose_anime_v2.safetensors
sai_xl_canny_128lora.safetensors
sai_xl_canny_256lora.safetensors
sai_xl_depth_128lora.safetensors
sai_xl_depth_256lora.safetensors
sai_xl_recolor_128lora.safetensors
sai_xl_recolor_256lora.safetensors
sai_xl_sketch_128lora.safetensors
sai_xl_sketch_256lora.safetensors
sargezt_xl_depth.safetensors
sargezt_xl_depth_faid_vidit.safetensors
sargezt_xl_depth_zeed.safetensors
sargezt_xl_softedge.safetensors
t2i-adapter_xl_canny.safetensors
t2i-adapter_xl_openpose.safetensors
t2i-adapter_xl_sketch.safetensors
thibaud_xl_openpose.safetensors
thibaud_xl_openpose_256lora.safetensors
モデルの制作者が複数いて、サイズによっても分かれていることから、このように数が増えたようです。違いは詳細が無いので分かりません。
SDXL版ControlNetのインストール
-
- ソフトウェアのアップデート
最新の AUTOMATIC1111 版 WebUI にアップデートします。
v1.6.0 以降なら対応しています。
インストールや、アップデートに関しては以下の記事をご覧ください。
- ソフトウェアのアップデート
-
- ControlNetのインストール
以下の記事を参考に ControlNet をインストールしてください。 v1.1.400 以降なら対応しています。
- ControlNetのインストール
-
- モデルのダウンロード
以下の Hugging Face のページからモデルをダウンロードします。
数が多いので注意してください。
- モデルのダウンロード
- モデルの移動
ダウンロードしたモデルを「/stable-diffusion-webui/models/ControlNet」のフォルダに移動します。
これで使用する準備が整いました。
使い方
使用方法は、基本的に今までの SD1.5 版 ControlNet と同じです。
今回は、一般的な Canny を使用して説明します。
以下のように設定します。
- ControlNet セクションを開きます。
- Enable にチェックを入れます。
- Preprocessor で canny を選択します。
- Model でダウンロードしたモデルの中から「canny」が付いているモデルを選択します。
この場合「sai_xl_canny_256lora.safetensors」
- Image にポーズのモデルとなる入力画像をドラッグ&ドロップで指定
- VRAM が少ない場合は Low VRAM にチェックを入れる
- 通常通り、プロンプト島を設定します。
- Generate で生成を始めます。
検証
以下は Canny を使って生成した画像です。
モデルは BreakDomainXL 、ControlNet のプリプロセッサは Canny 、ControlNet のモデルは sai_xl_canny_256lora.safetensors で生成しています。
元の画像
生成された画像
元の画像
生成された画像
まとめ
SDXL に対応した ControlNet は過渡期にある SDXL について追い風になると思います。
まだ、SDXL を試したことのない方も、これを機に試してみられるのはいかがでしょうか。