Image-Space
- Heavier
- Difficult to represent abstract conditions (e.g., force)
- Mainly controls visual appearance
- Leverages the visual priors of video generation models
Image-Space or Non-Image-Space Conditioning?
for t ∈ {1, …, 49} do pt ← flatten(Pxyz[:, t]) ht ← Wframeptend forAbsolute pose matching · Linear frame projection
H ← stack(h1, …, h49)Hpad ← pad(H, target_length = 52)ck ← concat(h4k+1, …, h4k+4)zk ← WmergeckRepeat final frame · Merge four frames per chunk
Zchannel ← repeat_interleave(Zpose, H × W)Zchannel ← MLP(Zchannel)Kl, Vl ← Projl(Zchannel)Xl ← Xl + CrossAttn(Ql, Kl, Vl)Cross-attention conditioning at each transformer block
Ldiff ← DenoisingLoss(θs, target)Lhint ← MSE(student features, Thint)Ltotal ← Ldiff + λhintLhintreturn LtotalBlockwise and boundary supervision
Image-Space or Non-Image-Space Conditioning?
Image-Space or Non-Image-Space Conditioning?
Lack of Temporal Ordering in the Inputs

Learn positional structure from scratch
↓Pretraining-like optimizationInherit spatiotemporal position priors
↓Focus on conditional controlReuse the generator’s 3D RoPE — do not relearn position.
VIDEO TOKEN GRID

SPLIT & ROTATE Q / K
ATTENTION

12 LEARNABLE TOKENS
POSITION-AWARE SELF-ATTENTION
for t = 0 … T−1, k = 0 … K−1▹ iterate over every frame and keypoint n ← tK + k▹ flatten (t, k) into one sequence index A[n] ← RMSNorm(E[k])▹ keypoint identity shared across all frames p[n] ← (t / (T−1), y[n], x[n])▹ frame-specific time, height, and width(Qv, Kv, Vv) ← Wqkv(X)(Qa, Ka, Va) ← Wqkv(A)(Qv, Kv) ← RoPEvideo(Qv, Kv)(Qa, Ka) ← RoPEaction(Qa, Ka, p)Yv ← Attn(Qv, [Kv ; Ka], [Vv ; Va])Ya ← Attn(Qa, Ka, Va)X ← DiTBlock(X, Yv, C) · A ← ActionBlock(A, Ya)V̂ ← Head(X) // discard all 588 action tokensForce is a vector condition, not a point condition.
FOUR DEGREES OF FREEDOM
VECTOR REPRESENTATION
Comprehensive comparison across model and conditioning settings.
