- ソフト・サービス
- ComfyUI
- ComfyUIの画像の制御
- ComfyUIの複数のControlNetの併用|Union ControlNet
ComfyUI
ComfyUIの複数のControlNetの併用|Union ControlNet

ComfyUIの複数のControlNetの併用|Union ControlNet
この記事では、ControlNet を2つ重ねてかけ、深度で部屋の奥行きを、写真から取った輪郭の線で窓の桟や梁の位置を決めて、洋室の居間を和室に作り替えます。
画像の左と右で別の物を決める使い方と、1つのモデルで複数の種類を扱う Union ControlNet も扱います。
画面:ComfyUI v0.37.0 ポータブル版(Windows・2026年9月)ComfyUIの複数のControlNetとUnion ControlNetとは
ControlNet は、形の手がかりになる画像をモデルに渡して、形を決めたまま画像を作る仕組みです。
その ControlNet を2つ以上同時に使うことを、この記事では併用と呼びます。
1つの手がかりでは、込み入った場面の形を決めきれないことがあります。
複数の ControlNet を重ねれば、画像の左と右のような別々の所や、同じ物の奥行きと輪郭を、同時に決められるでしょう。
重ねると、次のようなことができます。
| できること | 中身 |
|---|---|
| 込み入った場面を決める | 人物・家具・空間のように、決めたい物が多い場面を、複数の手がかりで決める |
| 効き方を分ける | ControlNet ごとの「強度」で、手がかりごとの効き方を変える |
| 足りない所を補う | 深度では決まらない輪郭を線で、線では決まらない奥行きを深度で補う |
| 組み合わせを試す | 違う種類の手がかりを組み合わせて、1つの手がかりでは出ない画を探す |
Union ControlNet は、1つのモデルで線・深度・姿勢など複数の種類を扱える ControlNet です。
重ねずに、1つのモデルの種類を切り替えて使います。
複数のControlNetを使う前に|ComfyUIの言葉と用意するもの
手順を読む前に、ComfyUI の言葉の意味を表で確かめてください。
| 言葉 | 意味 |
|---|---|
| ポータブル版 | Python ごと1つのフォルダに入った、Windows 向けの ComfyUI。NVIDIA の GPU の PC では、展開したフォルダの中の run_nvidia_gpu.bat をダブルクリックして起動する。入れ方はComfyUI ポータブル版|Windowsで解説している |
| ノード | 画像を読み込む・画像を作るなど、処理を1つずつ受け持つ四角い部品 |
| キャンバス | ノードを並べてつなぐ、画面の広い作業の場 |
| 接続線 | ノードの出力の点と、別のノードの入力の点を結ぶ線。ドラッグで引く |
| ノード検索 | キャンバスの何も無い所をダブルクリックすると開く、ノードを名前で探す画面 |
| ワークフロー | ノードを接続線でつないだ、画像を作るまでの処理の流れ |
| モデル | 学習した結果を収めたファイル。画像を作る本体のモデルのほかに、ControlNet などが使う補助のモデルもある |
| チェックポイント | 画像を作るモデル・CLIP(プロンプトを読むモデル)・VAE をまとめた1つのファイル。「チェックポイントを読み込む」のノードで読むと、「モデル」「CLIP」「VAE」の3つが出る |
| プロンプト | 作りたい画像を英語などで書いた文。1つめのプロンプト(ポジティブ)に描きたい物を、2つめ(ネガティブ)に描かせたくない物を書く。1つめは、Kサンプラーの「ポジティブ」の点につながっている方 |
| CLIPテキストエンコード(プロンプト) | プロンプトを書き込み、条件付けに変えるノード |
| 条件付け | プロンプトの文を、モデルが読める形にしたもの |
| 潜在 | 画像のもとになる、小さく縮めたデータ。「空の潜在画像」のノードで、作る画像の大きさを決める |
| Kサンプラー | ノイズを少しずつ取り除く処理(ステップ)を繰り返して、画像のもとになる潜在を作るノード |
| VAE | 潜在とふつうの画像を行き来させるモデル。「VAEデコード」は、潜在を画像に戻すノード |
| ControlNet | 画像を作るモデルに、形の手がかりになる画像を足して渡す仕組み |
| ControlNetモデルを読み込む | ControlNet のモデルのファイルを読むノード |
| ControlNetを適用 | プロンプトの条件付けに、手がかりの画像を足すノード |
| 強度 | ControlNet が効く強さ。大きいほど手がかりの画像に近くなり、0 では効かない |
| 深度 | カメラからの距離を白黒の濃さで表した画像。近い所ほど白い |
| 組み込みのノード | ComfyUI に初めから入っているノード |
ダブルクリックした場所が、ノード検索で選んだノードの置き場所になります。
画面の右上の「実行する」でワークフローを動かすと、作った画像が「画像を保存」に出ます。
作った画像の保存先は、ComfyUI/output のフォルダです。
この記事の手順は、ControlNet を1つ足したワークフローから始めます。
| 用意するもの | この記事で使ったもの |
|---|---|
| ControlNet を1つ足したワークフロー | 深度の ControlNet を足した、居間を和室にするワークフロー |
| ControlNet のモデル | Depth(深度の画像を手がかりにする)・Canny(輪郭の線)・OpenPose(人の姿勢)の3つを ComfyUI/models/controlnet に置いた。配布元は、下の ControlNet の基本の記事 |
| 手がかりの画像 | 同じ居間の画像から作った深度の画像と線の画像、人物の姿勢の画像、椅子の線の画像(作り方は下) |
深度と線の画像は前処理のノードで元の画像から作り、姿勢の画像は写真から SDPose(写真から人の姿勢を取るモデル)で取ってください。
作り方は、ComfyUIの前処理|プリプロセッサ・comfyui_controlnet_auxとComfyUIのPose ControlNet|添景の人物の姿勢で解説しています。
元の居間の写真は、深度と線の画像を作るのに使うだけです。
画像を作るワークフローには、元の写真を直接は入れません。
ControlNet のモデルと、チェックポイント(dreamshaper_8)は、どちらも SD1.5(2022年に公開された、文章から画像を作るモデル Stable Diffusion の 1.5 版)用のものにそろえましょう。
ControlNet を1つ足す組み方は、ComfyUIのControlNetの基本|Load ControlNet Model・Apply ControlNet・強さと効く範囲で解説しています。
ComfyUIで複数のControlNetを使う方法|Apply ControlNetをつなぐ
重ねるときは、「ControlNetを適用」を2つ置き、1つめの出力を2つめの入力につなぎます。
ここでは、深度(Depth)と線(Canny)の2つを重ねました。
2組目の ControlNet を足す
この記事では、「ControlNetモデルを読み込む」「画像を読み込む」「ControlNetを適用」の3つのノードを、ControlNet の1組と呼びます。
2つめの
キャンバスの空いている所をダブルクリックし、「Load ControlNet」と打って「ControlNetモデルを読み込む」を押します。
2つめの「ControlNetモデルを読み込む」が置かれます。
Canny の
置いたノードの「コントロールネット名」の欄(画面では「コント …」と縮めて出る)を押し、control_v11p_sd15_canny_fp16.safetensors を押します。
欄にモデルの名前が入ります。
線の
キャンバスの空いている所をダブルクリックして「画像を読み込む」を置き、「アップロードするファイルを選択」で線の画像を選びます。
ノードの下に、線の画像が出ます。

