⚠️ 注意: AI画像生成時は著作権・肖像権にご注意ください。商用利用前には各サービスの利用規約をご確認ください。当ブログは生成された画像に関する責任を負いかねます。
要約
この記事では、ComfyUI で ControlNet を使ってポーズ・線画・深度を制御する方法を、2026年9月時点の環境で実際に動かしながら解説します。
先に結論だけ書いておくと、SDXL(Illustrious 系を含む)なら ControlNet Union を1ファイル入れて、「Set Union ControlNet Type」ノードを挟むだけで OpenPose・Depth・Lineart が全部使えます。 ポーズの前処理は OpenPose Pose ではなく DWPose Estimator を使ってください。僕の環境では OpenPose Pose がアニメ絵の腕組みを取り落とし、DWPose は正しく検出できました。strength は 1.0 ではなく 0.5 から試すのがおすすめです。
SD1.5 用のモデル構成と、SD WebUI(A1111 / Forge)での操作も残してあります。
はじめに|ControlNetでポーズや構図を思い通りにする
「このポーズで描いてほしい」「この構図を維持したい」「線画から色を塗ってほしい」
プロンプトだけでは難しいこうした要望を実現するのが ControlNet です。
ControlNet を使うと、こんなことができます:
- 参照画像と同じポーズで新しいキャラを生成
- 線画やラフスケッチから本格的なイラストを生成
- 写真の構図を維持したまま別のシーンに変換
- 建物や背景の形状を正確に再現
この記事は2026年2月に公開したものを、ComfyUI 0.32 と ControlNet Union で全部やり直して書き直しました。公開当時の記事は SD1.5 を前提にしていて、ノードの名前も今とは違っていたんです。
ControlNetとは
ControlNet は、参照画像から特定の情報(ポーズ、エッジ、深度など)を抽出し、その情報に基づいて画像を生成する技術です。
ControlNetの仕組み
コントロールしたい情報が含まれた画像を用意します。
(ポーズ写真、線画、深度マップなど)
参照画像から必要な情報(骨格、エッジ、深度など)を抽出します。
抽出した情報をもとに、生成される画像の構図やポーズを制御します。
プリプロセッサとControlNetモデルの関係
| 用語 | 役割 | 例 |
|---|---|---|
| プリプロセッサ | 参照画像から情報を抽出 | DWPose、Canny、Depth Anything 等 |
| ControlNetモデル | 抽出した情報で生成を制御 | ControlNet Union、control_v11p_sd15_openpose 等 |
重要: プリプロセッサとControlNetモデルは種類を合わせる必要があります。
例:DWPose で骨格を抽出 → OpenPose 用の ControlNet(Union なら type を openpose に)
2026年のおすすめ構成|ベースモデル別に3パターン
先に「何を入れればいいか」をまとめます。ベースモデルによって答えが変わるので、自分の使っている checkpoint に合わせて読んでください。
| ベースモデル | ControlNet | 前処理 |
|---|---|---|
| SDXL / Illustrious / Pony | ControlNet Union(xinsir)1ファイル | DWPose / Depth Anything V2 / Anime Lineart |
| SD1.5 | OpenPose・Canny・Depth の個別3種(fp16) | 同上 |
| Anima | Anima Control Pose(ControlNet ではなく専用アダプタ) | 専用ノードが内蔵 |
僕のメイン環境は SDXL 系と Illustrious 系なので、この記事の検証は SDXL + ControlNet Union で行っています。
OpenPoseXL2 など SDXL 用の個別モデルは要らないの?
同じ参照画像・同じ seed で OpenPoseXL2(4.66GB)と Union(2.34GB)を比べたところ、Union の方が骨格への追従が良く、OpenPoseXL2 は腕組みが再現できませんでした。容量は Union の方が半分以下なので、SDXL は Union 1本で足ります。詳しくは後半の「パラメータ調整」で実際の画像を載せています。
ControlNetの種類と特徴
主要な ControlNet の種類を紹介します。目的に応じて使い分けましょう。
OpenPose|ポーズ制御
人物のポーズ(骨格)を検出・制御します。
用途:
- 参照画像と同じポーズで別キャラを生成
- 特定のポーズを正確に再現
検出される情報:
- 体の関節位置
- 手の関節
- 顔のランドマーク


