
ComfyUIの画像の制御とは|ControlNetと参照画像
ComfyUI で作る画像の形や配置を、思いどおりにするにはどうすればよいのでしょうか。
ComfyUI は、文章から画像を作る AI を、自分の PC で動かすためのソフトです。
作りたい画像を書いた文章を、プロンプトと呼びます。
作る画像の形や配置は、プロンプトのほかに、形を決める画像・見本の画像・画像の中の位置を表す数値を足して決めます。
プロンプトだけでは建物の形や家具の置き場所を指定できず、作る画像の元になる番号(シード)が変わるたびに、別の形になるためです。
プロンプトとは別の手がかりを足して画像を思いどおりにすることを、画像の制御と呼びます。
形を決める手がかりの画像を足す代表的な仕組みが、ControlNet です。
色合いや様式の見本として読ませる画像を、参照画像と呼びます。
作例のプロンプトは英語で書いています。
ComfyUI をまだ入れていないときは、ComfyUI ポータブル版|Windowsで入れ方を、ComfyUIの画像生成とは|txt2imgの流れでプロンプトだけから1枚作る手順を先に読んでください。
ノード・モデル・シードとは何か
ComfyUI の画面では、処理を1つずつ受け持つ部品を並べ、つないで画像を作ります。
この記事では、次の3つの言葉を何度も使います。
| 言葉 | 意味 |
|---|---|
| モデル | 学習した結果を収めたファイル。画像を作る本体のモデルのほかに、ControlNet などが使う補助のモデルもある |
| ノード | 画面に並べる四角い部品。モデルを読み込む処理や、画像を作る処理を、1つずつ受け持つ |
| シード | 作る画像の元になる番号。同じプロンプトでも、シードが変わると別の画像になる |
なぜプロンプトだけでは形や配置が決まらないのか
プロンプトだけでは、そこに書いていない形や位置を、モデルがシードごとに違えて描くためです。
「2階建ての家」と書いても、窓の数や屋根の角度までは決めきれません。
たとえば、家の外観の線画を用意しておき、その線画を使わずにプロンプトだけで外観を作ると、屋根と窓と扉の位置は線画と違う所になりました。
プロンプトを細かく書けば形が決まると思うかもしれません。
しかし、窓の並びや家具の置き場所のような配置は、プロンプトで言い切れる量を超えています。
そのため、形の決まった画像が出るまで、何度も作り直すことになりがちです。
画像の制御は、この作り直しを減らすために、プロンプトとは別の手がかりを足す方法です。
ComfyUIの画像の制御にはどんな方法があるのか
画像を思いどおりにする方法は、足す手がかりの種類で、次の3つに分かれます。
| 決めたいもの | 足す手がかり | 主な方法 |
|---|---|---|
| 形 | 線・深度(カメラからの近さと遠さ)・姿勢の画像 | ControlNet(形の手がかりの画像を足す仕組み)・T2I Adapter(ControlNet に似た、小さく速い仕組み) |
| 雰囲気(色合い・様式) | 見本の画像 | IPAdapter・スタイルモデル・USO(どれも、見本の画像の特徴を足す仕組み) |
| 置き場所 | 画像の中の位置と大きさを表す数値 | Area Composition(範囲ごとにプロンプトを効かせる方法)・GLIGEN(物ごとに置き場所を決めるモデル) |
どの方法も、作りたい画像をプロンプトで書くことは変わりません。
プロンプトとは別に、形・雰囲気・置き場所の手がかりを、ノードでつないで足していきます。
似た方法に、元の画像をもとに全体を作り直す img2img(画像から画像を作る方法)があります。
img2img は、元の画像の色や明るさまで引き継ぐ方法です。
この記事の方法は、決めたいもの(形・雰囲気・置き場所)だけを手がかりとして渡す点が、img2img との違いです。
img2img は、ComfyUIのimg2img|Load Image・VAE Encode・デノイズで解説しています。
ControlNetとは何か
形は、線・深度・姿勢の画像を ControlNet に渡して決めます。
ControlNet は、画像を作るモデルに、形の手がかりになる画像を足して渡す仕組みで、2023年に論文で発表されました。
外観の写真から取った線を渡すと、2階の張り出しや窓の位置を残したまま、別の外観を作れました。

