Nodes/MiniMax-H3-Flow-Aligned-Regenerate/MiniMax H3 Local Boundary Audit
ComfyUI Node

MiniMax H3 Local Boundary Audit

Your H3 continuation join looks fine until you measure it — this node does the measuring

By xmarre·Created about a month ago·Updated about 18 hours ago· 21
MiniMax H3 Local Boundary Audit
  • video_vae
  • numerical_report
◄bundle_path►
◄chunk_join_frame0►
◄audit_scopestage_continuity►
◄detail_regionoff►
◄static_roi_profileoff►
◄feature_tracking_enabledfalse►
◄validate_full_video_decoderfalse►
◄static_roi_json►
◄save_stage_previewsfalse►

You generated a second H3 chunk, stitched it onto the first, and near the join there's… something. A faint tone step. Half a frame of wobble. Maybe nothing. Squinting at a 24fps timeline is not measurement, and continuation boundaries are where hunches go to die.

MiniMax H3 Local Boundary Audit turns that squint into numbers. It doesn't fix, sample, or touch your output. It replays tensors you already saved through your own video VAE and reports what changed across the join, stage by stage.

Where this sits in the H3 stack

The pack it ships in - xmarre's MiniMax-H3-Flow-Aligned-Regenerate - is a training-free research implementation for getting higher-resolution H3 output without regenerating from scratch, either by reusing the low-res denoising trajectory in a second flow-aligned pass or by switching grids mid-schedule. MiniMax's own 2K regenerate is closed and private; this is an independent reimplementation, and the README says so plainly.

Which means the join is the product. Longer H3 runs are continuations, and seams are the classic failure point across every video model. This node is the microscope for H3's native 17-frame decoder windows, filed under MiniMax H3/diagnostics because you reach for it when a mode is suspect, not on every render.

What it actually does

Point it at a boundary bundle - the folder capture_boundary_witness=true (or frame_gauge_residual_mode=measure) wrote under output/h3_flow_regenerate/residual_geometry. That bundle holds a manifest plus the real stage operands: provider output, pre-high state, the first high prediction before and after flow guidance, and the final state.

The node loads them, validates hashes, geometry, prefix length and mask ownership, then decodes each stage in sequence through the VAE you connect. It reproduces the native temporal blend at the band/tail edge, finds matching pixel frames across stages, and reports translation, scale/shear from affine fits, RGB differences and luminance statistics.

Only numerical JSON leaves the node, written to output/h3_flow_regenerate/boundary_audits and shown in its text panel. No images, no replacement assembly, no diffusion or provider calls.

Inputs you'll actually set

video_vae is mandatory and non-negotiable: the native MiniMax H3 video VAE, the same one you decoded with. The node verifies it really is an H3 VAE and refuses a stand-in. It also reuses a resident VAE as-is rather than going through ComfyUI's model-unloading admission path, so your other models stay put.

bundle_path takes the bundle directory or the manifest.json inside it. chunk_join_frame is the first new frame in the assembled output; set it right and report frame labels line up with your timeline. WSL trap: a \\wsl.localhost\<distro>\… path is only translated when the distro name matches WSL_DISTRO_NAME - otherwise use the Linux path.

Two optional knobs matter. audit_scope=stage_continuity is the cheap five-VAE-call default; transfer_and_decoder_context adds the saved reduced-grid handoff view and compares both decoder contexts at identical pixel times (eighteen calls); high_prediction_tone decodes two native windows per captured high call and reports tone with actual/forecast provenance. detail_region=upper_left measures the left third of the upper 45% of the canvas using pixels already decoded, free in VAE calls.

The single output, numerical_report (STRING), is the whole JSON. The file on disk is what you keep.

Install

Manager is the easy path: search for MiniMax H3 Flow-Aligned Regenerate, install, restart. Or:

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

Nothing to download for this node and nothing heavy to install - the pack's only declared dependency is numpy, and the models live in the sibling packs. No sampler connection needed: wire the VAE, point at a bundle, run.

Where people get burned

  • "connect the native MiniMax H3 video VAE used for production decoding." Wrong decoder, or one whose temporal parameters don't match. The audit tests the real decoder window; it can't substitute a stand-in.
  • Decode OOM. The node deliberately won't evict loaded models to make room. If the VAE isn't resident and free memory doesn't cover its weights plus workspace, it stops and reports the GiB it needed versus what was free. Decode one chunk in the same session first, or clear some VRAM, then rerun.
  • "this bundle predates high-call capture." high_prediction_tone needs per-call operands older bundles don't contain. Re-run generation with capture enabled.
  • Rejected bundles. Incomplete context or altered prefix/mask/band ownership fails before any decoding - the replay is only meaningful on a faithful copy.

Read the report like a diagnostician, not a judge: affine numbers are estimates, and motion, changed detail or weak texture confound them. The report carries rendered_acceptance: false, and frames labelled before the join are discarded chunk context, not errors.

If the numbers do look bad, the fix is upstream - which continuation mode you're running - and comparing two modes on identical operands is exactly what this node makes possible.

CategoryMiniMax H3/diagnostics

Inputs (10)

NameTypeDefaultDescription
video_vaeVAE—
bundle_pathSTRINGBundle directory or manifest.json. Use a Linux path in WSL, or a WSL UNC path for the running distribution.
chunk_join_frameINT00–10000000—
audit_scopeoptCOMBOstage_continuityStage continuity uses five VAE calls. Transfer and decoder context uses eighteen: adds the saved reduced-grid view and same-time comparisons of both decoder windows. High prediction tone uses two native-window decodes per captured high call, with actual/forecast provenance and paired before/after Flow measurements. Full stage continuity uses seven full-video decodes for uniform-source bundles, preserving each saved clip's complete native decoder context.
detail_regionoptCOMBOoffUpper left adds measurements over the left third of the upper 45% of each decoded canvas. Uses the same decoded pixels without extra VAE calls. A region can still contain subject motion.
static_roi_profileoptCOMBOoffRead-only static-background sharpness, image shift and small zoom by decoded stage. 01784_room uses fixed bookshelf/picture/curtain/wall fractions; custom uses JSON. For source-grid replay choose Transfer and decoder context.
feature_tracking_enabledoptBOOLEANfalseOptional OpenCV forward/backward feature tracking on final decoded replay. Requires named static ROIs and a positive assembled chunk_join_frame. Measures cumulative background movement using RANSAC; read-only and slower.
validate_full_video_decoderoptBOOLEANfalseExtra expensive VAE decode of the full saved target-grid clean video. Numerically compares its join pixels with the shorter native replay; may require substantial extra VRAM and CPU RAM. Never changes generation.
static_roi_jsonoptSTRINGCustom: {"books":[0,.42,.13,.60],"curtain":[.83,.04,.99,.36]}. Fractional XYXY coordinates, at least two ROIs.
save_stage_previewsoptBOOLEANfalseSave lossless PNG previews at join-1, join, join+5 and join+15 for each stage. Uses existing decoded pixels, with no extra VAE calls. Unavailable for high prediction tone.

Outputs (1)

NameTypeDescription
numerical_reportSTRING—