ComfyUI の controlnet_aux には OpenPose 系の前処理ノードが2つあります。OpenPose Pose(旧来の検出器)と DWPose Estimator です。今回の検証で、OpenPose Pose はアニメ絵の腕組みを片腕取り落とし、解像度を 512 / 1024 と変えても同じでした。DWPose は両腕・指・顔の輪郭まで検出できています。アニメ絵を参照にするなら DWPose 一択です。比較画像は後半の「実践例」に載せています。
Canny|エッジ検出
画像の輪郭(エッジ)を検出します。
用途:
- 線画風の画像生成
- 形状を維持した変換
- ロゴやイラストのスタイル変換
特徴:
- シンプルで軽量
- 細かい線も検出
- しきい値で検出感度を調整可能


Depth|深度推定
画像の奥行き(深度)を推定します。
用途:
- 立体感のある構図を維持
- 背景と前景の関係を保持
- 建物や風景の構造を再現
特徴:
- 近いものは白、遠いものは黒で表現
- 複雑な構図でも構造を維持
- 背景生成に特に有効
前処理は Depth Anything V2 を使いました。以前の記事で使っていた Midas より輪郭がなめらかに出ます。


Lineart|線画抽出
画像から線画を抽出します。ComfyUI で「comfyui 線画抽出」を調べている方は、この前処理ノードが答えです。
用途:
- 線画からイラストを生成
- スケッチを清書
- アニメ調の線画変換
controlnet_aux のノード名:
- Realistic Lineart:写真向けの標準的な線画抽出
- Anime Lineart:アニメ絵向け。イラストを参照にするならこれ
- Manga Lineart:太めの線で抽出(lineart_anime_denoise 相当)


