Nodes/Comfyui CoTracker Node/XY Motion Amplifier
ComfyUI Node

XY Motion Amplifier

Turn up one direction of motion without moving static points

By s9roll7·Created about a year ago·Updated about a year ago· 29
XY Motion Amplifier
  • mask
  • images_for_marker
  • coordinates
  • image_with_results
coordinates
x_positive_amp1.0
x_negative_amp1.0
y_positive_amp1.0
y_negative_amp1.0

Say you've got good tracks, but the motion in the final video is too weak - a subtle head turn you want doubled, a sway you want exaggerated, or a face that should move more than the background. XYMotionAmplifierNode is the gain knob for coordinates: it scales how far each point moves between frames, with separate control per axis and per direction, and it never touches points that aren't moving. That last part is the whole trick.

The mechanism is clean. It reads your coordinates STRING (any point-track format from this pack - CoTrackerNode, GridPointGeneratorNode, or the Perlin randomizer), and for each point it computes the delta between consecutive frames, multiplies that delta by the multiplier matching its direction, then accumulates from the amplified previous position. Frame 0 is never moved, and a point sitting still has a delta of zero - which multiplied by anything is still zero. So static points stay pinned exactly where they were. That's why the README's demo can double the motion on a face while the rest of the scene doesn't drift.

The four multipliers are the point of it. x_positive_amp and x_negative_amp scale rightward and leftward motion separately; y_positive_amp and y_negative_amp scale downward and upward. Set x_positive_amp to 2 and motion going right doubles while motion going left stays as-is - handy for making a walk cycle feel asymmetric, or exaggerating a camera pan on one axis only. All four default to 1.0, so the node is inert until you ask it to be.

mask limits amplification to points whose starting position sits inside the masked area - the face-only example in the README is exactly this. And images_for_marker gives you the image_with_results preview (red markers on the amplified positions) so you can sanity-check before a long render.

Inputs are coordinates plus the four amps and the two optional helpers; outputs are the transformed coordinates STRING and the optional preview IMAGE. Wire the STRING into the ATI Tracks node and you're done.

Install is the pack install - ComfyUI Manager → "Comfyui CoTracker Node", or cd ComfyUI/custom_nodes && git clone https://github.com/s9roll7/comfyui_cotracker_node and restart. Like the other utilities it needs no model and runs offline. The trap to avoid: these are per-frame deltas, so a big multiplier on a fast clip can send points flying off-frame by the end. Amplify, watch the preview, and remember you can chain this with the Perlin randomizer - amplify first, then add organic jitter on top. That combo is where this pack's outputs stop looking like math and start looking like film.

Categorytracking/utility

Inputs (7)

NameTypeDefaultDescription
coordinatesSTRING
x_positive_ampFLOAT1.00–100
x_negative_ampFLOAT1.00–100
y_positive_ampFLOAT1.00–100
y_negative_ampFLOAT1.00–100
maskoptMASKModify points only inside masked area
images_for_markeroptIMAGE

Outputs (2)

NameTypeDescription
coordinatesSTRING
image_with_resultsIMAGE