AddNoiseToTrackPath
Roughing up a motion track so it doesn't look robotic
- tracks
- TRACKS
This one lives under conditioning/video_models in the node menu, and the TRACKS type it works with is the giveaway: it operates on motion-track / trajectory conditioning for video models - the kind of data you'd feed a video model to say "this point moves along this path over these frames." What it does to that data is simple to state: it adds controlled noise, so a perfectly smooth, machine-generated path stops looking so perfectly smooth.
That matters because a trajectory drawn by hand, or generated procedurally, tends to be too clean - evenly spaced, mathematically consistent in a way real motion never is. Feed that straight into a motion-controlled generation and you can end up with movement that reads as stiff or mechanical, the same way perfectly interpolated animation looks worse than animation with a bit of natural jitter in it. Nudging the path with a small amount of noise before it reaches your sampler is a cheap way to break that too-clean quality.
The inputs that matter
tracks(TRACKS, required) - the track/trajectory data going in.strength(default1, range0–100) - overall noise magnitude. This is the one to actually watch: the useful range here is much wider than a typical 0–1 ComfyUI slider, and the default of1is close to the bottom of a 0–100 scale. If you expected a small bump from the default and got nothing visible, that's why - you likely need to push this a lot higher than instinct suggests.noise_x_ratio/noise_y_ratio(default1each,0–100) - how much of the noise lands on horizontal vs. vertical movement. Zero either one out and that axis stays clean.noise_temporal_ratio(default1,0–100) - how much the noise varies frame to frame versus staying consistent across the whole path. Higher values make the jitter feel more like frame-to-frame flicker; lower values make it feel more like the whole path was shifted slightly and consistently.seed(default0) - reproducibility. Same seed, same settings, same exact noise pattern every time - useful for comparing a noised track against a clean one without the comparison itself being noisy.
Output: TRACKS - the perturbed path, same type as the input, so it drops straight back into whatever motion-conditioning node was consuming the original.
How to install it
Via ComfyUI Manager: search KJNodes for ComfyUI, install, restart. Manually:
cd ComfyUI/custom_nodes
git clone https://github.com/kijai/ComfyUI-KJNodes
pip install -r ComfyUI-KJNodes/requirements.txt
Then restart. No model downloads - this is pure graph logic operating on trajectory data you're already producing elsewhere in your workflow.
Common issues & troubleshooting
Nothing visibly changes. Two likely causes, both readable straight off the schema: strength is still near its default of 1 out of a 0–100 range, so push it up meaningfully before concluding it isn't working; or one of noise_x_ratio / noise_y_ratio / noise_temporal_ratio got zeroed out somewhere upstream, which gates that particular axis off entirely regardless of strength.
You want the same "random" wobble every run for comparison purposes. That's what seed is for - leave it fixed while you tune the ratio and strength sliders, and you're comparing apples to apples instead of chasing a moving target.
Over-noised paths look chaotic instead of organic. This node adds noise linearly across a wide range (up to 100), and there's a real gap between "a little natural jitter" and "the path no longer resembles the original intent." Start low, increase in small steps, and watch the actual rendered motion rather than tuning by feel on the numbers alone.
Inputs (6)
| Name | Type | Default | Description |
|---|---|---|---|
| tracks | TRACKS | — | |
| strength | FLOAT | 1.000–100 | — |
| seed | INT | 00–18446744073709550000 | — |
| noise_x_ratio | FLOAT | 1.000–100 | Multiplier for horizontal noise component |
| noise_y_ratio | FLOAT | 1.000–100 | Multiplier for vertical noise component |
| noise_temporal_ratio | FLOAT | 1.000–100 | Multiplier for temporal (frame-to-frame) noise |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| TRACKS | TRACKS | — |