ControlNet 1.1をインストールする - Stable Diffusion
ControlNet をインストールする手順を紹介します。
インストール手順: Stable Diffusion Web UI
GitHubのControlNetのリポジトリページ(
https://github.com/Mikubill/sd-webui-controlnet)にアクセスします。
ページが表示されることを確認し、リポジトリがあることを確認します。
Stable Diffusion Web UIのサーバーを起動し、Webブラウザでアクセスします。
ページ上部の[Extensions]のタブをクリックします。下図のページに切り替わります。
ページ内の内側のタブの[Install from URL]のタブをクリックして選択します。下図のページが表示されます。
一番上のテキストボックス[URL for extension's git repository]にリポジトリの.gitファイルのURLを入力します。
https://github.com/Mikubill/sd-webui-controlnet.git
[Install]ボタンをクリックします。しばらく時間がかかりますが、インストールに成功すると、以下のメッセージが表示されます。
メッセージ
Installed into (stable-diffusion-webuiの配置ディレクトリ)\extensions\sd-webui-controlnet. Use Installed tab to restart.
[Installed]のタブをクリックして表示し、[Apply and restart UI]のボタンをクリックしてWeb UIを再起動するか,
コマンドプロンプトのウィンドウを一度終了し、再度 webui-user.batを実行してWeb UIサーバーを起動します。
インストールの確認
WebブラウザでStable Diffusion Web UIのURLにアクセスし、上部の[Extension]タブをクリックします。
下図のページが表示されます。インストールされたExtensionの一覧が表示されます。
一覧に"sd-webui-controlnet"が追加されていることが確認できれば、ControlNetのインストールは完了です。
モデルのインストール : Stable Difission 1.x(1.5)の場合
ControlNetのUIはインストールできましたが、ControlNetの効果を与えるためのモデルは別途インストールする必要があります。
モデルのリポジトリのURL(
https://huggingface.co/lllyasviel/ControlNet-v1-1/tree/main)をWebブラウザで開きます。
下図のページが表示されます。
モデルのファイルをダウンロードします。インストールする safetensorsファイルと、同名のyamlファイルをダウンロードします。
ダウンロードしたモデルファイルを以下のディレクトリにコピーして配置します。
モデル数が多いため、使用する可能性があるもののみを配置しても良いと思います。
(Stable Diffusion Web UIのプログラムを配置したディレクトリ)\models\ControlNet
モデルのインストール : Stable Difission 2.x(2.1)の場合
メモ
Stable Diffusion 1.5と動作が違ったり、意図したとおりに動作しないモデルがある印象です。完成度は1.5のモデルのほうが高そうです。
Waifu Diffusion 1.5 など、Stable Diffusion 2.1ベースのモデルを利用する場合は、インストールするモデルが異なります。
モデルのリポジトリのURL(
https://huggingface.co/thibaud)をWebブラウザで開きます。
下図のページが表示されますので、[thibaud/controlnet-sd21]の項目をクリックします。
controlnet-sd21 のページが表示されます。[Files and versions]のタブをクリックします。
ControlNet 1.1 のStable Diffusion 2.1用のモデルのファイル一覧が表示されます。
モデルのファイルをダウンロードします。今回は各モデルのsafetensors ファイルをダウンロードします。
yamlファイルも必要ですが、記事掲載時点では、このページのyamlファイルには問題があるためか、正しくモデルファイルが開けない場合があります。
ダウンロードしたsafetensorsファイルを以下のディレクトリに配置します。
(Stable Diffusion Web UIのプログラムを配置したディレクトリ)\models\ControlNet
以下のファイルを
(モデルファイルの名称).yaml
のファイル名でモデルのsafetonsorsファイルと同じ位置に配置します。
yamlファイルの内容は以下です。
model:
target: cldm.cldm.ControlLDM
params:
linear_start: 0.00085
linear_end: 0.0120
num_timesteps_cond: 1
log_every_t: 200
timesteps: 1000
first_stage_key: "jpg"
cond_stage_key: "txt"
control_key: "hint"
image_size: 64
channels: 4
cond_stage_trainable: false
conditioning_key: crossattn
monitor: val/loss_simple_ema
scale_factor: 0.18215
use_ema: False
only_mid_control: False
control_stage_config:
target: cldm.cldm.ControlNet
params:
use_checkpoint: True
image_size: 32 # unused
in_channels: 4
hint_channels: 3
model_channels: 320
attention_resolutions: [ 4, 2, 1 ]
num_res_blocks: 2
channel_mult: [ 1, 2, 4, 4 ]
num_head_channels: 64 # need to fix for flash-attn
use_spatial_transformer: True
use_linear_in_transformer: True
transformer_depth: 1
context_dim: 1024
legacy: False
unet_config:
target: cldm.cldm.ControlledUnetModel
params:
use_checkpoint: True
image_size: 32 # unused
in_channels: 4
out_channels: 4
model_channels: 320
attention_resolutions: [ 4, 2, 1 ]
num_res_blocks: 2
channel_mult: [ 1, 2, 4, 4 ]
num_head_channels: 64 # need to fix for flash-attn
use_spatial_transformer: True
use_linear_in_transformer: True
transformer_depth: 1
context_dim: 1024
legacy: False
first_stage_config:
target: ldm.models.autoencoder.AutoencoderKL
params:
embed_dim: 4
monitor: val/rec_loss
ddconfig:
#attn_type: "vanilla-xformers"
double_z: true
z_channels: 4
resolution: 256
in_channels: 3
out_ch: 3
ch: 128
ch_mult:
- 1
- 2
- 4
- 4
num_res_blocks: 2
attn_resolutions: []
dropout: 0.0
lossconfig:
target: torch.nn.Identity
cond_stage_config:
target: ldm.modules.encoders.modules.FrozenOpenCLIPEmbedder
params:
freeze: True
layer: "penultimate"
以上でインストールは完了です。
モデルのインストール : Stable Difission XL (SDXL)の場合
コレクション
こちらのURLからSDXLに対応したモデルをダウンロードできます。複数の提供元からリリースされているモデルをまとめたHubです。(動作未検証)
https://huggingface.co/lllyasviel/sd_control_collection
Canny
こちらのURLからモデルをダウンロードできます。(動作未検証)
https://huggingface.co/diffusers/controlnet-canny-sdxl-1.0
Depth
こちらのURLからモデルをダウンロードできます。(動作未検証)
https://huggingface.co/SargeZT/controlnet-v1e-sdxl-depth
Seg
こちらのURLからモデルをダウンロードできます。(動作未検証)
https://huggingface.co/SargeZT/sdxl-controlnet-seg
補足:インストール時に GitCommandNotFound: Cmd('git') not found due to: エラーが発生する場合
[Install]ボタンクリック時に、次のエラーが発生する場合があります。
エラーメッセージ
GitCommandNotFound: Cmd('git') not found due to:FileNotFoundError('[WinError2] 指定されたファイルが見つかりません。')
cmdline: git clone -v -- https://github.com/Mikubill/sd-webui-controlnet.git (stable-diffusion-webuiの配置ディレクトリ)\tmp\sd-webui-controlnet
このエラーが発生した場合は、GIT_PYTHON_GIT_EXECUTABLE システム環境変数を設定します。
設定手順は
こちらの記事を参照してください。
著者
iPentecのメインデザイナー
Webページ、Webクリエイティブのデザインを担当。PhotoshopやIllustratorの作業もする。