ControlNetを使ってみる

ControlNetを使ってみる

2023年5月16日
知恵
Pocket

ControlNetを使うと、Stable Diffusionで、ポーズや構図を指定して作成可能ということで早速使ってみます。

sd-webui-controlnetをインストールする

通常通り、「Stable Diffusion Web UI」を起動します。

上原亜衣モデルを試してみる

Colaboratoryで、ランタイムをGPUにして、以下を実行します。 !gi…
zaitakukinmu.com

起動したら、拡張のタブを表示し、Intall from URLを選択します。

ControlNetを使ってみる

URL欄に、「https://github.com/Mikubill/sd-webui-controlnet」を入力して、インストールします。

インストールが完了すると、以下が表示されます。

ControlNetを使ってみる

Installedタブに遷移すると、「sd-webui-controlnet」が表示されているのを確認して、「Apply and restart UI」を実行します。

ControlNetを使ってみる

再起動したら、URLが変わるので、ColaboratoryのタブにURLが表示されているので、そちらを開きます。

「txt2img」のタブに以下のように「ControlNet」が表示されていればOKです。

ControlNetを使ってみる

ControlNetのモデルデータをダウンロードする

以下のURLから、「control_openpose-fp16.safetensors」をローカルにDLします。

ControlNetを使ってみる

webui/ControlNet-modules-safetensors at main

We’re on a journey to advance and democr…
huggingface.co
ControlNetを使ってみる

Colaboratoryのウィンドウを開き、ファイル情報を開き、「extensions」「sd-webui-controlnet」「model」とたどります。

ControlNetを使ってみる

ここに、DLしたファイルをアップロードします。

ControlNetを使ってみる
ControlNetを使ってみる

画像を生成してみる

「txt2img」タブの最下部に、「ControlNet」があるのでクリックして表示します。

ControlNetを使ってみる

「Enable」にチェックを入れ、Preprocessorの行の更新ボタンを押してモデルを更新します。

Preprocessorは、openposeを選択して、Modelは、control_openpose-fp16にします。

ポーズの画像を上部にアップロードします。

この状態で通常通り、画像の生成を行います。

ControlNetを使ってみる

なぜかポーズが反映されていません。

Colaboratoryのウィンドウを見ると、以下のエラーがでていました。

Loading model: control_openpose-fp16 [9ca67cc5]
Error running process: /content/stable-diffusion-webui/extensions/sd-webui-controlnet/scripts/controlnet.py

ググると以下のページがでてきました。

何を対処したのか不明です。

ノートブックを新規作成から作り直してみました。

openposeのモデルは、一旦、Web UIを停止して、Colaboratoryから実行しました。

!wget https://huggingface.co/webui/ControlNet-modules-safetensors/resolve/main/control_openpose-fp16.safetensors -O /content/stable-diffusion-webui/extensions/sd-webui-controlnet/models/control_openpose-fp16.safetensors

上記実行後に、Web UIを起動しました。

!python launch.py --share --xformers --enable-insecure-extension-access

再度、modelを指定して画像を作成してみたら動作しました。

modelを自分でDLして、アップロードしたから動かなかったのでしょうか。

動作するようになりましたが、以下のエラーが出るようになりました。

Solution: Please download YAML file, or ask your model provider to provide [/content/stable-diffusion-webui/extensions/sd-webui-controlnet/models/control_openpose-fp16.yaml] for you to download.
Hint: You can take a look at [/content/stable-diffusion-webui/extensions/sd-webui-controlnet/models] to find many existing YAML files.

以下のように、生成された画像とポーズが表示されるようになりました。

ControlNetを使ってみる
ControlNetを使ってみる

まとめ

Google Colaboratoryで以下をDLする。

!git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui
%cd /content/stable-diffusion-webui

civitaiのヘルパーをインストールする。

%cd /content/stable-diffusion-webui/extensions/
!git clone https://github.com/butaixianran/Stable-Diffusion-Webui-Civitai-Helper /content/stable-diffusion-webui/extensions/Stable-Diffusion-Webui-Civitai-Helper
%cd /content/stable-diffusion-webui

Stable Diffusion Web UIを起動する。

!python launch.py --share --xformers --enable-insecure-extension-access

stable-diffusion-webuiが起動したら、ControlNetを拡張タブからDLしUIを再起動する。

https://github.com/Mikubill/sd-webui-controlnet

一旦、webuiを落として、以下の2つをDLする。

!wget https://huggingface.co/webui/ControlNet-modules-safetensors/resolve/main/control_openpose-fp16.safetensors -O /content/stable-diffusion-webui/extensions/sd-webui-controlnet/models/control_openpose-fp16.safetensors
!wget https://huggingface.co/webui/ControlNet-modules-safetensors/blob/main/control_scribble-fp16.safetensors -O /content/stable-diffusion-webui/extensions/sd-webui-controlnet/models/control_scribble-fp16.safetensors

再度、webuiを起動する。

!python launch.py --share --xformers --enable-insecure-extension-access

上記でエラーになったため、以下にオプションを変えています。

!python launch.py --share --enable-insecure-extension-access --disable-safe-unpickle 

ControlNetの設定で、Multi ControlNet: Max models amount (requires restart)を2にする。

ControlNetを使ってみる

Apply Settingsを押して、Reload UIをします。

ControlNetを使ってみる