ComfyUI-MAINodes: Motion Lab

A test-time fix for MiniMax H3 smearing fast motion ("roping"). The clip regenerates as slow motion seeded from your own render, a jerk oracle picks where, and exact frame selection recovers realtime. No training. Every number below comes from a measured comparison.

github.com/matlowai/ComfyUI-MAINodes

Before and after, fresh scene, default knobs

Baseline smears the aerial spin into a blob; both regenerated settings render it clean and keep the choreography. New scene, no per-clip tuning.

Fast motion under a panning camera

A lateral tracking shot with a parasol burst mid-pan. Baseline left, pipeline right: the parasol grows ribs and the hands articulate through the burst. Detailed backgrounds can re-roll during dilated spans (watch the laundry line); that limitation and its dials are documented in TUNING.md.

Nine tiers, one seed, with render times

Every quality/speed rung from a one-minute turbo scout to the full pipeline. Times in the header, ws-normalized, 5 s 1024² clip. The three paths to know: pipeline at inject 0.70 (~19 min incl. its baseline, the default), inject 0.50 (~15 min, sharper, closer motion tracking), and probe + expert turbo (~8.5 min, no full baseline). Start with a 2 to 3 second clip and scale up; cost follows the burst spans, not the runtime.

Baseline vs regenerated, same seed, real time

Left smears through the backflip, right doesn't.

The oracle, watching

Heat pools where motion runs too hot; the strip lights up as the burst arrives. This map is what decides where the timeline dilates.

Uniform vs adaptive hold maps

Already good, and slightly better: uniform dilation, then the adaptive map without and with bridge. Same seed all three.

The featherweight stack, for 24 to 32 GB cards

The whole pipeline on the smallest community models (w4a8 DiT, int8 VAE, nvfp4 text encoder, ComfyUI 0.31+). This one is Ref2VA: the courier girl is defined from two reference stills and dropped into a scene she has never been in, then de-roped. Baseline, recovered, and the oracle map that steered it. A 5 s, 1.0 MP de-rope fits a 32 GB card; measured numbers in TUNING.md.

First-and-last-frame conditioning through the same pipeline. The end anchor names a timestamp that lands mid-clip on the dilated regeneration's clock, and it simply does not fight: the injected trajectory owns the timing and the clip still lands on the anchor pose. Image-to-video works the same way (clip).

One honest caveat: int8 and w4a8 render different takes from the same seed, because quantization bends the trajectory. Both coherent, both de-rope cleanly. Compare quality, not pixels.

What it costs, measured

featherweight runwall timepeak VRAM you'd see
3 s at 0.4 MP4 min~19 GB
3 s at 0.7 MP6.5 min~20 GB
5 s at 1.0 MP29 min~28 GB brief peak, ~20 GB sustained

Full pipeline including its own baseline render, w4a8 stack on ComfyUI 0.31+, text encoder offloaded after encoding (the default). These are one clip's numbers, not a promise: the oracle decides how much of your clip gets time-dilated, and the dilated span is what costs. A calm clip with one short burst runs well under these figures; wall-to-wall action runs at them. Resolution barely moves the peak. Full table, the dials, and the exact known-good environment (torch nightly cu132, CUDA 13.2, ComfyUI 0.31.1, measured on Blackwell) in TUNING.md.

Docs: TUNING.md · workflows in examples/ · MIT