ControlNet Strength Schedule
CN Schedule — one place to set strength and timing for every ControlNet unit
- strength
- start_percent
- end_percent
Every ControlNet Apply Advanced node already has strength, start_percent, and end_percent built into it - so what does a node whose entire job is outputting exactly those three values, and nothing else, actually buy you? The answer is multi-ControlNet setups. The moment you're stacking two or three conditions - canny plus depth, pose plus depth, whatever combination your workflow needs - you end up with the same three numbers typed into multiple Apply nodes, and keeping them in sync by hand is exactly the kind of tedious, error-prone busywork a small utility node should eliminate. This one does: set the values once here, wire the three outputs to as many Apply nodes as you want, and there's a single source of truth instead of five places to remember to update.
What the numbers should actually be
This node doesn't invent new guidance - it just exposes the same three ControlNet fundamentals every Apply node has, and the same rules of thumb apply. strength (default 1, range 0-2) is the weight - how strongly the condition steers generation. The old SD 1.5-era default of 1.0 still works as a baseline, but the union ControlNets people actually run in 2026 tend to publish lower recommended numbers than that: something in the 0.65-0.9 range depending on the model and condition type, rather than maxing it out. start_percent and end_percent (both 0-1) define the denoising window where the condition is active. The single most useful trick worth knowing here: ending control partway through - around 0.4 to 0.6 - rather than holding it for the entire sample tends to give cleaner results. Locking the condition through composition, then releasing it, lets the model add its own detail in the later steps instead of staying spatially pinned the whole way through. That start/end mechanism has been the community's go-to precision tool since it landed in the original A1111 ControlNet extension back in 2023, and it does exactly the same job here.
Inputs and outputs
Required: strength, start_percent, end_percent - that's the entire node, no image input at all. Outputs: strength, start_percent, end_percent, each a FLOAT, matching the three inputs exactly. Wire each output to the corresponding input on one or more ControlNet Apply Advanced nodes downstream.
Installing it
Search ComfyUI-CN-Pre in ComfyUI Manager, or manually: cd ComfyUI/custom_nodes && git clone https://github.com/OKIE5/ComfyUI-CN-Pre, then restart. This pack's README is a one-line stub that doesn't describe any of its nodes, this one included - but of everything in the pack, this is the least likely node to need documentation in the first place. It's three float sliders and three float outputs, no model, no backend, nothing that can meaningfully break.
Where people get burned
There's genuinely not much failure surface here - the only real mistake is conceptual rather than technical: forgetting that strength/start_percent/end_percent from this node only take effect once they're actually wired into a ControlNet Apply node's matching inputs. Dropping this node into your graph and setting nice values does nothing on its own if you forget the connection. And if you're coming from a single-ControlNet workflow and wondering whether you need this node at all - you probably don't. It earns its keep specifically once you're running more than one ControlNet condition at a time and want them to share settings instead of drifting out of sync as you tune the workflow.
Inputs (3)
| Name | Type | Default | Description |
|---|---|---|---|
| strength | FLOAT | 1.000–2 | — |
| start_percent | FLOAT | 0.000–1 | — |
| end_percent | FLOAT | 1.000–1 | — |
Outputs (3)
| Name | Type | Description |
|---|---|---|
| strength | FLOAT | — |
| start_percent | FLOAT | — |
| end_percent | FLOAT | — |