search
  1. ソフト・サービス
  2. ComfyUI
  3. ComfyUIの画像の制御
  4. ComfyUIのDepth ControlNet|深度で決める奥行き

ComfyUI

ComfyUIのDepth ControlNet|深度で決める奥行き

編集部 読了 約14分

この記事では、Depth ControlNet(深度の画像〈カメラからの距離を白黒の濃さで表した画像〉を手がかりにする ControlNet)を使い、洋室の居間の画像から、同じ奥行きのまま和室の画像を作ります。

深度の画像は、前処理のノードを使って元の画像から作ります。

画面:ComfyUI v0.37.0 ポータブル版(Windows・2026年9月)

ComfyUIのDepth ControlNetとは|深度マップで決める奥行き

深度の画像(深度マップ)は、カメラからの距離を白黒の濃さで表した画像です。
カメラに近い所ほど白く、遠い所ほど黒くなります。

ControlNet は、画像を作るモデルに、形の手がかりの画像を足して渡す仕組みです。
Depth ControlNet は、深度の画像から空間の並びを読み取るように学習した ControlNet です。

作った画像の手前と奥の関係が、深度の画像のとおりになります。

深度の画像は、建築のほかにも、次のような場面で使われます。

場面深度で決めるもの
建築建物や部屋の空間の形と、遠くの物ほど小さく見える遠近の関係
風景手前・中ほど・奥の重なり
人物人と背景の前後の関係
商品商品と背景の離れ方と置き場所

輪郭の線を手がかりにする ControlNet(Canny など)と違い、材料の模様や細かい線は手がかりに入りません。
そのため、空間の形は残したまま、内装の材料や様式を大きく変えられます。

Depth ControlNetを使う前に|ComfyUIの言葉と用意するもの

ComfyUI の画面で使う言葉と、その意味の表です。

言葉意味
ポータブル版Python ごと1つのフォルダに入った、Windows 向けの ComfyUI。NVIDIA の GPU の PC では、展開したフォルダの中の run_nvidia_gpu.bat をダブルクリックして起動する。入れ方はComfyUI ポータブル版|Windowsで解説している
ノード画像を読み込む・画像を作るなど、処理を1つずつ受け持つ四角い部品
キャンバスノードを並べてつなぐ、画面の広い作業の場
接続線ノードの出力の点と、別のノードの入力の点を結ぶ線。ドラッグで引く
ノード検索キャンバスの何も無い所をダブルクリックすると開く、ノードを名前で探す画面
ワークフローノードを接続線でつないだ、画像を作るまでの処理の流れ
モデル学習した結果を収めたファイル。画像を作る本体のモデルのほかに、ControlNet などが使う補助のモデルもある
チェックポイント画像を作るモデル・CLIP(プロンプトを読むモデル)・VAE をまとめた1つのファイル。「チェックポイントを読み込む」のノードで読むと、「モデル」「CLIP」「VAE」の3つが出る
SD1.52022年に公開された、文章から画像を作るモデル Stable Diffusion の 1.5 版
dreamshaper_8SD1.5 をもとに作られた、チェックポイントの1つ
プロンプト作りたい画像を英語などで書いた文。1つめのプロンプト(ポジティブ)に描きたい物を、2つめ(ネガティブ)に描かせたくない物を書く。1つめは、Kサンプラーの「ポジティブ」の点につながっている方
CLIPテキストエンコード(プロンプト)プロンプトを書き込み、条件付けに変えるノード
条件付けプロンプトの文を、モデルが読める形に変えたもの
潜在画像のもとになる、小さく縮めたデータ。「VAEデコード」のノードで画像に戻す
Kサンプラーノイズを少しずつ取り除く処理(ステップ)を繰り返して、画像のもとになる潜在を作るノード
シード作る画像の元になる番号。同じプロンプトでも、シードが変わると別の画像になる
ControlNet画像を作るモデルに、形の手がかりになる画像を足して渡す仕組み
ControlNetモデルを読み込むControlNet のモデルのファイルを読むノード
ControlNetを適用プロンプトの条件付けに、手がかりの画像を足すノード
強度ControlNet が効く強さ。大きいほど手がかりの画像に近くなり、0 では効かない
前処理画像から線や深度など、形の情報だけを取り出して別の画像にする処理
組み込みのノードComfyUI に初めから入っているノード
カスタムノードComfyUI にあとから足すノード

