Nodes/MiniMax-H3-Flow-Aligned-Regenerate/MiniMax H3 Prefix Projection A/B
ComfyUI Node

MiniMax H3 Prefix Projection A/B

Native VAE or bicubic? Auditing the H3 prefix projection without re-rendering

By xmarre·Created about a month ago·Updated about 18 hours ago· 21
MiniMax H3 Prefix Projection A/B
  • video_vae
  • rgb_reference
  • latent_bicubic
  • vae_rgb_roundtrip
  • numerical_report
◄bundle_path►
◄chunk_join_frame175►
◄static_roi_profile01784_room►
◄feature_tracking_enabledtrue►
◄static_roi_json►

Here's the problem this node was built to answer. When you continue an H3 clip at a higher resolution, the protected prefix you carry forward lives on the target grid, but early sampling happens on a smaller source grid. Getting that prefix down to the source grid is a resampling step, and there are two candidate ways to do it: plain bicubic on the latent, or round-trip it through the native H3 video VAE into RGB and back. Which one is more faithful?

MiniMax H3 Prefix Projection A/B measures that, on a saved boundary witness, without touching your production workflow. It runs no H3 sampling, changes no settings, and the README is blunt that the VAE roundtrip it produces is "an experimental reconstruction, not an accepted continuation correction." Treat it as a scale you peer at, not a knob you flip.

How it works

Point it at an existing uniform-source boundary bundle - the saved operands from a run where capture_boundary_witness was on. It reads the authoritative target prefix and the source-grid clean latent out of that bundle, verifies the manifest fields and the per-tensor byte hashes, and then builds two projections of the same prefix down to the source grid: latent bicubic, and a native VAE decode → RGB → encode roundtrip. A reference RGB clip comes along as the control.

That costs five decodes and one encode of the native video VAE and zero H3 evaluations. It also holds strong references to the loaded model owners so ComfyUI's cache pruning doesn't evict your VAE halfway through the audit.

Four outputs come out:

  • rgb_reference - the control clip.
  • latent_bicubic - the bicubic projection rendered to RGB.
  • vae_rgb_roundtrip - the VAE roundtrip, rendered the same way.
  • numerical_report - the JSON with the paired metrics, printed in the node UI and written under output/h3_flow_regenerate/prefix_projection_audits/.

Save all three as PNG sequences and flip between them. A report nobody looks at is how you end up trusting a metric over your eyes.

Inputs that matter

video_vae must be the native MiniMax H3 video VAE - the same checkpoint your generation used, not a preview VAE, an audio VAE, or a decoder-only replacement. The node checks the 16 / 4 / 17 / 3 / 2 temporal contract and refuses anything else, which is a much better failure than a silently wrong comparison. The pack's own example uses minimax_h3_video_vae_int8_convrot.safetensors.

bundle_path is the directory holding manifest.json and its .bin operands, or the manifest file itself. A previously saved numerical audit JSON will not do - the tooltip says "Existing uniform-source boundary bundle directory or manifest.json" and it means it. Linux paths and WSL share paths for the running distro both work.

chunk_join_frame only labels the report; source and target dimensions and prefix length come from the verified witness. For a join at 175, use 175.

Then the ROI trio: static_roi_profile is off, 01784_room or custom, static_roi_json supplies your own fractional rectangles, and feature_tracking_enabled (default on) adds background movement tracking. off needs tracking disabled to make sense. The matching settings section in the README puts it plainly: use fixed background on both sides of the frame and keep actors out of it.

Install and run it right

Same pack, same drill - ComfyUI Manager, search MiniMax H3 Flow-Aligned Regenerate, restart. By hand:

cd ComfyUI/custom_nodes
git clone https://github.com/xmarre/MiniMax-H3-Flow-Aligned-Regenerate

No extra dependencies beyond numpy, plus OpenCV if you want feature tracking. Queue only the diagnostic workflow. The shipped example has no H3 model, no sampler, no Continuum assembly and no upscaler, and it doesn't need any - adding them to the same graph just risks memory pressure during the five VAE decodes.

Where people get burned

The frame labels are the big one. With the example geometry you get 39 frames at 704×704 labelled 136–174 for a join at 175 - those are the prefix frames before the join, not the new generated frames after it. Plenty of people preview them, think the audit is broken, and then find out they were looking at the wrong half of the clip.

Second, the honest-reading problem. The report lists its own limits: RGB/luma values are encoded-display numbers rather than linear-light radiometry, same-time RGB error has no photometric or alignment correction, and the SSIM/Sobel bands are proxies. If landmark tracking can't reach confidence, that's indeterminate displacement, not zero. So "the VAE roundtrip wins this metric" doesn't automatically mean you should ship it - the code path itself still records candidate integration as "not enabled; GPU paired reconstruction and visual acceptance required."

CategoryMiniMax H3/diagnostics/legacy

Inputs (6)

NameTypeDefaultDescription
video_vaeVAE—
bundle_pathSTRINGExisting uniform-source boundary bundle directory or manifest.json.
chunk_join_frameINT1750–10000000—
static_roi_profileCOMBO01784_room3 options: off, 01784_room, custom
feature_tracking_enabledBOOLEANtrue—
static_roi_jsonoptSTRING—

Outputs (4)

NameTypeDescription
rgb_referenceIMAGE—
latent_bicubicIMAGE—
vae_rgb_roundtripIMAGE—
numerical_reportSTRING—