DockerコンテナのStable DiffusionでControlNetを動かす
はじめに
DockerのコンテナでStable Diffusionを使用する際、ControlNet(簡易的なインプットで、好きな構図の絵を描く)を使えるようにします。
ここでは、Controlnetのいくつかの機能のうち、openpose(簡易的な3Dモデルを使用して、人物の姿勢を指定した画像を生成する)を使う環境を構築します。
事前準備
Windows版は以下の環境で実施しました。
OS | Windows 11 Home |
GPU | nVIDIA Geforce RTX3060 12GB |
メモリ | 16GB |
DockerでStable Diffusion webUI (AUTOMATIC1111)が動いている前提としています。
ControlNetのインストール
ControlNetのgithubは以下にありますが、以下から直接データをダウンロードを行わず、stable Diffusion webUI上で設定(インストール)をします。
1.AUTOMATIC1111を起動したら「Extensions」タブをクリックします。
2.「Install from URL」タブをクリックし、「URL for extension’s git repository」に以下のURLを入力します。
https://github.com/Mikubill/sd-webui-controlnet.git
3.「install」をクリックします。
4.「install」の下にinstalled〜という文章が表示されていたら完了です。
5.「Installed」タブの「Apply and restart UI」をクリックして、webUIを再起動します。
ControlNetで使うモデル(openpose)のインストール
以下からopenposeをダウンロードします。
23/2/27現在ファイル名は control_openpose-fp16.safetensors です。
ダウンロードしたopenposeのモデルは、以下に保存します。
~/stable-diffusion-webui-docker/data/config/auto/extensions/sd-webui-controlnet/models
ControlNetの動作確認
1. AUTOMATIC1111のUIを起動します。
2. 「Seed」の入力欄の下に「ControlNet」の項目が追加されています。
3. 「◀」ボタンをクリックすと、ControlNetのUIが表示されます。
4. OpenOpseのモデルをダウンロードして格納しているので、「Preprocessor」の項目を「openpose」を選択します。
5. 右隣の「model」のドロップダウンリストをクリックし、ダウンロードしたモデルのファイル名(control_openpose-fp16.safetensors)を選択します。
6. 「ここに画像をドロップまたはクリックしてアップロード」の部分をクリックすると、ファイルを開く画面が表示されるので、参考としたい姿勢画像(姿勢の参考となる画像や、DESIGN DOLLで作成した画像(後述)など)を選択して開きます。
7. 「Enable」にチェックを入れます。「Preview anotater result」をクリックすると、以下のようにControlNetが有効になり、姿勢画像のプレビューが見られます。(なぜかLinuxで動かした場合、姿勢画像のプレビューは見られませんでした。。。 Windowsでは見られました。)
8. プロンプトを入力し、「Generate」をクリックすれば、OpenPoseで指定した姿勢で画像が作成されます。
人物の姿勢データの作成(Openpose Editor)
Stable diffusionの拡張機能をインストールすることで、人物の姿勢データを作成できます。
ここではOpenpose Editorを導入します。
Openpose Editorのgithubは以下にありますが、以下から直接データをダウンロードを行わず、stable Diffusion webUI上で設定(インストール)をします。
1.AUTOMATIC1111を起動したら「Extensions」タブをクリックします。
2.「Install from URL」タブをクリックし、「URL for extension’s git repository」に以下のURLを入力します。
https://github.com/fkunn1326/openpose-editor.git
3.「install」をクリックします。
4.「install」の下にinstalled〜という文章が表示されていたら完了です。
5.「Installed」タブの「Apply and restart UI」をクリックして、webUIを再起動します。
(注意事項)
ControlNetの "Preprocessor" には、何も指定しないようにする必要があります。
(githubのホームページより)
変更履歴
22/3/6 DEGIGN DOLLの代わりにOpenpose Editorを追加
Discussion