Skip to content

Wan-Move: Motion-controllable Video Generation via Latent Trajectory Guidance

Wan-Move is a NeurIPS 2025 motion-control framework for image-to-video generation that injects dense point-trajectory guidance into Wan-I2V-14B by editing the first-frame condition feature directly — no auxiliary motion encoder, no architecture change. The core trick: project each pixel-space trajectory into latent coordinates, then copy the first-frame latent feature at the start of each trajectory to its later-frame positions, producing a spatiotemporal “where each element should move” condition that simply concatenates with the noise latent (the existing I2V conditioning path). On the authors’ new MoveBench (1018 5s 480p clips, point + mask annotations across 54 categories) Wan-Move beats Tora, LeviTor, MagicMotion and ImageConductor on every metric and is reported on par with Kling 1.5 Pro’s Motion Brush in user studies. Released under Apache 2.0 with a Gradio demo, ComfyUI/Wan2GP integrations, and a 14B 480P checkpoint.

  • Motion guidance can be injected by editing the existing first-frame condition feature of an I2V model, eliminating the auxiliary motion encoder / ControlNet branch that prior motion-control work relies on [§3.2, §1].
  • Latent trajectory guidance = take the latent-coordinate trajectory derived deterministically from the pixel trajectory (spatial mapping for frame 1, mean over every r_t consecutive frames thereafter), then replicate the first-frame VAE feature at the trajectory’s frame-1 position into each subsequent frame at the trajectory’s position [§3.2, Eq. 2–3].
  • Latent-feature replication beats both pixel-space replication and random-track latent embedding on MoveBench — PSNR 17.8 / EPE 2.6 vs 15.3 / 3.7 (pixel replication) and 16.1 / 2.7 (random embedding) [Table 5].
  • Simple concatenation of the motion-edited condition feature with noise latents matches ControlNet quality (FVD 83.5 vs 84.6, EPE 2.6 vs 2.5) while removing 225 s of per-clip latency (765 s vs 987 s) [Table 5, §5.3].
  • On MoveBench Wan-Move is SOTA over ImageConductor, LeviTor, Tora and MagicMotion across FID/FVD/PSNR/SSIM/EPE — FID 12.2 / FVD 83.5 / PSNR 17.8 / SSIM 0.64 / EPE 2.6, vs the next-best MagicMotion’s 17.5 / 96.7 / 14.9 / 0.56 / 3.2 [Table 1].
  • In a 2AFC human study with 50 conditioned samples × 20 participants, Wan-Move’s win rate vs Tora exceeds 96 % on motion accuracy, motion quality, and visual quality, and is competitive with Kling 1.5 Pro (47.8 / 53.4 / 50.2 win rates — i.e. above 50 % on motion quality) [Table 3, §5.2].
  • For multi-object control (192 MoveBench cases) Wan-Move reports FVD 226.3 / EPE 2.2 vs Tora 350.0 / 3.5 and ImageConductor 764.5 / 9.8 [Table 3].
  • Training uses CoTracker-tracked dense 32×32 grids on 2 M filtered 720p videos; per iteration, sample N trajectories from Uniform[1,200] with 5 % null-condition dropout to retain the base I2V capability; only the DiT backbone is trainable (image/text encoders frozen) [§3.3, §5.1].
  • MoveBench is a free-license 1018-clip benchmark at 480×832, 5 s, 81 frames, 54 content categories, with hybrid human + SAM annotations providing both point trajectories and segmentation masks (192 clips have multi-object annotations) and Gemini-generated dense captions [§4].
  • The maximum-trajectory-count sweep finds optimal training at N_max = 200; pushing past 200 raises EPE due to a train/test mismatch with sparse inference trajectories [Table 7, §5.3].

Wan-Move plugs into Wan-I2V-14B’s standard conditioning path. The first frame is VAE-encoded into f_1 and the subsequent frames are zero-padded and encoded into f_{2..T}; in the baseline I2V model, this stack is concatenated with the noise latent along the channel dimension [§3.2, Eq. 1]. Wan-Move’s only intervention is to edit this stack before concatenation: each input point trajectory (length T, pixel positions (x_t, y_t)) is mapped into latent coordinates (spatial-resolution divide for frame 1; mean-pool over the temporal compression ratio for frames t > 1), and the first-frame latent feature at the trajectory’s starting position is copied into each later-frame position along the latent trajectory [§3.2, Eq. 2–3]. CoTracker visibility flags gate the replication so occluded segments are skipped. When multiple trajectories collide at one (t, h, w), one is sampled at random.

