こんばんは、スタジオ真榊です。今夜は知らぬ間にControlnetに仲間入りしていた新プリプロセッサ「DW openpose」の検証記事です。
「DWposeという技術を使った、Openpose fullよりスゲースゴイ全身用プリプロセッサです」で説明がもう終わってしまうのですが、確かにこれ…スゴイです!(語彙力喪失)
こちらの適当な5人娘の画像を「dw_openpose_full」で読み込ませると、サクッと右のボーンが抽出されて…

しっかり同じポーズで画像生成できてしまいます。

以上、終了!
…という感じですが、せっかくなのでOpenposeとどれくらい違うのか、この正確さを何に使えるか、いろいろと検証してみました。
1.DW openpose導入方法
「DW pose」は「Distillation for Whole-body Pose estimators」の略。要するに全身ポーズ抽出技術ってことなんですが、従来のOpenpose技術に比べて正確な推論をすることができ、特に手の検出精度が大幅に向上しているそうです。
SDwebUI用Controlnetでは、8月9日に更新された「v1.1237」からDW poseを使った新プリプロセッサ「DW openpose full」が導入されており、Controlnetを最新版にバージョンアップするだけでCN画面のOpenposeプリプロセッサに追加されます。

こんな感じで、しれっと一緒に並んでますね。従来のopenposeは「全身+手+顔」や「全身+手」「顔のみ」といったバリエーションがありましたが、記事執筆時点でDW Openposeには「full」しかありませんので、基本的に顔の向きや表情、手、全身のポーズが全て一括で抽出されます。送り込む先のControlnetモデルは通常通り「Openpose」で構いません。
2.ポーズマニアックスから抽出してみよう
さっそく、何がどう変わったのか検証してみましょう。おなじみポーズマニアックスさんからスクリーンショットで頂戴してきたこちらの人体模型を読み込ませます。比較のため「DW openpose full」と「Openpose full」の両方で抽出してみました。

画像を読み込ませて💥ボタンを押せば画面右側に抽出結果が表示されます。例によって、初回抽出時のみ200MB分のダウンロードを挟むので時間が掛かるのでご注意ください。
結果はこのようになりました。左がDW、右が従来Openposeです。

明らかに精度が違いますね。やはり目立つのは手の正確さ!従来版はほぼ指の位置を拾えておらず、右手は手首とつながってもいませんが、DW版はしっかり描けており、顔の向きや目鼻の位置もより正確です。(人間の写真ではなく人体模型なのに…)
さて、さっそく生成してみましょう。手と顔のADetailerをONにして、768x512を解像度補助で1.5倍にします。(※以降、特に断らない限りControlnet is more importantを選択しています。抽出したボーン情報をできるだけ正確に再現するためです)
プロンプト:1girl,souryuu asuka langley, red plugsuit,brown hair, red bodysuit,standing,hand up,masterpiece,extremely detailed CG,official art,high resolusion (+ LoRA)

確かに、ポーズをかなり正確に拾ってくれていますね。
一方、こちらが従来のOpenpose fullで抽出したもの。プリプロセッサ以外、全く同じ設定です。

特に腰に当てた左手を見比べると、違いがよくわかると思います。
おなじみのGIF比較。旧来のほうは手がグチャっててADetailerでも直せていませんね。ただ、さきほどの人体模型は髪をかきあげるポーズではなく、どちらかというと敬礼(salute)ポーズだったので、そのプロンプトを入れるともっと正確になるかもしれません。






