search
  1. ソフト・サービス
  2. ComfyUI
  3. ComfyUIの画像の制御
  4. ComfyUIの複数のControlNetの併用|Union ControlNet

ComfyUI

ComfyUIの複数のControlNetの併用|Union ControlNet

編集部 読了 約16分

この記事では、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つめの「ControlNetモデルを読み込む」を置く

キャンバスの空いている所をダブルクリックし、「Load ControlNet」と打って「ControlNetモデルを読み込む」を押します。
2つめの「ControlNetモデルを読み込む」が置かれます。

Canny のモデルを選ぶ

置いたノードの「コントロールネット名」の欄(画面では「コント …」と縮めて出る)を押し、control_v11p_sd15_canny_fp16.safetensors を押します。
欄にモデルの名前が入ります。

線の画像を読み込む

キャンバスの空いている所をダブルクリックして「画像を読み込む」を置き、「アップロードするファイルを選択」で線の画像を選びます。
ノードの下に、線の画像が出ます。

画像を読み込むのノード。「アップロードするファイルを選択」のボタンを赤い枠で囲んでいる
線の画像を読み込んだところ。選んだ画像は PC の中の ComfyUI/input にコピーされ、ネットには送られない

2つめの「ControlNetを適用」を置く

キャンバスの空いている所をダブルクリックし、「Apply ControlNet」と打って「ControlNetを適用」を押します(「ControlNetを適用(旧)」ではない方)。
2つめの「ControlNetを適用」が置かれます。

モデルと画像と VAE をつなぐ

2つめの「ControlNetを適用」の左の入力に、2つめの「ControlNetモデルを読み込む」の出力、線の画像の「画像」、チェックポイントの「VAE」をドラッグしてつなぎます。
左の「コントロールネット」「画像」「vae」の3つに、接続線がつながります。

2つの「ControlNetを適用」を鎖のようにつなぐ

1つめの出力を2つめの入力につなぐ

1つめの「ControlNetを適用」の右の「ポジティブ」を2つめの左の「ポジティブ」へ、右の「ネガティブ」を左の「ネガティブ」へドラッグします。
条件付けが、1つめから2つめへ渡るようになります。

2つめの出力をKサンプラーにつなぐ

2つめの「ControlNetを適用」の右の「ポジティブ」と「ネガティブ」を、Kサンプラーの「ポジティブ」と「ネガティブ」へドラッグします。
1つめからKサンプラーへつながっていた接続線は、新しい接続線に替わります。

ControlNet を2つ重ねたワークフローの全体。2つの「ControlNetを適用」を赤い枠で囲んでいる
上の「ControlNetを適用」が深度、下が線。条件付けは上→下→Kサンプラーの順に渡る

2つの「強度」を決める

1つめ(深度)の「強度」の欄を押して 0.8、2つめ(線)の「強度」の欄を押して 0.6 と打ち、それぞれ Enter を押します。
欄が 0.80 と 0.60 になります。

「実行する」を押す

画面の右上の「実行する」を押します。
「画像を保存」に、2つの手がかりに沿った画像が出ます。

2つを重ねて作った和室です。

深度と線の2つの ControlNet を重ねて、洋室の居間を和室に作り替えた画像
深度で部屋の奥行きを、線で窓の桟や梁の位置を決めた

編集部の 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つの「強度」を 1.00 にする

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」と書きました。

「実行する」を押して結果を見る

右上の「実行する」を押します。
「画像を保存」に、左に人物、右に椅子の描かれた画像が出ます。

左に人物の姿勢、右に椅子の線を置いた2つの画像と、重ねて作った画像
左の姿勢のとおりに立つ人物と、右の線のとおりの椅子が、1枚の中に描かれた

姿勢の画像は正面を向いた人でしたが、作った人物は窓の方を向きました。
向きまで決めたいときは、プロンプトに向き(例「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を適用」に渡るようになります。

「タイプ」で種類を選ぶ

「タイプ」の欄を押し、出てきた一覧で、手がかりの画像に合う種類を押します。
欄に、選んだ種類の名前が入ります。

ControlNetモデルを読み込むと、Union ControlNetタイプを設定をつないだところ。「タイプ」の欄を赤い枠で囲んでいる
画面の「コントロールネット名」は Union ではないモデルのまま。実行するときは、Union のモデルのファイルを選ぶ

「タイプ」で選べる種類は、次の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編集部が、建築の制作に関わる知識を実務目線で整理しています。内容は公開・更新日時点の情報にもとづきます。誤りや古い情報にお気づきの場合はお問い合わせよりご連絡ください。

あわせて読みたい