手がかりの画像ごとに、別の ControlNet のモデルを使います。
| 手がかりの画像 | 何が写っている画像か | 使う ControlNet のモデル | 決められる形 |
|---|---|---|---|
| 線 | 輪郭や線画を、黒い地に白い線で描いた画像 | Canny(写真の輪郭を取った線)・Lineart(線画のような線)・Scribble(手描きのおおまかな線) | 建物や家具の形 |
| 深度 | カメラに近い所を白く、遠い所を黒くした画像 | Depth | 部屋や建物の奥行き |
| 姿勢 | 人の関節の位置を、色の付いた線でつないだ画像 | OpenPose | 人物の姿勢 |
こうした手がかりの画像は、元の写真やパース(建物の完成予想図)から、前処理(プリプロセッサ)のノードで作ります。
前処理は、画像から輪郭や奥行きのような形の情報だけを取り出して、別の画像にする処理です。
ComfyUI に初めから入っている前処理のノードは、線を取る「キャニー」だけ。
ほかの前処理は、あとから足すノード(カスタムノード)の comfyui_controlnet_aux を入れると使えます。
この記事の作例では、SD1.5 用の ControlNet を使いました。
SD1.5(Stable Diffusion 1.5)は、2022年に公開された、文章から画像を作るモデルです。
ControlNet のモデルは、画像を作るモデルごとに別に作られているので、使う画像を作るモデルに合うものを選びます。
ControlNet に似た働きで、もっと小さく速い T2I Adapter もあります。
形を細かく決めたいときは ControlNet、軽く速く決めたいときは T2I Adapter を選ぶとよいでしょう。
画像を作るモデルに Flux.1 を使うときは、ControlNet も Flux.1 用のものに替えます。
Flux.1 は、Black Forest Labs が2024年に公開した、文章から画像を作るモデルです。
複数の ControlNet を重ねて、深度と線のように組み合わせることもできます。
参照画像とは何か
色合いや様式を伝えるのは、モデルに読ませる見本の画像(参照画像)です。
「北欧風」のような雰囲気は、プロンプトで書くより、見本の画像を1枚見せたほうが早く伝わるためです。
北欧風の居間の画像を参照画像にして IPAdapter で作ると、白い壁と明るい木の居間になりました。

参照画像を使う方法は、次の3つです。
| 方法 | どういうものか | 使う画像を作るモデル |
|---|---|---|
| IPAdapter | 参照画像の特徴を、画像を作るモデルに足す仕組み。ComfyUI にあとから足すノード(カスタムノード)の ComfyUI_IPAdapter_plus を入れて使う | SD1.5・SDXL(Stability AI が2023年に公開した、SD1.5 より大きな画像向けのモデル) |
| スタイルモデル | 参照画像の見た目を引き継ぐモデルを、組み込みのノード「スタイルモデルを適用」で使う方法。ComfyUI に初めから入っている見本のワークフロー(テンプレート)では、Black Forest Labs の Flux.1 Redux(Flux.1 用のスタイルモデル)を使う | Flux.1 |
| USO | ByteDance が作った、参照画像の人物や物と、様式の両方を移せる仕組み。組み込みのノードで動く | Flux.1 [dev](Flux.1 のうち、モデルのファイルが配られていて、手元の PC で動かせる版) |
IPAdapter は、深度の ControlNet と組み合わせると、部屋の形を残したまま様式だけを移せます。
範囲指定とは何か
範囲指定は、画像の中の位置と大きさを数値で指定して、物の置き場所を決める方法です。
方法は、範囲ごとにプロンプトを効かせるものと、物ごとに位置を決めるものの2つです。
範囲ごとにプロンプトを効かせる方法を、Area Composition と呼びます。
組み込みの「条件付け(エリア設定)」のノードで、画像の中の四角い範囲を、左上から数えたピクセル(画像をつくる1つ1つの点)の数で指定し、その範囲にだけプロンプトを効かせます。
画像の左半分に「a red brick building」(れんがの建物)、右半分に「a modern glass office building」(ガラスのビル)のプロンプトを効かせると、2つの建物が左右に並びました。