ノードは、ノード検索を開いたときにダブルクリックした場所に置かれます。
ワークフローを動かすのは、画面の右上の「実行する」です。

作った画像は「画像を保存」のノードに出て、ComfyUI/output に保存されます。

この記事の手順を始める前に、次のものをそろえてください。

用意するもの中身
ControlNet を足したワークフロー文章から画像を作るワークフローに、「ControlNetモデルを読み込む」と「ControlNetを適用」を足したもの
SD1.5 のチェックポイントこの記事では dreamshaper_8
Depth のモデルcontrol_v11f1p_sd15_depth_fp16.safetensors を ComfyUI/models/controlnet に置いておく。配布元は、下のリンクの記事
深度の前処理のノードカスタムノード comfyui_controlnet_aux を入れておく。入れ方は、「深度マップの作り方」の節の最後のリンクの記事

ControlNet のノードの足し方とモデルの置き方は、ComfyUIのControlNetの基本|Load ControlNet Model・Apply ControlNet・強さと効く範囲で解説しています。

ノードや欄の名前は、日本語の表示のものです。
英語の表示なら、左下の歯車を押して設定を開き、検索の欄に Language と打って、その欄を日本語に切り替えます。

ComfyUI/models/controlnet のような置き場所は、ポータブル版なら ComfyUI_windows_portable の中の ComfyUI から始まります。

作例の画像は、次の設定で作りました。
1つめのプロンプトは、手順の中に書いた文です。

ノード欄と値
チェックポイントを読み込むdreamshaper_8(Civitai〈画像のモデルを配るサイト〉の DreamShaper 8 のページの dreamshaper_8.safetensors を落とし、ComfyUI/models/checkpoints に置く)
2つめの「CLIPテキストエンコード(プロンプト)」(ネガティブ)text, watermark, blurry, lowres, deformed
Depth Anything V2 - Relativeckpt_name depth_anything_v2_vitl.pth・resolution 512(どちらも初めの値)
ControlNetを適用強度 1.00・開始パーセント 0.000・終了パーセント 1.000
空の潜在画像幅 768・高さ 512
Kサンプラーシード 42・生成後の制御 fixed・ステップ 25・cfg 7.0・サンプラー名 euler・スケジューラ normal・ノイズ除去 1.00

最初の実行より前に、表のとおりに各ノードの欄を合わせてください。
記事と同じ条件で作れます。

元の画像には、手元の写真やパースを選びます。
縦横の比は、空の潜在画像(768×512)に合わせておきましょう。

設定が同じでも、元の画像が違えば、できる画像は記事と違うものになるでしょう。

深度マップの作り方|Depth Anything V2で作る

深度の画像は、元の画像から前処理のノードで作ります。

ここでは、comfyui_controlnet_aux(前処理のノードをまとめたカスタムノード)の「Depth Anything V2 - Relative」を使いました。
Depth Anything V2 という深度を割り出すモデルを使う前処理のノードで、Relative は近い・遠いの関係で深度を出す版です。

「画像を読み込む」を置く

キャンバスの空いている所をダブルクリックして、ノード検索に「画像を読み込む」と打ちます。
同じ名前の行を一覧で押せば、キャンバスにノードが置かれます。

元の画像をアップロードする

「画像を読み込む」の「アップロードするファイルを選択」を押し、空間の形を残したい画像を選びます。
ノードの下に、選んだ画像が出ます。

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

「Depth Anything V2 - Relative」を置く

