Nodes/ComfyUI-Advanced-ControlNet/Apply Advanced ControlNet πŸ›‚πŸ…πŸ…’πŸ…
ComfyUI Node Runs on cloud

Apply Advanced ControlNet πŸ›‚πŸ…πŸ…’πŸ…

The current two-conditioning apply node

By KosinkadinkΒ·Created 3 years agoΒ·Updated 8 days agoΒ· 993
Apply Advanced ControlNet πŸ›‚πŸ…πŸ…’πŸ…
  • positive
  • negative
  • control_net
  • image
  • mask_optional
  • timestep_kf
  • latent_kf_override
  • weights_override
  • vae_optional
  • positive
  • negative
β—„strength1.00β–Ί
β—„start_percent0.000β–Ί
β—„end_percent1.000β–Ί

Same job as the original Apply Advanced ControlNet, tidied up. This is the _v2 revision of the node - it takes your positive and negative conditioning, a loaded ControlNet, and a control image, and hands back the two conditionings with the control applied. If you've reached this page trying to figure out how it differs from the plain version: the input surface is a little leaner, and it drops the model_opt output. Everything else - the scheduling, the masks, the custom weights - is identical.

Why it exists: ControlNet on its own only lets you set a strength and a step range. This pack lets you schedule that strength across the denoising process and across batched latents (read: video frames), which is what makes ControlNet usable with sliding-context sampling like AnimateDiff-Evolved. The v2 node is the apply half of that story for standard image and per-frame conditioning.

How it works

Structurally it's a normal ControlNet apply - the control image conditions spatial structure, your prompt keeps semantic control - with the pack's scheduling layer on top. Any ControlNet from any loader gets auto-converted to the Advanced version when it passes through, so you don't have to use the pack's own loader to unlock features. The start_percent/end_percent window decides when the control is live during sampling; the optional keyframe and weight inputs decide how it varies while it's live.

The inputs and outputs that matter

The required set is the familiar one: positive, negative, control_net, image, plus strength (default 1.0, range up to 10), start_percent, and end_percent. Most workflows only touch strength and the two percentages. On a 2025-26 union model, start strength below 1.0 - those models publish lower recommended scales and blow out at the old default.

Optional inputs are where the pack earns its name: mask_optional (an attention mask limiting where the control acts), timestep_kf (a full timestep-keyframe schedule), latent_kf_override and weights_override (direct shortcuts when you only need latent keyframes or custom weights), and vae_optional for control types that need a VAE, like RGB SparseCtrl.

Outputs are just positive and negative - the conditioning with control baked in, straight into your sampler. Note the deliberate difference from the original node: there's no model_opt here. If you're driving a model-patching control like SparseCtrl or Anima LLLite that needs to hand a patched MODEL to the sampler, use the original Apply Advanced ControlNet or the Single v2 node, both of which expose that output.

How to install it

Through ComfyUI Manager, search ComfyUI-Advanced-ControlNet, install, restart. Or clone it:

cd ComfyUI/custom_nodes
git clone https://github.com/Kosinkadink/ComfyUI-Advanced-ControlNet

and restart. No meaningful pip dependencies. The pack ships the nodes, not the models - put your ControlNet checkpoints in ComfyUI/models/controlnet, and get preprocessors (canny, depth, openpose, etc.) from the separate Fannovel16/comfyui_controlnet_aux pack.

Common issues & troubleshooting

You expected a model output and there isn't one. That's by design on v2. Switch to the original Apply Advanced ControlNet if your control patches the model.

The v2 node isn't in your menu. Both apply variants ship together, so if one's missing the install is partial or your ComfyUI is out of date - the Manager occasionally claims you're current when you're not. Reinstall from GitHub and update the core app.

Control feels too strong or too weak. Reach for end_percent before you crank strength. Ending control around the halfway mark frees the model to add its own detail late; that usually reads as "better" more than raising the weight does.

CategoryAdv-ControlNet πŸ›‚πŸ…πŸ…’πŸ…

Inputs (12)

NameTypeDefaultDescription
positiveCONDITIONINGβ€”
negativeCONDITIONINGβ€”
control_netCONTROL_NETβ€”
imageIMAGEβ€”
strengthFLOAT1.000–10β€”
start_percentFLOAT0.0000–1β€”
end_percentFLOAT1.0000–1β€”
mask_optionaloptMASKβ€”
timestep_kfoptTIMESTEP_KEYFRAMEβ€”
latent_kf_overrideoptLATENT_KEYFRAMEβ€”
weights_overrideoptCONTROL_NET_WEIGHTSβ€”
vae_optionaloptVAEβ€”

Outputs (2)

NameTypeDescription
positiveCONDITIONINGβ€”
negativeCONDITIONINGβ€”