ComfyUI/input にコピーされ、ネットには送られない2つめの
キャンバスの空いている所をダブルクリックし、「Apply ControlNet」と打って「ControlNetを適用」を押します(「ControlNetを適用(旧)」ではない方)。
2つめの「ControlNetを適用」が置かれます。
モデルと
2つめの「ControlNetを適用」の左の入力に、2つめの「ControlNetモデルを読み込む」の出力、線の画像の「画像」、チェックポイントの「VAE」をドラッグしてつなぎます。
左の「コントロールネット」「画像」「vae」の3つに、接続線がつながります。
2つの「ControlNetを適用」を鎖のようにつなぐ
1つめの出力を
1つめの「ControlNetを適用」の右の「ポジティブ」を2つめの左の「ポジティブ」へ、右の「ネガティブ」を左の「ネガティブ」へドラッグします。
条件付けが、1つめから2つめへ渡るようになります。
2つめの出力を
2つめの「ControlNetを適用」の右の「ポジティブ」と「ネガティブ」を、Kサンプラーの「ポジティブ」と「ネガティブ」へドラッグします。
1つめからKサンプラーへつながっていた接続線は、新しい接続線に替わります。

2つの
1つめ(深度)の「強度」の欄を押して 0.8、2つめ(線)の「強度」の欄を押して 0.6 と打ち、それぞれ Enter を押します。
欄が 0.80 と 0.60 になります。
「実行する」
画面の右上の「実行する」を押します。
「画像を保存」に、2つの手がかりに沿った画像が出ます。
2つを重ねて作った和室です。

