ControlNetのDepthは、参照画像の立体的な構図を抽出して生成できるStable Diffusionの拡張機能です。
画面内での奥行きに特化しているので、さまざまな場面で実用的な利用が可能です。
この記事ではControlNet Depthの使い方を解説していきます。
ControlNet Depthとは?

ControlNetの「Depth」は、「深度(Depth)情報」を活用するためのControlNetモデルの一種です。
線画などでは表現できない、奥行きがある構図を指定したい場合に、ControlNet Depthがおすすめです。
以下のような特徴があります。
ControlNet Depthの特徴①深度(Depth)情報を活用
ControlNet Depthでは、素材画像の深度マップをもとにして画像の構造を計測します。
三次元的な奥行きの構造を推定し、対象物と背景との距離感を正確に把握します。
ControlNet Depthの特徴②背景形状・遠近感の再現が得意
ControlNet Depthでは、深度マップを解析することで、元画像の空間的なレイアウトを正確に生成画像へ再現できます。
建物の背景や人物のポーズにより自然な奥行きを持たせたい場合、深度の解析によって遠近感のバランスを調整します。
ControlNet Depthの実用例
背景の質感や階層を保ったままの画像変換
人物の奥行きや建物の位置関係を保ったまま、雰囲気を変更したり背景を描き換えたりできます。
イラストから立体感を持たせた画像に再構成
イラストの線画などに対して深度情報を推定し、立体的な表現に反映することで、よりリアルな画像に仕上げられます。

ControlNet Depthの使い方

ControlNet Depthでは、奥行きがある構図の画像が素材として最も適しています。
深度のない平面が背景になっているような画像は、Depthでは反映ができずに内容が上書きされてしまうので注意しましょう。

ControlNet Depthのインストール方法
Depthは、ControlNet内にインストールされているので、Stable Diffusion内にControlNetを実装すれば導入は完了します。
ControlNetのインストール方法はこちらで詳しく紹介しています。

ControlNet Depthのモデルデータ設定
ControlNetのインストールが完了したら、Depthに使用するモデルデータを必要に応じてダウンロードします。
Hugging FaceにControlNetに関するモデルファイルの一覧から、Depthのモデルファイルをダウンロードします
SD1.5用ControlNetモデルデータ
https://huggingface.co/comfyanonymous/ControlNet-v1-1_fp16_safetensors/tree/main
SDXL用ControlNetモデルデータ
https://huggingface.co/lllyasviel/sd_control_collection/tree/main
- control_v11f1p_sd15_depth.pth
- control_v11f1p_sd15_depth.yaml
- kohya_controllllite_xl_depth_anime.safetensors
- kohya_controllllite_xl_depth.safetensors
- sai_xl_depth_128lora.safetensors
- sai_xl_depth_256lora.safetensors

ダウンロード後は、Stable Diffusion Web UIを「です。 models」>「 ControlNet」の順で開き、ダウンロードしたファイルを配置すれば完了

Depthプリプロセッサの種類
ControlNetのDepthでは、深度情報を抽出するために複数のプリプロセッサが用意されています。
現在、Depth用のプリプロセッサには9種類のパターンがあり、それぞれ異なる特徴を持っています。
画像の内容や目的に応じて適切なものを選ぶことで、より理想的な生成結果に近づけることができます。
各プリプロセッサの特徴を解説していきます。
depth_midas

depth_midasは、画像から単一のRGB画像からピクセルごとの深度を推定するプリプロセッサです。
異なる環境や条件で撮影された画像でも、比較的一貫した結果を提供できるという点で優れています。
depth_zoe

depth_zoeは、プリプロセッサの中で最も精度が高くおすすめです。
抽出しにくい背景も高い精度で再現できます。
depth_leres

depth_leresは、オーソドックスなDepthの機能です。
パラメーターの可変性が広く、さまざまな画像に対して深度を収集できますが、汎用性が高い分、細かい情報が拾いにくいといった性質があります。
depth_leres++

depth_leresの改良版です。
複雑な背景の情報の読み取り量が強化され、再現しやすくなっています。
depth_hand_refiner

depth_hand_refinerは、画像から手を認識し、認識した位置での手の形や5本指などのリファレンス情報を深度データとして取得します。
その深度情報を利用して、欠損部分を補完できます。
depth_anything

Depth Anythingは、TikTokによって公開された単眼深度推定ができるAIシステムです。
Depthでは、オブジェクトとカメラとの間の距離を正確に画像の深度を推定することにすぐれています。
depth_anything_v2

