こんばんは、スタジオ真榊です。今日は前回紹介したChatGPT4oやGeminiといったLLM系画像生成の超進化を受けて、副次的にControlnetの「Openpose」が非常に使いやすくなったことについて特集したいと思います。
Openposeは、棒人間のようなカラフルな「ボーン」(下図)をお手本画像から取り出して、人物の輪郭にとらわれず姿勢だけを制御できるControlnetです。プリプロセッサを使ってこのように四肢や顔の位置を抜きだすことで――

このように、おおむね同じ姿勢の画像を生成できます。AnytestやLineartのように線画を継承するCNだと、髪型や体形、服装まで引き継がれてしまいますが、Openposeは姿勢情報だけを継承できるのがポイント。プロンプトによって描かれる内容を大きく変更することができます。

ただ、思ったような姿勢のボーンを作るにはそれなりに手間が掛かりますし、たいていのコントロールは月須和・那々さんのAnytest v3&v4(※輪郭・線画は保持しつつ塗りをプロンプトで変化させられるCN)を応用することでなんとかなってしまうこともあり、個人的にOpenposeを使う場面は激減していました。ところが今回、ChatGPT4oなどLLMでの画像生成がかなり思い通りにできるようになったことにより、テキスト指示では難しいポーズや構図をOpenposeで出せることに気づきましたので、どれくらいのことができるかいろいろと検証してみました。
※Controlnetの基本的な使い方や種類などについてはこちらの記事にまとめてありますので、初めて触る方は併せてご参照ください。
1.Openposeの基本
おさらいになりますが、Openposeはプリプロセッサに読み込ませた画像から、表情やポーズ、手の位置や形といった位置情報だけをボーンとして抽出し、同じポーズをした全く別の画像を生成できるControlnetです。このように、Controlnet画面でボーンを抜き出したい画像を読み込ませた後、プリプロセッサを選び、「💥」ボタンを押すことでボーン抽出することができます。

プリプロセッサは「openpose」とついたものを選べばOKです(上段に並んでいるメニューから"Openpose"を選択すると自動抽出されます)。handやfaceとあるのは、手や顔だけのボーンを抜くもので、fullが全身用。この中ではdw_openpose_fullが一番高性能かなと思います。

・Openposeはライセンスにご注意
従来のOpenpose技術のソースコードはカーネギーメロン大(CMU)のGitHubリポジトリで公開されており、非商用利用は無料ですが、商用利用には年間$25,000のライセンス契約が必要と明記されています。これをベースにしたツールやモデルを使って画像生成を行った場合、その成果物が商用利用(販売・広告収益・マネタイズ投稿など)に該当すると、法的にグレーまたはNGになる可能性が指摘されてきました。
年間$25,000のライセンス料というのは、例えばスポーツの分析に使うとか、映画制作に使うようなレベルの商用用途を想定していると思いますが、AIイラストユーザーも対象にならないとは誰にも言えません。
その点、プリプロセッサ「DW openpose full」に使われているDWpose技術はApache 2.0ライセンスなので、そうした心配をせず活用することができます。
少し古い記事ですが、DW openposeについてはこちらの特集で紹介しています。
ただ、便利な「DW」であっても、イラストからはなかなか正確にボーンを抜き出せないことが多いです。こちらの例のように、下半身がどこにあるのか見失ったり、パースの利いた手が奇形化してしまったりして、そのまま使えないことが多発します。もちろんうまくいくこともそれなりにありますが、「イラストより写真向け」の技術であることは押さえておきましょう。

・「Openpose editor」でポーズ編集
抽出したボーンはそのままトレースするだけでなく、拡張機能によってあとから自由に調整することができます。プリプロセッサでボーンを抽出したら、画面右側の「Edit」(※緑色のPマークがついていない方)をクリックすると、このようにSDwebUI openpose editorが起動します。reForge等にはデフォルトでインストールされているはずですが、該当部分にボタンがない場合は個別にインストールしておきましょう。

上の図のように、画像から自動的に四肢や顔の位置が抜き出され、画面右側にボーンとして表示されています。各ドット(点)を左クリックしてドラッグすれば位置を動かせますし、何もないところでドラッグすると複数のドットを範囲選択もできるので、地道な作業にはなりますが、好みのポーズを自分で作ることが可能です。SPACEかFキーを押しながらドラッグするとキャンバス移動、マウスホイールでズームイン/アウトができます。
キャンバス上に2人目以降の人物が検出された場合、左下にPerson1、2、3…と並びます。不要な場合や誤検出の場合は目のボタンを押して人物ごと非表示にしましょう。上の例では、背景のモンスターの部位が一部検出されてしまっています。このままにしておくと生成結果に悪影響があるので、点の上で右クリックして消しましょう。
「人物を追加」をクリックすると、このように雑な感じで棒人間が出てくるので、適宜ドラッグ操作して人物を増やすこともできます。ボーン配置が完成したら、左上の「Controlnetにポーズを送信」で、さきほどの検出結果に上書きされます。

