ControlNet & Openpose Editorの使い方 (WSL+Ubuntu環境)

[Stable Diffusion] ControlNet & Openpose Editorの使い方 (WSL+Ubuntu環境)

※ 当サイトは広告を含みます。

Stable Diffusion web UIがポーズを指定できるようになったと聞いて、自分の環境にも適用しました。

◆ [追記: 2023/11/08] ControlNet 1.1について
気がついたら色々と変わってました。特にControlNet 1.1(現行版)は利用するモデルが変わったみたい。
関連部分を全部を書き直すと辛いので、ダウンロード対象のモデルだけコマンド類を書き直しました。
利用方法も拡張されてますが、既に利用してるユーザーなら感で操作できると思います(丸投げ)。

◆ Stable Diffusion web UIのインストール方法について

拡張機能の導入

機能の追加

Stable Diffusion web UIには拡張機能を簡単に追加できる仕組みがあります。
以下を参考にUI経由で[Extensions -> Install from URL]を選択します。

Extensions -> Install from URL を選択する

次に上側のテキストボックスに以下を入力してInstallボタンを選択します。


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

インストールが完了すると以下の文字が出ます。そしたらStable Diffusion web UIを再起動します。


Installed into /home/user/stable-diffusion-webui/extensions/sd-webui-controlnet. Use Installed tab to restart.

再起動が完了すると、いつものUI画面にControlNetが追加されてます。

ControlNetを利用する方法

モデルの追加

現行のControlNet 1.1は利用するモデルが変わってます。
よって、次項に書いたモデルのみを入手すれば問題ないです。

実際にポーズ指定を利用するには対応するモデルが必要になります。
モデルには種類があるのですが、考えるのも手間なので全部追加しておきましょう。

https://huggingface.co/webui/ControlNet-modules-safetensors/tree/main

モデルはmodels/ControlNetディレクトリに格納します。以下は各モデルをダウンロードするコマンドです。


cd ~/stable-diffusion-webui
wget https://huggingface.co/webui/ControlNet-modules-safetensors/resolve/main/control_canny-fp16.safetensors -O ./models/ControlNet/control_canny-fp16.safetensors
wget https://huggingface.co/webui/ControlNet-modules-safetensors/resolve/main/control_depth-fp16.safetensors -O ./models/ControlNet/control_depth-fp16.safetensors
wget https://huggingface.co/webui/ControlNet-modules-safetensors/resolve/main/control_hed-fp16.safetensors -O ./models/ControlNet/control_hed-fp16.safetensors
wget https://huggingface.co/webui/ControlNet-modules-safetensors/resolve/main/control_mlsd-fp16.safetensors -O ./models/ControlNet/control_mlsd-fp16.safetensors
wget https://huggingface.co/webui/ControlNet-modules-safetensors/resolve/main/control_normal-fp16.safetensors -O ./models/ControlNet/control_normal-fp16.safetensors
wget https://huggingface.co/webui/ControlNet-modules-safetensors/resolve/main/control_openpose-fp16.safetensors -O ./models/ControlNet/control_openpose-fp16.safetensors
wget https://huggingface.co/webui/ControlNet-modules-safetensors/resolve/main/control_scribble-fp16.safetensors -O ./models/ControlNet/control_scribble-fp16.safetensors
wget https://huggingface.co/webui/ControlNet-modules-safetensors/resolve/main/control_seg-fp16.safetensors -O ./models/ControlNet/control_seg-fp16.safetensors
wget https://huggingface.co/webui/ControlNet-modules-safetensors/resolve/main/t2iadapter_keypose-fp16.safetensors -O ./models/ControlNet/t2iadapter_keypose-fp16.safetensors
wget https://huggingface.co/webui/ControlNet-modules-safetensors/resolve/main/t2iadapter_seg-fp16.safetensors -O ./models/ControlNet/t2iadapter_seg-fp16.safetensors
wget https://huggingface.co/webui/ControlNet-modules-safetensors/resolve/main/t2iadapter_sketch-fp16.safetensors -O ./models/ControlNet/t2iadapter_sketch-fp16.safetensors

モデルの追加 (ControlNet 1.1用)

ControlNetがポーズ指定に限定された仕組みじゃないので色々とモデルが増えてます。

https://huggingface.co/lllyasviel/ControlNet-v1-1/tree/main

モデルの格納先は変わらずmodels/ControlNetディレクトリになります。pthがモデル本体でyamlが設定です。
Openposeしか利用しないなら以下のコマンドで大丈夫です。他の機能も利用する場合は対応するモデルが必要です。


