ControlNet for Stable Diffusion WebUIのインストールと機能一覧

ControlNet for Stable Diffusion WebUI AIツール

Stable Diffusion WebUIにControlNetをインストールする方法とControlNetの機能を紹介します。

ControlNetとは

ControlNetを使用すると呪文だけでの誘導が難しかった構図をうまくコントロールすることができるようになります。そのほかにも面白い機能がいくつもあります。

ControlNetインストール方法

ControlNet for Stable Diffusion WebUI インストール1
  1. Extensionsタブを開く
  2. Install from URLタブを開く
  3. URL for extension’s git repositoryにhttps://github.com/Mikubill/sd-webui-controlnet.gitと入力してInstall
ControlNet for Stable Diffusion WebUI インストール2
  1. Installedタブを開きます。拡張機能の一覧が表示され、先ほどインストールしたcontrolnetも確認できます。
  2. Check for updatesをクリック(アップデートを確認します)
  3. Apply and restart UIをクリック(適用と再起動をおこないます)
  4. ターミナルも再起動すると確実

今後、この手順で拡張機能のアップデートができます。

モデルのダウンロード

ControlNetには、複数の機能があります。利用するにはそれぞれのモデルをダウンロードする必要があります。以下のリンクからpth, safetensorsという拡張子のファイルをダウンロードしてください。また、SDXLベースのチェックポイントは、SDXL用のControlNetモデルが必要であり今はまだ数も多くありません。

これらすべてのモデルをダウンロードするとすごい容量になります。ストレージの空きに余裕がない場合は、これから紹介する機能一覧で使用したいモデルのみで大丈夫です。SDXLのControlnetモデルは、機能的には同じだが別々の方が開発したモデルが複数あります。

ダウンロードしたモデルはこちらの階層に保存してください。

📁webui\extensions\sd-webui-controlnet\models

ControlNet設定

基本的な使い方は、画像のアップロードと使用したい機能のPreprocessorとModelを選択するのみ(先にControl Typeから選択すると楽)

入力画像をPreprocessorで処理して出来たマップデータを元に画像を生成します。作成しておいたマップデータを入力する場合はPreprocessorをnoneにしてください。

ControlNet 設定
  • Enable(有効化)
  • Low VRAM(8GB以下のグラフィックボードはチェック推奨)
  • Pixel Perfect(Preprocessor Resolutionを自動で設定する。これは入力画像と出力画像の解像度が違う場合にPreprocessor前に解像度を合わせてくれます。マップデータを引き延ばさなくていいため細部の詳細が失われることを防ぎます。わからないときはチェックを入れておき生成に問題が起きた場合に確認してください。)
  • Allow Preview(Preprocessor Previewを許可する。💥衝突のアイコンをクリックすればマップデータを確認できる)
  • Control Weight(ControlNetの影響を調整する)
  • Control Mode(プロンプトとControlNetのどちらが重要であるかを制御する)
ControlNet Settings

ControlNet Settingsの項目

  • Multi ControlNet(同時に複数の機能を使いたい場合のユニット数)
  • Allow detectmap auto saving(マップデータを自動保存する)

Canny

画像から輪郭を抽出します。

Canny1
入力画像
Canny2
Preprocessor処理後
Canny3
生成画像
Preprocessor
  • canny
  • invert (from white bg & black line)
Model
  • control_v11p_sd15_canny
  • diffusers_xl_canny_full
  • diffusers_xl_canny_mid
  • diffusers_xl_canny_small
  • kohya_controllllite_xl_canny
  • kohya_controllllite_xl_canny_anime
  • sai_xl_canny_128lora
  • sai_xl_canny_256lora
  • t2i-adapter_diffusers_xl_canny
  • t2i-adapter_xl_canny

Depth

深度マップを使用して体の重なりや奥行きなどをうまく再現できます。

depth_hand_refinerは手を修正できます。Inpaintで使用してください。

Depth1
入力画像
Depth2
Preprocessor処理後
Depth3
生成画像
Preprocessor
  • depth_anything
  • depth_hand_refiner
  • depth_leres
  • depth_leres++
  • depth_midas
  • depth_zoe
Model
  • control_v11f1p_sd15_depth
  • diffusers_xl_depth_full
  • diffusers_xl_depth_mid
  • diffusers_xl_depth_small
  • kohya_controllllite_xl_depth
  • kohya_controllllite_xl_depth_anime
  • sai_xl_depth_128lora
  • sai_xl_depth_256lora
  • sargezt_xl_depth
  • sargezt_xl_depth_faid_vidit
  • sargezt_xl_depth_zeed
  • t2i-adapter_diffusers_xl_depth_midas
  • t2i-adapter_diffusers_xl_depth_zoe

Normal

