Openpose Editor BO-NIN
Openposeデータエディタ
© 2023 NKMR AppWorks
English / Japanese
itch.io: https://nkmr-aw.itch.io/bonin
棒人間エディタ BO-NINはOpenposeデータを編集することができるエディタです。Windows上でスタンドアロンにて動作します。
Stable Diffusion WebUIやComfyUIなどでControlNetを有効にした際に使うデータ (COCO Model/18 points) や画像を作成・編集することができます。
棒人間を一人分ずつ増減します。"-“を押すと一人減り、”+”を押すと一人増えます。ただし、下限は一人、上限は五人です。五人というのはこのエディタでの制限であり、検出限界を示すものではありませんのでご注意ください。keypointの数が増えることで操作性が低下するため、そのような制限を掛けているに過ぎません。二人分くらいまでなら快適に操作できるでしょう。
キャンバス(黒い四角形の部分)の横幅を変更します。プルダウンメニューによく使うであろう数値を登録してありますが、キーボードからの数値入力も受け付けます。入力後、4の"apply resizing"ボタンを押すことで変更が反映されます。後述するスケールの部分を操作することによって見た目とキャンバスの大きさが一致しないことがありますので、ご注意ください。スケールが1のときは設定数値と見た目が一致します。上限は8、下限は4096となっていますが、256以上を推奨します。
キャンバスの縦幅(高さ)を変更します。それ以外は2と同様です。
2と3の入力値を画面に反映するボタンです。押さない限り変更されることはありません。
棒人間の描画線を変更します。"type 1"では太い直線、"type 2"では湾曲した線でそれぞれ描画されます。この設定はJSONには保存されません。PNG画像を取得する際に影響があります。
棒人間の不透明度を設定します。この設定は背景画像を読み込んだあとでないと効果がありません。
読み込んだ背景画像の不透明度を設定します。背景画像を読み込んだあとでないと効果がありません。
キャンバスの表示スケールを変更します。100%が等倍表示で、下限は10%、上限は200%となっています。マウスホイールで同様の操作をすることが可能です。マウスホイールを押し込むと100%に戻すことができます。
JSONファイルを読み込みます。拡張子が"json"のものしか受け付けません。またフォーマットやデータの整合性チェックで失敗したものは読み込みに失敗するようになっています。ファイルをキャンバス上にドラッグすることで同様の操作が可能です。
背景画像を読み込みます。拡張子が"png"、"jpg"、"jpeg"、"webp"のものしか受け付けません。ファイルをキャンバス上にドラッグすることで同様の操作が可能です。
編集した棒人間データをJSON形式で保存します。ボタンを押すとファイルダイアログが開きますので、ファイル名と保存先を指定して保存してください。
編集した棒人間の画像をPNG形式で保存します。ボタンを押すとファイルダイアログが開きますので、ファイル名と保存先を指定して保存してください。背景画像を読み込んでいる場合、保存前に移動で背景を暗転させてからファイル保存処理を行いますので、保存された画像には背景画像は表示されません。用途を考慮してそのような仕様にしてあります。
★注意点★
“save image"ボタンによるPNG画像の作成時は、画面のスクリーンショットを取得して加工する処理をしています。そのため、本ソフトウェアの手前に他のアプリのウインドウやタスクバーなどが被った状態で画像を取得すると、それらの内容が画像に映ってしまいます。画面上になにも被らない状態でボタンを押すように注意してください。PNG保存後に画像を確認していただき、他のウインドウ等の情報が映っていなければ問題ありません。キャンバスのサイズが大きすぎるときは予めスケールを調整しておき、画面内に収まるサイズにしておいてください。
また、スケールを変更している場合、表示されているそのままのサイズのスクリーンショットを取得した後、本来の設定サイズに調整するため拡大・縮小の加工をしているため、スケール100%で画像を取得した場合よりも画質が劣化することがあります。ご了承ください。ControlNetなどで使用するにあたってはあまり問題ないかと思われますが、念のためご承知おきください。スケールを50%より下げた状態では画質が著しく劣化しますのでご注意ください。
キャンバスを起動時の初期状態に戻します。スケールのみそのままの状態が維持されます。必要に応じて100%に戻してください。
エディタの現在設定を保存します。保存されないものもありますのでご注意ください。設定は"bonin.exe"ファイルがあるフォルダに"config.ini"という名前で保存されます。ファイルがない場合は自動作成され、既にある場合は上書き保存されます。
メッセージ欄です。表示されたメッセージは一定時間経過すると消えます。
keypointを一括選択・解除するボタン群です。"set them free"は選択解除、"all"は全選択、各数値ボタンは"1"ならば一人目の棒人間を一括選択、"2"ならば二人目、というふうに対応しています。存在しない人数に対応したボタンは無効化(灰色表示)されるようになっています。例えば一人分のkeypointしかない状況では"2"以降のボタンはすべて無効化されるということになります。
他の類似エディタを操作したことがある方は似たような感覚で操作していただけると思いますが、簡単に操作方法をご説明します。
棒人間の各頂点部分をkeypointと呼称します。この点のあるところでマウスを押してそのままドラッグするとその頂点のみを移動することができます。マウスボタンを離したところで移動終了します。
keypointがない場所でドラッグ開始すると選択範囲を表示する矩形枠が表示されます。この枠内にkeypointが一つ以上入った状態でマウスボタンを離してドラッグ終了すると枠内のkeypointがすべて選択された状態になります。
選択状態では以下のような表示になります。
回転ハンドルです。これをドラッグすると2の中心線を中心に選択された各keypointが座標移動します。ハンドルを離したところで移動が確定します。
選択範囲の中心点です。選択範囲の移動により中心点も移動します。これはハンドルではありません。
中心点を走る中心線を基準に線対称で変形させるハンドルです。
中心点を基準に点対称で変形させるハンドルです。
以上これらのハンドルを操作することにより選択範囲の各keypointが連動して移動します。範囲選択状態を解除するには右クリックするか、選択範囲外のどこかを一回クリックしてください。選択枠が消えたら解除された状態に戻っています。
大雑把な修正や全体の位置修正などは、この範囲選択を利用して行い、細かい調整は一点単位で位置を調整していくのがよいでしょう。
背景画像を読み込んでおくことで大まかなポーズを決めやすくなると思います。
なお、現状Openposeの画像読み込みによる自動認識には対応しておりません。
設定ファイル"config.ini"は、初期状態ではエディタの起動時に自動作成されます。既にファイルがあるときは上書き保存されます。ダウンロードしたばかりの状態に戻したいときには"config.ini"ファイルを削除してください。再度エディタを起動すれば自動作成されます。設定変更したいこともあるかもしれませんので、一部有用かもしれない設定について記載しておきます。
handlesize: 範囲選択時のハンドルが小さくて掴みづらいという方はこの数値を大きくするとハンドルのサイズが大きくなります。最小値は3、最大値は10、初期値は5です。
msgtime: メッセージが消えるのが速すぎるという場合にはこの数値を大きくすると表示時間が伸ばせます。単位はミリ秒です。1000が1秒ということです。最小値は500、最大値は30000、初期値は3000です。
wheel: マウスホイールの回転でスケールを変更できますが、ホイールの向きと拡大縮小を逆に対応させたいという場合はこれを変更してください。1か-1のみ設定可能で、初期値は1です。-1にすると逆になります。
l1~l15: widthとheightの候補一覧に表示されるサイズ数値を15個まで登録が可能です。設定値は128から2048までの整数のみ有効です。数字以外を入れると起動時にエラーが発生します。範囲外の数値を設定すると最小値か最大値が設定されます。
このアプリはシングルスレッドで動作しています。処理が重いときは電源プランの変更をお試しください。"省電力"から"バランス"や"高パフォーマンス"に変更すると若干操作性が向上することがあります。