こんばんは、スタジオ真榊です。今夜は知らぬ間にControlnetに仲間入りしていた新プリプロセッサ「DW openpose」の検証記事です。

「DWposeという技術を使った、Openpose fullよりスゲースゴイ全身用プリプロセッサです」で説明がもう終わってしまうのですが、確かにこれ…スゴイです!(語彙力喪失)

こちらの適当な5人娘の画像を「dw_openpose_full」で読み込ませると、サクッと右のボーンが抽出されて…

新プリプロセッサ「DW openpose」登場!旧Openposeよりどうスゴイ?:図版1

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

新プリプロセッサ「DW openpose」登場!旧Openposeよりどうスゴイ?:図版2

以上、終了!

…という感じですが、せっかくなので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プリプロセッサに追加されます。

1.DW openpose導入方法:図版1

こんな感じで、しれっと一緒に並んでますね。従来のopenposeは「全身+手+顔」や「全身+手」「顔のみ」といったバリエーションがありましたが、記事執筆時点でDW Openposeには「full」しかありませんので、基本的に顔の向きや表情、手、全身のポーズが全て一括で抽出されます。送り込む先のControlnetモデルは通常通り「Openpose」で構いません。

2.ポーズマニアックスから抽出してみよう

さっそく、何がどう変わったのか検証してみましょう。おなじみポーズマニアックスさんからスクリーンショットで頂戴してきたこちらの人体模型を読み込ませます。比較のため「DW openpose full」と「Openpose full」の両方で抽出してみました。

2.ポーズマニアックスから抽出してみよう:図版1

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

結果はこのようになりました。左がDW、右が従来Openposeです。

2.ポーズマニアックスから抽出してみよう:図版2

明らかに精度が違いますね。やはり目立つのは手の正確さ!従来版はほぼ指の位置を拾えておらず、右手は手首とつながってもいませんが、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)

2.ポーズマニアックスから抽出してみよう:図版3

確かに、ポーズをかなり正確に拾ってくれていますね。

一方、こちらが従来のOpenpose fullで抽出したもの。プリプロセッサ以外、全く同じ設定です。

2.ポーズマニアックスから抽出してみよう:図版4

特に腰に当てた左手を見比べると、違いがよくわかると思います。

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

2.ポーズマニアックスから抽出してみよう:図版5