Apply ControlNet (DEPRECATED)
The old ControlNet node — use ControlNetApplyAdvanced instead
- conditioning
- control_net
- image
- CONDITIONING
Let's get the verdict out of the way: this node is deprecated, and there is no good reason for a beginner to reach for it. The source literally flags it DEPRECATED = True, and the node it was replaced by - ControlNetApplyAdvanced - is the same thing with the two knobs you actually need. This page exists so you recognize the name in old workflows and know what to swap.
What it does
ControlNet conditions generation on spatial structure extracted from a reference image - edges, depth, pose, normals - so you control what (prompt) and where (structure). This node applies that structure to your conditioning:
conditioning- your encoded prompt conditioning.control_net- the loaded ControlNet model.image- the hint image (canny map, depth map, pose skeleton, whatever your preprocessor produced).strength- 0 to 10, default 1.0. How hard the ControlNet pushes.
It returns a single CONDITIONING with the ControlNet attached.
Why it's deprecated
The mechanism exposes the two problems. Look at the source: it sets control_apply_to_uncond to True, meaning the ControlNet is applied to the negative conditioning too - you get no separate positive/negative control. And there's no start/end percent, so the ControlNet presses on the entire sample, which the ControlNet playbook has long said is wrong for structure-heavy work. The community's standing advice is to release the condition once composition forms, and this node can't do that.
ControlNetApplyAdvanced fixes both: separate positive and negative conditioning inputs, plus start_percent/end_percent so the condition only applies during the window you choose. It also has an optional VAE input that some ControlNets want. Same strength control, same everything else - just complete.
The one edge case
The strength-0 early-out is worth knowing: if strength is 0, the node returns your conditioning unchanged, skipping the ControlNet entirely. That's a handy mute switch, and it means a strength-0 pass costs you nothing. But that's not a reason to use this node.
Swapping it
Open any workflow using ControlNetApply, and the upgrade is mechanical: replace it with ControlNetApplyAdvanced, split your positive/negative into their own inputs, set start 0.0 / end 1.0 for the same behavior as before - then start experimenting with a 0.0–0.6 window for the composition phase. If you're copying a template that still uses the old node, treat it as a sign the workflow predates the fix and update it.
The concept behind it is the most important technique in modern image gen after prompting itself, and the KB's whole ControlNet story - the preprocessors, the union models, the guidance-start lesson - applies. Just apply it through the Advanced node. Ships with core, no install.
Inputs (4)
| Name | Type | Default | Description |
|---|---|---|---|
| conditioning | CONDITIONING | — | |
| control_net | CONTROL_NET | — | |
| image | IMAGE | — | |
| strength | FLOAT | 1.000–10 | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| CONDITIONING | CONDITIONING | — |