Nodes/ComfyUI/WanMoveConcatTrack
ComfyUI Node Runs on cloud

WanMoveConcatTrack

Splice two sets of motion tracks into one

By Comfy-Org·Created 4 years ago·Updated a day ago· 130,493
WanMoveConcatTrack
  • tracks_1
  • tracks_2
  • TRACKS

A TRACKS object is just a bundle of point trajectories: a list of (x, y) positions per frame, plus a visibility mask. WanMoveConcatTrack is the node that staples two of those bundles together into one. It's the glue of the Wan-Move workflow, and it's so small that this article is short for a reason - there isn't much to it.

Why you'd want this

Wan-Move conditions a video generation on point trajectories, but a single trajectory set is rarely the whole scene. You might want a camera dolly (one set of tracks all moving together), a character walking right (a second set), and a drifting leaf (a third). Generate each with its own GenerateTracks node, then concatenate them so WanMoveTrackToVideo sees everything at once. Same idea if you're building a complex path out of segments or merging tracks from an external point-tracker with ones you made by hand.

How it works

It concatenates along the track dimension. Given tracks_1 with N points per frame and tracks_2 with M points per frame, you get one TRACKS with N+M points per frame. The visibility masks merge the same way. Nothing fancy, no resampling, no averaging - a straight append.

The inputs

  • tracks_1 - required.
  • tracks_2 - optional. Leave it disconnected and the node just passes tracks_1 through untouched, which is a handy way to make a "maybe merge, maybe not" workflow safe.

Output: a single TRACKS that feeds straight into WanMoveTrackToVideo.

Getting it

Ships with ComfyUI core - it arrived with the whole Wan-Move node family in December 2025 (PR #11247). No install, just update.

Where people trip

Both inputs must span the same number of frames. The concat is along the point axis, not the time axis, so if one track set is 81 frames and the other is 121, you've just handed WanMoveTrackToVideo a mashup that its length check can't reconcile. If your two sources genuinely differ in length, trim or regenerate one first. And there's no dedup or sorting here - if you concatenate tracks that overlap spatially, they both act on the generation, which can pull motion in conflicting directions. That's a feature if you're layering motion on purpose, and a bug if you forgot to delete the old track set.

Categorymodel/conditioning/wan/move

Inputs (2)

NameTypeDefaultDescription
tracks_1TRACKS
tracks_2optTRACKS

Outputs (1)

NameTypeDescription
TRACKSTRACKS