法線マップを使用して凹凸もしっかり検出することができます。法線マップは深度マップより細かいディテールが顕著です。

Normal1
入力画像
Normal2
Preprocessor処理後
Normal3
生成画像
Preprocessor
  • normal_bae
  • normal_midas
Model
  • control_v11p_sd15_normalbae

Openpose

被写体の姿勢(体・顔・手)を認識して似たようなポーズをとらせることができます。

OpenPose1
入力画像
OpenPose2
Preprocessor処理後
OpenPose3
生成画像
Preprocessor
  • animal_openpose
  • densepose (pruple bg & purple torso)
  • densepose_parula (black bg & blue torso)
  • dw_openpose_full
  • openpose
  • openpose_face
  • openpose_faceonly
  • openpose_full
  • openpose_hand
Model
  • control_v11p_sd15_openpose
  • kohya_controllllite_xl_openpose_anime
  • kohya_controllllite_xl_openpose_anime_v2
  • t2i-adapter_diffusers_xl_openpose
  • t2i-adapter_xl_openpose
  • thibaud_xl_openpose
  • thibaud_xl_openpose_256lora

MLSD

画像から直線部分(線分)を抽出します。

MLSD1
入力画像
MLSD2
Preprocessor処理後
MLSD3
生成画像
Preprocessor
  • mlsd
  • invert (from white bg & black line)
Model
  • control_v11p_sd15_mlsd

Lineart

画像から線画を抽出します。加筆や修正などをしたい方にも便利です。

Canny1
入力画像
Lineart2
Preprocessor処理後
Lineart3
生成画像
Preprocessor
  • lineart_anime
  • lineart_anime_denoise
  • lineart_coarse
  • lineart_realistic
  • lineart_standard (from white bg & black line)
  • invert (from white bg & black line)
Model
  • control_v11p_sd15_lineart
  • control_v11p_sd15s2_lineart_anime
  • t2i-adapter_diffusers_xl_lineart

Soft Edge

エッジとオブジェクトのあいまいな境界も抽出できます。リペイントなどにも向いてます。

Canny1
入力画像
Soft Edge2
Preprocessor処理後
Soft Edge3
生成画像
Preprocessor
  • softedge_hed
  • softedge_hedsafe
  • softedge_pidinet
  • softedge_pidisafe
  • softedge_teed
Model
  • control_v11p_sd15_softedge
  • sargezt_xl_softedge

Scribble/Sketch

入力画像から落書き風に変換します。また、落書きを元に画像生成します。

下はinvertの使用例です。入力画像を白黒反転させてAIの認識違いが起きないようにします。

Scribble4
入力画像
Scribble5
Preprocessor処理後
Scribble6
生成画像
Scribble1
入力画像
Scribble2
Preprocessor (invert) 処理後
Scribble3
生成画像
Preprocessor
  • scribble_hed
  • scribble_pidinet
  • scribble_xdog
  • t2ia_sketch_pidi
  • invert (from white bg & black line)
Model
  • control_v11p_sd15_scribble
  • kohya_controllllite_xl_scribble_anime
  • sai_xl_sketch_128lora
  • sai_xl_sketch_256lora
  • t2i-adapter_diffusers_xl_sketch
  • t2i-adapter_xl_sketch

Segmentation

画像内の異なる領域やオブジェクトが個別に識別され、それぞれが異なるセグメントとして分類されます。

Segmentation1
入力画像
Segmentation2
Preprocessor処理後
Segmentation3
生成画像
Preprocessor
  • seg_ofade20k
  • seg_ofcoco
  • seg_ufade20k
Model
  • control_v11p_sd15_seg

Shuffle

入力画像の要素を混ぜて再構成します。

Shuffle 1
入力画像
Shuffle 2
Preprocessor処理後
Shuffle 3
生成画像(プロンプト: cat)
Preprocessor
  • shuffle
Model
  • control_v11e_sd15_shuffle

Tile/Blur

Tile

全体の構造を維持しつつ、既存の画像のディテールを無視して新しいディテールに置き換えます。アップスケーリングと組み合わせて利用するとよさそうです。今のところSD1.5モデルのみです。

Blur

ぼやけた画像を詳細に生成します。PreprocessorはnoneでModelはblurを選択してください。今のところSDXLモデルのみです。

Blur

Preprocessorのblur_gaussianは、ぼかし画像への処理をします。

Preprocessor
  • blur_gaussian
  • tile_colorfix
  • tile_colorfix+sharp
  • tile_resample
Model
  • control_v11f1e_sd15_tile
  • kohya_controllllite_xl_blur
  • kohya_controllllite_xl_blur_anime

Inpaint

Inpainting

修復したい個所を塗りつぶしてマスクを作成し、マスク部分のみ生成しなおします。img2imgのInpaintよりも破綻が少なく修復しやすいです。

