Does the LoRA read the proxy?

Six scenes. Each starts from a released first frame (for its style) and everything after frame 0 is ours: the geometry, the actions, the camera, and the caption compiled from the same simulation. MiniMax-H3 then generates each scene twice with the same anchor, proxy video, caption and seed — once in its native reference mode, once with the CWM LoRA. The only variable is whether the model was taught to read depth and semantics. Where a fourth video is shown, it is LynnReal-Omni (a 32B H3-architecture model with native frame-aligned controls) given the same proxy as a control video, zero-shot: no LoRA, the same anchor, the same caption content rewritten into its six-section prompt.

Board and drive off

He walks up the boulevard; a shuttle comes down it, halts beside him; he climbs in; it pulls away with him inside. Anchor: released example 40.

anchor: released first frame, example 40
our proxy — semantic over depth, 124 frames
MiniMax-H3, native reference mode (anchor + proxy video + caption, no LoRA)
MiniMax-H3 + CWM LoRA — same anchor, proxy, caption and seed
LynnReal-Omni video-edit, zero-shot — the proxy as its frame-aligned control video, no LoRA

frame 0 vs anchor — subject x 0.424 / 0.417, y 0.504 / 0.508, lens→subject 2.97 / 2.96 m, sky 0.0; 124 frames, conditions clean

A wagon passes, the camera eases back

He runs up the shoulder; a wagon comes down the causeway on his right and passes; the boom lengthens from 3.75 to 6.5 m as it does. Anchor: example 19.

anchor: released first frame, example 19
our proxy — semantic over depth, 124 frames
MiniMax-H3, native reference mode (anchor + proxy video + caption, no LoRA)
MiniMax-H3 + CWM LoRA — same anchor, proxy, caption and seed
LynnReal-Omni video-edit, zero-shot — the proxy as its frame-aligned control video, no LoRA

frame 0 vs anchor — subject x 0.501 / 0.501, y 0.573 / 0.571, lens→subject 3.8 / 3.79 m, sky 0.106; 124 frames, conditions clean

Turn away from the river

He runs along the water's edge, then breaks right; the follow rig swings round behind him and the river leaves the frame. Anchor: example 4.

anchor: released first frame, example 4
our proxy — semantic over depth, 124 frames
MiniMax-H3, native reference mode (anchor + proxy video + caption, no LoRA)
MiniMax-H3 + CWM LoRA — same anchor, proxy, caption and seed
LynnReal-Omni video-edit, zero-shot — the proxy as its frame-aligned control video, no LoRA

frame 0 vs anchor — subject x 0.436 / 0.436, y 0.612 / 0.606, lens→subject 3.93 / 3.87 m, sky 0.108; 124 frames, conditions clean

Stop, and the camera orbits

He walks to the reliquary, stands for two seconds while the camera swings 40° round him, then walks on. Anchor: example 30.

anchor: released first frame, example 30
our proxy — semantic over depth, 124 frames
MiniMax-H3, native reference mode (anchor + proxy video + caption, no LoRA)
MiniMax-H3 + CWM LoRA — same anchor, proxy, caption and seed
LynnReal-Omni video-edit, zero-shot — the proxy as its frame-aligned control video, no LoRA

frame 0 vs anchor — subject x 0.367 / 0.363, y 0.588 / 0.584, lens→subject 1.83 / 1.76 m, sky 0.138; 124 frames, conditions clean

Two leaps

He runs across the apron and leaps the curb twice; the caption carries the leaps because the JUMP state is read from the simulation. Anchor: example 25.

anchor: released first frame, example 25
our proxy — semantic over depth, 124 frames
MiniMax-H3, native reference mode (anchor + proxy video + caption, no LoRA)
MiniMax-H3 + CWM LoRA — same anchor, proxy, caption and seed
LynnReal-Omni video-edit, zero-shot — the proxy as its frame-aligned control video, no LoRA

