Model
Trends
.ai
Model
Trends
.ai
the best open source ai models

Apply ControlNet node in ComfyUI

Apply ControlNet attaches a guide image and a loaded ControlNet to the positive and negative CONDITIONING with strength and start/end percentages, so the sampler follows edges, depth or pose from the guide.
Node pack: ComfyUI core
Category: ControlNet and guidance

What Apply ControlNet does

Apply ControlNet (the newer ControlNetApplyAdvanced, shown as Apply ControlNet) takes positive and negative conditioning, a CONTROL_NET, the preprocessed guide IMAGE and, on recent versions, the VAE. It returns new conditioning that carries the control signal to the sampler. strength scales the influence (1.0 full), start_percent and end_percent limit the control to a part of the sampling, for example 0.0-0.6 so the composition is set early but the model finishes details freely.
The guide image must already be in the form the ControlNet expects: a Canny ControlNet wants white edges on black, a Depth ControlNet wants a grey depth map, OpenPose wants the coloured skeleton. Preprocessors from the ControlNet Aux pack produce these from a photo. For Tile ControlNets the guide is the picture itself, often blurred or downscaled.

Inputs

Name
Type
What it is
positive / negative
CONDITIONING
From the CLIP Text Encode nodes.
control_net
CONTROL_NET
From Load ControlNet Model.
image
IMAGE
The preprocessed guide (edges, depth, pose, or the picture for Tile).
vae
VAE
Optional on recent versions; required by some Flux and Union ControlNets.
strength
FLOAT
0-2, how strongly the guide is followed. 0.6-1.0 is usual.
start_percent / end_percent
FLOAT
Portion of the sampling where the control is active.

Outputs

Name
Type
What it is
positive
CONDITIONING
Controlled positive conditioning for KSampler.
negative
CONDITIONING
Controlled negative conditioning for KSampler.
AD
Skip the setup: ComfyUI workflows preinstalled on the cloud
BitVector runs ready-made ComfyUI workflows on its own GPUs. No install, no missing nodes, no red boxes. Open it on your phone or laptop and generate in a minute.

How to use Apply ControlNet

  1. Load a photo with Load Image and run it through a preprocessor (Canny Edge, Depth Anything, DWPose).
  2. Load the matching ControlNet with Load ControlNet Model.
  3. Add Apply ControlNet; connect positive, negative, control_net and the guide image.
  4. Set strength 0.8 and end_percent 0.8 as a starting point.
  5. Connect the two outputs to KSampler positive and negative; keep the latent size matching the guide ratio.

Settings and tips

  • Chain several Apply ControlNet nodes (pose + depth) by feeding the outputs of one into the next.
  • Lower end_percent (0.5-0.7) frees the model to add detail and avoids a stiff, traced look.
  • Keep the guide image at the same aspect ratio as the latent; it is resized to fit.
  • For Tile upscaling use strength 0.5-0.8 so detail can still change.
  • Preview the preprocessor output: a black or noisy guide explains most "no effect" cases.

Troubleshooting Apply ControlNet

The result ignores the guide

Why it happens
strength near 0, end_percent too low, a black guide image, or a Union ControlNet without a type.

How to fix it
Preview the guide, set strength 0.8-1.0 and end_percent 1.0 to test, then relax. Add SetUnionControlNetType for union models.

Error: mat1 and mat2 shapes cannot be multiplied / ControlNet mismatch

Why it happens
The ControlNet family does not match the checkpoint (SD 1.5 vs SDXL vs Flux).

How to fix it
Use a ControlNet for the same family as the checkpoint.

Burned, high-contrast, posterised image

Why it happens
strength above 1 with a strong ControlNet (Canny or Lineart) and high cfg.

How to fix it
Strength 0.6-0.9, end_percent 0.7, cfg in the model's normal range.

Old workflow shows "Apply ControlNet (OLD)"

Why it happens
The single-conditioning node was renamed; it still works but lacks start/end control and the negative pass.

How to fix it
Replace it with Apply ControlNet and connect both positive and negative.

Flux ControlNet error about missing vae

Why it happens
Some Flux and Union ControlNets need the VAE to encode the guide.

How to fix it
Connect the VAE output of Load VAE to the vae input of Apply ControlNet.

AD
Run this workflow from your phone
Every workflow on this page is preinstalled on BitVector with the models and custom nodes already in place. Pick one, type a prompt, done. Zero setup, nothing to download.

Questions about Apply ControlNet

Do I have to preprocess the image?

Yes, except for Tile and Inpaint ControlNets, which take the picture itself. Each ControlNet is trained for one kind of map.

Can I use ControlNet with img2img?

Yes. The latent comes from VAE Encode, the control from this node; the two are independent.

How many ControlNets can I stack?

As many as VRAM allows; two or three is common. Each adds memory and time.

Related nodes

Load ControlNet Model
ComfyUI core
Load ControlNet Model reads a ControlNet (or T2I-Adapter / ControlNet Union) file from models/controlnet and outputs a CONTROL_NET object for Apply ControlNet.
Load Image
ComfyUI core
Load Image reads a picture from the ComfyUI input folder (or an upload) and outputs an IMAGE tensor plus a MASK taken from the alpha channel, the starting point for img2img, inpainting, ControlNet and IP-Adapter graphs.
KSampler
ComfyUI core
KSampler runs the denoising loop: it takes the model, prompts and a latent and produces the finished latent image, controlled by seed, steps, cfg, sampler, scheduler and denoise.
CLIP Text Encode (Prompt)
ComfyUI core
CLIP Text Encode turns a text prompt into CONDITIONING using the model text encoder. One node holds the positive prompt, a second one the negative prompt.
Ultimate SD Upscale
ComfyUI_UltimateSDUpscale
Ultimate SD Upscale enlarges a picture with an ESRGAN model, then re-samples it tile by tile through the diffusion model with your prompt at low denoise, adding real detail at 2x-4x without running out of VRAM.
AD
Tired of fixing nodes? Let the cloud do it
BitVector keeps hundreds of ComfyUI workflows installed, updated and tested on fast cloud GPUs. No Python, no CUDA errors, no VRAM limits. Works from any browser.

More ComfyUI nodes

ComfyUI Manager
ComfyUI-Manager
ComfyUI Manager is the extension that installs, updates and fixes custom node packs and models from inside the interface, resolves missing nodes in imported workflows and snapshots your setup.
Load Checkpoint
ComfyUI core
Load Checkpoint (CheckpointLoaderSimple) opens a .safetensors or .ckpt model file and hands out the three parts every workflow needs: the diffusion MODEL, the CLIP text encoder and the VAE.
Save Image
ComfyUI core
Save Image writes the IMAGE tensor to ComfyUI/output as a PNG, with the whole workflow embedded in the file metadata so the picture can be dragged back into ComfyUI to restore the graph.
VAE Decode
ComfyUI core
VAE Decode converts the sampled LATENT into a pixel IMAGE with the VAE; VAE Decode (Tiled) does the same in tiles for very large images.
Empty Latent Image
ComfyUI core
Empty Latent Image creates the blank latent canvas (width, height, batch_size) that text-to-image sampling starts from; dimensions must be multiples of 8 and match the model family.
Load LoRA
ComfyUI core
Load LoRA (LoraLoader) applies a LoRA file to the MODEL and CLIP with separate strengths, so a style, character or concept can be added to any checkpoint without merging.