> ## Documentation Index
> Fetch the complete documentation index at: https://dripart-docs-recommend-assets-api.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# ComfyUI における ControlNet の混合使用例

> この例では、複数の ControlNet を混合して使用する方法を紹介し、複数の ControlNet モデルを用いて画像生成を制御する方法を学びます

AI による画像生成において、単一の制御条件では複雑なシーンの要件を満たすことが困難な場合が多くあります。複数の ControlNet を混合することで、画像の異なる領域や異なる側面を同時に制御でき、より精密な画像生成制御が可能になります。

特定のシナリオでは、異なる制御条件の特性を活かした ControlNet の混合により、さらに細かい条件付き制御を実現できます：

1. **シーンの複雑さ**：複雑なシーンでは、複数の制御条件が協調して動作する必要があります
2. **細かい制御**：各 ControlNet の「Strength（強度）」パラメータを調整することで、それぞれの領域への影響度を正確に制御できます
3. **補完効果**：異なる種類の ControlNet は互いに補完し合い、単一の制御では生じる制限を補うことができます
4. **クリエイティブな表現**：異なる制御を組み合わせることで、独自の創造的な効果を生み出すことができます

### ControlNet の混合方法

複数の ControlNet を混合する際、各 ControlNet はその適用領域に応じて画像生成プロセスに影響を与えます。ComfyUI では、`Apply ControlNet` ノードにおけるチェーン接続（連鎖接続）を用いることで、複数の ControlNet 条件をレイヤー状に順次重ね合わせて適用できます：

<img src="https://mintcdn.com/dripart-docs-recommend-assets-api/H4YF5irXqrzGa2HT/images/tutorial/controlnet/apply_controlnet_chain_link.jpg?fit=max&auto=format&n=H4YF5irXqrzGa2HT&q=85&s=ce15a1d1a7dd3d5a5345f6200e73ab6d" alt="apply controlnet chain link" width="1500" height="1050" data-path="images/tutorial/controlnet/apply_controlnet_chain_link.jpg" />

## ComfyUI における ControlNet の領域分割混合の例

この例では、**Pose ControlNet** と **Scribble ControlNet** を組み合わせて、複数の要素を含むシーンを生成します。具体的には、左側の人物を Pose ControlNet で制御し、右側のスケートボードに乗った猫を Scribble ControlNet で制御します。

### 1. ControlNet 混合ワークフローの素材

以下のワークフローアイコンをダウンロードし、ComfyUI にドラッグ＆ドロップすることで、ワークフローを読み込めます：\
![ComfyUI ワークフロー - Mixing ControlNet](https://raw.githubusercontent.com/Comfy-Org/example_workflows/main/controlnet/mixing_controlnets.png)

<Tip>
  このワークフローアイコンにはメタデータが含まれており、ComfyUI へ直接ドラッグ＆ドロップするか、メニューから `Workflows` → `Open (Ctrl+O)` を選択して読み込むことができます。システムが自動的に必要なモデルを検出し、ダウンロードを提案します。
</Tip>

入力用のポーズ画像（左側の人物のポーズを制御）：

![ComfyUI ワークフロー - Mixing ControlNet 入力画像](https://raw.githubusercontent.com/Comfy-Org/example_workflows/main/controlnet/mixing_controlnets_input.png)

入力用のスクリブル画像（右側の猫とスケートボードを制御）：

![ComfyUI ワークフロー - Mixing ControlNet 入力画像](https://raw.githubusercontent.com/Comfy-Org/example_workflows/main/controlnet/mixing_controlnets_input_scribble.png)

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

<Note>
  ネットワーク環境によっては、対応するモデルの自動ダウンロードが失敗することがあります。その場合は、以下のモデルを手動でダウンロードし、指定されたディレクトリに配置してください：
</Note>

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

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

### 3. ワークフロー実行の手順

<img src="https://mintcdn.com/dripart-docs-recommend-assets-api/H4YF5irXqrzGa2HT/images/tutorial/controlnet/flow_diagram_mixing_controlnet.jpg?fit=max&auto=format&n=H4YF5irXqrzGa2HT&q=85&s=d9bfc8951dfa9172f91098a9b29b7281" alt="ComfyUI ワークフロー - Mixing ControlNet フローダイアグラム" width="1681" height="1081" data-path="images/tutorial/controlnet/flow_diagram_mixing_controlnet.jpg" />

上図の数字順に、以下の手順を実行してください：

1. `Load Checkpoint` が **awpainting\_v14.safetensors** を正常に読み込めていることを確認します
2. `Load VAE` が **vae-ft-mse-840000-ema-pruned.safetensors** を正常に読み込めていることを確認します

最初の ControlNet グループ（OpenPose モデルを使用）：\
3\. `Load ControlNet Model` が **control\_v11p\_sd15\_openpose\_fp16.safetensors** を読み込んでいることを確認します\
4\. `Load Image` ノード内の `Upload` をクリックし、前述のポーズ画像をアップロードします

2 番目の ControlNet グループ（Scribble モデルを使用）：\
5\. `Load ControlNet Model` が **control\_v11p\_sd15\_scribble\_fp16.safetensors** を読み込んでいることを確認します\
6\. `Load Image` ノード内の `Upload` をクリックし、前述のスクリブル画像をアップロードします\
7\. `Queue` ボタンをクリックするか、ショートカット `Ctrl(Cmd) + Enter` を使用して画像生成を実行します

## ワークフローの解説

#### 強度（Strength）のバランス

画像の異なる領域を制御する際、各 ControlNet の「Strength」パラメータのバランスは特に重要です：

* ある領域の ControlNet 強度が他の領域と比べて著しく高くなると、その領域の制御効果が過剰になり、他の領域の制御が抑制される可能性があります
* 異なる領域を制御する ControlNet については、同程度の強度値を設定することを推奨します（例：両方とも `1.0`）

#### プロンプトのテクニック

領域分割混合では、プロンプトに両方の領域に関する記述を含める必要があります：

```
"A woman in red dress, a cat riding a scooter, detailed background, high quality"
```

このようなプロンプトは、人物とスケートボードに乗った猫の両方を明示的に含んでおり、モデルが両方の制御領域に注意を向けるよう指示します。

## 同一被写体に対する多次元制御の応用

本例で紹介した領域分割混合に加え、もう一つの一般的な混合手法として、同一の被写体に対して多次元的な制御を適用する方法があります。例えば：

* **Pose + Depth**：人物のポーズと空間的奥行き感を制御
* **Pose + Canny**：人物のポーズと輪郭・エッジの詳細を制御
* **Pose + Reference**：人物のポーズを制御しつつ、特定のスタイルを参照

このような応用では、複数の ControlNet に対応する参照画像を同一の被写体に揃える必要があり、また各 ControlNet の強度を適切に調整してバランスを保つことが重要です。

異なる種類の ControlNet を組み合わせ、それぞれの制御領域を明確に指定することで、画像内の要素をきめ細かく制御することができます。