その他のControlNet
| 種類 | 用途 | 特徴 |
|---|---|---|
| Scribble | 落書きから画像生成 | ラフなスケッチでもOK |
| SoftEdge | ソフトなエッジ検出 | Cannyより柔らかい印象 |
| Segmentation | 領域分割 | 各パーツを色分けして制御 |
| Normal Map | 法線マップ | 3D的な凹凸を制御 |
| Tile | タイル処理 | 高解像度化に使用 |
ControlNet Union|SDXLはこれ1本
SDXL を使うなら、ControlNet Union が最もおすすめです。
ControlNet Union は xinsir 氏が開発した SDXL 向け ControlNet で、1つのモデルファイルで12種類以上の制御に対応しています。
| モデル | 対応制御の種類 |
|---|---|
| ControlNet Union | OpenPose / Canny / Depth / Lineart / Scribble / NormalMap 等12種類以上 |
| ControlNet Union ProMax | 上記 + Tile / Inpaint / Outpaint も含む拡張版 |
メリット:
- 種類ごとにモデルをダウンロードする必要がない
- 1ファイル(2.34GB)で完結するため管理が楽
- Illustrious 系の checkpoint でもそのまま効いた
ComfyUI で使うときは、「Set Union ControlNet Type」ノードで種類を指定するのがポイントです。試しにこのノードを外して同じ条件で生成したところ、立ち姿にはなるものの腕組みが出ず、効きがはっきり弱くなりました。使い方は次の章で説明します。
事前準備|ControlNetモデルのダウンロードと導入
ControlNetモデルの入手先
ControlNet モデルは Hugging Face や Civitai からダウンロードできます。
SDXL用モデル(推奨)
ControlNet Union(xinsir/controlnet-union-sdxl-1.0):1ファイルで全種類対応
- 通常版:
diffusion_pytorch_model.safetensors(2.34GB) - ProMax 版:
diffusion_pytorch_model_promax.safetensors(Tile / Inpaint / Outpaint も使いたい場合)
ダウンロードしたら、ファイル名を controlnet-union-sdxl-1.0.safetensors のように分かりやすい名前に変えておくと、ノードのドロップダウンで迷いません。
SD1.5用モデル
Hugging Face – lllyasviel/ControlNet-v1-1(公式リポジトリ)
ファイル形式は fp16 safetensors を推奨します。容量が約723MBと、通常版(約1.45GB)の半分で、品質面の差はほぼありません。ファイル名に _fp16.safetensors が付いているものを選んでください。
最初は以下の3つがあれば多くの用途に対応できます。
| モデル | ファイル名(fp16) | 容量 | 用途 |
|---|---|---|---|
| OpenPose | control_v11p_sd15_openpose_fp16.safetensors | 723MB | ポーズ制御 |
| Canny | control_v11p_sd15_canny_fp16.safetensors | 723MB | エッジ・線画 |
| Depth | control_v11f1p_sd15_depth_fp16.safetensors | 723MB | 深度・構図 |
モデルの配置場所
ComfyUIの場合
ComfyUI/
└── models/
└── controlnet/ ← 小文字。ここにモデルを配置
├── controlnet-union-sdxl-1.0.safetensors
├── control_v11p_sd15_openpose_fp16.safetensors
└── ...
SD WebUI(AUTOMATIC1111 / Forge)の場合
stable-diffusion-webui/
└── models/
└── ControlNet/ ← 大文字C。ここにモデルを配置
├── controlnet-union-sdxl-1.0.safetensors
└── ...
フォルダ名の大文字・小文字に注意
ComfyUI は
models/controlnet/(小文字)、SD WebUI は models/ControlNet/(大文字C)です。間違えるとモデルが認識されません。ベースモデルに合わせたControlNetを使用してください
- SD 1.5を使う場合 → SD 1.5用ControlNet
- SDXL / Illustrious / Pony を使う場合 → SDXL用ControlNet(ControlNet Union推奨)
ツール別の追加セットアップ
ComfyUI:controlnet_aux カスタムノード(必須)
ComfyUI でプリプロセッサを使うには comfyui_controlnet_aux カスタムノードが必要です。DWPose・Depth Anything V2・Anime Lineart はすべてこのパックに入っています。
ComfyUI Manager で「controlnet aux」と検索してインストールします。

DWPose や Depth Anything の検出モデルは、初回実行時に自動でダウンロードされます。初回だけ数分かかるので、止まったように見えても待ってください。
SD WebUI (AUTOMATIC1111):sd-webui-controlnet 拡張をインストール
A1111 では ControlNet 拡張の追加が必要です。
- 「Extensions」タブ → 「Install from URL」を選択
- URL欄に
https://github.com/Mikubill/sd-webui-controlnetを入力 - 「Install」をクリック
- 「Installed」タブで「Apply and restart UI」
SD WebUI (Forge):追加不要
Forge には ControlNet が内蔵されているため、拡張のインストールは不要です。モデルを配置するだけで使えます。
ComfyUIでのControlNetの使い方|Union + DWPose
ControlNet の処理フローはどのツールでも共通です。
参照画像 → [プリプロセッサ] → 制御マップ → [ControlNet] → 生成制御
ComfyUI では、通常の txt2img ワークフローに 4つのノードを足すだけです。ポーズ制御(DWPose + Union)を例にした完成形がこちらです。