編集部の PC(NVIDIA GeForce RTX 4060)で 768×512 の1枚を作ると、約7秒かかりました。
ControlNet が1つのときは約6秒です。
手順の中のノードの名前は、日本語の表示に合わせています。
英語の表示のままなら、左下の歯車で設定を開き、検索に Language と打って日本語を選びます。
3つのモデルの置き場所 ComfyUI/models/controlnet は、ポータブル版なら ComfyUI_windows_portable\ComfyUI\models\controlnet です。
作例の画像は、次の設定で作りました。
和室の作例の1つめのプロンプトには、「a japanese style living room, wooden walls, tatami floor, low table, warm evening light, architectural photo」と書きました。
| ノード | 欄と値 |
|---|---|
| チェックポイントを読み込む | dreamshaper_8(Civitai〈画像のモデルを配るサイト〉の DreamShaper 8 のページの dreamshaper_8.safetensors を落とし、ComfyUI/models/checkpoints に置く) |
| 2つめの「CLIPテキストエンコード(プロンプト)」(ネガティブ) | text, watermark, blurry, lowres, deformed |
| 空の潜在画像 | 幅 768・高さ 512 |
| Kサンプラー | シード 42・生成後の制御 fixed・ステップ 25・cfg 7.0・サンプラー名 euler・スケジューラ normal・ノイズ除去 1.00 |
最初に実行する前に、表のノードの欄を表の値に合わせておきましょう。
記事と同じ条件で作れます。
場所ごとにかける作例では、ネガティブの最後に bad anatomy(崩れた体)を足しています。
手がかりの画像は、手元にある写真やパースから作って進めてください。
できる画像は、元の画像によって記事と変わります。
複数のControlNetを画像の場所ごとにかける
画像の左と右で、別の物を別の手がかりで決める使い方です。
公式ドキュメントの例は、左の人物を姿勢で、右のスクーターに乗った猫を手描きの線で決めています。
この記事では、左の人物を姿勢で、右の椅子を線で決めました。
手がかりの画像は、どちらも同じ 768×512 の大きさにし、姿勢の画像は人物を左に、線の画像は椅子を右に寄せて作っておきます。
1組目を
1組目の「画像を読み込む」で姿勢の画像を選び、「コントロールネット名」で control_v11p_sd15_openpose_fp16.safetensors を押します。
1組目が、人物の姿勢の手がかりになります。
2組目を
2組目の「画像を読み込む」で椅子の線の画像を選び、「コントロールネット名」で control_v11p_sd15_canny_fp16.safetensors を押します。
2組目が、椅子の形の手がかりになります。
2つの
2つの「ControlNetを適用」の「強度」の欄を押し、どちらも 1 と打って Enter を押します。
2つの欄が 1.00 になります。
両方の
1つめの「CLIPテキストエンコード(プロンプト)」の文の欄に、左の物と右の物を両方書きます。
ここでは「a woman standing on the left, a lounge chair on the right, bright living room, photo」と書きました。
「実行する」
右上の「実行する」を押します。
「画像を保存」に、左に人物、右に椅子の描かれた画像が出ます。

姿勢の画像は正面を向いた人でしたが、作った人物は窓の方を向きました。
向きまで決めたいときは、プロンプトに向き(例「facing the camera」)を書くか、顔の点(目・鼻・耳)が取れた姿勢の画像を使ってください。
複数のControlNetを同じ物にかける|深度と線
同じ被写体に、別の種類の手がかりを重ねる使い方です。
手がかりの画像は、同じ元の画像から作り、位置をそろえます。
| 組み合わせ | 決めるもの |
|---|---|
| 姿勢+深度 | 人物の姿勢と、空間の奥行き |
| 姿勢+線 | 人物の姿勢と、輪郭の細部 |
| 深度+線 | 空間の形と、輪郭の細部 |
居間の画像から作った深度と線を重ね、和室に作り替えて比べました。
組み方は「2組目の ControlNet を足す」の節と同じで、1組目に深度、2組目に線を入れています。
場所ごとにかける作例で入れ替えた画像・モデル・強度・プロンプト・ネガティブは、和室の作例の値に戻してから作ります。
深度だけ・線だけの画像は、使わない方の「ControlNetを適用」を削除し、条件付けがもう片方だけを通って Kサンプラーへ行くように、接続線をつなぎ直して作りました。

