Nodes/Chaosaiart-Nodes/🔶 controlnet Apply Frame
ComfyUI Node

🔶 controlnet Apply Frame

Turn ControlNet on and off across a frame range

By chaosaiart·Created 2 years ago·Updated about a year ago· 117
🔶 controlnet Apply Frame
  • activ_frame
  • positive
  • negative
  • control_net
  • image
  • POSITVE
  • NEGATIVE
◄strength_override—►
◄start_override—►
◄end_override—►
â—„strength1.00â–º
â—„start0.00â–º
â—„end1.00â–º
â—„start_Frame1â–º
â—„End_Frame9999â–º

This is the "Apply" ControlNet node with the pack's frame-counter logic bolted on: instead of your ControlNet being active for the whole sequence, you give it a start_Frame and End_Frame, and it only applies within that window as your queue count (Chaosaiart's "frame") climbs. It's the node behind the README's "Controlnet Changer" workflow - "Change Controlnet Settings by Counting," where each generated image counts as one step and the ControlNet's involvement can turn on, stay steady, and turn off again as you go.

The realistic use case is testing: you want to see how a batch looks with a pose or depth ControlNet active only from frame 10 to frame 40, say, without it dragging the early or late frames toward the control image. Or you're chaining several ControlNet stages across a long automated batch and want each one to hand off cleanly at a specific point rather than overlapping. There's no motion coherence happening here - this is still one independent image generation per frame, just with the ControlNet's presence gated by a counter.

Inputs and outputs

  • activ_frame - required ACTIV_FRAME, the running counter from Chaosaiart's convert node.
  • positive, negative - required CONDITIONING.
  • control_net - required CONTROL_NET.
  • image - required IMAGE, your preprocessed control image.
  • strength, start, end - the same trio as ControlNetApply2, with the same defaults (strength 1, range 0–3; start 0 and end 1, both 0–1).
  • strength_override, start_override, end_override - required FLOAT slots with no fixed bounds, following the same override pattern used elsewhere in this pack (see controlnet_weidgth): leave them alone and the plain widgets above apply, or wire in a live float from another node to drive strength/start/end dynamically per frame instead of a fixed value.
  • start_Frame (default 1, min 1) and End_Frame (default 9999, min 1) - the window, in frame count, during which this ControlNet apply is active at all.
  • Outputs: POSITVE, NEGATIVE.

Installing it

ComfyUI Manager: Install via Git URL → https://github.com/chaosaiart/Chaosaiart-Nodes, exactly as the README documents it. A title search for "Chaosaiart" should also work.

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 Install_windows script bundled in the folder. Restart ComfyUI. You'll still need a ControlNet model matching your checkpoint's architecture - this node doesn't fetch one for you.

Common issues

ControlNet never seems to kick in. Double-check start_Frame/End_Frame against how many generations you're actually queuing - if your batch is 20 images and start_Frame is set to 40, the window never opens.

Architecture mismatch, same as any ControlNet node. SD-era ControlNets don't load against SDXL, Flux, or other DiT-based checkpoints; confirm the ControlNet you loaded was actually trained for your base model.

One Python module for the whole pack. A broken opencv-python/tqdm install disables all ~20 Chaosaiart nodes at once, this one included - check ComfyUI's startup console for an import error before assuming the node itself is broken.

Category🔶Chaosaiart/controlnet

Inputs (13)

NameTypeDefaultDescription
activ_frameACTIV_FRAME—
positiveCONDITIONING—
negativeCONDITIONING—
control_netCONTROL_NET—
imageIMAGE—
strength_overrideFLOAT—
start_overrideFLOAT—
end_overrideFLOAT—
strengthFLOAT1.000–3—
startFLOAT0.000–1—
endFLOAT1.000–1—
start_FrameINT11–999999999—
End_FrameINT99991–999999999—

Outputs (2)

NameTypeDescription
POSITVECONDITIONING—
NEGATIVECONDITIONING—