目次
ComfyUI ControlNet 入門:線画・ポーズ・深度で構図を制御
プロンプトだけで「人物にどんなポーズを取らせるか」「建物の遠近感」「画面の構図」を正確に制御するのは困難です。ControlNet を使うと、参照画像から構造情報(線、ポーズ、深度)を取り出し、その構造に沿って画像を生成できます。
よく使われる制御タイプ
| タイプ | 参照画像から抽出する情報 | 用途 |
|---|---|---|
| Canny | エッジの線 | 輪郭や細部を保つ。製品や建物など |
| Lineart | 線画 | 線画に色を付け、完成したイラストにする |
| OpenPose | 人体の骨格(ポーズ、手、顔) | 人物のポーズを指定する |
| Depth | 深度(距離) | 空間構造や遠近感を保つ |
| Scribble | 簡単な落書き | 手描きのラフで構図を制御する |
| Tile | 画像そのものの細部 | 拡大時に一貫性を保ち、細部を追加する |
準備するもの
- ControlNet モデル:
models/controlnet/に配置します。ベースモデルのバージョンに対応したものが必要です(SD 1.5、SDXL、Flux にはそれぞれ異なる ControlNet があります)。現在は複数の制御タイプに対応する「Union」タイプのモデルもあります。 - 前処理器(Preprocessor):参照写真を ControlNet 用の画像に変換します(たとえば写真を線や骨格に変換します)。Canny には標準ノードがあります。それ以外のタイプでは通常、カスタムノード comfyui_controlnet_aux のインストールが必要です(カスタムノードと Manager を参照)。
ワークフローを作成する(Canny の例)
[Load Image] ─▶ [Canny] ─IMAGE────────────────┐
▼
[CLIP Text Encode 正向] ─CONDITIONING─▶ [Apply ControlNet] ─positive─▶ [KSampler]
[CLIP Text Encode 負向] ─CONDITIONING─▶ ─negative─▶
[Load ControlNet Model] ─CONTROL_NET──▶
vae ─────────▶
手順:
- テキストから画像を生成するワークフローから始めます。
- Load Image を追加し、参照画像を読み込みます。
- Canny ノードを追加し、参照画像を接続します。一度実行し、Preview Image で抽出された線を確認します。

- Load ControlNet Model を追加し、Canny モデルを選択します。
- Apply ControlNet を追加します。
positiveとnegativeに、それぞれ 2 つの CLIP Text Encode の出力を接続します。control_netに Load ControlNet Model を接続します。imageに Canny の出力を接続します。vaeにモデルの VAE を接続します(必要な ControlNet もあります)。
- Apply ControlNet の
positiveとnegativeの出力を KSampler に接続します。 - Empty Latent Image のサイズは、参照画像と同じアスペクト比に設定します。

パラメーター
| パラメーター | 説明 | 推奨値 |
|---|---|---|
strength | 制御の強さ | 0.5~1.0。高すぎると画像が硬くなり、細部が不自然になります |
start_percent | 生成過程のどの段階から制御を開始するか | 0 |
end_percent | どの段階で制御を終了するか | 0.6~1.0 |
ヒント:end_percent を 0.5~0.7 に設定すると、前半は ControlNet が構図を決め、後半はモデルが細部を自由に描きます。通常、より自然な結果になります。
OpenPose:人物のポーズを制御する
- DWPose Estimator または OpenPose Pose 前処理器(controlnet_aux に含まれます)を使い、人物写真から骨格を抽出します。
- Preview Image で骨格が正しいことを確認します。
- OpenPose ControlNet モデルを接続します。
生成される人物は写真と同じポーズを取りますが、顔立ち、服装、背景はプロンプトで決まります。
Depth:空間構造を保つ
Depth Anything などの前処理器で深度マップを生成します。次の用途に適しています。
- 室内写真を別のインテリアスタイルに作り直す
- 建物やシーンの遠近感を保ちながら、季節、時間帯、画風を変える
複数の ControlNet を組み合わせる
複数の Apply ControlNet を直列に接続します。1 つ目の positive / negative 出力を 2 つ目の入力に接続します。たとえば OpenPose でポーズを制御し、Depth でシーンを制御できます。互いに干渉しないよう、それぞれの強度を適度に下げてください。
よくある問題
| 状況 | 原因 |
|---|---|
| エラーが出る、またはまったく効果がない | ControlNet モデルとベースモデルのバージョンが一致していない(例:SD 1.5 用の ControlNet を SDXL で使用している) |
| 画像が硬い、線の跡が残る | strength が高すぎる、または end_percent の値が大きすぎる |
| 人物が変形する | 参照画像と出力のアスペクト比が異なる、または骨格の抽出に失敗している |
| 前処理器ノードが見つからない | comfyui_controlnet_aux がインストールされていない |
更新日 2026年10月12日