カメラから見たボーンの配置をCOCOの2d keypoint配列準拠で書き出すBlenderアドオンです
このアドオンはControlNetを使用した指定ポーズでの画像生成を目的として作られています
ControlNet: https://github.com/lllyasviel/ControlNet
アニメーションのフレームをまとめて書き出したり、複数アーマチュアの書き出しも可能です
Rigifyで生成されたリグはボーン対応関係の自動設定が可能です
キーポイント画像から実際の画像を生成するには以下のAUTOMATIC1111 WebUI向けExtensionなどが便利です。
https://github.com/Mikubill/sd-webui-controlnet
書き出したjsonから画像を生成する実装は以下のColab、リポジトリがあります
ローカルでの生成はVRAM8GB以上のGPUが必要です
https://github.com/mili-inch/ControlNet
Blender上部の編集メニューよりプリファレンス->アドオンから右上のインストールをクリックし、zipファイルを解凍せずに選択してください
Animation:B2ConrtolNetのチェックボックスをオンにするとインストール完了です
3DViewにて、Nキーより呼び出せる右メニュー中に操作パネルが追加されます シーン中にカメラが最低一つ必要です
- アーマチュア: 出力するアーマチュアを設定します チェックボックスで出力するか切り替えが可能です アーマチュアの名前はjsonに書き出されます
- 各ボーン: 指定されたボーンがkeypointとして座標がjsonに書き出されます
- ヘッド・テール: ボーンの根本・先端のどちらをkeypointの座標とするかを選択できます
- Output Size: 出力される画像のサイズ 縦横のうち短い側がこの長さに揃えられます
- Export as Image: カメラから見た現在のキーポイントを画像として保存します
- Export All Frames as Images: カメラから見た全フレームのキーポイントを連番画像として保存します
- Export as JSON: カメラから見た現在のキーポイントをjsonとして保存します
- Export All Frames as JSON: カメラから見た全フレームのキーポイントをjsonとして保存します
- Q.生成するフレーム数を変更したい
- A.プロパティパネルの開始フレーム・終了フレームで設定してください
- Q.ボーンとKeypointの対応関係は?
- A.https://cmu-perceptual-computing-lab.github.io/openpose/web/html/doc/md_doc_02_output.html
- Rigifyによって生成されたリグであればアーマチュアを設定した際に自動で対応関係が設定されます
- Q.生成画像の身体が裏返ったりする
- A.Rigifyの標準よりも首のボーンを下げた方が良いようです
- Q.jsonの形式は?
- A.以下のような感じです
{
resolution: int[2],
fps: int,
frames: [
{
frame_current: int
armatures: [
{
name: str,
keypoint_indices: int[18]
}
],
keypoints: int[len(armatures)*18, 2]
}
]
}