depth_anythingと比べて、微細なディテールとロバスト性で大幅に向上しています。
処理速度が速く、パラメーターが少なく、深度の精度が高いという利点があります。

ControlNet Depthを活用した画像生成

ここからは、実際に元画像から深度を抽出し、ネガ画像を利用して新たな画像を生成していきます。
あらかじめ、ControlNetのインストールとDepthに使用するモデルデータのダウンロードを済ませておきましょう。
ControlNetのインストールが完了すると、Stable DiffusionにControlNetのパネルが表示されます。

「◀マーク」をクリックしてControlNetパネルを開き、深度の抽出を行いたい画像をドラッグ&ドロップして読み込みます。
「有効化」、「Pixel Perfect」、「Allow Preview」、「深度」にチェックを入れましょう。
プリプロセッサに「depth_midas」、モデルに「diffusers_xl_depth_full」を選択します。
画像の読み込みが完了したら、真ん中の「💥ボタン」を押して深度の抽出を開始し、右側に作成された白黒のネガの画像が表示されば抽出完了です。

Depth のモデルは深度抽出後に、使用したいモデル(Checkpoint)に合わせて選択しましょう。「diffusers_xl_depth_full」は、SDXL用のDepthのモデルです。
Depth のモデルは深度抽出後に、使用したいモデル(Checkpoint)に合わせて選択しましょう。
「diffusers_xl_depth_full」は、SDXL用のDepthのモデルです。

質感がしっかりと残され、背景の奥行きが細部まで丁寧に再現されています。
ControlNet Depthで手をきれいに表現
ControlNet Depthには、手だけをきれいに修正するプリプロセッサ「depth_hand_refiner」があります。
手の部分だけ生成に失敗してしまった画像も再生成が可能で、非常に実用性が高い機能です。
「depth_hand_refiner」は、Stable Diffusion Web UIの拡張機能である「ADetailer」とあわせて使います。
ADetailerは、以下の手順でインストールします。
ADetailerがインストール済の方は、「depth_hand_refinerの使い方」に進みましょう。
ADetailer事前準備
「拡張機能」タブを開いて「URLからインストール」タブを選択し、拡張機能のリポジトリのURL欄に「https://github.com/Bing-su/adetailer」を入力すればインストールが始まります。

インストールが完了したら、Stable Diffusion Web UIを再起動し、「拡張機能」から「インストール済」タブを開いて「ADetailer」があることを確認しましょう。
「適用してUIを再起動」ボタンをクリックしてStable Diffusion Web UIに反映させましょう。

シードの下に「ADetailer」が表示されていれば準備完了です。

depth_hand_refinerの使い方
インストールが完了したら、「ADetailer」の◀をクリックしてメニューを開き、「Enable ADetailer」にチェックを入れて「hand_yolov8n.pt」モデルを選択しましょう。
※「hand_yolov8n.pt」モデルはデフォルトで入っています。

同じパネル内のページ下部に移動して以下のようにdepth_hand_refinerを設定します。
ControlNet module:control_v11f1p_sd15_depth_fp16
ControlNet model:depth_hand_refiner
その他のパラメーターは、デフォルト値で問題ありません。

プロンプトやシード値などは元画像と同じ内容で生成を開始します。
Inpaint denoising strengthのパラメーターを0.6~0.8ぐらいの間で調整し、生成を繰り返しましょう。

ControlNet Depthを使うならPICSOROBANがおすすめ

Stable DiffusionでControlNet Depthを最大限活用するには、生成回数を重ねて仕上げていく必要があります。
効率的にStable Diffusionで画像を生成するには、16GB以上のVRAMが搭載されたパソコンの利用がおすすめです。
しかし、高性能なパソコンの多くが30万円以上と高額になります。
そのような時は、PICSOROBANがおすすめです。
コストを抑えたい方へ:今のパソコンのまま使える「PICSOROBAN」
ピクソロのメリット
- すぐ使える:高額PC不要で、ブラウザからすぐに利用可能。必要な分だけポイントを購入できます。
- リーズナブル:30分約60円で利用可能。さらに今なら約2時間分が無料。
- 無制限作成:時間内であれば、何枚でも画像生成可能。短時間で多くの作品を生成できます。
ブラウザで簡単!ピクソロ!

PICSOROBANは、インストールの必要なくブラウザで簡単にStable Diffusionを利用できます。
さらに、今ならリリースキャンペーンとして無料会員登録するだけで、2,000ポイント(約2時間分)貰えます!
詳しい使い方は下記の記事で紹介しています。
\今なら約2時間無料で使える!/
Stable Diffusionが快適に使えるおすすめのパソコンやグラボに関しては下記の記事で紹介しています。