「Apply ControlNet」ノードが新しくなっている
先に1つ注意点です。2026年9月時点の ComfyUI では、「Apply ControlNet」ノードが positive と negative の両方を受け取る形になっています。出力も positive / negative の2本で、それぞれ KSampler に繋ぎます。
以前の「positive だけ通す」ノードは 「Apply ControlNet (DEPRECATED)」 という名前になり、ノード検索に出てこなくなりました。古い記事やワークフローをなぞっていて「ノードが見つからない」となったら、これが原因です。
| 項目 | 旧ノード | 現行ノード |
|---|---|---|
| 表示名 | Apply ControlNet (DEPRECATED) | Apply ControlNet |
| 入力 | conditioning / control_net / image / strength | positive / negative / control_net / image / strength / start_percent / end_percent / vae(任意) |
| 出力 | CONDITIONING 1本 | positive / negative の2本 |
vae は任意入力なので、繋がなくても動きます。僕は checkpoint の VAE をそのまま繋いでいます。
ワークフローの組み方
「Load Image」ノードを追加し、ポーズの参考にしたい画像を読み込みます。
ダブルクリック → 検索欄に「Load Image」
controlnet_aux の「DWPose Estimator」ノードを追加します。
ダブルクリック → 検索欄に「DWPose」
接続:
Load Image の IMAGE → DWPose Estimator の image
設定は既定値のままで大丈夫です(detect_hand / body / face すべて enable、resolution 512)。僕の環境では resolution を 1024 にしても検出結果は変わりませんでした。
「Load ControlNet Model」ノードで Union のファイルを選びます。
続けて 「Set Union ControlNet Type」 ノードを追加し、type を openpose にします。
接続:
Load ControlNet Model の CONTROL_NET → Set Union ControlNet Type の control_net
type の選択肢は openpose / depth / canny/lineart/anime_lineart/mlsd / hed/pidi/scribble/ted / normal / segment / tile / repaint と auto です。前処理に合わせて選んでください。
「Apply ControlNet」ノードを追加します(DEPRECATED が付いていない方)。
接続:
- CLIP Text Encode(ポジティブ)の CONDITIONING → Apply ControlNet の positive
- CLIP Text Encode(ネガティブ)の CONDITIONING → Apply ControlNet の negative
- Set Union ControlNet Type の CONTROL_NET → Apply ControlNet の control_net
- DWPose Estimator の IMAGE → Apply ControlNet の image
- Load Checkpoint の VAE → Apply ControlNet の vae(任意)
Apply ControlNet の出力を KSampler に繋ぎます。
接続:
- Apply ControlNet の positive → KSampler の positive
- Apply ControlNet の negative → KSampler の negative
もともと CLIP Text Encode から直接 KSampler に繋がっていた線は、ここで置き換わります。
Apply ControlNet の strength を 0.5 にして、Run で生成します。
骨格が正しく取れていれば 0.5 でポーズは決まります。効きが弱いと感じたら 0.8 まで上げてみてください。
SD WebUIでのControlNet設定
A1111 と Forge は UI がほぼ同じです。ここでは OpenPose を例に説明します。
txt2img または img2img タブの下部に「ControlNet」セクションがあります。クリックして展開します。
(A1111の場合、拡張がインストールされていないと表示されません)
「Image」欄に参照画像をドラッグ&ドロップ、またはクリックしてアップロードします。
- Preprocessor:
dw_openpose_full(DWPose。手・顔も検出) - Model:SDXL なら
controlnet-union-sdxl-1.0、SD1.5 ならcontrol_v11p_sd15_openpose_fp16
プリプロセッサとモデルは必ず同じ種類のものを選んでください。
Control Weight(強度)を設定します。まずは 0.5〜0.8 から。
チェックボックス「Enable」にチェックが入っていることを確認します。
プロンプトを入力して「Generate」をクリックします。参照画像のポーズを維持した画像が生成されます。
パラメータ調整のコツ|strengthは0.5から
ControlNet の効果を最適化するためのパラメータ調整方法を解説します。以前の記事では「まず 1.0 で試す」と書いていましたが、実際に比べてみたら 0.5 で十分でした。 ここは訂正します。
strength(強度)の実測比較
同じ参照画像(腕組みの立ち姿)・同じ seed で、strength だけ変えて生成した結果です。前処理は DWPose、ControlNet は Union(type: openpose)です。