複数のControlNetの強度の釣り合い
重ねた ControlNet は、強度の釣り合いで結果が変わります。
1つだけ強度を高くすると、その手がかりばかりが効いて、ほかの手がかりが負けます。
場所ごとに別の ControlNet をかけるときは、強度を同じくらい(たとえば両方 1.0)にしてください。
同じ物に重ねるときは、主にしたい手がかりを強く、補う手がかりを弱くしました。
この記事の和室では、深度を 0.80、線を 0.60 にしています。
プロンプトには、手がかりで決めた物を両方とも書きましょう。
Union ControlNetの使い方|Set Union ControlNet Type
Union ControlNet は、1つのモデルで、線・深度・姿勢など複数の種類を扱える ControlNet です。
種類ごとにモデルを入れ替えずに済みます。
ComfyUI では、組み込みの「Union ControlNetタイプを設定」で、どの種類として使うかを選びます。
このノードを入れる所は、「ControlNetモデルを読み込む」と「ControlNetを適用」の間です。
「Union ControlNetタイプを
キャンバスの空いている所をダブルクリックし、「Union」と打ちます。
一覧の「Union ControlNetタイプを設定」を押すと、キャンバスにノードが置かれます。
モデルの
「ControlNetモデルを読み込む」の右の「コントロールネット」の点から、「Union ControlNetタイプを設定」の左の「control_net」の点までドラッグします。
2つのノードが接続線でつながります。
「ControlNetを
「Union ControlNetタイプを設定」の右の「コントロールネット」の点から、「ControlNetを適用」の左の「コントロールネット」の点までドラッグします。
モデルが、種類を決めてから「ControlNetを適用」に渡るようになります。
「タイプ」
「タイプ」の欄を押し、出てきた一覧で、手がかりの画像に合う種類を押します。
欄に、選んだ種類の名前が入ります。

「タイプ」で選べる種類は、次の9つです。
| タイプ | 手がかりの画像 |
|---|---|
| auto | 種類を決めずに、自動で読み取らせる。前に決めた種類を消す |
| openpose | 姿勢 |
| depth | 深度 |
| hed/pidi/scribble/ted | ぼかした輪郭・手描きの線 |
| canny/lineart/anime_lineart/mlsd | 輪郭・線画・直線 |
| normal | 法線 |
| segment | 物の種類ごとの塗り分け |
| tile | 画像そのもの(細部を描き足す) |
| repaint | 描き直す所 |
ControlNet のモデルは、チェックポイントと同じ系統(SD1.5 なら SD1.5 用)のものを使います。
Union を使うときも、チェックポイントに合う系統の Union のモデルを選んでください。
Union のモデルには、SDXL(Stability AI が2023年に公開した、SD1.5 より大きな画像向けのモデル)用や、Flux.1(Black Forest Labs が2024年に公開した、文章から画像を作るモデル)用などがあります。
Flux.1 用のものを知りたいときは、ComfyUIのFluxのControlNet|Flux.1のワークフローを読んでください。
なお、ほかの画像を作るモデル Z-Image と Qwen-Image の ControlNet は、「ComfyUIのZ-Imageのワークフロー|Z-Image・Turbo」(準備中)と「ComfyUIのQwen-Imageのワークフロー|Qwen-Image・2512・2.1」(準備中)の記事で解説します。
複数のControlNetが効かないとき
| 起きること | 直し方 |
|---|---|
| 1つの手がかりしか効いていない | 2つめの「ControlNetを適用」の出力が、Kサンプラーにつながっているかを見ます。1つめの出力が、2つめの入力に入っているかも確かめましょう |
| 片方の手がかりばかりが効く | 強い方の「強度」を下げるか、弱い方を上げます |
| 手がかりで決めた物が描かれない | その物をプロンプトに書きます |
| 人物の向きが姿勢の画像と違う | 向きをプロンプトに書くか、顔の点が取れた姿勢の画像を使います |
参考にしたのは、ComfyUI の公式ドキュメントのControlNet の混合のページと内蔵ノードのSetUnionControlNetTypeのページです(2026年9月29日に確認)。
会員登録(無料)
記事やテーマのお気に入り・学習履歴・フォローが使えます。
この記事について
PERSC編集部が、建築の制作に関わる知識を実務目線で整理しています。内容は公開・更新日時点の情報にもとづきます。誤りや古い情報にお気づきの場合はお問い合わせよりご連絡ください。