cd ~/stable-diffusion-webui
wget https://huggingface.co/lllyasviel/ControlNet-v1-1/resolve/main/control_v11p_sd15_openpose.pth?download=true -O ./models/ControlNet/control_v11p_sd15_openpose.pth
wget https://huggingface.co/lllyasviel/ControlNet-v1-1/resolve/main/control_v11p_sd15_openpose.yaml?download=true -O ./models/ControlNet/control_v11p_sd15_openpose.yaml

容量を気にせず全部欲しい人は以下のコマンドを使ってください。ただし、各1.5GBあるので相当なサイズになります。


cd ~/stable-diffusion-webui
wget https://huggingface.co/lllyasviel/ControlNet-v1-1/resolve/main/control_v11e_sd15_ip2p.pth?download=true -O ./models/ControlNet/control_v11e_sd15_ip2p.pth
wget https://huggingface.co/lllyasviel/ControlNet-v1-1/resolve/main/control_v11e_sd15_ip2p.yaml?download=true -O ./models/ControlNet/control_v11e_sd15_ip2p.yaml
wget https://huggingface.co/lllyasviel/ControlNet-v1-1/resolve/main/control_v11e_sd15_shuffle.pth?download=true -O ./models/ControlNet/control_v11e_sd15_shuffle.pth
wget https://huggingface.co/lllyasviel/ControlNet-v1-1/resolve/main/control_v11e_sd15_shuffle.yaml?download=true -O ./models/ControlNet/control_v11e_sd15_shuffle.yaml
wget https://huggingface.co/lllyasviel/ControlNet-v1-1/resolve/main/control_v11f1e_sd15_tile.pth?download=true -O ./models/ControlNet/control_v11f1e_sd15_tile.pth
wget https://huggingface.co/lllyasviel/ControlNet-v1-1/resolve/main/control_v11f1e_sd15_tile.yaml?download=true -O ./models/ControlNet/control_v11f1e_sd15_tile.yaml
wget https://huggingface.co/lllyasviel/ControlNet-v1-1/resolve/main/control_v11f1p_sd15_depth.pth?download=true -O ./models/ControlNet/control_v11f1p_sd15_depth.pth
wget https://huggingface.co/lllyasviel/ControlNet-v1-1/resolve/main/control_v11f1p_sd15_depth.yaml?download=true -O ./models/ControlNet/control_v11f1p_sd15_depth.yaml
wget https://huggingface.co/lllyasviel/ControlNet-v1-1/resolve/main/control_v11p_sd15_canny.pth?download=true -O ./models/ControlNet/control_v11p_sd15_canny.pth
wget https://huggingface.co/lllyasviel/ControlNet-v1-1/resolve/main/control_v11p_sd15_canny.yaml?download=true -O ./models/ControlNet/control_v11p_sd15_canny.yaml
wget https://huggingface.co/lllyasviel/ControlNet-v1-1/resolve/main/control_v11p_sd15_inpaint.pth?download=true -O ./models/ControlNet/control_v11p_sd15_inpaint.pth
wget https://huggingface.co/lllyasviel/ControlNet-v1-1/resolve/main/control_v11p_sd15_inpaint.yaml?download=true -O ./models/ControlNet/control_v11p_sd15_inpaint.yaml
wget https://huggingface.co/lllyasviel/ControlNet-v1-1/resolve/main/control_v11p_sd15_lineart.pth?download=true -O ./models/ControlNet/control_v11p_sd15_lineart.pth
wget https://huggingface.co/lllyasviel/ControlNet-v1-1/resolve/main/control_v11p_sd15_lineart.yaml?download=true -O ./models/ControlNet/control_v11p_sd15_lineart.yaml
wget https://huggingface.co/lllyasviel/ControlNet-v1-1/resolve/main/control_v11p_sd15_mlsd.pth?download=true -O ./models/ControlNet/control_v11p_sd15_mlsd.pth
wget https://huggingface.co/lllyasviel/ControlNet-v1-1/resolve/main/control_v11p_sd15_mlsd.yaml?download=true -O ./models/ControlNet/control_v11p_sd15_mlsd.yaml
wget https://huggingface.co/lllyasviel/ControlNet-v1-1/resolve/main/control_v11p_sd15_normalbae.pth?download=true -O ./models/ControlNet/control_v11p_sd15_normalbae.pth
wget https://huggingface.co/lllyasviel/ControlNet-v1-1/resolve/main/control_v11p_sd15_normalbae.yaml?download=true -O ./models/ControlNet/control_v11p_sd15_normalbae.yaml
wget https://huggingface.co/lllyasviel/ControlNet-v1-1/resolve/main/control_v11p_sd15_openpose.pth?download=true -O ./models/ControlNet/control_v11p_sd15_openpose.pth
wget https://huggingface.co/lllyasviel/ControlNet-v1-1/resolve/main/control_v11p_sd15_openpose.yaml?download=true -O ./models/ControlNet/control_v11p_sd15_openpose.yaml
wget https://huggingface.co/lllyasviel/ControlNet-v1-1/resolve/main/control_v11p_sd15_scribble.pth?download=true -O ./models/ControlNet/control_v11p_sd15_scribble.pth
wget https://huggingface.co/lllyasviel/ControlNet-v1-1/resolve/main/control_v11p_sd15_scribble.yaml?download=true -O ./models/ControlNet/control_v11p_sd15_scribble.yaml
wget https://huggingface.co/lllyasviel/ControlNet-v1-1/resolve/main/control_v11p_sd15_seg.pth?download=true -O ./models/ControlNet/control_v11p_sd15_seg.pth
wget https://huggingface.co/lllyasviel/ControlNet-v1-1/resolve/main/control_v11p_sd15_seg.yaml?download=true -O ./models/ControlNet/control_v11p_sd15_seg.yaml
wget https://huggingface.co/lllyasviel/ControlNet-v1-1/resolve/main/control_v11p_sd15_softedge.pth?download=true -O ./models/ControlNet/control_v11p_sd15_softedge.pth
wget https://huggingface.co/lllyasviel/ControlNet-v1-1/resolve/main/control_v11p_sd15_softedge.yaml?download=true -O ./models/ControlNet/control_v11p_sd15_softedge.yaml
wget https://huggingface.co/lllyasviel/ControlNet-v1-1/resolve/main/control_v11p_sd15s2_lineart_anime.pth?download=true -O ./models/ControlNet/control_v11p_sd15s2_lineart_anime.pth
wget https://huggingface.co/lllyasviel/ControlNet-v1-1/resolve/main/control_v11p_sd15s2_lineart_anime.yaml?download=true -O ./models/ControlNet/control_v11p_sd15s2_lineart_anime.yaml