キャンバスの空いている所をダブルクリックし、「Depth Anything V2」と打ちます。
一覧の「Depth Anything V2 - Relative」を押すと、ノードがキャンバスに置かれます。

元の画像をつなぐ

「画像を読み込む」の右の「画像」の点から、「Depth Anything V2 - Relative」の左の「image」の点までドラッグします。
2つのノードが接続線でつながります。

「画像プレビュー」を置く

「Depth Anything V2 - Relative」の右の「画像」の点から接続線を引き出し、キャンバスの何も無い所で離します。
ノード検索で「画像プレビュー」と打って押すと、接続線でつながった「画像プレビュー」が置かれます。

「実行する」を押す

画面の右上の「実行する」を押します。
「画像プレビュー」に、手前の椅子が白く、奥の壁が灰色、左の窓の外が黒い画像が出ます。

「ControlNetを適用」の「画像」がまだつながっていないため、その先の画像を作る処理は動きません。
「ControlNetを適用」のノードが赤く囲まれるのは、この「画像」が足りない印です。

初めて実行したときは前処理のモデルを落とすので、深度の画像が出るまでに時間がかかります。

洋室の居間の画像と、Depth Anything V2 - Relative で作った深度の画像
手前の椅子は白く、ソファは明るい灰色、奥の壁は濃い灰色、窓の外は黒になった

初めて使うときは、前処理のモデル(depth_anything_v2_vitl.pth)が落とされます。
編集部の PC では、落とす時間を入れて1回目が約74秒でした。

comfyui_controlnet_aux の入れ方は、ComfyUIの前処理|プリプロセッサ・comfyui_controlnet_auxで解説しています。

カスタムノードを入れたくないときは、組み込みのノードで動く Depth Anything 3(画像から深度を割り出すモデル)でも、深度の画像を作れます。
使い方は、ComfyUIの深度と法線の推定|Depth Anything 3・Marigold・MoGe・Lotusを読んでください。

ComfyUIのDepth ControlNetの使い方|ワークフローとモデル

深度の画像を「ControlNetを適用」に渡し、Depth のモデルを読みましょう。
公式ドキュメントの例は建築のシーンを作るもので、この記事では洋室の居間を和室に作り替えました。

深度の画像を「ControlNetを適用」につなぐ

「Depth Anything V2 - Relative」の右の「画像」の点から、「ControlNetを適用」の左の「画像」の点までドラッグします。
深度の画像が、ControlNet の手がかりになります。

1つの出力からは何本でも接続線を引けるので、「画像プレビュー」への接続線も残ったままです。

Depth のモデルを選ぶ

「ControlNetモデルを読み込む」の「コントロールネット名」の欄(画面では「コント …」と縮めて出る)を押し、control_v11f1p_sd15_depth_fp16.safetensors を押します。
欄にモデルの名前が入ります。

Depth ControlNet のワークフローの全体。左下の Depth Anything V2 - Relative と、ControlNetモデルを読み込むを赤い枠で囲んでいる
右の「画像を保存」に、和室になった居間が出ている

新しい内装をプロンプトに書く

1つめの「CLIPテキストエンコード(プロンプト)」の文の欄に、作りたい内装を英語で書きます。
ここでは「a japanese style living room, wooden walls, tatami floor, low table, warm evening light, architectural photo」と書きました。

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

右上の「実行する」を押します。
「画像を保存」に、同じ空間の形のままの和室の画像が出ます。

編集部の PC(NVIDIA GeForce RTX 4060)で、768×512 の1枚にかかったのは約6秒です。

元の洋室と、作った和室を並べました。

洋室の居間の元の画像と、同じ奥行きのまま和室にした画像
窓の位置、ソファと机の置き場所、天井の梁の向きが、元の画像のとおりに残った

「ControlNetを適用」のほかの欄の働きは、ComfyUIのControlNetの基本|Load ControlNet Model・Apply ControlNet・強さと効く範囲で解説しています。

