ComfyUI の Apply ControlNet ノード
Apply ControlNetは、ガイド画像と読み込んだControlNetを正負のCONDITIONINGに強さや開始・終了の割合で付け加えて、サンプラーがガイドのエッジや深度、ポーズに従うようにします。
Apply ControlNet の役割
Apply ControlNet(新しいControlNetApplyAdvancedで、表示はApply ControlNet)は、正負のconditioning、CONTROL_NET、前処理済みのガイドIMAGE、最近のバージョンではVAEも受け取ります。これにより、制御信号をサンプラーに渡す新しいconditioningが返されます。strengthは影響の強さを調整(1.0がフル)、start_percentとend_percentは制御をサンプリングの一部に限定します。例えば0.0-0.6なら構図は早めに決まり、モデルは後で自由に細部を仕上げます。
ガイド画像はControlNetが期待する形式である必要があります。Canny ControlNetは黒背景に白いエッジ、Depth ControlNetはグレーの深度マップ、OpenPoseは色付きのスケルトンです。ControlNet Auxパックの前処理ノードが写真からこれらを作ります。Tile ControlNetの場合はガイドが元の画像で、ぼかしたり縮小したりすることが多いです。
入力
名前 | 型 | 意味 |
|---|---|---|
positive / negative | CONDITIONING | CLIP Text Encodeノードからのもの。 |
control_net | CONTROL_NET | Load ControlNet Modelから。 |
image | IMAGE | 前処理済みのガイド(エッジ、深度、ポーズ、またはTile用の画像)。 |
vae | VAE | 最近のバージョンでオプション。FluxやUnion ControlNetの一部で必要。 |
strength | FLOAT | 0-2の範囲で、ガイドにどれだけ従うか。通常は0.6-1.0。 |
start_percent / end_percent | FLOAT | 制御が有効なサンプリングの割合。 |
出力
名前 | 型 | 意味 |
|---|---|---|
positive | CONDITIONING | KSampler用の制御された正のconditioning。 |
negative | CONDITIONING | KSampler用の制御された負のconditioning。 |
Apply ControlNet の使い方
- Load Imageで写真を読み込み、前処理ノード(Canny Edge、Depth Anything、DWPoseなど)に通す。
- Load ControlNet Modelで対応するControlNetを読み込む。
- Apply ControlNetを追加し、positive、negative、control_net、ガイド画像を接続する。
- strengthを0.8、end_percentを0.8に設定して始める。
- 2つの出力をKSamplerのpositiveとnegativeに接続し、latentサイズはガイドの比率に合わせる。
設定とコツ
- 複数のApply ControlNetノード(ポーズ+深度など)を連結して、1つの出力を次の入力に繋げる。
- end_percentを低め(0.5-0.7)にすると、モデルが細部を自由に加えられて、硬くなったりトレースしたような見た目を避けられる。
- ガイド画像はlatentと同じアスペクト比にする。サイズは合わせてリサイズされる。
- Tileアップスケールではstrengthを0.5-0.8にして、細部が変わる余地を残す。
- 前処理の出力をプレビューしよう。黒かったりノイズっぽいガイドは「効果なし」の原因が多い。
Apply ControlNet のトラブルシューティング
結果がガイドを無視している
原因
strengthがほぼ0、end_percentが低すぎる、黒いガイド画像、またはタイプ指定のないUnion ControlNet。
対処法
ガイドをプレビューし、strengthを0.8-1.0、end_percentを1.0にしてテスト。その後調整。UnionモデルにはSetUnionControlNetTypeを追加。
エラー:mat1とmat2の形状が掛けられない/ControlNetの不一致
原因
ControlNetの種類がチェックポイントと合っていない(SD 1.5とSDXLやFluxの違い)。
対処法
チェックポイントと同じファミリーのControlNetを使う。
焼けたような高コントラストでポスタライズされた画像
原因
強いControlNet(CannyやLineart)でstrengthが1以上、高いcfg設定。
対処法
strengthは0.6-0.9、end_percentは0.7、cfgはモデルの通常範囲内に。
古いワークフローで「Apply ControlNet (OLD)」が表示される
原因
単一conditioningノードが名前変更されている。まだ動くがstart/end制御や負のパスがない。
対処法
Apply ControlNetに置き換え、正負両方を接続する。
Flux ControlNetでvaeがないエラー
原因
一部のFluxやUnion ControlNetはガイドのエンコードにVAEが必要。
対処法
Load VAEのVAE出力をApply ControlNetのvae入力に接続する。
Apply ControlNet に関する質問
画像は前処理しないとダメ?
TileやInpaint ControlNet以外は前処理が必要。各ControlNetは特定のマップ用に訓練されている。
ControlNetはimg2imgでも使える?
使えるよ。latentはVAE Encodeから、制御はこのノードからで、両方は独立している。
ControlNetはいくつまで重ねられる?
VRAMが許す限り。2~3個がよくある。増やすとメモリと時間が増える。
関連ノード
Load ControlNet Model
ComfyUI core
Load ControlNet Modelはmodels/controlnetからControlNet(またはT2I-Adapter / ControlNet Union)ファイルを読み込み、Apply ControlNet用のCONTROL_NETオブジェクトを出力します。
Load Image
ComfyUI core
Load ImageはComfyUIの入力フォルダ(またはアップロード)から画像を読み込み、IMAGEテンソルとアルファチャンネルから作られたMASKを出力します。これはimg2img、インペインティング、ControlNet、IP-Adapterのグラフのスタート地点になります。
KSampler
ComfyUI core
KSamplerはノイズ除去のループを実行します。モデル、プロンプト、潜在変数を受け取り、シード、ステップ数、cfg、サンプラー、スケジューラー、denoiseで制御された完成した潜在画像を出力します。
CLIP Text Encode (Prompt)
ComfyUI core
CLIP Text EncodeはテキストプロンプトをモデルのテキストエンコーダーでCONDITIONINGに変換します。1つのノードがポジティブプロンプトを、もう1つがネガティブプロンプトを持ちます。
Ultimate SD Upscale
ComfyUI_UltimateSDUpscale
Ultimate SD UpscaleはESRGANモデルで画像を拡大し、その後プロンプトを使って低いデノイズでタイルごとに拡散モデルで再サンプリングします。これによりVRAMを使い切ることなく2倍から4倍のリアルなディテールを追加します。
その他の ComfyUI ノード
ComfyUI Manager
ComfyUI-Manager
ComfyUI Managerは、インターフェース内からカスタムノードパックやモデルのインストール、更新、修正を行い、インポートしたワークフローの不足ノードを解決し、設定のスナップショットを作成する拡張機能です。
Load Checkpoint
ComfyUI core
Load Checkpoint(CheckpointLoaderSimple)は、.safetensorsまたは.ckptのモデルファイルを開いて、ワークフローで必要な3つのパーツ、つまりdiffusion MODEL、CLIPテキストエンコーダー、VAEを出力します。
Save Image
ComfyUI core
Save ImageはIMAGEテンソルをPNGとしてComfyUI/outputに保存します。ファイルのメタデータにワークフロー全体が埋め込まれているので、その画像をComfyUIにドラッグするとグラフを復元できます。
VAE Decode
ComfyUI core
VAE DecodeはサンプリングされたLATENTをVAEを使ってピクセルのIMAGEに変換します。VAE Decode (Tiled)はとても大きな画像をタイル単位で同じ処理をします。
Empty Latent Image
ComfyUI core
Empty Latent Imageは、テキストから画像を生成するときのスタート地点となる空の潜在キャンバス(幅、高さ、バッチサイズ)を作ります。サイズは8の倍数で、モデルファミリーに合っている必要があります。
Load LoRA
ComfyUI core
Load LoRA(LoraLoader)は、LoRAファイルをMODELとCLIPに別々の強さで適用します。これにより、スタイルやキャラクター、コンセプトを任意のチェックポイントにマージせずに追加できます。
