【2025年12月】ControlNet完全ガイド - AIにポーズを指定して画像生成
この記事でできること
- ✅ ControlNetをComfyUIに導入
- ✅ 参考画像からポーズを抽出
- ✅ 指定したポーズで画像を生成
- ✅ OpenPose/Cannyなど各種プリプロセッサの使い方
所要時間:約30分
ControlNetとは
ControlNetは、画像生成時に構図やポーズを制御する技術です。
何ができる?
| 機能 | 説明 |
|---|---|
| ポーズ指定 | 参考画像と同じポーズで生成 |
| 構図制御 | レイアウトを固定 |
| 線画着色 | ラフスケッチから完成画 |
| 深度情報 | 奥行きを維持 |
| セグメンテーション | 部位ごとの色分け |
使用例
- 「この写真と同じポーズでアニメキャラを生成」
- 「このラフ絵を綺麗に仕上げて」
- 「この構図で別のキャラを描いて」
前提条件
| 項目 | 必須 |
|---|---|
| ComfyUI | インストール済み |
| JANKU v6.0 | 導入済み |
| VRAM | 8GB以上推奨 |
STEP 1: ComfyUI Managerの導入
ControlNet関連ノードを簡単にインストールするため、まずManagerを導入します。
1-1. ダウンロード
PowerShellで以下を実行:
cd C:\AI-Stack\ComfyUI\ComfyUI\custom_nodes
git clone https://github.com/ltdrdata/ComfyUI-Manager.git
1-2. ComfyUIを再起動
再起動後、UI右側に「Manager」ボタンが表示されます。
STEP 2: ControlNetモデルのダウンロード
2-1. SDXL用ControlNetモデル
JANKU v6.0はSDXLベースなので、SDXL用のControlNetが必要です。
2-2. 推奨モデル
| モデル | 用途 | サイズ |
|---|---|---|
| controlnet-openpose-sdxl | ポーズ制御 | 約2.5GB |
| controlnet-canny-sdxl | 線画/エッジ | 約2.5GB |
| controlnet-depth-sdxl | 深度情報 | 約2.5GB |
| controlnet-scribble-sdxl | ラフスケッチ | 約2.5GB |
2-3. ダウンロード元
HuggingFaceで検索:
https://huggingface.co/lllyasviel/sd_control_collection
または
https://huggingface.co/diffusers/controlnet-canny-sdxl-1.0
2-4. 配置場所
C:\AI-Stack\ComfyUI\ComfyUI\models\controlnet\
例:
C:\AI-Stack\ComfyUI\ComfyUI\models\controlnet\controlnet-openpose-sdxl.safetensors
STEP 3: プリプロセッサノードの導入
3-1. ComfyUI Managerから導入
-
ComfyUIでManagerボタンをクリック
-
「Install Custom Nodes」を選択
-
検索欄に
controlnetと入力 -
以下をインストール:
- ComfyUI's ControlNet Auxiliary Preprocessors
- ComfyUI-Advanced-ControlNet
-
ComfyUIを再起動
STEP 4: 基本ワークフローの構築
4-1. 必要なノード
ControlNetワークフローに必要なノード:
| ノード | 役割 |
|---|---|
| Load Image | 参考画像を読み込み |
| OpenPose Preprocessor | ポーズを抽出 |
| Load ControlNet Model | ControlNetモデル読み込み |
| Apply ControlNet | ControlNetを適用 |
4-2. ワークフロー構成
[Load Image]
↓
[OpenPose Preprocessor] → ポーズ画像を生成
↓
[Load ControlNet Model] + [Apply ControlNet]
↓
[KSampler] → 通常の生成パイプラインに接続
↓
[Save Image]
4-3. 詳細な接続
-
Load Image ノードを追加
- 参考画像をアップロード
-
DWPose Estimator または OpenPose Preprocessor を追加
- Load Imageの出力を接続
- ポーズ情報が抽出される
-
Load ControlNet Model を追加
- モデル:
controlnet-openpose-sdxl.safetensorsを選択
- モデル:
-
Apply ControlNet を追加
- positive: CLIPテキストエンコードから
- negative: ネガティブプロンプトから
- control_net: Load ControlNet Modelから
- image: プリプロセッサの出力から
- strength: 0.8〜1.0
-
KSampler に接続
- positive/negativeをApply ControlNetの出力に変更
STEP 5: 各プリプロセッサの使い方
OpenPose(ポーズ制御)
用途: 人物のポーズを抽出して再現
設定:
| パラメータ | 推奨値 |
|---|---|
| detect_hand | true |
| detect_body | true |
| detect_face | true |
適した場面:
- キャラクターのポーズを指定したい
- ダンスシーンを作りたい
- 複数人の配置を制御したい
Canny(エッジ検出)
用途: 線画/輪郭を抽出して構図を維持
設定:
| パラメータ | 推奨値 |
|---|---|
| low_threshold | 100 |
| high_threshold | 200 |
適した場面:
- 線画から着色
- 写真の構図を維持してアニメ化
- ロゴやデザインの再現
Depth(深度)
用途: 奥行き情報を抽出
設定:
| パラメータ | 推奨値 |
|---|---|
| model | MiDaS または Zoe |
適した場面:
- 背景の奥行きを維持
- 建物や風景の構図再現
- 3D的な配置を制御
Scribble(スクリブル)
用途: ラフスケッチを解釈
適した場面:
- 手描きのラフから生成
- 簡単な線画から詳細画像を生成
STEP 6: 強度の調整
ControlNetの強度(strength)は生成結果に大きく影響します。
強度と結果の関係
| strength | 結果 |
|---|---|
| 0.3〜0.5 | 軽いヒント程度 |
| 0.6〜0.8 | バランス良い |
| 0.9〜1.0 | 強く制御 |
| 1.0以上 | 過度に制約(崩れやすい) |
推奨設定
| 用途 | strength |
|---|---|
| ポーズの再現 | 0.8〜1.0 |
| 構図のヒント | 0.5〜0.7 |
| 線画着色 | 0.9〜1.0 |
| スタイル変換 | 0.6〜0.8 |
STEP 7: 複数ControlNetの組み合わせ
複数のControlNetを同時に使うことで、より精密な制御が可能です。
例: OpenPose + Depth
- 参考画像を読み込み
- OpenPoseでポーズを抽出
- Depthで奥行きを抽出
- 両方をApply ControlNetで適用(別々のノード)
- 強度はそれぞれ調整
組み合わせの例
| 組み合わせ | 効果 |
|---|---|
| OpenPose + Canny | ポーズ + 輪郭を維持 |
| Depth + Scribble | 奥行き + ラフの解釈 |
| OpenPose + Depth | ポーズ + 空間配置 |
トラブルシューティング
ControlNetが効かない
症状: 参考画像を無視して生成される
対策:
- strengthを上げる(0.8以上)
- プリプロセッサの出力を確認(ポーズ抽出されているか)
- モデルがSDXL用か確認
- Apply ControlNetの接続を確認
ポーズが崩れる
症状: 手足がおかしい
対策:
- detect_handをtrueに
- より鮮明な参考画像を使う
- DWPose Estimatorを使う(OpenPoseより高精度)
生成が遅い
症状: ControlNet使用時に大幅に遅くなる
対策:
- プリプロセッサの解像度を下げる
- 1つのControlNetのみ使用
- 画像サイズを小さくする
メモリエラー
症状: CUDA out of memory
対策:
- 画像サイズを小さくする(1024→768)
- 複数ControlNetを減らす
-
--lowvramオプションで起動
実践例: ポーズ指定でキャラ生成
入力
- 参考画像: 立ちポーズの写真
- プロンプト:
1girl, long black hair, school uniform, classroom - ControlNet: OpenPose, strength 0.9
結果
参考画像と同じ立ちポーズで、アニメ調の女子高生が生成される
ポイント
- 参考画像は全身が写っているものが望ましい
- 背景がシンプルだとポーズ抽出しやすい
- 複数人の場合は人数を一致させる
まとめ
| ステップ | 内容 | 所要時間 |
|---|---|---|
| 1 | Manager導入 | 5分 |
| 2 | ControlNetモデルDL | 10分 |
| 3 | プリプロセッサ導入 | 5分 |
| 4 | ワークフロー構築 | 10分 |
| 5 | プリプロセッサ理解 | - |
| 6 | 強度調整 | 試行錯誤 |
合計: 約30分でControlNet環境構築完了!
次のステップ
ControlNetでポーズ制御ができるようになったら、次は:
👉 IP-Adapter導入ガイド - キャラクターの顔を固定して生成
ControlNet(ポーズ)+ IP-Adapter(顔)を組み合わせることで、
同じキャラクターを同じポーズで生成することが可能になります。
参考リンク
- ControlNet公式: https://github.com/lllyasviel/ControlNet
- ComfyUI ControlNet: https://github.com/Fannovel16/comfyui_controlnet_aux
- モデル配布: https://huggingface.co/lllyasviel
この記事が役に立ったら いいね お願いします!
質問はコメントでどうぞ。
Discussion