| 値 | 実際の結果 |
|---|---|
| 0.0(なし) | 参照と無関係な構図。プロンプトだけだと立ち姿すら出なかった |
| 0.5 | 正面で腕組み。3枚の中で最も自然で、参照に一番近い |
| 0.8 | 腕組みだが、上になる腕が肩に手を置く形に崩れた |
| 1.0 | 0.8 とほぼ同じ |
強くすれば良くなるわけではなく、0.8 以上では腕の重なりがかえって不自然になりました。 骨格が正しく取れているなら 0.5 で十分です。
調整のコツ:
- まずは 0.5 で試す
- ポーズが崩れる場合は、strength を上げる前に前処理の出力(骨格画像)を確認する
- 画質が低下する場合は強度を下げる
開始・終了タイミング
ControlNet が効くタイミングを調整します。
| パラメータ | 意味 | 既定値 |
|---|---|---|
| start_percent(ComfyUI)/ Guidance Start(SD WebUI) | ControlNet開始タイミング | 0.0(最初から) |
| end_percent(ComfyUI)/ Guidance End(SD WebUI) | ControlNet終了タイミング | 1.0(最後まで) |
応用例:
- 序盤だけ制御(0.0〜0.5):構図を決めて、後半は自由に
- 後半だけ制御(0.5〜1.0):ある程度生成してから補正
今回の検証では end_percent を 0.5 にしても、1.0 のときと絵はほとんど変わりませんでした。ポーズは序盤で決まるので、後半を解放しても崩れないということだと思います。ControlNet の跡(不自然な硬さ)が気になるときに下げる、くらいの位置づけです。
ツール別のパラメータ名
同じ機能でもツールによってパラメータ名が異なります。
| 機能 | ComfyUI | SD WebUI |
|---|---|---|
| 強度 | strength | Control Weight |
| 開始タイミング | start_percent | Guidance Start |
| 終了タイミング | end_percent | Guidance End |
プリプロセッサ固有のパラメータ
DWPose Estimator:
- detect_hand / detect_body / detect_face:それぞれの検出を有効化。基本は全部 enable
- resolution:検出時の解像度。既定の 512 で足りる(1024 にしても結果は同じだった)
- bbox_detector / pose_estimator:検出モデルの選択。既定値のままで問題なし
Canny:
- low_threshold:エッジ検出の下限(小さいほど細かい線も検出)
- high_threshold:エッジ検出の上限(大きいほど強い線のみ検出)
Depth Anything V2:
- ckpt_name:vitl(大)/ vitb / vits(小)。精度重視なら vitl
実践例
実践例1:ポーズ参照で別キャラを生成
参照画像のポーズを維持しながら、別のキャラクターを生成します。ここでは前処理の違いも一緒に見てください。
設定:
- プリプロセッサ:DWPose Estimator
- ControlNet:Union(type: openpose)
- 強度:0.5



前処理を間違えるとこうなる(OpenPose Pose の場合)
同じ参照画像を「OpenPose Pose」ノードで処理した結果です。片腕の肘から先が検出されておらず、首の位置もずれています。 この骨格で生成すると、腕を下ろした立ち姿になってしまいました。


解像度を 512 にしても 1024 にしても同じ欠け方だったので、解像度の問題ではなく検出器の癖です。「ControlNet が効かない」と感じたら、strength をいじる前に骨格画像を見てください。 原因がここにあることは本当に多いです。
実践例2:線画から着彩
手描きの線画やスケッチから、色付きのイラストを生成します。
設定:
- プリプロセッサ:なし(線画がすでにある場合は不要。Load Image から直接 Apply ControlNet の image へ)
- ControlNet:Union(type: canny/lineart/anime_lineart/mlsd)
- 強度:1.0


