📚

DockerコンテナのStable DiffusionでControlNetを動かす

2023/02/26に公開約2,900字

はじめに

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上で設定(インストール)をします。
https://github.com/Mikubill/sd-webui-controlnet

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 です。
https://huggingface.co/webui/ControlNet-modules-safetensors/tree/main

ダウンロードした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上で設定(インストール)をします。
https://github.com/fkunn1326/openpose-editor

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

ログインするとコメントできます