🔶 controlnet Apply
The plain Apply ControlNet Advanced, Chaosaiart's way
- positive
- negative
- control_net
- image
- POSITVE
- NEGATIVE
Functionally, this is ComfyUI's own Apply ControlNet (Advanced) - you feed it your positive and negative conditioning, a loaded ControlNet, a reference image, and the three knobs that control how strongly and over what portion of sampling it applies. What's actually a little different is that this node ships without preset slider bounds in its schema, unlike its sibling chaosaiart_ControlNetApply2. In practice that means you should type in your own strength, start, and end values deliberately rather than trusting a default the node hands you - if you're not sure what to set, strength around 1.0, start at 0.0, and end somewhere between 0.5 and 1.0 is the standard starting point the ControlNet community has settled on for most conditions.
If you want the same node with usable spinner defaults already dialed in, that's ControlNetApply2 - same job, friendlier out of the box.
How it works
Nothing exotic under the hood: it takes your ControlNet's spatial conditioning (edges, depth, pose - whatever preprocessor produced the image) and folds it into the positive and negative conditioning that go on to your KSampler, weighted by strength and only active during the start–end window of the sampling steps. Releasing the condition before the end of sampling - ending around 0.5–0.7 instead of 1.0 - is the community's standing advice for structure-heavy work, letting the model add its own detail once composition has locked in.
Inputs and outputs
positive,negative- requiredCONDITIONING, your encoded prompt and negative prompt.control_net- requiredCONTROL_NET, from a ControlNet loader.image- requiredIMAGE, your preprocessed control image (Canny edges, a depth map, an OpenPose skeleton - whatever matches the ControlNet you loaded).strength,start,end- requiredFLOATfields with no bundled defaults in this version, so set them explicitly.- Outputs:
POSITVE,NEGATIVE- note the pack's own spelling on the positive output; wire both into your KSampler in place of your original conditioning.
Installing it
ComfyUI Manager: Install via Git URL → https://github.com/chaosaiart/Chaosaiart-Nodes, the method the README documents directly. A title search for "Chaosaiart" should also surface it.
Manual:
cd ComfyUI/custom_nodes
git clone https://github.com/chaosaiart/Chaosaiart-Nodes
Linux (activate your venv first if you use one):
pip install opencv-python
pip install tqdm
Windows: run the bundled Install_windows script instead. Restart ComfyUI. This node itself needs no extra downloads - but you do need a ControlNet model matching your base checkpoint's architecture (an SD 1.5 Canny ControlNet won't load against an SDXL or Flux checkpoint).
Common issues
Output is grey or the composition ignores your control image entirely. Usually a ControlNet/checkpoint architecture mismatch - SD-era ControlNet files don't load on Flux, Qwen-Image, or other DiT-based models; you need the matching union or per-condition ControlNet trained for your base.
Results look over-constrained, waxy, or the prompt seems ignored. strength too high, or end running all the way to 1.0 on a structure-heavy condition. Bring strength down toward 0.6–0.8 and try ending the condition around 0.5–0.6 of the steps instead.
One shared module for the pack. All ~20 Chaosaiart nodes share one Python module - a broken opencv-python/tqdm install takes the whole pack offline. Check the ComfyUI startup console for an import error first.
Inputs (7)
| Name | Type | Default | Description |
|---|---|---|---|
| positive | CONDITIONING | — | |
| negative | CONDITIONING | — | |
| control_net | CONTROL_NET | — | |
| image | IMAGE | — | |
| strength | FLOAT | — | |
| start | FLOAT | — | |
| end | FLOAT | — |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| POSITVE | CONDITIONING | — |
| NEGATIVE | CONDITIONING | — |