Openposeと3D Openposeを出力結果で比較

AI/Stable Diffusion

StableDiffusionで複雑なポーズを取らせるのは難しいですよね。

プロンプトだけで、何とか腕の位置や顔の傾きを記述しても、うまく反映されないことが多いと思います。

そんな時に使えるControlNetが「Openpose」と「3D Openpose

この機能を使えば、棒人間を自分でデッサン人形のように動かして、そのポーズを絵に反映することが可能です。

ただどちらを使うのが良いか、悩んでしまうこともあると思います。

特に3D Openposeは情報も少ないので、Openposeに比べてどうなるかを知りたい人もいると思います。

そこで今回は「似た棒人間から出力した場合の結果」から、2つを比較してみたいと思います。

結果

・棒人間から出力される結果は同じ

・出力された絵に差があるのは作り方に差があるため(同様の棒人間にできないため)

この記事を読むと

「Openpose」と「3D Openpose」の出力結果の比較結果の詳細が分かります。

※記事内に広告が含まれています。

使用する棒人間を出力する

「Openpose」と「3D Openpose」も棒人間を自分で作成する必要があります。

Openposeでは「OpenPoseEditor」、3D Openposeでは「3D Editor」を使用して棒人間を生成してみます。

それぞれのインストールや使用方法は下記の記事を参考にしてください。

openpose Editorで作成

まずはOpenPose Editorを使用して、作成していきます。

プロンプトだけでは説明が難しいポーズの方が、比較がしやすいと思います。

そのため下記のようなポーズにしてみました。

出力された棒人間

3D Editorで作成

次に同じようなポーズを3D Editorで作成していきます。

正面から見たときに、同じようなポーズになるように動かしていきます。

大体ポーズが同じになったら、拡大縮小を行ってOpenPose Editorで作成した棒人間と同じ大きさ(距離感)にします。

3D OpenposeはOpenpose Editorと違い、画像の縮尺で棒人間の大きさを決定します。

そのため生成したいサイズに合わせて、縮尺を設定する必要があります。

縮尺によって棒人間の大きさが変化する(上図:近い→大きい、下図:遠い→小さい)

最終的にOpenPose Editorと同じような画になるように調整します。

出力された棒人間

棒人間を比較

出来上がった棒人間を比較してみます。

似たポーズを取らせることはできましたが、Edtorが違うため完全に一致するものは作成できませんでした。

openpose

3D openpose

絵を出力

実際に作成した棒人間から絵を出力してみます。

設定

ControlNetの寄与度を確認するために、プロンプトはあえてシンプルに下記のようにしました。

プロンプト

best quality, masterpiece, 16k, ultra detailed, beautiful skin, professional lighting,
1 girl, 18 years old, school playground, school uniform, sailor suit

ネガティブプロンプト

flat color, flat shading, nsfw, many legs, retro style, poor quality, bad face, bad fingers, bad anatomy, missing fingers, low res, cropped, signature, watermark, username, artist name, text, hair ornaments, tie, cap, bow tie

他設定値

設定名称設定値
Sampling methodDPM++ 2M Karras
Sampling steps30
CFG Scale8
Width512
Height512

ControlNetはOpenposeを使用するため、下記のような設定にします。

注意すべき点はPreprocessorを「none」で実行することです。

また、今回はControlNetの寄与度を上げるためにControl Modeを「ControlNet is more important」としています。

Openpose

Openposeの画像を使用して出力された結果が下記になります。

棒人間に対して、近い造形で出力されたことが分かります。

ただし画像サイズが小さいこともあって、手の平の造形が上手くありません。

また右手の向きが、棒人間では体側にまげているのに対して、出力された絵では伸ばしていることが多いのが分かります。

3D Openpose

3D Openposeの画像を使用して出力された結果が下記になります。

棒人間に対して、近い造形で出力されたことが分かります。

ただし画像サイズが小さいこともあって、手の平の造形が上手くありません。

比較

比較した画像が下記になります。

openpose

3D Openpose

見ればわかる通り、特に違いや優劣は有りません。

と言うのも、3D openposeは結局3Dで棒人間を作れるだけで、棒人間を作った後の処理=画像生成で用いるControlNetはopenposeと同じだからです。

そのため、画像に差があるのは棒人間に差が出来ているためであり、もし全く同じ棒人間を作れた場合、同じ結果が出力されると考えられます。

ではこの2つに違いはないのかと言うと、そういう訳ではありません。

棒人間の作り方や、構図、焦点の当て方など、作りたい絵から逆算して使用する方を選ぶ方が効率が良いです。

まとめ

今回は「似た棒人間から出力した場合の結果」から、2つのopenposeの比較について紹介しました。

改めて2行でまとめると…

・棒人間から出力される結果は同じ

・出力された絵に差があるのは作り方に差があるため(同様の棒人間にできないため)

出力結果から2つのopenposeについて比較してみました。

今回は両方をほとんど知らない方向けに、出力結果は変わらないよ。ということを伝えるための記事になります。

次回、実際に使用感やメリットデメリットから、作りたい絵に対してどちらを選択すべきかまで紹介したいと思います。

コメント

タイトルとURLをコピーしました