Instruct Pix2Pix 1
入力画像
Inpaint 2
修正箇所を塗りつぶす
Inpaint 3
生成画像

Outpainting

サイズを拡張して画像の外側を描き足すこともできます。

Outpainting 設定

txt2imgまたはimg2imgでサイズの変更とResize modeをResize and fillに設定してください。

Outpainting ControlNet 設定

ControlNetの設定では、Resize modeをResize and fillに設定します。また、Control ModeをControlNet is more importantに設定しての生成も試してみてください。

Outpainting

画像サイズを変更した場合のResize modeについて

  • Just resize(アスペクト比を無視してサイズを変更する)
  • Crop and resize(アスペクト比を維持したままサイズを変更し余計な部分はトリミングする)
  • Resize and fill(アスペクト比を維持したままサイズを変更し足りない部分を描く)
Preprocessor
  • inpaint_global_harmonious
  • inpaint_only
  • inpaint_only+lama
Model
  • control_v11p_sd15_inpaint

Instruct Pix2Pix

画像の内容をプロンプトで変更する場合にimg2imgのみよりもいい結果が得られやすいです。構図も比較的維持してくれています。

  1. img2imgに画像をアップロード
  2. ControlNetの入力画像は不要
  3. プロンプトは「Xにする」のような命令の方が効果があるようです
Instruct Pix2Pix 1
入力画像
Instruct Pix2Pix 3
生成画像(プロンプト: make it cry)
Instruct Pix2Pix 2
生成画像(プロンプト: make it winter)
Preprocessor
  • none
Model
  • control_v11e_sd15_ip2p

Reference

画像の要素を拾って似たようなイメージを生成します。髪や瞳などが同じような画像が生成されました。簡易的なキャラLoRAみたいな使い方ができそうです。

LoRAについては以下の記事をご覧ください。

Reference 1
入力画像
Reference 2
生成画像
Reference 3
生成画像
Preprocessor
  • reference_adain
  • reference_adain+attn
  • reference_only

Recolor

構図はそのままで色だけ塗りなおします。

IP-Adapter 1
入力画像
Recolor 2
Preprocessor処理後
Recolor 3
生成画像
Preprocessor
  • recolor_intensity
  • recolor_luminance
Model
  • ioclab_sd15_recolor
  • sai_xl_recolor_128lora
  • sai_xl_recolor_256lora

Revision

バリエーション画像を生成します。今のところはSDXLのみ対応しています。

Revision 1
入力画像
Revision 2
revision_clipvision
Revision 3
revision_ignore_prompt
Preprocessor
  • revision_clipvision
  • revision_ignore_prompt

IP-Adapter

Clip

画像をプロンプト代わりのように使って生成します。似たような雰囲気の画像を生成したい時やプロンプトでの誘導が難しい場合に有効です。また、img2imgと組み合わせることで融合したような画像も生成できます。

IP-Adapter 1
入力画像
IP-Adapter 2
ip-adapter_sd15
IP-Adapter 3
ip-adapter_sd15_plus

FaceID

インプット画像から顔の特徴のみを抽出し、生成された画像に適用します。

IP-Adapter FaceID

以下からモデルとローラをダウンロードしてテーブルの組み合わせで使用してください。

SD v.PreprocessorModelLoRA
v1.5ip-adapter_face_idip-adapter-faceid-portrait_sd15不要
v1.5ip-adapter_face_idip-adapter-faceid_sd15ip-adapter-faceid_sd15_lora
v1.5ip-adapter_face_id_plusip-adapter-faceid-plus_sd15ip-adapter-faceid-plus_sd15_lora
v1.5ip-adapter_face_id_plusip-adapter-faceid-plusv2_sd15ip-adapter-faceid-plusv2_sd15_lora
SDXLip-adapter_face_idip-adapter-faceid_sdxlip-adapter-faceid_sdxl_lora
SDXLip-adapter_face_id_plusip-adapter-faceid-plusv2_sdxlip-adapter-faceid-plusv2_sdxl_lora
Preprocessor
  • ip-adapter_clip_sd15
  • ip-adapter_clip_sdxl
  • ip-adapter_face_id
  • ip-adapter_face_id_plus
Model
  • ip-adapter_sd15
  • ip-adapter_sd15_plus
  • ip-adapter_xl.pth
  • ip-adapter-faceid_sd15
  • ip-adapter-faceid-plus_sd15
  • ip-adapter-faceid-plusv2_sd15
  • ip-adapter-faceid_sdxl
  • ip-adapter-faceid-plusv2_sdxl
  • ip-adapter-faceid-portrait_sd15

便利な拡張機能は、ほかにもたくさんあります。興味がある方はこちらをご覧ください。

タイトルとURLをコピーしました