利用方法

使い方ですが、少し難しので必要な設定箇所を画像で説明します。以下の画像(赤枠)を見ながらControlNet関連の設定を行ってください。
利用する画像はポーズが判断できれば何でも大丈夫です。ここでは肖像権または著作権の問題があるので画像は載せません。

ControlNetを利用する方法
  • Enable: 機能有効
  • Preprocessor: 次のModelと同じのを選択
  • Model: 利用するModel (canny or openpose 辺りがオススメ)
  • Canvas Width: 利用する画像の幅
  • Canvas Height: 利用する画像の高さ
管理人

後は通常通りPromptを指定して画像を生成しましょう。

Openpose Editorを機能追加

もっと手軽に利用できるようにOpenpose Editorをインストールしましょう。
これはStable Diffusion web UIを使ってポーズ用の棒人間を作る拡張機能です。

拡張機能なのでインストール方法は先程と同じです。テキストボックスには以下のURLを入力してください。


https://github.com/fkunn1326/openpose-editor.git

完了すると以下のタブが増えます。右の棒人間を操作して好きなポーズを作りましょう。
ポーズが出来たら右下(赤枠)のSend to txt2img or Send to img2imgから画像にポーズを指定できます。

Openpose Editorを利用する方法

その後は先程と同じでPrompt等を指定します。その際にModelはopenposeを指定。Preprocessorはnoneを指定してください。
これは作成者のリポジトリに「ControlNetの "Preprocessor" には、何も指定しないようにしてください。」と記載されてるからです。

管理人

そしてGenerate!

この時にffmpegが見つからない的なErrorが出た場合は以下の方法で解決できます。


sudo apt-get -y install ffmpeg
管理人

これが生成画像です。完璧じゃないけど指定したポーズには近いと思う。

生成画像

ParametersSampler: DPM++ 2S a Karras, Steps: 25, CFG scale: 8, Seed: 1834883418, Size: 512x768, Model: Counterfeit-V2.5

Promptcute and beautiful girl, look at viewer

NegativePromptEasyNegative, watermark, username, artist name, text

ControlNetControlNet Module: none, ControlNet Model: control_openpose-fp16, ControlNet Weight: 1, ControlNet Guidance Start: 0, ControlNet Guidance End: 1

あとがき

他にもポーズ指定の方法はあるみたいで色々と遊びたい。

この記事は参考になりましたか?

👆このブログを支援する

関連記事

コメント

この記事へのコメントはありません。