Nodes/ComfyUI/Generate Video Tracks
ComfyUI Node Runs on cloud

Generate Video Tracks

Draw a motion path and get Wan-Move tracks

By Comfy-Org·Created 4 years ago·Updated a day ago· 130,493
Generate Video Tracks
  • track_mask
  • TRACKS
  • track_length
width832
height480
start_x0.00
start_y0.00
end_x1.00
end_y1.00
num_frames81
num_tracks5
track_spread0.025
bezierfalse
mid_x0.50
mid_y0.50
interpolation

Wan-Move is motion control without a driving video: instead of feeding Wan a pose or depth clip, you hand it a set of 2D tracks and it moves content along them. GenerateTracks is the friendly way to make those tracks. You tell it where motion starts, where it ends, how many parallel tracks you want, and it produces the TRACKS object the Wan-Move pipeline consumes. It landed in core in December 2025 with Wan-Move support.

The inputs that matter

Most of them are about defining one path and fanning it out:

  • start_x / start_y / end_x / end_y - the motion path's start and end, as normalized coordinates (0-1). The tooltips spell it out; (0,0) is top-left, (1,1) is bottom-right.
  • width / height - your video's resolution, used to map the normalized path to actual pixels.
  • num_frames - how many frames the tracks span. Match your video length.
  • num_tracks - how many parallel tracks to generate, 1-100. The motion spreads across them.
  • track_spread - the normalized distance between tracks. The tooltip's detail matters: tracks are spread perpendicular to the motion direction, so this is how wide the "swath" of motion is.
  • bezier + mid_x / mid_y - flip bezier on and the path becomes a curve through the midpoint instead of a straight line. The mid controls only apply when bezier is enabled.
  • interpolation - timing: linear, ease_in, ease_out, ease_in_out, or constant. This is how the object's speed along the path is shaped - ease-in-out makes it accelerate and settle like a real subject, constant freezes it.
  • track_mask - optional mask marking which frames are visible.

Outputs

  • TRACKS - the track object (coordinates + visibility per frame), ready for the Wan-Move track conditioning and sampling chain.
  • track_length - the generated frame count, which matches num_frames. Use it to keep the rest of your graph in sync.

The mechanism

The node takes your start/end points, interpolates positions across num_frames (applying the timing curve), then offsets copies perpendicular to the path by track_spread to build the parallel bundle. With bezier on, the midpoint becomes the curve's control point. What you get is a coherent field of motion paths rather than one lonely line - which is why it feels less like drawing and more like "aiming" a camera or a character sweep.

The honest comparison

This is the node you reach for when you want to invent motion - a camera that drifts left, a character that crosses the frame, a parallax sweep. Its sibling WanMoveTracksFromCoords is for when you already have real coordinates (tracked footage, exported paths, scripts) and want to paste them in. GenerateTracks is faster to use and more forgiving; the coords node is exact.

The trap: interpolation shapes speed, not path shape - you pick that with bezier. And normalized coordinates mean 0.5/0.5 is dead center, which trips people used to pixel coordinates. Start with a small track_spread and few tracks; a wall of 40 tracks at high spread is how you get mush instead of a directed move. Ships with ComfyUI core, no install.

Categorymodel/conditioning/wan/move

Inputs (14)

NameTypeDefaultDescription
widthINT83216–4096
heightINT48016–4096
start_xFLOAT0.000–1Normalized X coordinate (0-1) for start position.
start_yFLOAT0.000–1Normalized Y coordinate (0-1) for start position.
end_xFLOAT1.000–1Normalized X coordinate (0-1) for end position.
end_yFLOAT1.000–1Normalized Y coordinate (0-1) for end position.
num_framesINT811–1024
num_tracksINT51–100
track_spreadFLOAT0.0250–1Normalized distance between tracks. Tracks are spread perpendicular to the motion direction.
bezierBOOLEANfalseEnable Bezier curve path using the mid point as control point.
mid_xFLOAT0.500–1Normalized X control point for Bezier curve. Only used when 'bezier' is enabled.
mid_yFLOAT0.500–1Normalized Y control point for Bezier curve. Only used when 'bezier' is enabled.
interpolationCOMBOControls the timing/speed of movement along the path.
track_maskoptMASKOptional mask to indicate visible frames.

Outputs (2)

NameTypeDescription
TRACKSTRACKS
track_lengthINT