プロンプトだけではどう頑張っても意図通りのポージングを取らせることが難しい…といった状況を、上図のような「棒人間」を使って制御可能にするという驚きのツールが登場した!との話題を目にしたのが、もう1年以上前、昨年の2月のこと。どんな日進月歩なんだよ!と生成AI界隈の様子を遠くから眺めていたのだけれど、なるほど、Stable Diffusionであれこれとトリガーとなる言葉を駆使しても、生成AIの解釈をそれとなく誘導することが難しい場面が多々あることに気付くまでにそれほど時間はかからなかった(1日で分かる)…というわけで昨年の10月下旬、AUTOMATIC1111のアップデートと同時に、ControlNetもインストールすることにした。半年も経てばネットには既に詳しい記事が溢れていた。
以下、当時の行動のメモ
ExtensionsタブのInstall from URLに下記のアドレスを入力。
https://github.com/Mikubill/sd-webui-controlnet.git
インストールボタンを押す。
ついでに、抽出した棒人間に対して、さらにエディットを施せる拡張ツールもインストールしておく。
https://github.com/fkunn1326/openpose-editor.git
「Installed」タブに移動すると、インストールした拡張機能がリストされているのが確認出来る。適用してStable Diffusionを再起動させる。
Openpose用のモデルをインストールする
ControlNetには話題となった棒人間以外にも数多くの機能があるのだけれど、今回はまず棒人間を使いたかったので、そのモデルを入手する。
https://huggingface.co/webui/ControlNet-modules-safetensors/tree/main
上記サイトに行くと、多くの機能に特化されたモデルが掲載されているが、ひとまず、試してみたかった「Openpose」モデルだけダウンロード。
control_openpose-fp16.safetensors
落としたファイルを手動で、Stable Diffusionをインストールした上図の場所へコピーする。
動作テスト
インストール直後、どこにControlNetがあるのか分からなかったが、地味なところに居た。三角マークをクリックしてタブを開く。
タブを開くと、これまた多様なパラメーターが現れる。インストール時のバージョン1.1.411は、数多くの機能を同時に3つ重ねて利用可能になっていた。上図では、Openpose機能だけ使っている状況。
棒人間を利用する際の主なセッティングはざっくりと上図のような感じ(詳細は他のサイトに譲る)。
参照元となる適当な画像(体操で身体を横に伸ばしているポーズ。ネットから拾ってきたのでモザイクをかけている)をドロップして、○で囲っている火花のマークを押すと、画像から人体のポーズを抽出して右側のカラムに棒人間が表示される。
その棒人間を見てみると、向かって右側の上に曲げている腕がちょっと短い。そこで、上で同時にインストールしたエディタを使う。棒人間の右側にある「Edit」ボタンを押す。
するとエディター画面が開く。ここで、希望のポーズを取るように、上に曲げている手首と肘のポイントを動かしてバランスを取る。
必要な部位の抽出に失敗していたら、例えば手のひらなど、後から自分で追加することも可能(上図の「ポーズコントロール」の下にある矢印の箇所を開く)。すごい。
エディットが終わったら、上部にある「ControlNetにポーズを送信」ボタンを押してメインの画面に戻り、引き続きその他パラメーターの調整を行う。
…以上、とりあえずメモ書き。
Stable Diffusion – ControlNet入門(2) ControlNet をダウンロード・準備する
【Stable Diffusion Web UI】ControlNetの使い方まとめ+Cannyの紹介
新しいopenpose-editorがすごい
【Stable Diffusion Web UI】ControlNetの使い方 OpenPose
ControlNetで綺麗な手(指)に修正する
【StableDiffusion・AIイラスト】重なった手を綺麗に修正
2024-04-10 > 僕はアップル様が嫌い