OpenPoseの機能は素晴らしいけど、微妙に元絵からは手の角度など変更したい。
理想のポーズの絵を探すのは面倒だし、3D使うのは難しいし…そんな悩みを持ったことはないでしょうか?
今回はEditor機能を使用して、某人間を自在に動かすOpenPoseEditorについて紹介します。
理想のポーズの絵を探す必要もなく、より自分好みのポーズをとらせることが可能になるので、絵の幅が広がること間違いなしです!
結果
・OpenPoseの機能を使うことで、棒人間のポーズを1から作成しなくて良い
・ドラッグアンドドロップで、簡単に自分の思い描いたポーズをとらせることが可能
・通常ではありえないポーズをとらせることも可能
この記事を読むと
棒人間を自由に動かして、好みのポーズをとらせる方法が理解できます。
※記事内に広告が含まれています。
「Openpose Editor」とは?
棒人間を動かすために「OpenPoseEditor」という専用の編集ツールを使用します。
OpenPoseEditorはいくつか種類がありますが、今回はその中の1つについて説明します。
OpenPoseEditorは骨格情報を編集することで、自由に棒人間のポーズを変えることができます。
今回はOpenPoseで出力された骨格情報から、さらに自分好みにポーズを変えて、画像を出力する方法について紹介していきます。
元の絵(画像)から生成した棒人間に合わせた絵を作成する方法は下記をご参考ください。
インストール
1.「Extensions」タブから「Install from URL」を開きます。
2.「URL for extension’s git repository」に下記のURLを記載し、「Install」ボタンを押します。
https://github.com/fkunn1326/openpose-editor.git
3.「Installed」タブで「Apply and restart UI」 ボタンをクリックして適用して再起動します。
起動後にメインのタブに「Openpose Editor」が含まれていれば、インストール成功です。
【検証】実際に連続実行してみた
棒人間の準備
いきなり0から棒人間を狙ったポーズにするのは難しいと思います。
そのため今回は、OpenPoseの機能説明の時にも使用したキャラから、ベースとなる棒人間の情報を抽出してそれを編集します。
OpenPoseの時と同様にControl.netを下記のように設定します。
1. imageに棒人間を作りたい(ポーズの元になる)絵を追加します。
2. 「Enable」と「Pixcel Perfect」にチェックを入れる。
3. ControlTypeで「OpenPose」を選択します。
4. Preprocessorで「openpose」を選択します。
最終的にOpenposeを使用して絵を描くため、商標利用を考えている場合は「dw_openpose_full」を使うことをお勧めします
5.「Preprocessor」と「Model」の間のマークをクリックして、棒人間だけを生成する。
生成した棒人間の右下の「JSON」をクリックして、棒人間の情報を「.json」形式でダウンロードする。
棒人間の骨格を編集する方法
1.生成したい画像のwidthとheightと、OpenPose Editorにあるwidthとheightを数値を同じ値に設定
2.「Load from JSON」ボタンを押し、先ほど保存した棒人間の情報が入っている「.json」を選択
3.棒人間の●をドラッグ&ドロップで移動させ、自分の好きなポーズを取らせる
今回は下記のようなポーズにしました。
4.棒人間下の「Save JSON」を押して現在の情報を保存する(保存しなくても大丈夫ですが、再度編集したい時などに便利です)
5.使用する「Send to txt2img」か「Send to txt2img」タブのControlnet部で「Enable」と「Upload independent control image」にチェックを入れ、「OpenPose」を選択しておく。
5.棒人間下の「Send to txt2img」か「Send to txt2img」で棒人間の情報を使用したい生成方法に送る。
準備
txt2imgかimg2imgで画像を生成していきます。
ここで注意することは、Preprocessorは「none」を選ぶことです。
ControlnetでOpenPoseを選ぶため、再度「openpose_full」などを選びそうになりますがそれはNGです。
すでに棒人間の情報を選択しているため、棒人間の情報から骨格情報を得ようとするので、腕などが見当たらないため上手く生成できないためです。
他は通常と同じくプロンプトやStep数などを設定して生成してください。
今回は下記のようなプロンプトで生成しました。
足の動きが分かりにくくなるので、パンツスタイルであることを追加しています。
プロンプト
masterpiece, front shot, beautifully painted, girl, young,20 years old, long hair, denim pants
ネガティブプロンプト
flat color, flat shading, nsfw, retro style, poor quality, bad face, bad fingers, bad anatomy, missing fingers, low res
出力結果
結果:棒人間に近い画像が出力されました。
しかし、うまく出力されていない画像も多く、手は上手く反映されていますが足の再現度が特に悪いです。
学習モデルに棒人間のような特別なポーズのデータは少ないため、学習が多いポーズに自然に寄せてしまうためと考えられます。
うまく反映されない時の対処法
普段見かけないようなポーズを、そのままのプロンプトとデフォルトの設定値で出力しようとしても上記のように上手く出力されません。
その時は下記2つを試してみてください。
1.「Control Weight」の数値を上げる
2.プロンプトに手足の状態を追加する
両方同時に行うことで、より棒人間に近いポーズの絵が出力されます。
「Control Weight」の数値を「1.2」、プロンプトに下記を追加します。
raising right hand, left hand is on her hip, raising right leg
プロンプトでは複雑な命令は不要なので、それぞれ動かしたい手足に対して命令を追加します。
今回は「右手を上げる」、「左手を腰に当てる」、「右足を上げる」という簡単なものを追加しました。
結果:先ほどよりも棒人間に忠実に出力されました。
今回は画像サイズの問題で足首まで見えていません。
もし実際に足先まで出すのであれば、画像サイズの横幅を変えれば、足首から先まで描画することも可能です。
OpenPoseと3D OpenPoseの比較
OpenPoseと3D OpenPoseでどちらを使用するとよいか、結果に差異があるか等は下記ブログにまとめてありますので、良ければご覧ください。
出力結果による比較
機能や使いやすさによる比較
まとめ
今回はOpenPoseEditorを使用して、某人間を自在に動かす方法について紹介しました。
改めて3行でまとめると…
・OpenPoseの機能を使うことで、棒人間のポーズを1から作成しなくて良い
・ドラッグアンドドロップで簡単に自分の思い描いたポーズをとらせることが可能
・通常ではありえないポーズをとらせることも可能
OpenPoseEditorを使用することで、微妙な調整のためにたくさんの時間を割く必要がなくなりました。
また微妙な角度の調整も可能になりましたので、より自分好みの絵にすることが可能になりました。
Editorを上手く使えば、どんなポーズでも自由自在に出力できるようになるので、ぜひ思い描いた素敵なポーズをたくさん絵にしてみてください!
StableDiffusionにお勧めのグラボ
ここまでの記事を読んでStableDiffusionを始めてみたいと思ったけど、どれを買ったか良いか分からない人向けに私の使っているグラボを紹介します。
私が使用しているグラボはNVIDIA GeForce RTX3060 搭載 グラフィックボード GDDR6 12GBになります。
StableDiffusionで絵を生成するときは、PCのCPUやメモリよりもグラボの性能が重要です。
StableDiffusionではVRAMが12GB以上であることが推奨されていますが、普通のゲーム用のグラボでは8GBのものが多いです。
経験上、一回のプロンプトで一発で望みの絵が出ることは少なく、10枚ぐらい出力してそこから近づけていく作業をします。
しかしVRAMが低いと1枚を生成する時間が長くなってしまいます(完全にVRAM依存ではないですが)
1枚の生成する時間が長いと、最終的なゴールまでの時間も多くかかってしまうので、推奨要領である12GBのグラボを買うことをお勧めします。
VRAMが低い=一度に計算できる数が少ない=生成速度が遅い
そのため解像度の高い絵を生成するのに時間がかかるだけでなく、生成できない可能性もあります(2GBや4GBなど)
Controlnet等、拡張機能を複数使用する場合やLora等の学習を行う場合は、より顕著にVRAMの差が出ます。
そのため単純にAIで出力してみたい。というだけでなく、その一歩先で色々やってみたい方は是非12GB以上を購入してみてください。
ちょっと試すだけなら、下記のような無料AI画像生成サービスを使うのも良いです。
コメント
There is definately a lot to find out about this subject. I like all the points you made
I am extremely impressed with your writing abilities and also with
the format to your blog. Is that this a paid subject or did you modify it
your self? Either way stay up the nice quality writing,
it is uncommon to see a nice blog like this one these
days..