こんにちは!悠です!
ControlNetのポーズ制御の中でも、おそらく一番有名なプリプロセッサに「Openpose」があります。

棒人間を使ってポーズを再現します
今回はControlNetと連携して、Openposeのプリプロセッサで出力した棒人間を、WebUI上でリアルタイム編集できる拡張機能「Openpose Editor」に関して紹介していきます。

正式にControlNetの中に組み込まれた拡張機能です!
「Openpose Editor」の導入方法
Openposeで出力した棒人間を編集するツールは複数あるので注意してください。
上のリポジトリの拡張機能がControlNetと連携しているものです。
Google Colaboratory版の場合
下記の方法で紹介している「maintained by Akaibu」のノートブックを使って、拡張機能「Openpose Editor」を導入していきます。
まだご覧になっていない方は、まず最初にこちらを準備しておいてください。


Google Driveからモデルデータを読み込むセルの下に新しくセルを作成し、下記のコードを入力してください。
#Openpose Editorをインストール
%cd /content/stable-diffusion-webui/extensions/
!git clone https://github.com/huchenlei/sd-webui-openpose-editor /content/stable-diffusion-webui/extensions/sd-webui-openpose-editor
%cd /content/stable-diffusion-webui
ローカル版の場合
「Extensions」→「Install from URL」の「URL for extension’s git repository」に下記のURLを入力しInstallをクリックしましょう。
https://github.com/huchenlei/sd-webui-openpose-editor
「Openpose Editor」の使い方
「Openpose Editor」を導入しても、WebUI上にタブが追加されたりはしません。
まずはControlNetでプリプロセッサの処理のみを行い、棒人間の画像を出力しましょう。
txt2imgでControlNetの項目を開き、EnableとAllow Previewにチェックを入れ、Preprocessorをopenpose fullにして、右側にある赤い火花のマークをクリックしてください。
素材画像をもとに作成された棒人間の画像が出力されます。
棒人間の画像の右下にあるEditをクリックしてください。
「Openpose Editor」の編集画面が開きます。
表示されている棒人形の各接点をマウスでつまんで自由自在に動かすことができます。体の部分だけでなく、指や顔の部分を編集することも可能です。
ちなみにキャンバスのサイズは、マウスホイールで拡大・縮小することができます。
手のひらの部分を範囲指定して、下の画像のようにマウスで腕を上下左右に動かすことも可能です。
左下にあるPersonというトグルを開いて、接点を数値で細かく動かすことも出来ます。マウスで大まかな位置を決めた後の微修正に最適ですね。
編集が終わった後は、左上にあるSend pose to ControlNetをクリックしましょう。
「Openpose Editor」で再編集する方法
「Openpose Editor」で編集した棒人間のデータをjsonファイルに保存しておくことで、簡単に構図を再編集することができます。
「Openpose Editor」で編集が終わった後は、左下にあるDownload JSONをクリックして構図をjsonファイルに保存しておきましょう。
ダウンロードしたjsonファイルをUpload JSONから選択することで、保存した状態から編集を再開することができます。
アップロードすると棒人間が2重になりますが、上の画像の例でいくとPerson15(古い方)を×ボタンで削除すると1つになります。
まとめ
以上が「Stable Diffusion WebUI」で、ControlNetと連携してOpenposeのプリプロセッサで出力した棒人間を、リアルタイム編集できる拡張機能「Openpose Editor」の紹介でした。
ControlNetにおける構図制御の幅が広がること間違いなしですので、ぜひ導入してみて下さいね!
では、ここまで読んでいただきありがとうございました。
コメント
自分でも探してみているのですがこのeditorを直接開けれたら便利だと思うのですが、直接開く方法は無いでしょうか?