> ## Documentation Index
> Fetch the complete documentation index at: https://docs.comfy.org/llms.txt
> Use this file to discover all available pages before exploring further.

# ControlNet: ComfyUI のプリプロセッサ・モデル・ワークフロー

> ComfyUI の ControlNet：試行錯誤のプロンプトではなく条件画像で画像生成を制御し、ステップバイステップのワークフロー例も紹介します。

AI による画像生成において、画像生成を正確に制御することは、単にワンクリックで実現できるものではありません。\
通常は、満足のいく画像を得るまで、多数の生成試行を繰り返す必要があります。しかし、**ControlNet** の登場により、この課題は効果的に解決されました。

ControlNet は、拡散モデル（例：Stable Diffusion）に基づく条件付き制御生成モデルであり、2023 年に [Lvmin Zhang](https://github.com/lllyasviel) 氏と Maneesh Agrawala 氏らが論文『[Adding Conditional Control to Text-to-Image Diffusion Models](https://arxiv.org/abs/2302.05543)』において初めて提案しました。

ControlNet モデルは、エッジ検出マップ、深度マップ、ポーズキーポイントなどのマルチモーダルな入力条件を導入することで、画像生成の制御性および細部の再現能力を大幅に向上させます。\
これにより、画像のスタイル、ディテール、人物のポーズ、構図など、さまざまな要素をさらに精密に制御可能になります。これらの制約条件によって、画像生成はより確実なものとなり、描画プロセス中に複数の ControlNet モデルを同時に活用することも可能になり、より優れた結果を得られます。

ControlNet が登場する前は、モデルに画像を生成させ続け、偶然得られた結果から満足のいくものを選ぶしかなく、その過程には多くのランダム性が伴っていました。

![ComfyUI でランダムシードを用いて生成された画像](https://mintcdn.com/dripart/TwfNQ2dEaWQA7tIL/images/tutorial/controlnet/generated_with_random_seed.jpg?fit=max\&auto=format\&n=TwfNQ2dEaWQA7tIL\&q=85\&s=81acd50958fd1df511237b3ba90b1b06)

ControlNet の登場により、追加の条件を導入することで画像生成を制御できるようになりました。\
たとえば、簡単なスケッチを用いて画像生成プロセスをガイドすれば、そのスケッチに極めて近い画像を生成することが可能です。

![ComfyUI におけるスケッチ制御による画像生成](https://mintcdn.com/dripart/TwfNQ2dEaWQA7tIL/images/tutorial/controlnet/scribble_example.jpg?fit=max\&auto=format\&n=TwfNQ2dEaWQA7tIL\&q=85\&s=36c37d9cadfaabb3690404f8828143a7)

本例では、[ComfyUI](https://github.com/Comfy-Org/ComfyUI) への ControlNet モデルのインストール・使用方法を順に解説し、スケッチ制御による画像生成の実践例を完了します。

![ComfyUI ControlNet ワークフロー](https://raw.githubusercontent.com/Comfy-Org/example_workflows/main/controlnet/scribble_controlnet.png)

> [!TIP]
>
> 他の種類の ControlNet V1.1 モデルに対応するワークフローも、本例と同様の構成です。ご自身のニーズに応じて、適切なモデルを選択し、対応する参照画像をアップロードするだけで構いません。

## ControlNet 画像前処理に関する情報

異なる種類の ControlNet モデルは、通常、異なるタイプの参照画像を必要とします：

![参照画像](https://github.com/Fannovel16/comfyui_controlnet_aux/blob/main/examples/CNAuxBanner.jpg?raw=true)

> 出典：[ComfyUI ControlNet aux](https://github.com/Fannovel16/comfyui_controlnet_aux)

現在の **Comfy Core** ノードには、すべての種類の **プリプロセッサ** が含まれていないため、本ドキュメントの実際の例では、あらかじめ前処理済みの画像を提供します。\
ただし、実際の利用時には、各 ControlNet モデルの要件を満たすために、カスタムノードを用いて画像の前処理を行う必要がある場合があります。以下に、関連するカスタムノードをいくつかご紹介します：

* [ComfyUI-Advanced-ControlNet](https://github.com/Kosinkadink/ComfyUI-Advanced-ControlNet)
* [ComfyUI ControlNet aux](https://github.com/Fannovel16/comfyui_controlnet_aux)

## ComfyUI ControlNet ワークフローの例の解説

### 1. ControlNet ワークフローのアセット

以下のワークフロー画像をダウンロードし、ComfyUI へドラッグ＆ドロップしてワークフローを読み込んでください：

![ComfyUI ワークフロー - ControlNet](https://raw.githubusercontent.com/Comfy-Org/example_workflows/main/controlnet/scribble_controlnet.png)

> [!TIP]
>
> メタデータにワークフロー JSON を含む画像は、ComfyUI へ直接ドラッグ＆ドロップするか、メニューの `Workflows` → `Open (ctrl+o)` を使って読み込むことができます。\
> この画像には既に該当モデルのダウンロードリンクが埋め込まれており、ComfyUI へドラッグすると自動的にダウンロードが促されます。

以下の画像をダウンロードしてください。本例では、これを入力画像として使用します：

![ComfyUI スケッチ画像](https://raw.githubusercontent.com/Comfy-Org/example_workflows/main/controlnet/scribble_input.png)

### 2. 手動によるモデルインストール

> [!NOTE]
>
> ネットワーク環境により、対応するモデルの自動ダウンロードが失敗する場合は、以下のモデルを手動でダウンロードし、指定されたディレクトリに配置してください：

* [dreamCreationVirtual3DECommerce\_v10.safetensors](https://civitai.com/api/download/models/731340?type=Model\&format=SafeTensor\&size=full\&fp=fp16)
* [vae-ft-mse-840000-ema-pruned.safetensors](https://huggingface.co/stabilityai/sd-vae-ft-mse-original/blob/main/vae-ft-mse-840000-ema-pruned.safetensors?download=true)
* [control\_v11p\_sd15\_scribble\_fp16.safetensors](https://huggingface.co/comfyanonymous/ControlNet-v1-1_fp16_safetensors/blob/main/control_v11p_sd15_scribble_fp16.safetensors?download=true)

```
ComfyUI/
├── models/
│   ├── checkpoints/
│   │   └── dreamCreationVirtual3DECommerce_v10.safetensors
│   ├── vae/
│   │   └── vae-ft-mse-840000-ema-pruned.safetensors
│   └── controlnet/
│       └── control_v11p_sd15_scribble_fp16.safetensors
```

> [!NOTE]
>
> 本例では、`dreamCreationVirtual3DECommerce_v10.safetensors` に内蔵されている VAE モデルを使用することも可能ですが、モデル作者の推奨に従い、別途 VAE モデルを用いる形で進めています。

### 3. ワークフローのステップバイステップ実行

![ComfyUI ワークフロー - ControlNet フローダイアグラム](https://mintcdn.com/dripart/TwfNQ2dEaWQA7tIL/images/tutorial/controlnet/flow_diagram_scribble.png?fit=max\&auto=format\&n=TwfNQ2dEaWQA7tIL\&q=85\&s=d26abbfd1993f28b88efcf6231246945)

1. `Load Checkpoint` が **dreamCreationVirtual3DECommerce\_v10.safetensors** を正常に読み込めることを確認してください
2. `Load VAE` が **vae-ft-mse-840000-ema-pruned.safetensors** を正常に読み込めることを確認してください
3. `Load Image` ノード内の `Upload` をクリックし、前述の入力画像をアップロードしてください
4. `Load ControlNet` が **control\_v11p\_sd15\_scribble\_fp16.safetensors** を正常に読み込めることを確認してください
5. `Queue` ボタンをクリックするか、ショートカット `Ctrl(cmd) + Enter` を使用して画像生成を実行してください

## 関連ノードの解説

### Load ControlNet ノードの解説

![load controlnet](https://mintcdn.com/dripart/Rig0_LOInmwVbVSB/images/comfy_core/loaders/load_controlnet_model.jpg?fit=max\&auto=format\&n=Rig0_LOInmwVbVSB\&q=85\&s=c3a99d9bd08baaedb7a4d426cc930880)

`ComfyUI\models\controlnet` ディレクトリ内に配置されたモデルは、ComfyUI によって自動検出され、このノードから読み込むことができます。

### Apply ControlNet ノードの解説

![apply controlnet](https://mintcdn.com/dripart/Rig0_LOInmwVbVSB/images/comfy_core/conditioning/controlnet/apply_controlnet.jpg?fit=max\&auto=format\&n=Rig0_LOInmwVbVSB\&q=85\&s=de9e90df2dcfe5cc7020a8c9cdb40a65)

このノードは、`load controlnet` で読み込んだ ControlNet モデルを受け取り、入力画像に基づいて対応する制御条件を生成します。

**入力パラメータ**

| パラメータ名 | 機能 |
| - | - |
| `positive` | 正の条件（ポジティブ・コンディショニング） |
| `negative` | 負の条件（ネガティブ・コンディショニング） |
| `control_net` | 適用する ControlNet モデル |
| `image` | ControlNet の適用に用いる参照画像（事前に前処理済みの画像） |
| `vae` | VAE モデルの入力 |
| `strength` | ControlNet の適用強度。値が大きいほど、生成画像に対する ControlNet の影響が強くなります |
| `start_percent` | ControlNet の適用開始タイミング（拡散プロセスの進行率で指定）。例：`0.2` は、拡散プロセスが全体の 20% 完了した時点で制御を開始することを意味します |
| `end_percent` | ControlNet の適用終了タイミング（拡散プロセスの進行率で指定）。例：`0.8` は、拡散プロセスが全体の 80% 完了した時点で制御を終了することを意味します |

**出力パラメータ**

| パラメータ名 | 機能 |
| - | - |
| `positive` | ControlNet により処理された正の条件データ |
| `negative` | ControlNet により処理された負の条件データ |

下図のように、チェーン接続を用いて複数の ControlNet モデルを適用できます。また、複数の ControlNet モデルを組み合わせる方法については、[ControlNet モデルの混合](https://docs.comfy.org/ja/tutorials/controlnet/mixing-controlnets.md) ガイドをご参照ください。\\

![apply controlnet chain link](https://mintcdn.com/dripart/OltlUSVBSNcJsDMs/images/tutorial/controlnet/apply_controlnet_chain_link.jpg?fit=max\&auto=format\&n=OltlUSVBSNcJsDMs\&q=85\&s=6fc3e75414f05e6c62062b4b746dc855)

> [!NOTE]
>
> 一部の古いワークフローでは、`Apply ControlNet(Old)` というノードが見られることがあります。これは初期バージョンの ControlNet ノードであり、現在は非推奨となっており、検索やノードリストにはデフォルトで表示されません。\
> ![apply controlnet old](https://mintcdn.com/dripart/Rig0_LOInmwVbVSB/images/comfy_core/conditioning/controlnet/apply_controlnet_old.jpg?fit=max\&auto=format\&n=Rig0_LOInmwVbVSB\&q=85\&s=eaf2f8df7456df845f7408495d19b9e8)\
> 有効化するには、**Settings** → **comfy** → **Node** から `Show deprecated nodes in search` オプションを有効にしてください。ただし、新規ノードの使用を推奨します。

## さっそく体験してみましょう

1. 似たようなスケッチを作成したり、自分で手描きしてみたりし、ControlNet モデルを用いて画像を生成して、その利便性をぜひ体感してください。
2. `Apply ControlNet` ノードの `Control Strength` パラメータを調整し、ControlNet モデルの生成画像への影響度をコントロールしてみてください。
3. [ControlNet-v1-1\_fp16\_safetensors](https://huggingface.co/comfyanonymous/ControlNet-v1-1_fp16_safetensors/tree/main) リポジトリを訪れ、他の種類の ControlNet モデルをダウンロードし、それらを用いた画像生成にチャレンジしてみてください。


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.