ComfyUI OpenPose/DensePose|人物ポーズ制御の実務ガイド
AIで画像を生成するとき、人物のポーズが思いどおりにならず困った経験はないでしょうか。プロンプトだけでは「右手を上げて立つ」「椅子に座ってくつろぐ」といった具体的な姿勢指定が難しく、何度もやり直すことになりがちです。
この課題を解決するのが、ControlNet(コントロールネット)のOpenPoseとDensePoseです。人体の関節点や表面情報をマップとして抽出し、生成AIに正確なポーズ指示を与えられます。
この記事では、ComfyUI(ノードをつないで画像生成AIを動かすツール)でOpenPoseとDensePoseを使ったポーズ制御ワークフローの構築手順を解説します。建築パースでの人物配置への応用や、手指の破綻対策まで、現場で使えるノウハウをまとめました。
OpenPoseとは?人体の関節点でポーズを制御する技術
OpenPoseは、画像から人体の関節点(キーポイント)を検出し、スケルトンマップとして可視化する技術です。建築パースで人物を配置するときに参考写真の棒人間だけ抜き出して下絵にする作業を、自動で肩代わりしてくれるようなイメージです。カーネギーメロン大学が開発し、リアルタイムで複数人の姿勢推定ができる点が特徴となっています。
OpenPoseの仕組み(キーポイント検出とスケルトンマップ)
OpenPoseは、人体の主要な25か所の関節点を検出します。目、鼻、首、肩、肘、手首、腰、膝、足首などのポイントを特定し、それらを線でつないだ棒人間のような図(スケルトンマップ)を生成する仕組みです。
検出にはPart Affinity Fields(PAF)という技術を使っています。各関節間のつながりをベクトル場として推定し、複数の人物が写っていても個別の骨格構造を正しく組み立てられます。
スケルトンマップの精度は、最終的な画像品質を大きく左右します。参照画像の人物がはっきり写っているほど、高精度なマップが得られます。下絵が整うほど仕上がりの破綻が減るのは、パース制作と同じ構造です。
OpenPoseモデル派生(body / face / hand / full)の使い分け
ComfyUIで使えるOpenPoseには、検出範囲の異なる4種類のモデル派生が存在します(2026年4月現在)。
| モデル種別 | 検出対象 | 主な用途 |
|---|---|---|
| OpenPose(body) | 体の関節点のみ | 全身の姿勢制御。軽量で高速 |
| OpenPose_face | 顔のランドマーク | 表情・顔向きの精密指定 |
| OpenPose_hand | 手指の関節点 | 手のポーズが重要なシーン |
| OpenPose_full | body+face+hand全て | 精密な全身ポーズ制御 |
建築パースでの人物配置は、全身の姿勢を固定できればよい場合がほとんどのため、body または full が基本の選択肢です。顔や手のアップが不要なら軽量な body を選ぶと処理も軽く、検出精度も安定しやすい構成になります。
ControlNetとOpenPoseの連携で何ができるか
ControlNetにOpenPoseのスケルトンマップを入力すると、生成画像の人物が指定したポーズを正確に再現します。プロンプトで服装や背景を指定しながら、体の姿勢だけをマップで固定できるため、意図どおりの構図が実現しやすくなります。
具体的には、次のような制御が可能です。
- 立ち姿、座り姿、歩行中など基本的な姿勢の指定
- 両手の位置や顔の向きの細かな調整
- 2人以上の人物を異なるポーズで同時に配置
プロンプトだけでは難しい複数人の構図指定も、OpenPoseなら各人物の骨格を個別に設定できます。
DWPoseという選択肢(OpenPoseの後継)
海外のStable Diffusion(画像生成AIの代表格)コミュニティでは、2024年以降 DWPose がOpenPoseの後継として主流になりつつあります(2026年4月現在)。DWPoseは関節点検出の精度と処理速度の両面でOpenPoseを上回り、comfyui_controlnet_aux に DWPreprocessor ノードとして同梱されています。
使用するControlNetモデルはOpenPoseと共通で問題ありません。出力されるスケルトンマップ形式がOpenPose互換のため、既存のOpenPoseワークフローのプリプロセッサだけDWPoseに差し替えれば移行できます。この記事ではOpenPoseを基準に解説しますが、より高精度なポーズ検出を求める場合はDWPoseへの切り替えを検討してください。
DensePoseとの違い(3D表面マッピングによる精密制御)
OpenPoseが関節点の位置を検出するのに対し、DensePoseは人体の全ピクセルを3Dサーフェスモデルにマッピングします。棒人間がワイヤーフレームだとすれば、DensePoseは表面まで貼られたサーフェスモデルに近く、より詳細な体型情報を扱える点が大きな違いです。
DensePoseの仕組み(全身ピクセルを3Dモデルにマッピング)
DensePoseはMeta(旧Facebook)が開発した技術で、2D画像の人体領域すべてのピクセルに対して、3Dボディモデル上の対応点を割り当てます。出力されるマップは色分けされた人体図で、頭部、胴体、腕、脚などの部位ごとに異なるカラーで表示されます。
情報量の多さにより、関節の角度だけでなく、体の太さや表面の向きまで伝達できます。衣服のフィット感や体型の再現精度を高めたい場面で力を発揮する技術です。
OpenPoseとDensePoseの使い分け
用途に応じた使い分けが重要になります。
OpenPoseが適している場面は、基本的な立ちポーズや座りポーズの指定、処理速度を優先したい場合、軽量なGPU環境での作業です。スケルトンマップはシンプルなため、計算負荷が低く扱いやすい特徴があります。
DensePoseが適している場面は、体型の再現精度が求められるケース、衣服と体の密着表現が必要な場合、アニメーション用途での利用です。ただし計算コストが高く、GPUメモリの消費も大きくなります。
建築パースの人物配置であれば、多くの場合OpenPoseで十分な精度が得られます。人物が主役となるポートレート系の用途では、DensePoseの精密さが活きます。
ComfyUIでOpenPoseワークフローを構築する手順
ここからは、ComfyUIで実際にOpenPoseを使ったポーズ制御ワークフローを組み立てる方法を説明します。
必要なカスタムノードのインストール
ComfyUIの標準機能にはOpenPoseプリプロセッサ(前処理モジュール)が含まれていません。以下の2つのカスタムノードパッケージをインストールしてください(2026年4月現在)。
- ComfyUI’s ControlNet Auxiliary Preprocessors(
comfyui_controlnet_aux)
OpenPose、DWPose、DensePoseなど各種プリプロセッサを提供するパッケージ。 - ComfyUI-Advanced-ControlNet
ControlNetの適用範囲やスケジュール制御を拡張するパッケージ。
インストール手順はシンプルで、ComfyUI Managerの「Install Custom Nodes」から検索してインストールし、ComfyUIを再起動するだけで完了します。
モデルファイル配置は次のとおりです。
- ControlNetモデル:
models/controlnet/に配置。SD1.5用ならcontrol_v11p_sd15_openpose.pthが広く使われています - DWPose/OpenPose推論モデル:
dw-ll_ucoco_384_bs5.torchscript.ptとyolox_l.onnx(合計約500MB、HuggingFaceから取得)をcustom_nodes/comfyui_controlnet_aux/ckpts/に配置
SDXL(Stable Diffusionの高解像度版)用やFlux(高品質な新世代画像生成モデル)用では対応モデルが異なるため、使用するベースモデルに合ったファイルを選んでください。
ワークフローの全体構成(ノード接続の流れ)
OpenPoseワークフローの基本構成は、次の流れでノードを接続します。
- Load Image で参照画像を読み込む
- OpenPose Preprocessor(または DWPreprocessor)でスケルトンマップを抽出
- Load ControlNet Model でOpenPoseモデルを読み込む
- Apply ControlNet でスケルトンマップとモデルを結合
- 通常の生成パイプライン(KSampler(画像生成の中核ノード)、VAE Decode(潜在空間から画像へ戻す処理)、Save Image)に接続
OpenPose Preprocessorノードでは、参照画像から自動的にスケルトンマップが生成されます。手描きの棒人間画像を直接入力することも可能です。その場合はプリプロセッサを省略し、棒人間画像をそのままApply ControlNetへ接続します。
Strengthと適用範囲の調整ポイント
Apply ControlNetノードの「Strength」パラメータは、ポーズ指示の強さを制御します。建築パースの人物配置では 0.6〜0.8 が扱いやすい目安です(2026年4月現在)。
- Strength 1.0:ポーズを厳密に再現するが、硬直的で画像全体の自然さが損なわれる場合あり
- Strength 0.6〜0.8:ポーズの大枠を維持しつつ、自然な画像になりやすい範囲
- Strength 0.5以下:ポーズの影響が弱くなり、プロンプトの指示が優先される
また start_percent と end_percent で適用タイミングを調整できます。start_percent=0 から end_percent=0.6〜0.8 の範囲で指定し、序盤でポーズを確定させ、終盤はプロンプトに委ねる設定が安定した結果を出しやすい方法です。
DensePoseプリプロセッサの設定と活用
DensePoseもComfyUIで同様にプリプロセッサノードとして利用できます。OpenPoseとは出力形式が異なるため、設定項目を確認しておくと立ち上げがスムーズになります。
DensePosePreprocessorノードの設定項目
DensePosePreprocessorノードには、以下の主要パラメータがあります(2026年4月現在)。
- model:
densepose_r50_fpn_dlとdensepose_r101_fpn_dlの2種類から選択。r101は精度が高い反面、処理が重くなります - cmap(カラーマップ):
Viridis(MagicAnimate)とParula(CivitAI)から選択。用途に応じて使い分けます - resolution:出力解像度。デフォルトは512px
まず軽量なr50モデルで試し、精度が不足する場合にr101へ切り替える流れが扱いやすい進め方です。軽いモデルから始めることで、ワークフロー自体の不具合とモデル重さによる停止を切り分けやすくなります。
OpenPoseとの併用テクニック
OpenPoseとDensePoseを同時に適用する「マルチControlNet」構成も効果的です。OpenPoseで大まかな姿勢を固定し、DensePoseで体表面のディテールを補う使い方ができます。現場の職人が粗打ちと仕上げで役割分担するのに似た構成です。
各ControlNetのStrengthバランスが重要になります。OpenPoseを0.8、DensePoseを0.5程度に設定すると、ポーズの安定感と体型の自然さを両立しやすくなります。
ただし、2つのControlNetを同時適用するとGPUメモリ消費が増大します。VRAM(GPUの作業メモリ)8GB以下の環境では、どちらか一方に絞ったほうが安定して動作します。
建築パースでの人物ポーズ制御活用法
建築パースにおける人物配置は、空間のスケール感を伝え、生活シーンをイメージさせる大切な要素です。OpenPoseを使えば、意図した姿勢の人物を正確に配置できます。
スケール感の表現と生活感の演出
建築パースで人物を配置する目的は主に2つあります。空間の大きさを直感的に伝えることと、そこでの暮らしや活動をイメージさせることです。
OpenPoseを活用すると、次のような表現が可能になります。
- 玄関先で靴を履く人物(天井高との対比でスケール感を表現)
- ソファに座ってくつろぐ人物(リビングの使い方を提案)
- キッチンで料理する人物(動線や作業スペースの妥当性を示す)
実務では、建築写真や3Dレンダリング画像を参照画像として読み込み、そこに人物を追加生成する手法が効率的です。参照画像の空間に合った姿勢をOpenPoseで指定することで、不自然な合成感を抑えられます。
複数人物の自然な配置
家族が食卓を囲むシーンや、オフィスで打ち合わせ中のシーンなど、複数人物の配置もOpenPoseの得意分野です。
各人物のスケルトンマップを個別に作成し、1枚のマップ上に配置します。人物同士の重なりや距離感を事前に調整できるため、プロンプトだけでは制御しにくい構図を実現できます。
ControlNetの各種制御方法はComfyUI ControlNet・構図制御ガイドで体系的に解説しています。ポーズ以外の構図制御と組み合わせることで、より完成度の高い建築パースが作れます。
ポーズ制御の限界と対策
OpenPoseやDensePoseは強力なポーズ制御ツールですが、万能ではありません。
手指の破綻とFaceDetailerによる補正
ポーズ制御で最も頻繁に発生する問題が、手指の描画破綻です。指の本数が多すぎる、関節があり得ない方向に曲がるといった不自然な描写が生じやすい傾向にあります。
対策として有効なのが、Impact Pack完全ガイド|FaceDetailer・セグメンテーションに含まれるFaceDetailerやDetailerPipeの活用です。生成後の画像に対して顔や手の領域を検出し、その部分だけを高精度で再生成できます(2026年4月現在)。
OpenPoseの拡張モードとして OpenPose_hand や OpenPose_full を使うと、手指の関節点も検出対象に含まれます。手のポーズが重要なシーンでは、これらの設定を選ぶと破綻リスクを軽減できます。
ComfyUI-OpenPose-Editorによるスケルトン手動編集
自動検出したスケルトンマップが意図した姿勢と異なる場合、ComfyUI-OpenPose-Editor カスタムノードでスケルトンを直接編集できます(2026年4月現在)。Web UI時代から定番だったポーズエディタのComfyUI版で、関節点をドラッグして細かな姿勢調整が可能です。
検出精度の低い画像を参照にする場合や、現実にはない特殊なポーズを作る場合に役立ちます。建築パースで椅子やソファに座る姿勢を調整する際にこのノードを組み込むと、ポーズの微修正がプロンプト頼りよりも早く決まります。
公式推奨の2パスワークフローで細部破綻を軽減
ComfyUI公式ドキュメントでは、OpenPose系ワークフローに対して 2パス構成 が推奨されています(2026年4月現在)。1パス目で低解像度(512〜768px)で構図を確定させ、2パス目でアップスケールしながら細部を描き直す手法です。
2パス目では新たなKSamplerでdenoise値を0.3〜0.5程度に抑えて再サンプリングし、ControlNetの影響を弱めつつ解像度を上げます。この構成により、手指や顔の細部破綻が大幅に軽減されます。
複雑なポーズでの精度向上テクニック
体がひねられた姿勢や、腕が体の後ろに隠れるポーズでは、OpenPoseの検出精度が下がることがあります。以下のテクニックで対処できます。
参照画像の品質を上げる:人物が大きく明瞭に写った画像を使うと、キーポイントの検出精度が向上します。低解像度や逆光の画像は避けてください。
Strengthを段階的に調整する:まずStrength 0.8で生成し、不自然な箇所があればStrengthを下げて再生成します。最適値は構図によって異なるため、0.6〜1.0の範囲で複数パターンを試すのが確実な進め方です。
ComfyUI ControlNet Depth|深度マップで建築パース制御との併用:OpenPoseで姿勢を指定し、Depthマップで奥行きを補完する構成が効果的です。特に建築パースでは、空間の奥行きとポーズを同時に制御することで整合性の高い画像が得られます。
ControlNetの基本的なセットアップ方法はControlNet概要と使い方|ComfyUIでの接続方法で詳しく解説しています。初めてControlNetを使う方は、まずそちらを参照してください。
まとめ
ComfyUIでOpenPoseとDensePoseを活用すれば、プロンプトだけでは実現しにくい人物ポーズの精密な制御ができます。
OpenPoseは関節点ベースのスケルトンマップで汎用的なポーズ指定に適しており、DensePoseは3D表面マッピングで体型の再現精度を高められます。海外では後継のDWPoseも主流化しているため、より高精度が必要なら DWPreprocessor への差し替えを検討してください。建築パースの人物配置からポートレート制作まで、用途に応じた使い分けが鍵となります。
ワークフロー構築では、ControlNet Auxiliary Preprocessorsのインストール、Strengthの0.6〜0.8レンジでの調整、適用範囲の設定がポイントになります。手指の破綻にはFaceDetailerでの後処理、ComfyUI-OpenPose-Editorでの手動微調整、公式推奨の2パスワークフロー、Depth制御との併用が有効な対策です。
あわせて読みたい
- ComfyUI ControlNet・構図制御ガイド — ControlNetの各種制御方法を体系的に学びたい方へ
- ControlNet概要と使い方|ComfyUIでの接続方法 — モデルのダウンロードからComfyUIへの組み込み手順を押さえたい方へ
- ComfyUI ControlNet Depth|深度マップで建築パース制御 — 奥行き情報を使った構図制御と併用したい方へ
- Impact Pack完全ガイド|FaceDetailer・セグメンテーション — FaceDetailerで手指や顔の破綻を補正したい方へ
- ComfyUI×建築パース生成 完全ガイド — 建築パースでのAI画像生成を総合的に知りたい方へ




