ControlNet OpenPoseで複雑なポーズを簡単に反映させよう!
通常のプロンプトでは表現が難しいポーズや動作も、OpenPoseを使えば簡単に抽出し、画像生成に反映させることができます。
この記事では、基本的なOpenPoseの使い方から複数人のポーズ指定や編集方法までを詳しく解説します。
ControlNetのOpenPoseとは
ControlNetのOpenPoseは、Stable Diffusionの拡張機能の1つで、ポーズを指定して画像生成を行う機能です。
OpenPoseを利用することで、プロンプトでは表現しにくい複雑なポーズも、簡単に抽出し、新たな画像に反映させることができます。
また、分かりやすい構図であれば、複数の人物のポーズを正確に抽出し、反映させることが可能です。
DW OpenPoseとは
DW OpenPoseとは、OpenPoseのプリプロセッサで、画像の読み取り機能を持つツールです。
従来のOpenPoseに比べて、指や腕の細部や表情まで正確に読み取ることができます。
実写風の画像はもちろん、アニメ系の画像やイラストからも細部をしっかり抽出します。
ControlNetのOpenPoseの使い方
ControlNetのDW OpenPoseを使ってポーズや構図を指定する方法を紹介します。
まずは、Stable DiffusionにControlNetをインストールする必要があります。
Stable Diffusion Web UIの拡張機能タブから「URLからインストール」を選択します。
「拡張機能のリポジトリのURL」の入力欄に下記のControlNetインストール用のURLを入力し、インストールボタンをクリックします。
https://github.com/Mikubill/sd-webui-controlnet
ControlNetのインストールが完了したら「インストール済」タブに移動し、「適用してUIを再起動」ボタンをクリックします。
Stable Diffusion Web UIを再起動し、シード値の下にControlNetタブが表示されていれば設定は完了です。
次にStable Diffusionで「OpenPose」を使う準備をします。
Hugging Faceから必要なOpenPoseモデルデータをダウンロードします。
- control_v11p_sd15_OpenPose.pth
- control_v11p_sd15_OpenPose.yaml
SDXLでOpenPoseを利用する場合は、Hugging FaceからSDXL用のモデルファイルをダウンロードします。
- kohya_controllllite_xl_openpose_anime.safetensors
- kohya_controllllite_xl_openpose_anime_v2.safetensors
- t2i-adapter_diffusers_xl_openpose.safetensors
- t2i-adapter_xl_openpose.safetensors
- thibaud_xl_openpose.safetensors
- thibaud_xl_openpose_256lora.safetensors
Stable Diffusion Web UIを「
models」>「 ControlNet」の順で開き、先ほどダウンロードしたファイルを配置すれば完了です。SDXLに関しては下記の記事で紹介しています。
画像からポーズ(棒人間)を抽出して生成する方法
ここから実際にStable Diffusionで「DW OpenPose」を利用していきます。
まずは、ポーズを抽出したい画像を読み込みます。
「有効化」、「Pixel Perfect」、「Allow Preview」、「OpenPose」にチェックを入れます。
プリプロセッサから「dw_openpose_full」、モデルに「control_v11p_sd15_openpose」を選択します。
プリプロセッサとモデルの間の「💥ボタン」を押すとポーズが抽出され棒人間の画像が生成されます。
抽出が完了したら、プロンプト欄にポーズ以外のプロンプトを入力します。
Checkpointは、ポーズの抽出に利用したOpenPoseのモデルに合わせます。
※今回は「control_v11p_sd15_openpose」を利用したのでSD1.5のCheckpointを使います。
プロンプトを入力して生成すると、ポーズを反映した画像が生成されます。
ControlNetのOpenPoseで複数人ポーズ指定
ControlNet OpenPoseでは、1人だけでなく、複数人のポーズも抽出して画像生成が可能です。
複数人の抽出であっても、基本的な方法は1人の時と同じになります。
2人の場合
2人分のポーズが抽出され、別々の動きが反映されます。
6人の場合
多人数であっても、それぞれ異なるポーズを正確に抽出し、生成できます。
ControlNetのOpenPoseで棒人間を編集する方法
ControlNetのOpenPoseで抽出した棒人間の画像は、OpenPose Editorを利用して編集できます。
ここからはOpenPose Editorの導入方法と使い方を解説していきます。
「拡張機能」→「URLからインストール」→「拡張機能のリポジトリのURL」に下記のURLを入力してインストールボタンをクリックします。
https://github.com/huchenlei/sd-webui-openpose-editor.git
インストールが完了したら「設定タブ」→「UIの再読み」を行いStable Diffusion web UIを再起動します。
まずは、素材画像から棒人間を抽出します。
抽出完了後、「Edit」をクリックし、OpenPose Editorを開きます。
抽出された棒人間画像の線を操作して、細かい部位を調整します。
サイドバーの編集画面を開くと、座標単位まで細かく編集ができます。
編集が完了したら「ControlNetにポーズを送信」ボタンをクリックします。
プレビュー画面に編集した棒人間画像が反映されているのを確認します。
プロンプトを入力して生成を開始します。
OpenPose Editorで棒人間の右手を変更し、ポーズに反映させました。
ControlNetのOpenPoseが反映されない?
ControlNetのOpenPoseが反映されない場合は、次の3点を確認します。
- checkpointとOpenPoseのモデルが合っているか
- プロンプトに余計な表現が入っていないか
- 試行回数が足りなくて生成の失敗が続いている
checkpointとOpenPoseのモデルが合っているか
ControlNetを使用して画像を生成する場合、SD1.5~SDXLでモデルデータが異なります。
新たに生成する画像をSD1.5のcheckpointを使用する場合は、OpenPoseのモデルもSD1.5用の学習データを使う必要があります。
OpenPoseのモデルはファイル名にsd15かxlと表記されているので、見て確認しましょう。
プロンプトに余計な表現が入っていないか
OpenPoseを使用して画像を生成する場合、ポーズに関するプロンプトが入っていないか確認しましょう。
変更内容とプロンプトが競合してしまう場合、反映されないことがあります。
試行回数が足りなくて生成の失敗が続いている
OpenPoseは、複雑な構図や複数人においての細部が反映しにくい特徴があります。
モデルとの相性もありますが、成功に至るまで生成回数がたりていない場合があります。
Control Modeやシード値を固定しながら調整を重ねていきましょう。
ControlNetのOpenPoseの商用利用に関して
ControlNetのOpenPose内で使用される「棒人間モデル抽出」は、アメリカのカーネギー・メロン大学の持つライセンスであり、非商用利用のみ許可されています。
販売や特典を含むサービスなど、商用利用を行った場合は2万ドルの支払い義務が発生するため注意が必要です。
一方、Dw OpenPoseは「Apache 2.0 license」に基づいて商用利用が許可されています。
性能面でもOpenPoseより高精度な結果を得られるため、商用利用を考えている場合は、Dw OpenPoseを積極的に利用することをおすすめします。
ControlNetのOpenPoseを快適に使うにはピクソロがおすすめ
Stable DiffusionでControlNet OpenPoseを快適に利用するには、16GB以上のVRAMが搭載されたパソコンが推奨されます。
しかし、「PICSOROBAN(ピクソロ)」なら、Webブラウザから利用できるため、高スペックなパソコンがなくても簡単に画像生成ができます。
ピクソロのメリット
- すぐ使える:ブラウザから簡単にアクセス可能。
- リーズナブル:30分約60円で利用可能。
- 無制限作成:時間内であれば何枚でも画像生成が可能。
ブラウザで簡単!ピクソロ!
PICSOROBANは、インストールの必要なくブラウザで簡単にStable Diffusionを利用できます。
さらに、今ならリリースキャンペーンとして無料会員登録するだけで、2,000ポイント(約2時間分)貰えます!
詳しい使い方は下記の記事で紹介しています。
\今なら約2時間無料で使える!/
Stable Diffusionが快適に使えるおすすめのパソコンやグラボに関しては下記の記事で紹介しています。
ControlNetのOpenPoseでさまざまなポーズを楽しもう!
ControlNetのOpenPoseを使いこなせれば、あらゆるポーズを指定できます。
特に2人以上の構図はプロンプトでの調整が難しいため、OpenPoseはStable Diffusionを使いこなす上で欠かせない機能です。