腕組み・リュック・スカートのなびきまで線どおりに着彩されました。1つ注意点があって、線画の右下にあった署名風の走り書きまで、そのまま絵に出ています。 線画は「描いてあるものは全部再現される」ので、要らない線は先に消しておいてください。
線画の解像度が生成サイズと違う場合は、間に「Image Scale」ノードを挟んで揃えておくと、位置ずれが起きません。
実践例3:構図を維持したスタイル変換
写真の構図(深度情報)を維持しながら、別のスタイルで再生成します。
設定:
- プリプロセッサ:Depth Anything V2 – Relative(vitl)
- ControlNet:Union(type: depth)
- 強度:0.8



昼の廊下を、プロンプトで「night, moonlight, blue tones」にして生成し直したものです。扉・窓・天井の照明の位置がそのまま残っているのが分かると思います。背景差分を作るときの基本形で、背景プロンプトの記事と組み合わせると効きます。
複数のControlNetを組み合わせる
複数の ControlNet を同時に使用して、より精密な制御が可能です。
組み合わせ例
OpenPose + Depth
- ポーズと奥行きを同時に制御
- キャラを背景の中に「置く」ような使い方
Canny + OpenPose
- 輪郭とポーズを両方維持
- より正確なキャラクター再現
ComfyUIでの接続方法
Apply ControlNet ノードを直列に繋げます。1つ目の positive / negative 出力を、2つ目の positive / negative 入力に渡す形です。
CLIP Text Encode → Apply ControlNet (openpose) → Apply ControlNet (depth) → KSampler
Union を使う場合、Load ControlNet Model は1つで済みます。 そこから「Set Union ControlNet Type」を2つ生やして、片方を openpose、もう片方を depth にすれば、同じモデルを2種類の制御に使い回せます。

この構成(ポーズ 0.8・深度 0.6)で実際に生成した結果がこちらです。

