WanVideo Add WanMove Tracks
Drawing motion instead of describing it
- image_embeds
- track_mask
- tracks
- image_embeds
- tracks
Prompting motion into a video model is a genuinely bad interface - you end up writing paragraphs trying to describe a camera pan or a hand gesture, and the model interprets it however it wants. Wan-Move (ali-vilab/Wan-Move) sidesteps that entirely: you draw trajectories - literal paths a point should travel along across the clip - and the model follows them. Kijai ported it into WanVideoWrapper fast, and this node is how you actually get those trajectories into your generation.
How it works
Motion-controllable generation via latent trajectory guidance means exactly what it sounds like: you specify one or more points and where they should move to over the course of the video, and Wan-Move conditions the diffusion process on that path rather than leaving motion entirely up to the prompt and the model's priors. It's the more precise sibling to prompting "the camera slowly pans right" - instead of hoping the model reads that correctly, you hand it the actual trajectory.
This node adds that trajectory data into your existing image embeds, at a controllable strength, so it becomes part of what the sampler conditions on alongside your text and any other control signals already in the graph.
The inputs and outputs that matter
image_embeds (WANVIDIMAGE_EMBEDS, required) is the embeds bundle you're adding motion control to. strength (default 1, range 0–10) is the one dial worth understanding - it's not a 0-to-1 blend like most strength sliders in this ecosystem, it goes up to 10, so treat 1 as your baseline and push it up if the trajectory isn't being followed closely enough.
For the actual trajectory data, you have three optional inputs and you'll typically use one: tracks (TRACKS) takes a pre-built tracks object, probably from a track-drawing or track-generation node elsewhere in your graph; track_coords (STRING) lets you pass coordinates directly as text if you're generating or scripting them; track_mask (MASK) can constrain where the motion guidance applies spatially.
Two outputs: image_embeds (WANVIDIMAGE_EMBEDS), the updated embeds to send to your sampler, and tracks (TRACKS) - the resolved tracks object passed back out, useful if you want to feed the exact same trajectories into a visualization node to sanity-check them before committing to a full render.
How to install it
Via ComfyUI Manager, search WanVideoWrapper and install, or manually:
cd ComfyUI/custom_nodes
git clone https://github.com/kijai/ComfyUI-WanVideoWrapper
then restart. You'll need Wan-Move's own model weights on top of your base Wan checkpoint - kijai hosts an fp8-ready version on his WanVideo_comfy HuggingFace repo under a WanMove folder, alongside the rest of his Wan model mirrors.
Common issues & troubleshooting
This is a genuinely new model - expect rough edges. Community reaction so far has been positive but small in volume ("There are too many wans" being a fairly representative reaction to yet another Wan variant landing), and it's early enough that best practices around track density and strength haven't fully settled. Start with a small number of clear trajectory points rather than something dense and complex.
If motion looks correct but everything else degrades, try pulling strength back toward 1 - because the range goes to 10, it's easy to overshoot and let the trajectory guidance dominate the generation at the expense of coherent detail.
If you're building tracks by hand, sanity-check them before a full render. This pack ships a separate trajectory-visualization node for its ATI motion-control system, but note it consumes a different track format (a plain string) than WanMove's own TRACKS type - the two aren't a drop-in pair, so don't assume you can pipe WanMove's tracks straight into it. Whatever you use to preview, look before you commit: catching a garbled trajectory on a still frame is a lot cheaper than catching it after a full generation.
Inputs (5)
| Name | Type | Default | Description |
|---|---|---|---|
| image_embeds | WANVIDIMAGE_EMBEDS | — | |
| strength | FLOAT | 1.000–10 | Strength of the reference embedding |
| track_maskopt | MASK | — | |
| track_coordsopt | STRING | JSON string or list of JSON strings representing the tracks | |
| tracksopt | TRACKS | Alternatively use Comfy Tracks dictionary |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| image_embeds | WANVIDIMAGE_EMBEDS | — |
| tracks | TRACKS | — |