🎮

Docker上のStable Diffusion (AUTOMATIC1111)でControlNetを動かす

2023/02/25に公開

Stable DiffusionでControlNet

Stable Diffusionで好きな構図の絵が描けると話題の技術です。動かし方は色々なサイトに載っていますが、Docker上のAUTOMATIC1111版Stable Diffusionで使う方法をメモ的に残しておきます。

ControlNetセットアップ方法

Stable Diffusion Docker版セットアップ

Dockerでセットアップした前提です。詳しくは以下参照ください。
https://zenn.dev/karaage0703/articles/bf86fe4946417b

ControlNet追加

ExtentionsタブでInstall from URLで以下のアドレスを入力して「Install」をクリックします。

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

続いて、txt2imgにControlNetの機能が追加するため、「Apply and Restart UI」をクリックしてリスタートします。

ControlNetモデル追加

使用するモデルは以下サイトからダウンロードします。

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

今回はOpenPoseを使うので以下のモデルをダウンロードします。

control_openpose-fp16.safetensors

ダウンロードしたモデルは、Dockerの場合は以下に格納します。ここがDocker版で一番気をつける点です。逆に言えば、後は同じです。

~/stable-diffusion-webui-docker/data/config/auto/extensions/sd-webui-controlnet/models

ControlNetを使う

OpenPoseとダウンロードしたモデルを選択して、Enableにチェックを入れて、Preview anotater resultをクリックすると、以下のようにControlNetが有効になり、プレビューが見られます。

ポーズ素材は、いつもお世話になっているフリー素材「変デジ研究所」のロンスタさんを使用させていただきました。

あとは、いつもと同じように画像を生成すればOKです。

生成画像例

素材

姿勢推定結果

生成画像

まとめ

ControlNetの使い方を書きました。恐ろしいほど簡単ですね。

実はi2iと本質的に何が違うのかとかあんまり分かってないですが、余裕あればコードや論文を追ってみたいと思います(分かるとは言っていない)。

参考

使い方

https://murasan-net.com/index.php/2023/02/22/controlnet-install/

https://note.com/ddpn08/n/n7fce838499e7

https://self-development.info/automatic1111版web-uiのcontrolnet/

https://www.itmedia.co.jp/news/articles/2302/15/news165.html

https://gigazine.net/news/20230216-stable-diffusion-controlnet/

https://note.com/funsetmodev/n/n4fd6a351e5d3

https://www.youtube.com/watch?v=9_OtdCIgA5U

https://www.reddit.com/r/StableDiffusion/comments/119o71b/a1111_controlnet_extension_explained_like_youre_5/

学習

https://tadaoyamaoka.hatenablog.com/entry/2023/02/26/222915

https://tadaoyamaoka.hatenablog.com/entry/2023/03/02/224042

コード・論文

https://github.com/lllyasviel/ControlNet

https://arxiv.org/abs/2302.05543

Discussion