正直に書くと、背景は深度どおりに出たのに、キャラは後ろを向いてしまいました。 参照の腕組みは再現されていません。原因として思い当たるのは2つです。
- 深度マップが横長(1280×768)なのに、生成サイズが縦長(1024×1280)で、深度側が引き伸ばされた
- ポーズ 0.8 と深度 0.6 が綱引きになり、「廊下の中央に立つ」方が勝った
2枚重ねは「両方効く」のではなく「両方が妥協点を探す」動きになります。ポーズを優先したいなら深度側を 0.3〜0.4 まで下げるか、end_percent を 0.5 程度にして序盤だけ構図を決めるのが次の手です。
複数使用時は各 ControlNet の強度(strength / Control Weight)を下げる(0.5〜0.7程度)と、バランスが取りやすくなります。参照画像同士のアスペクト比も揃えておいてください。
SD WebUIでの接続方法
SD WebUI では ControlNet パネルにタブが複数あります(ControlNet Unit 0 / Unit 1 / Unit 2…)。
- 「ControlNet Unit 0」で1つ目の ControlNet を設定
- 「ControlNet Unit 1」タブを開いて2つ目を設定
- 各ユニットの「Enable」にチェックを入れる
A1111・Forge ともに操作は同じです。
Anima でポーズ制御したい場合|ControlNet ではなく専用アダプタ
2026年に入って使う人が増えている Anima(Circlestone Labs)は、SDXL とはアーキテクチャが違うので、SDXL 用の ControlNet Union は使えません。
代わりに Anima Control Pose という専用のポーズ制御アダプタが公開されています(2026年6月に Preview-2 が出ました)。
| 項目 | 内容 |
|---|---|
| 配布元 | Hugging Face Claquasse/Anima-Control-Pose |
| モデル | anima_pose_preview2.safetensors(75MB)を models/loras/ に配置 |
| ノード | 同梱の2つのカスタムノード(Anima Control Apply / Anima Pose Control)を custom_nodes/ にコピー |
| 前処理 | Anima Pose Control ノードが写真から骨格を検出(内部で DWPose 系の検出器を使用) |
| 対応解像度 | 512 / 768 / 1024 |
| ライセンス | CircleStone Labs Non-Commercial(モデルの重みは非商用。生成した画像は商用利用可) |
作者自身が「Preview-2 はまだ実験段階で、複雑なポーズは外すことがある」と書いています。走る・跳ぶ・座るといった動きの大きいポーズが一番不安定とのことです。
このアダプタは、僕の環境では検証していません。重みが非商用ライセンスで、広告やアフィリエイトのあるこのブログのために動かすのが「非商用」に入るのか判断がつかなかったからです。上の導入手順と制限は、配布ページの README に沿って書いています。ここでは「Anima は Union ではなく Control Pose を探す」という道しるべとして置いておきます。
トラブルシューティング
ControlNetが効かない
ComfyUIの場合:
- Union を使っていて「Set Union ControlNet Type」を挟んでいない → type を前処理に合わせて指定する(なしでも少しは効くが、細かいポーズが出ない)
- プリプロセッサと ControlNet モデルの種類が合っているか
- strength が 0 になっていないか
- Apply ControlNet の positive / negative が両方 KSampler に繋がっているか
SD WebUIの場合:
- ControlNet パネルの「Enable」チェックが入っているか
- プリプロセッサとモデルの種類が合っているか
- Control Weight が 0 になっていないか
ポーズが参照と違う
- 前処理の出力を確認する。 DWPose の IMAGE 出力に Preview Image を繋いで、骨格が正しく取れているか見る
- OpenPose Pose を使っている → DWPose Estimator に変える
- 参照画像と生成サイズのアスペクト比が大きく違う → 揃える
strength を上げても直らないときは、ほぼ骨格側の問題です。
「Apply ControlNet」ノードが見つからない
- 現行のノード名は「Apply ControlNet」で、入力に positive / negative の2本がある
- 古い記事の「Apply ControlNet(conditioning 1本)」は DEPRECATED 扱い。設定 → Node で「Show deprecated nodes in search」を有効にすると検索に出るが、現行ノードに置き換えた方がいい
画質が低下する
対処法(共通):
- 強度を下げる(0.5〜0.8程度に)
- 終了タイミングを下げる(ComfyUI: end_percent 0.8 / SD WebUI: Guidance End 0.8)
- ControlNet モデルのバージョンを確認(古いモデルは品質が低いことも)
プリプロセッサでエラーが出る
ComfyUIの場合:
- controlnet_aux を最新版に更新(ComfyUI Manager → Update)
- 初回実行時は検出モデルのダウンロードで数分止まる。エラーではないので待つ
- 画像サイズが極端に大きい場合はリサイズ
SD WebUIの場合:
- sd-webui-controlnet 拡張を最新版に更新(Extensions → Check for updates)
- WebUI を再起動する
メモリ不足になる・遅い
ComfyUIの場合:
- 画像サイズを小さくする
- 使用する ControlNet の数を減らす
- SDXL 用の個別モデル(OpenPoseXL2 など 4GB 超)は VRAM 8GB だと退避が起きて遅い。 Union(2.34GB)に置き換える
SD WebUIの場合:
- 起動オプションに
--medvram(中程度削減)または--lowvram(大幅削減)を追加 - 画像サイズを小さくする
- 複数の ControlNet Unit を同時に使う場合は数を減らす
よくある質問
Hugging Face で公式モデルが公開されています。SDXL 用は ControlNet Union(xinsir/controlnet-union-sdxl-1.0)が1ファイルで全種類対応しておすすめです。SD1.5 用は「lllyasviel/ControlNet-v1-1」です。Civitai にも多くの ControlNet モデルがあります。
はい。どちらも SDXL ベースなので、SDXL 用の ControlNet Union がそのまま使えます。この記事の検証は Illustrious 系の checkpoint で行っています。Illustrious 専用を謳う ControlNet もありますが、まず Union を試して不足を感じてからで十分です。
ComfyUI では「Load ControlNet Model」の後ろに「Set Union ControlNet Type」ノードを挟んで、type を前処理に合わせて指定してください(openpose / depth / canny/lineart… など)。僕の検証では、このノードなしでも多少は効きましたが、腕組みのような細かいポーズは再現されませんでした。
DWPose Estimator です。同じアニメ絵の参照画像で比べたところ、OpenPose Pose は片腕を取り落とし、DWPose は両腕・指・顔まで検出できました。解像度を変えても OpenPose Pose の欠けは直りませんでした。
まず 0.5 で試してください。骨格が正しく取れていれば 0.5 でポーズは決まり、僕の検証では 0.8 以上にすると腕の重なりがかえって不自然になりました。効きが弱いときは 0.8 まで上げ、それでもダメなら strength ではなく前処理の出力を疑ってください。
はい。ComfyUI では Apply ControlNet ノードを直列に繋げることで複数同時使用できます。Union なら Load ControlNet Model は1つで、Set Union ControlNet Type を2つに分けるだけです。SD WebUI では「ControlNet Unit 0」「Unit 1」など複数のタブを使います。
線画をそのまま ControlNet に入力できます。ComfyUI ではプリプロセッサをスキップして、線画画像を直接 Apply ControlNet の image 入力に接続してください。SD WebUI では「Preprocessor」を「none」に設定します。要らない線(署名やメモ書き)も再現されるので、先に消しておくのがコツです。
SDXL 用の ControlNet は使えません。Anima には専用の「Anima Control Pose」アダプタ(Hugging Face: Claquasse/Anima-Control-Pose)があり、同梱のカスタムノードでポーズ制御ができます。モデルの重みは非商用ライセンスですが、生成した画像は商用利用できます。
まとめ|SDXLならUnion + DWPoseで始めよう
この記事のポイント
- ControlNetとは:参照画像から情報を抽出して生成を制御する技術。ComfyUI・SD WebUI 共通の知識
- SDXL / Illustrious は ControlNet Union 1本:Set Union ControlNet Type で種類を指定する
- ポーズの前処理は DWPose Estimator:OpenPose Pose はアニメ絵で腕を取り落とす
- strength は 0.5 から:骨格が正しければそれで決まる。上げすぎると崩れる
- Apply ControlNet は positive / negative の2本:古い記事のノードは DEPRECATED
次のステップ
- まずは DWPose + Union でポーズ制御を試してみる
- 線画から着彩に挑戦(プリプロセッサ不要)
- Depth で背景の構図を固定して、背景差分を作る
- 慣れてきたら OpenPose + Depth の組み合わせで、キャラを背景の中に置く
ControlNet を使いこなせば、「こんな構図で」「このポーズで」という要望を実現できるようになります。まずは1種類から試して、徐々にレパートリーを増やしていきましょう。
複数の ControlNet を同時に使うと VRAM 消費が大きくなります。ConoHa AI Canvasの速度検証では、ControlNet×3+LoRA×2 の構成で約3.3倍の速度差が出ています。処理速度に不満がある方はクラウド環境も選択肢です。
関連記事







⚠️ AI画像生成をご利用の際の重要な注意事項
著作権・知的財産権について
- 既存のキャラクター、作品、ブランドロゴなどの模倣・複製は著作権侵害にあたる可能性があります
- 商用利用時は特に注意が必要です
肖像権について
- 実在人物(著名人・一般人問わず)の顔や特徴を模倣した画像生成はお控えください
- 無断での肖像権使用は法的トラブルの原因となります
利用規約の確認
- 各AI画像生成サービスの利用規約を必ずご確認ください
- 商用利用の可否、生成画像の権利関係は各サービスで異なります
免責事項
- 当ブログの情報を参考にしたAI画像生成により生じた問題について、当ブログは一切の責任を負いません
- 法的問題が生じた場合は、利用者の自己責任となります
- 最新の法律・規約情報は公式情報をご確認ください
適切なAI画像生成を心がけ、創作活動を楽しみましょう。
詳細についてはAIと著作権についてをご覧ください。



コメント