Stable DiffusionのControlNetを利用すると、生成画像のポーズを元画像からトレースできます。このとき、元画像のポーズは関節を節点として表現された棒人間のような描写になりますが、Openpose Editorという拡張機能を使うとその節点を自由に動かせることがわかりました。
最初は編集箇所が見つからず諦めかけましたが、画像を読み込ませた後に構図抽出を行い、editボタンを押すことでポーズの編集ができることに気づきました。
この記事では、Openpose Editorの具体的な操作方法をお教えします。実際に使ってみることで、どのように画像をコントロールできるのかをご紹介します。
この記事は以下のような方に向けて書いています。
- Stable Diffusionユーザー
- ControlNetに興味がある人
- イラストのポーズ作成に悩んでいる人
- Openpose Editorでポーズ編集が可能
- 画像読み込み後の構図抽出が重要
- ポーズ編集で画像コントロールが可能に
前提条件
Openpose Editorを利用するためにはまずControlNetのインストールとControlNetのモデル入手が必要です。以下にそれぞれの手順を記載します。
ControlNetのインストール方法
Stable Diffusion WebUIの画面でExtensionsをクリックします。
画像の手順で実行していきます。
https://github.com/Mikubill/sd-webui-controlnet
ダウンロードしたファイルはステイブルdiffusionの以下のディレクトリに格納してください。
インストール後はInstalledタブに移動、 Apply and restart UI をクリックしてリロードしてください。
ControlNetのモデルをダウンロードする
次にControlNetのモデルをダウンロードします。モデルは入力画像の特徴抽出に利用されます。
まずは以下のページアクセスしてください。
https://huggingface.co/comfyanonymous/ControlNet-v1-1_fp16_safetensors/tree/main
次にサイト内から control_v11p_sd15_openpose_fp16.safetensors を探してダウンロードします。
ダウンロードしたファイルを stable-diffusion-webuiディレクトリ->models->ControlNet に格納して完了です。
Openpose Editorのインストール方法
Stable Diffusion WebUIの画面でExtensionsをクリックします。
画像の手順で実行していきます。
https://github.com/huchenlei/sd-webui-openpose-editor
インストール後はInstalledタブに移動、 Apply and restart UI をクリックしてリロードしてください。
Openpose Editorの利用手順
Openpose EditorはControlNet機能の中で利用していきます。txt2img、img2imgのどちらでも利用できますが、今回はtxt2imgで試したいと思います。プロンプトは適当ですが以下のように記載しています。
トレース元の画像をControlNetに登録
Openpose Editorを使うためにはまずControlNetの項目を開きます。ControlNetの項目はプロンプト入力欄よりさらに下の方にあります。ControlNetのトグルをクリックして開いたらトレース元となる画像を登録します。これはドラッグドロップもしくはファイル選択で行ってください。
Openposeの設定後、ポーズを抽出する
次にControlNetの設定を行います。
- EnableにチェックをいれてControlNetを有効化します。
- Control Type をOpenPoseで指定します。
- Preprocessorにopenpose_fullを指定します。
- Modelにcontrol_v11p_sd15_openpose_fp(事前にダウンロードしたモデル)を指定します。
- アイコンをクリックするとポーズ抽出が開始されます。
Openpose Editorでポーズを変更する
抽出が完了すると、入力画像の右側に棒人間の画像が現れます。この棒人間の右下にあるEditボタンを押すとOpenpose Editorの編集画面に移動します。
画面右側にある画像の節点をドラッグアンドドロップで移動させることができます。今回は手の部分の節点を少し内側に寄せて、手を腰に当てるようなポーズに変更しました。変更が完了したら、画面左側にあるControlNetにポーズを送信を押してOpenpose Editorを閉じてください。Openpose Editorを閉じた後にGenerationボタンを押せば画像生成が始まります。
生成された画像を確認
上記が生成された画像になります。右側の画像はOpenpose Editorで編集した棒人間の骨格ですが、骨格に合わせて画像が生成されていることがわかります。トレース元の画像は金髪の少女でしたが、プロンプトでred hairを指定しているので髪の色は赤色になっています。
利用時の注意点
派手にポーズの変更をしすぎない
私の環境では、節点を複数選択した状態でポーズを大きく変更しようとするとアプリケーションが落ちる場合がありました。同様の症状になった場合は節点を一つずつ修正するようにしてみてください。またポーズが明らかに現実的でない場合は構図に反映されない場合があるようです。構図反映されない場合は修正量を少し小さく調整することをお勧めします。
コピーアンドペーストでトレース元の画像が上書きされてしまう
ControlNet側にトレース元の画像を登録した後にプロンプトにコピーアンドペーストを行うと、登録した画像がテキストで上書きされてしまうようですのでご注意ください。
まとめ
本記事ではOpenpose Editorの利用方法について紹介しました。Openpose Editorは複数種類があるようなので、私と同じhuchenlei/sd-webui-openpose-editorを利用している方は参考にして頂ければと思います。ControlNet自体がかなり強力な拡張機能なので、Openpose Editorでさらに便利になりますね!画像生成楽しみましょう!