frame 0 vs anchor — subject x 0.446 / 0.447, y 0.586 / 0.586, lens→subject 3.9 / 3.83 m, sky 0.018; 124 frames, conditions clean

Stop, push in, pull back

He runs up the road, stops at the drums while the camera pushes in from 4 m to 2.2 m, then runs on as it drops back. Anchor: example 13.

anchor: released first frame, example 13
our proxy — semantic over depth, 124 frames
MiniMax-H3, native reference mode (anchor + proxy video + caption, no LoRA)
MiniMax-H3 + CWM LoRA — same anchor, proxy, caption and seed
LynnReal-Omni video-edit, zero-shot — the proxy as its frame-aligned control video, no LoRA

frame 0 vs anchor — subject x 0.574 / 0.575, y 0.542 / 0.544, lens→subject 4.02 / 4.03 m, sky 0.098; 124 frames, conditions clean

Long takes, the authors' way

Board and drive off — 4 windows, 394 frames (16.4 s)

The same scene carried on: 4 windows of 124 frames with 90 new frames each, Retake34 overlap pinned, one caption compiled per window, stitched with the overlap dropped.

our proxy, 394 frames
MiniMax-H3, native reference mode (no LoRA)
MiniMax-H3 + CWM LoRA

Two leaps — 4 windows, 394 frames (16.4 s)

The same scene carried on: 4 windows of 124 frames with 90 new frames each, Retake34 overlap pinned, one caption compiled per window, stitched with the overlap dropped.

our proxy, 394 frames
MiniMax-H3, native reference mode (no LoRA)
MiniMax-H3 + CWM LoRA

Streaming, chunk by chunk

Boulevard, 540p, six chunks of 22 frames

The release has no entry that takes a frame-aligned control and streams, so this borrows its anchored structure-edit recipe: each chunk is a video-edit conditioned on the anchor and that chunk's proxy, with the last frame of the previous chunk pinned into the first latent slot. 21 new frames (0.88 s) per chunk, four denoiser steps, one H200, one resident process. Seams are as continuous as the frames inside a chunk; what drifts is texture: the road coarsens chunk by chunk because each chunk restarts from one frame. Carrying the release's latent history softens it; longer chunks nearly remove it, and one 124-frame call is both the cleanest and, per frame, the fastest.

the control video: our proxy as a flat-shaded game render, 960×544, cut into 22-frame chunks with a 21-frame stride
22-frame chunks, as released
22-frame chunks, nothing staged (same frames as released, faster)
22-frame chunks + latent history
56-frame chunks
no chunking, 124 frames in one call
configurationconditioning sgenerate sof which DiT (4 steps)decode speak GB× slower than real time
as released: cuDNN attention, official VAE, every module staged to CPU between phases41.837.314.60.547890×
as released, lightweight VAE40.935.614.60.347587×
FlashAttention-340.336.113.40.517887×
FlashAttention-3, lightweight VAE40.534.513.40.327586×
FlashAttention-3, nothing staged, text encoder pinned on the GPU2.518.013.40.5213623×
same, lightweight VAE2.417.813.40.3213323×
same, Qwen vision blocks dropped from the text context (946 rows instead of 8692)2.312.68.00.5113617×
same as pinned, plus the release's bounded FramePack latent history2.519.114.40.5213625×
pinned, 39-frame chunks2.924.418.11.0213617×
pinned, 56-frame chunks3.431.523.31.5313715×
no chunking: the whole 124 frames in one call5.064.648.93.6614114×

medians over the chunks after the first (single-call rows: that one call). Conditioning is the Qwen3-VL-32B text encoder reading the prompt, the anchor and the chunk's proxy; as released it is moved CPU→GPU→CPU every chunk. The staged runs move eight DiT blocks and the VAE decoder around every VAE phase. Pinning both on a 141 GB card removes 60 s per chunk; the four DiT steps at 3.35 s each are what is left.

Made with examples/gallery.py and docs/mkgallery.py. Videos re-encoded for the web at 672 px; the conditions themselves are 336×192 float32 depth + uint8 semantic ids.