That edit produces a spatiotemporal condition map that already encodes both appearance and motion in the same feature space as the original first-frame condition, so the existing channel-wise concat into the DiT is unchanged. Only the DiT backbone is fine-tuned; the VAE, umT5 text encoder, and CLIP image encoder are frozen. The flow-matching objective is unchanged from Wan-I2V [§3.3, Eq. 4]. Inference adds a one-time ~3 s trajectory-to-latent extraction step on top of standard Wan-I2V CFG sampling at guidance scale 5.0 [§5.3, §5.1]. The training set is 2 M 720p videos passed through a two-stage filter: an expert visual-quality scorer trained on 1 000 hand-labeled samples, then a SigLIP cosine-similarity stability threshold calibrated on 10 000 samples.

  • MoveBench single-object [Table 1]: Wan-Move 12.2 / 83.5 / 17.8 / 0.64 / 2.6 (FID/FVD/PSNR/SSIM/EPE). Next-best is MagicMotion at 17.5 / 96.7 / 14.9 / 0.56 / 3.2. ImageConductor is the worst at 34.5 / 424.0 / 13.4 / 0.49 / 15.6.
  • DAVIS single-object [Table 1]: Wan-Move 14.7 / 94.3 / 16.5 / 0.61 / 2.5, vs MagicMotion 24.2 / 113.4 / 12.8 / 0.53 / 3.5.
  • MoveBench multi-object [Table 3]: Wan-Move 28.8 / 226.3 / 16.7 / 0.62 / 2.2, vs Tora 53.2 / 350.0 / 14.5 / 0.54 / 3.5.
  • Human 2AFC win rates [Table 3]: Wan-Move vs LeviTor 98.2 / 98.0 / 98.8 (motion accuracy / motion quality / visual quality); vs Tora 96.2 / 93.8 / 98.4; vs MagicMotion 89.4 / 96.4 / 98.2; vs Kling 1.5 Pro 47.8 / 53.4 / 50.2 — i.e. on par with the commercial reference and slightly ahead on motion quality.
  • Ablations: latent feature replication > random track embedding > pixel replication [Table 5]. Concatenation matches ControlNet quality (FVD 83.5 vs 84.6, EPE 2.6 vs 2.5) at ~23 % lower latency (765 s vs 987 s) [Table 5].
  • Release artifacts: code, 14B 480P checkpoint (HuggingFace Ruihang/Wan-Move-14B-480P, ModelScope mirror), Apache 2.0 license, Gradio app, and MoveBench dataset. ComfyUI integration via Kijai’s WanVideo_comfy_fp8_scaled/WanMove; low-VRAM Wan2GP support via deepbeepmeep. Demo page: https://wan-move.github.io/; demo video: https://www.youtube.com/watch?v=_5Cy7Z2NQJQ.

This is the third filed motion-control paper to settle on “frozen Wan + minimal addition” (after VerseCrafter: Dynamic Realistic Video World Model with 4D Geometric Control‘s GeoAdapter and OmniTransfer: All-in-one Framework for Spatio-temporal Video Transfer‘s reference-branch RoPE), but it pushes the recipe further than either: there is no adapter at all, only an edit to the existing condition feature plus a backbone fine-tune. That makes it the most direct test of the Camera-Controlled Video Diffusion open question “could the explicit-camera-trajectory recipes drop their adapter blocks in favor of an additive injection?” — Wan-Move’s answer for object-level point control is yes, and the ControlNet vs concat ablation in Table 5 is the load-bearing evidence (matched quality, −225 s latency). The contrast with Kling-MotionControl Technical Report is the other axis: Kling-MotionControl uses three region-tailored channels (body/face/hand) plus an explicit semantic-motion track on a from-scratch DiT to handle holistic character animation, while Wan-Move uses one dense point-trajectory channel on frozen Wan-I2V — the appropriate granularity depends on whether the target is articulated humans or general scene-level motion. Also worth noting: Wan-Move’s user-study parity with Kling 1.5 Pro Motion Brush is the strongest “open research model matches commercial motion control” claim filed so far, and the Apache-2.0 14B checkpoint with ComfyUI/Wan2GP integration makes it immediately usable on a single 40 GB GPU (with --t5_cpu --offload_model True --dtype bf16).