画像からポーズを推定し、そこから新たな画像を生成できる機能「OpenPose」があります。
ControlNetで使える機能ですが、商用利用は有料となっており、ビジネスで使うには少しハードルが高いものでした。
しかし、新しくControlNetに追加された「DWPose」は、Openposeとほぼ同じ精度でありながら商用利用が可能となっています。
今回はこのDWPoseの使い方についてご紹介します。
・Stable Diffusion Web UIのインストールはこちら
DWPoseとは?
DWPoseは、既存の画像からポーズ推定が行える機能です。
抽出したポーズを元に新しい画像が生成できます。
Stable Diffusion Web UIではControlNetの一部として追加されており、誰でも簡単に使うことができます。
Stable Diffusion Web UIにControlNetをインストール
まずはStable Diffusion Web UIにControlNetをインストールする必要があります。
Extensions→Install from URL→URL for~に以下のURLを入力して、Installボタンをクリックしてください。
https://github.com/Mikubill/sd-webui-controlnet.git
インストール後にinstalledタブにある「Apply and restart UI」をクリック、または再起動すればインストールは完了です。
OpenPoseのモデルをダウンロード
ControlNetを初めて使う方は、OpenPoseのモデルが必要です。
huggingfaceから「control_v11p_sd15_openpose.pth」をダウンロードしてください。
https://huggingface.co/lllyasviel/ControlNet-v1-1/tree/main
モデルは以下のパスに移動します。
stable-diffusion-webui\models\ControlNet
これで準備は完了です。
他のControlNetの機能についてまとめた記事もあるので、良ければこちらも参考にしてみてください。
ControlNetでDWPoseを使ってみる
txt2imgにControlNetのタブが追加されているので、そちらを開きます。
画像が取り込めるようになっているので、ここにポーズ推定したい画像をD&Dしてください。
今回こちらのフリー素材をお借りしました。
https://www.pexels.com/ja-jp/photo/458766/
パラーメータを以下のように設定します。
Enable | チェック ※ControlNetの有効化 |
Pixel Perfect | チェック ※元画像と同じサイズで画像情報を抽出 |
Low VRAM | グラボのVRAMが8GB以下ならチェック推奨 |
Control Type | OpenPoseをチェック ※自動でPreprocessor・modelが選択される |
Preprocessor | dw_openpose_fullを選択 ※デフォルトがopenpose_fullのため手動で切り替え |
使用モデル、画像サイズ、サンプラー、プロンプト・ネガティブプロンプトなどは自分の好きなもので大丈夫です。
これで生成すると元画像のポーズを推定し、それを元に画像生成ができます。
初回使用時にDWPoseのプリプロセッサーが自動でダウンロードされるため、別途インストールする必要はありません。
DWPoseでポーズ推定のみ行う方法
画像を取り込んだ状態でPreprocessorを選択し、間にあるアイコンをクリックするとポーズ推定のみ行えます。
推定した画像をプレビューしたい場合は「Allow Preview」にチェック。右上の矢印ボタンからダウンロードも可能です。
もし生成時に抽出した画像を自動保存したい場合は、settingタブで設定できます。
ControlNetの項目にある「Allow detectmap auto saving」にチェックを入れると、outputフォルダに「detected_maps」が作られ、その中に画像が保存されます。
出力結果に抽出した画像の表示が不要な場合は、「Do not append detectmap to output」にチェックを入れると、出力には表示されなくなります。
DWPoseは商用利用可能なの?
DWPoseのライセンスは「Apache License 2.0」が採用されており、商用利用可能です。
ライセンスのページ上部にPermissions(権限)が記載され、Commercial use(商用利用)にチェックが入っているのがわかるかと思います。
・全文
DWPose/LICENSE at onnx · IDEA-Research/DWPose
日本語で解説してくれている方もいるので、気になる方はこちらも確認してみてください。
Apache License 2.0とは?商用できる?利用条件をやさしく解説 | Beginner's Design Note
ライセンス導入 まずはここから Apache License 2.0 | yamory Blog
DWPoseがエラーで使えない場合の対処法
初回導入時に以下のエラーが出てDWPoseが使えませんでした。
cv2.error: OpenCV(4.8.1) D:\a\opencv-python\opencv-python\opencv\modules\dnn\src\onnx\onnx_importer.cpp:274: error: (-5:Bad argument) Can't read ONNX file: C:\Users\Users\デスクトップ\stable-diffusion-webui\extensions\sd-webui-controlnet\annotator\downloads\openpose\yolox_l.onnx in function 'cv::dnn::dnn4_v20230620::ONNXImporter::ONNXImporter'
内容は全く理解できませんが、ONNXファイルが読み込めないというエラーのようです。
検索してもControlNetをアップデートしたら直ったという報告しかなく、ChatGPTに聞いたらパスに日本語が入っているからでは?とのこと。
エスケープすれば良いと言われたのですが、どのファイルでパスを指定しているかもわからなかったため、Stable Diffusion Web UIをCドライブ直下に再インストール。
そしたら普通に動きました。
本当に日本語が原因かはわかりませんが、同じエラーの方は再インストールで直るかもしれません。
なお、容量に余裕があれば、再インストールは元のファイルを削除せずに行った方がいいです。
モデルやConfigなどを上書きすれば、普段使っていた状態に復元できます。
人によってはそれぞれ拡張機能に対応したファイルなどもあるため、完全に復元できるまでは取っておきましょう。
Stable Diffusion Web UIでDWPoseを使う方法まとめ
今回はStable Diffusion Web UIでDWPoseを使う方法についてご紹介しました。
OpenPoseの機能がすごい便利だったため、ビジネスに画像生成AIを活用している方は有料という部分がネックに感じる方も多かったと思います。
今回DWPoseの登場で商用利用可となり、ビジネスとしても幅広い画像生成が可能となりました。
ビジネス関係なくDWPoseを使えばさまざまな画像生成が楽しめるので、興味がある方はぜひ使ってみてください。
参考になれば幸いです。