Stable Diffusionに、ControlNetという拡張機能を入れると、好きなポーズ・構図で画像を生成することができます

この画像から、

図面っぽい画像をControlNetで作って遊んでみた!


しかし使い始めた当初、
「せっかく拡張機能を入れたはずなのに、全然違う構図で出力されるのだが...?」
というところで苦戦したので、チェックポイントをまとめておきます。



確認すること

Enableにチェックを入れた?

Stable DiffusionのControlNetのEnableボタン

ControlNetに、ただ画像をアップして生成ボタンを押しただけでは、ポーズを写しとってくれません。

Enableにチェックを入れましょう。



PreprocessorとModelを選んだ?

Stable DiffusionのControlNetのプリプロセッサとモデル

まだまだ確認事項があります。

PreprocessorModelを選択しないと動きません。
そしてModelは、自分でダウンロードしておく必要があります。


ちなみに、Preprocessorでは、画像のどの部分を抽出するかを決めます。
深度や輪郭、法線情報など、
結果にどのような違いが出るかは、こちらの記事がわかりやすかったです。


Modelはこちらのサイトからダウンロードします。
.pthという拡張子のファイルをダウンロードして、stable-diffusion-webui/extensions/ControlNet/modelsのフォルダの中に入れておきましょう。

それぞれのPreprocessorに対応するモデルがあるのでご注意を。



それでもできない → 再起動

Stable Diffusionのターミナル

ターミナルに出ているエラーメッセージを確認しましょう。

私の場合、

AttributeError: 'PlugableControlModel' object has no attribute 'config' 

というエラーが出て動かなかったのですが、Stable Diffusion WebUIごと再起動したら、問題なく動きました


モデルをダウンロードし忘れていて、起動中に追加したので、うまく読み込めていなかったようです。





まとめ

ControlNet、読み込んだイメージから構図をいい感じにしてくれるの、大変素晴らしい...( ˘ω˘ )

特に人物のポージングなどに使えそうですね。


ということで、うまく動かない場合、必要な箇所にチェックを入れてからGenerateすることと、うまく動かない場合は再起動させるといいよ、というお話でした。