Depth ControlNetの強度を変えて比べる

「ControlNetを適用」の「強度」を変えて、同じプロンプトとシード(42)で比べました。

シードを固定する

まず、Kサンプラーの「シード」の欄の数を押して 42 を打ち、Enter を押します。
「生成後の制御」(Kサンプラーの中の欄)を押し、fixed を選んでください。

実行しても「シード」の数が変わらなくなり、強度だけの違いを比べられます。

Kサンプラーのノード。「シード」と「生成後の制御」の欄を赤い枠で囲んでいる
この記事では、シードを 42 にした

「強度」の欄に数を打つ

「ControlNetを適用」の「強度」の欄で、左右の矢印のあいだの数を押します。
0.2 と打って Enter を押すと、欄が 0.20 になります。

実行して確かめる

画面の右上の、青い「実行する」を押してください。
「画像を保存」に、強度 0.20 の和室が出ます。

同じようにして、強度 0.40 と 1.00 でも作りました。

ControlNet なしと、強度 0.20・0.40・1.00 で作った和室の並び
ControlNet なしは、プロンプトの条件付けを「ControlNetを適用」を通さずに Kサンプラーへつないで作った。ControlNet なしでは部屋の形が変わった。0.20 でも窓と壁の向きは残り、0.40 から手前の椅子まで元の位置になった

この作例では、強度を 0.20 まで下げても、窓と壁の向きのような空間の形は残りました。
材料や家具を大きく変えたいときは強度を下げ、配置まで残したいときは 1.00 に近づけましょう。

Depth ControlNetとほかのControlNetの組み合わせ

Depth ControlNet は、ほかの ControlNet と重ねて使えます。
よく使う組み合わせは、次の2つです。

組み合わせ決めるもの
深度+線画空間の形と、輪郭のくっきりした所。建物・商品・人物のデザインに向く
深度+姿勢人物の姿勢と、人と空間の前後の関係

重ね方は、ComfyUIの複数のControlNetの併用|Union ControlNetで解説しています。
3Dソフトから書き出した深度の画像を下絵にする使い方は、「ComfyUIの3Dソフトの画像を下絵にしたパース|深度・線画・マテリアルID」(準備中)の記事で解説します。

Depth ControlNetで部屋の形が崩れるとき

起きること直し方
「Depth Anything V2 - Relative」がノード検索に出ないcomfyui_controlnet_aux が入っていません。入れずに済ませたいときは、組み込みの Depth Anything 3 で深度の画像を作ってください
初めての実行がなかなか終わらない前処理のモデルを落としている途中です。終わるまで待ちます
部屋の形が元の画像から崩れる「強度」を上げます。この作例では、0.40 から手前の家具の位置まで残りました。1.00 でも崩れるときは、空の潜在画像の「幅」と「高さ」を、深度の画像と同じ縦横の比の数にしてください
「コントロールネット名」の一覧に Depth のモデルが出ないファイルが ComfyUI/models/controlnet に入っているかを確かめ、キャンバスで R を押して一覧を読み込み直します
内装が元の画像とあまり変わらない「強度」を下げるか、プロンプトに材料と様式をはっきり書きます
接続線を離したときに、ノード検索でなくメニューが出る前の版から使い続けている ComfyUI では、離したときの動きが逆になっていることがあります。Shift を押しながら離すと、ノード検索が開きます

参考にしたのは、ComfyUI の公式ドキュメントのDepth ControlNetのページとcomfyui_controlnet_auxの README です(2026年9月29日に確認)。

会員登録(無料)

記事やテーマのお気に入り・学習履歴・フォローが使えます。

この記事について

PERSC編集部が、建築の制作に関わる知識を実務目線で整理しています。内容は公開・更新日時点の情報にもとづきます。誤りや古い情報にお気づきの場合はお問い合わせよりご連絡ください。

あわせて読みたい