WanTrackToVideo
Steer a video by dragging points, not by writing a paragraph
- positive
- negative
- vae
- start_image
- clip_vision_output
- positive
- negative
- latent
WanTrackToVideo is the node that turns a handful of moving points into a whole video. It's the heart of the "Wan Move" workflow: instead of describing motion in a prompt and hoping the model complies, you define actual point trajectories - pixel coordinates that drift across frames - and this node patches that motion directly into the video latent. Want the camera to pan left while the subject stays put? Draw the track. Want a product to rotate on a turntable? That's a circular track.
If this sounds like motion transfer or keyframe animation, that's because it is - Wan Move is the point-tracking-to-video technique that people were reverse-engineering with CoTracker before the official nodes landed. The selling point over text-driven motion: the model can't ignore your track the way it ignores a sentence about camera movement.
How it works
You feed it a JSON list of point trajectories as the tracks string. Each point is a path of x/y coordinates over the clip - the node parses the JSON, resamples the tracks to the model's internal frame rate, and "patches" them into the latent via a motion-matching pass with two knobs you'll rarely touch: temperature (default 220) controls how deterministically the motion pattern is applied, and topk (default 2) limits the candidate motion tokens considered. A start_image seeds the first frame; an optional clip_vision_output adds visual grounding, the same way Wan's image-to-video node does. If the tracks field is empty, the node helpfully falls back to plain Wan image-to-video, so you can wire it up before you have tracks and it won't blow up.
Inputs that matter
- tracks - the JSON trajectory data (multiline). This is the real input; format mismatches are the #1 failure.
- start_image - first-frame seed.
- width / height / length / batch_size - the output canvas.
- temperature / topk - advanced motion-matching dials.
Outputs: positive, negative, and a latent ready for sampling.
Where it fits
Ships with ComfyUI core; Wan Move support landed in the 2026 window and is still actively getting sibling nodes (tracks-from-coordinates, visualize, concat). The Wan model goes in your ComfyUI models folder. The companion nodes for generating tracks from a reference video sit right next to it in the menu - you're expected to build the JSON with those, not by hand.
Common issues
Malformed JSON is the classic: stray quotes, missing brackets, or hand-typed coordinates, and you get an empty track or a silent fallback to i2v. The community's early pain was "floating" or ghosting subjects - objects detaching from their tracks mid-clip - which usually means the track resolution doesn't match the output canvas or the motion is too fast for the frame count. And keep in mind tracks are sampled at a 24fps coordinate grid while the model works at 16fps internally; the node resamples, but wildly jagged hand-drawn tracks come out wobbly.
Inputs (12)
| Name | Type | Default | Description |
|---|---|---|---|
| positive | CONDITIONING | — | |
| negative | CONDITIONING | — | |
| vae | VAE | — | |
| tracks | STRING | [] | — |
| width | INT | 83216–16384 | — |
| height | INT | 48016–16384 | — |
| length | INT | 811–16384 | — |
| batch_size | INT | 11–4096 | — |
| temperature | FLOAT | 220.01–1000 | — |
| topk | INT | 21–10 | — |
| start_image | IMAGE | — | |
| clip_vision_outputopt | CLIP_VISION_OUTPUT | — |
Outputs (3)
| Name | Type | Description |
|---|---|---|
| positive | CONDITIONING | — |
| negative | CONDITIONING | — |
| latent | LATENT | — |