SparseCtrl Weight Extras ππ π π
Tune hint vs non-hint frames in ComfyUI
- cn_extras
- cn_extras
This is a fine-tuning node for SparseCtrl workflows. SparseCtrl conditions a video on a few "hint" frames - the ones you actually provided a control image for - and lets the motion module handle the rest. This node lets you separately scale how strongly the hint frames, the non-hint frames, and the mask contribute. It's a cn_extras modifier, so it doesn't do anything on its own; you attach it to a weights node in the SparseCtrl chain.
The reason it exists: with SparseCtrl you sometimes want the frames you keyframed to be gripped tightly while the interpolated frames stay loose (or vice versa), and a single global strength can't split those apart. These three multipliers can.
What the three multipliers do
- sparse_hint_mult (default 1.0) - scales the influence on the hint frames (the ones with a control image). Raise it to make your keyframes adhere harder to their control images.
- sparse_nonhint_mult (default 1.0) - scales the influence on the non-hint frames (the interpolated ones). Lower it to give the motion module more freedom between keyframes.
- sparse_mask_mult (default 1.0) - scales the mask contribution.
Plus the standard cn_extras (optional) input, so you can chain this together with other extras (like Middle Weight Extras).
Inputs and outputs
Everything is optional here - there are no required inputs, so an untouched node just passes through neutral (all 1.0) extras. Set the multipliers you care about:
- cn_extras - incoming extras to build on.
- sparse_hint_mult / sparse_nonhint_mult / sparse_mask_mult - the three scalers above.
Output: cn_extras (CN_WEIGHTS_EXTRAS) - wire into the cn_extras input of a weights node that's feeding your SparseCtrl control path.
Installing the pack
ComfyUI Manager β Install Custom Nodes β "ComfyUI-Advanced-ControlNet" β restart. Or cd ComfyUI/custom_nodes && git clone https://github.com/Kosinkadink/ComfyUI-Advanced-ControlNet then restart. Pure ComfyUI, Kosinkadink's pack (also the AnimateDiff-Evolved author - relevant, since SparseCtrl is an AnimateDiff feature). Needs a SparseCtrl model in ComfyUI/models/controlnet and an AnimateDiff motion module to be doing anything.
Common gotchas
Same as every extras node: it does nothing unattached. The output has to reach a weights node's cn_extras input, and that weights node has to reach your SparseCtrl control path. Dangling output = silent no-op.
Second, this only makes sense in a SparseCtrl workflow. The hint/non-hint distinction is a SparseCtrl concept - feeding these extras into a plain ControlNet chain has nothing meaningful to scale. If you're not running SparseCtrl, you don't want this node.
Third, the era caveat that applies to all the SparseCtrl nodes: per the AnimateDiff KB, AnimateDiff (and therefore SparseCtrl) is superseded for new video projects by Wan-based tooling. It still works and is still maintained, but reach for it deliberately - because you want the AnimateDiff sparse-keyframe result specifically - rather than as your default video path in 2026.
Inputs (4)
| Name | Type | Default | Description |
|---|---|---|---|
| cn_extrasopt | CN_WEIGHTS_EXTRAS | β | |
| sparse_hint_multopt | FLOAT | 1.0000β10 | β |
| sparse_nonhint_multopt | FLOAT | 1.0000β10 | β |
| sparse_mask_multopt | FLOAT | 1.0000β10 | β |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| cn_extras | CN_WEIGHTS_EXTRAS | β |