2023/09/16 # Stable Diffusion web UI + ControlNet + Openpose Editor \(WSL + Ubuntu利用\) ## ブログの引っ越し 当ブログは[takemi.blog](https://takemi.blog/)に移行しました。 より見やすい[ControlNet & Openpose Editorの使い方 (WSL+Ubuntu環境)](https://takemi.blog/c08610315cad48bb8c010c7850d96d3a/)をご利用ください。 ## 作成日時 2023/03/03 ## 概要 ついにポーズまで指定できるようになったと聞いて、自分の環境にも適用しました。 引き続きWSLかつUbuntu環境の方は参考にしてください。 ※ Stable Diffusion web UIのインストール方法は[こちら](/2023/01/30.0109.html) ## 拡張機能のインストール Stable Diffusion web UIには拡張機能として簡単に機能を追加できる方法があります。 まず、以下を参考にUI経由で「Extensions -> Install from URL」を選択します。 ![00001](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjncuJRLACmmm-mFjHY1_F0rPN4c7i-nB31efuMFV3i4y_bNqVdx2jJOn_J6PopczvHnTiHJgU8RAjST3Nr9tD343-eRVYNjBtg8SN_QmPMniQnCpFPS1ECC6xOyhpTCtaFWxDlWT4BRiTGu6fiDVRZRYpgEDCRwIvm6Qe6qH9kNRcZKtyPKq929Ps4uA/s1600/00001.png) そしたら上側のテキストボックスに ``` https://github.com/Mikubill/sd-webui-controlnet.git ``` と入力します。そして入力後にInstallボタンを選択します。 そうするとインストール完了後に以下の文字が出るのでStable Diffusion web UIを再起動。 ``` Installed into /home/user/stable-diffusion-webui/extensions/sd-webui-controlnet. Use Installed tab to restart. ``` 再起動すると、いつもの画面に`ControlNet`が追加されているはずです。 ![00002](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj7VcTNhy2v2spuALJat6CR3o8MfIpQedQbMi2XNJsvlC9WJIwrWcDXmvbV922StFyvZt7WSFqpoX7hv5QlxJ7ANAGRdyf6wcTPpngrBeDWZXmufIIfGLk3G7uVdd7b79srZtxs-x3Vz9aB8NCEliOhOdySg5R-x3M49Kq8gzNAxOyTsqKGxeojArdq9Q/s1600/00002.png) ## モデル追加 実際に利用するには対応するモデルが必要になります。モデルには種類があるのですが、そのうち使うだろうし全部落としておきます。 https://huggingface.co/webui/ControlNet-modules-safetensors/tree/main モデルは`models/ControlNet`ディレクトリに格納します。 以下は各モデルをダウンロードするコマンドです。ここはUbuntuから操作します。 ```sh 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`関連の設定を行います。必要な場所に赤枠を付けたので参考にしてください。 ※ 利用する画像はポーズが判断できれば何でも大丈夫です。著作権の問題あるので、ここでは画像は載せません。 ![00003](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj3ev183haHuvaCu4qNqYJVo3HenFI5Fn0cASNc9NFRv-BwF-NmfXNNXGC_6e4i1AwYEsgbdHvhWmp60He1OTx66SXn0VAzBLJysuoebmlIgAWcDbDgI0sFGKg3R2XamqFKM6Nktj5NucsOe5WO9JeKjMRoWsfXOwukNwM5IiS9xAu6fdwEtqhCCARUcw/s1600/00003.png) + 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 ``` 完了すると以下のタブが増えます。右の棒人間を操作してポーズを作ります。 ![00004](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiD1nH26o0iVxuwF2lA7gOnERnDBoy3gmK-_-rc8q7ytYW3JHbgQYLF8QyWidnQXkitolrW4gaPKW886q2zWpAcThUk_rJEeRA4jk4XRnfyL0GUlSiZBimyCYnl4H4T_JT5AThslsCZg2aXsYjdy72av_Oru9Z7Sj7vBPGmTbD0JFnNxjGwAYRyd0slyw/s1600/00004.png) ポーズが出来たら右下\(赤枠\)の`Send to txt2img` or `Send to img2img`から画像を指定できます。 その後は先程と同じでPrompt等を指定します。その際にModelは`openpose`を指定。Preprocessorは`none`を指定してください。 これは作成者のリポジトリに`ControlNetの "Preprocessor" には、何も指定しないようにしてください。`と書かれているためです。 そしてGenerate! この時に`ffmpeg`が見つからない的なErrorがでたら以下で解決できます。 ```sh sudo apt-get -y install ffmpeg ``` これが生成した画像です。完璧じゃないけど、指定したポーズに近いとは思う。 ![00004](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhq-u-5tLMHcYCXp9tdL6XQQPITIOwimHly4O7wKghiXzqlQaU2m7T6GvUb4MndDAMTdr0ITkf_y0dV3nOttQ_DyiJ73OQjuEBuPW3GsGkw0wRD3qcVM7lkTAbwJFhE_NluDWUUKzsj9sg7NKLxAB_hab_yM6TtEvUE8IddaV1oRuQQiHJY4b29bLd9iQ/s1600/00005.png) ## おわりに 他にもポーズ指定の方法はあるみたいで、色々試して遊びたい。 ControlNet Openpose Editor Stable Diffusion Ubuntu WSL