openpose_fullで顔も手もキメる【ControlNet】
だいぶ久しぶりになってしまいましたが、AI絵の話です。
以前紹介した、絵の構図やアングルを強制するControlNetですが、4ヶ月の間に劇的な進化が起こっていましたので、新しい機能の紹介。
新機能があまりに多くて、全然チェックしきれていません。
ひとまず、今日紹介するのは「openpose_full」です。
Extensionのアップデート
最新機能なので、まずアプデをかけておきましょう。
上のタブからExtensionsをクリック、「sd-webui-controlnet」にチェックが入っていることを確認して「Apply and restart UI」をクリックします。
ちなみに
グレーの「Check for Updates」をクリックすると、インストール済のExtensionのアプデがあるかを確認できます。
確認前は「Update」の欄が「unknown」、チェックしてアプデがある場合は「behind」、最新版になっている場合は「latest」になります。
アプデが完了すると、img2imgタブの「ControlNet」タブが「ControlNet v1.1.166」とバージョン表記入りのものに変化しています。
こうなっていたらOKです。
openpose_full
これは「full」という名前のとおり、1つのopenposeで顔も体も手もトラッキング出来る機能です。
顔だけトラッキングできるopenpose_faceと、手だけトラッキングできるopenpose_handというのがあったのですが、それら全てを一括で行えるわけですね。
openpose
既存の画像から人のポーズのボーン等を推定ながら読み取って、描画に反映させる機能。
四肢のアウトラインが読み取りやすいデッサン人形とか、全裸の画像の方が精度が高くなる。
ためしにClipstudioPaintの3Dドールで生成してみましょう。
使い方はこれまでのopenposeと同じです。
Preprocessorのプルダウンは「openpose_full」に設定、Modelは「openpose」にしましょう。
読み込ませる画像を反映をドラッグ&ドロップで入れたら準備は完了。
出来たのはこんな感じの画像。
服がちょっと怪しいけど、今回の趣旨ではないので良しとします。
Promptは
を基本とし、そこに
だけ足しています。あとクオリティ系のをいくつか。
なかなか意図通りの結果が出たなあ、と思っていたのですが…
openposeが読み取ったボーンを見てみると、手も顔もトラッキングできていません。
これじゃデフォのopenposeが普段読み取っているのと同じです。
openpose_fullは顔や手もトラッキングできる機能なので、これでは_fullを使った甲斐がありません。
もっと四肢を、顔を判定できなければ意味がない…ということで、私が自分の手で絵を描くときにお世話になっていた「POSE MANIACS」さんから、デッサンモデルをお借りしてきました。
筋繊維の流れやスジまで描画されているのでちょっとコワいですが、これを読み取ってみましょう。
というわけで出力されたのがこちら。
左手の指が怪しいですが、右手はかなりいい感じじゃないでしょうか?
Promptは、さっきのベースに
を足しています。
読み取ったボーンはこちら。顔や手まできちんとトラッキングできているのがわかります。
左手はヒザ関節と重なる位置だったので、綺麗に読み取れなかったんだろうか?
openpose_fullの…というかfaceやhandの前提として、顔・手が鮮明に読み取れる画像を参考にしないと意味がない、ということですね。
ただのopenposeは3Dのデッサン人形で良かったんだけど、fullで使う場合は写真の方が良さそうね。
というわけで写真でも試してみよう。
素材をお借りするのは、著作権フリーの変な写真がいっぱいあるでおなじみ「ぱくたそ」からこちらの写真。
からこんな画像が生成できました。
肩の高さや手の位置までバッチリですね。
Promptには
を足しています。
ボーンはこんな感じで、きちんと顔・手のトラッキングが出来ています。
やっぱ写真でやるべき機能ですねこいつは。
素材を用意する手間、という意味ではハードルが高くなっており、顔のないデッサン人形では効果がなかったわけですが、代わりに写真を高い精度でトラッキングし、出力させることができます。
「こういう構図やポーズの絵が出したい」と頭の中ですでに決まっているなら、強力なツールになるのではないでしょうか。
かなり強制力の高い機能だと思います。
記事が間に合えば、明日はreference_onlyの話をしたいですね。
LoRAの代わりになりそうな、これまた強力な機能です。