2.2025年現在の人気Openposeモデル
次は、プリプロセッサで読み込んだボーンを読み込ませるOpenposeモデルについて。これまでさまざまなものが出ていますが、現在流行しているIllustriousXL用なら、Noobai向けのopenposeモデル「noob_openpose」が比較的強いかなと思います。こちらでDLでき、model/controlnetフォルダに保存することで使用できるようになります。DL時はファイル名がopenpose_preとなりますので、わかりやすいよう「noob_openpose」などとリネームして保存しておくとよいでしょう。
こちらもIllustrious向けOpenposeモデル。こちらもDL時「IllustriousXL_openpose」とリネームしておかないと、パッと見で分かりにくいです。
もちろん、ponyやAnimagineといった非Illustrious系のSDXLモデルで使えるモデルもいろいろと揃っています。代表的なものはこのあたり。
・thibaud / Openpose
・xinxir / Openpose
それぞれ、files and versionsから該当モデルをmodels/controlnetにDLすればOKです。(数ギガあるのですぐわかるはず)
3.なぜLLMでOpenposeが復権するのか
さて、なぜLLM系画像生成の隆盛がOpenposeの復権と結びつくのかと言いますと、「写真調のAI画像を思い通りの構図でラクに生成できるようになったから」です。
これまで、Openposeで使うボーンを用意するには、自分で撮影した写真やフリー素材、posemaniacsなどから抽出するか、手元のAI絵から抜き出すのが一般的でした。二次元イラストだと複雑なポーズになるほどプリプロセッサがうまく働かず、 このように何も検出されないこともあったからです。棒立ちのボーンをせこせこドラッグして作ることもできなくはないのですが、非常に面倒でした。

各プリプロセッサは基本的に写実的な画像で学習されているため、イラストよりも写真調の画像のほうが上手にボーンを抜き出せます。そこで、「ボーンを抜き出す専用のAI写真をLLMに頼んで作ってもらえばいいじゃないか」というのが今回の特集のポイント。人物のポーズを指定するだけでなく、その人物がキャンバス上のどの位置にいるかもコントロールしやすいので、構図をよりイメージ通りに構築することが可能になっています。
例えばこのような三面図画像をLLMに出してもらってボーンを抜けば、このように同じポーズのミナちゃんを生成することができました。(四肢の長さや体型も同じになる点に注意)


・「ポーズ」ではなく「構図」を作る
先日投稿したこちらのファンアートも、LLMを活用してOpenposeで作ったもの。左手の指輪に視線を送り、右手で口元を押さえる様子を真横からとらえた構図は、LLMとの会話の中で固めていきました。
視線誘導的には、右上の目から一直線に左下の指輪へ向かう対角線をメインに、3分割構図(横方向と縦方向にキャンバスを三分割したとき、交点に目や指輪がくる)を意図しています。あまり正確ではありませんが、窓枠・指輪・目の位置がそれぞれおおむねキャンバスを三分割した位置にあり、対角線上に重要なモチーフが配置されているので、気持ち良い構図になる(といいな…)という発想ですね。粗密でいうと、左上や右下が寂しくなるので、右下に桜の花びらやマークを入れて視線が回るように誘導しています。
スレッタの瞳から指輪へ、その先のミオリネさんを想像させたあと、粗な左上でなく次に密な右下に巡り、中段右の光と花びらに行って、再び対角線に戻ってくる意図です。素人ですので、実際にできているかはわかりませんが…
LLMに頭の中のイメージを伝え、いろいろと相談しながら構図を提案してもらうと、このように気持ちのよい位置にメイン要素が配置されるボーンを作ることができることが実感できました。クリスタの場合、このアセットで上下三分割のグリッドを一発表示できるので、生成画像を少し拡大・ドラッグして視線が来てほしい要素がそのラインに乗るように調整してあげるだけでも見栄えがよくなると思います。
ちなみに、アセットを使って正確に引いた3分割ラインはここ。このように位置がずれていますので、本当は赤のラインではなく緑のラインに瞳や指輪、窓枠が来るように調整するとより気持ちのよい感じになるはずです(完全にぴったりだとそれはそれで気持ち悪そうですが)