物ごとに位置を決める方法には、GLIGEN というモデルを使います。
GLIGEN は、物の名前と、画像の中の位置と大きさを組にして、物を置く場所を決めるモデルです。
ComfyUI では、組み込みの「GLIGENテキストボックスを適用」のノードに、物の名前(テキスト)と、位置と大きさ(x・y・幅・高さ)を打ちます。
| 方法 | 決め方 | 使うノード |
|---|---|---|
| Area Composition | 画像の中の四角い範囲ごとに、プロンプトを効かせる | 条件付け(エリア設定) |
| GLIGEN | 物の名前と、位置と大きさの組で、物ごとに置き場所を決める | GLIGENテキストボックスを適用 |
まとめ
ComfyUI でプロンプトだけから作る画像は、プロンプトに書いていない形や位置が、シードごとに変わります。
そこで、決めたいものに合わせて、プロンプトとは別の手がかりを足していくのが、画像の制御です。
形を決めるのは、ControlNet に渡す線・深度・姿勢の画像です。
雰囲気は、見本の画像を IPAdapter・スタイルモデル・USO で読ませて伝えます。
置き場所は、画像の中の位置と大きさを表す数値で、Area Composition と GLIGEN を使って決めます。
確かめの問い
読み終えたら、次の3つに答えてみましょう。
- 窓の位置を元の写真のとおりに残したまま、外壁の材料だけを変えたいとき、どの方法を使うでしょうか。
- 見本の部屋の写真の色合いを、作る画像に移したいとき、どの方法を使うでしょうか。
- 画像の左にソファ、右に鉢植えを置きたいとき、どの方法を使うでしょうか。
答え
- ControlNet です。写真から前処理で線を取ってその線を手がかりにし、新しい外壁の材料はプロンプトに書きます。
- 参照画像を使う方法(IPAdapter・スタイルモデル・USO)です。
- GLIGEN か Area Composition です。GLIGEN なら、物の名前と位置と大きさの組を「GLIGENテキストボックスを適用」のノードに打ちます。Area Composition なら、左と右の範囲にそれぞれのプロンプトを効かせます。
続けて読む記事
この記事で名前だけ出た方法は、次の記事で手順を解説しています。
はじめての人は、上から順に読むとよいでしょう。
ControlNet の基本
- ComfyUIのControlNetの基本|Load ControlNet Model・Apply ControlNet・強さと効く範囲:ControlNet のモデルをどこに置き、どのノードをつなぐか
- ComfyUIの前処理|プリプロセッサ・comfyui_controlnet_aux:写真から線や深度の画像をどう作るか
手がかりの種類ごとの ControlNet
- ComfyUIのCanny・Lineart・Scribble|線で決める形:3種類の線で、形の残り方がどう違うか
- ComfyUIのDepth ControlNet|深度で決める奥行き:奥行きを保ったまま、内装をどう変えるか
- ComfyUIのT2I Adapter|Depth T2I Adapter:ControlNet より軽い T2I Adapter は、何が違うか
- ComfyUIのPose ControlNet|添景の人物の姿勢:写真の人物の姿勢を、どう取って使うか
- ComfyUIの複数のControlNetの併用|Union ControlNet:2つの手がかりを、どう重ねるか
- ComfyUIのFluxのControlNet|Flux.1のワークフロー:Flux.1 で形を決めるには、どのモデルを使うか
深度と形の推定
- ComfyUIの深度と法線の推定|Depth Anything 3・Marigold・MoGe・Lotus:1枚の画像から、奥行きや面の向きをどう取り出すか
参照画像と置き場所
- ComfyUIのIPAdapter|参照画像のスタイル・ComfyUI_IPAdapter_plus:見本の画像の様式を、どう移すか
- ComfyUIのスタイルモデルと参照画像|Style Model・USO:組み込みのノードで、参照画像をどう使うか
- ComfyUIの範囲を指定した構図|Area Composition・GLIGEN:画像の場所ごとに、描く物をどう決めるか
ControlNet と参照画像が中で何をしているかは、次の記事で解説します。
- 「ControlNet|線・深度・姿勢で形を決める仕組み」(準備中)
- 「IP-Adapter|参照画像で雰囲気を伝える仕組み」(準備中)
参考にしたのは、ComfyUI の公式ドキュメントのControlNet・Depth T2I Adapter・プリプロセッサー・Flux.1 USOのページです(2026年9月29日に確認)。
会員登録(無料)
記事やテーマのお気に入り・学習履歴・フォローが使えます。
この記事について
PERSC編集部が、建築の制作に関わる知識を実務目線で整理しています。内容は公開・更新日時点の情報にもとづきます。誤りや古い情報にお気づきの場合はお問い合わせよりご連絡ください。
