Nodes/MiniMax-H3-Flow-Aligned-Regenerate/MiniMax H3 Partitioned Exact-Prefix Handoff
ComfyUI Node

MiniMax H3 Partitioned Exact-Prefix Handoff

Your H3 continuation's second chunk shouldn't cost target-grid prices

By xmarre·Created 23 days ago·Updated about 20 hours ago· 16
MiniMax H3 Partitioned Exact-Prefix Handoff
  • model
  • trajectory
  • learned_upscaler
  • metrics
  • model
  • metrics
◄source_modescale►
◄source_scale0.70►
◄source_width864►
◄source_height640►
◄handoff_coordinate0.35►
◄handoff_selectionfixed►
◄guidance_modedirection+temporal►
◄direction_weight0.25►
◄acceleration_weight0.25►
◄consistency_weight0.25►
◄low_frequency_cutoff0.25►
◄temporal_weight0.20►
◄vdn_linear_diagnosticnormal►
◄audio_guided_overlap_ticks4►
◄audio_guided_overlap_modesampler_mask_exact_timestep►
◄prefix_transformer_contextexact_target_partitioned►
◄audio_position_domainsource_carrier►
◄audio_handoff_sourcemain_partitioned►
◄av_handoff_sourcemain_partitioned►
◄guidance_trajectory_sourcemain_exact_partitioned►
◄low_probe_execution_sourcesource_carrier_uniform_only►

The one-line version: this node lets a continued MiniMax H3 chunk spend its early denoising steps on a small video grid while the frames you already approved stay exactly as they were. Before it, those two things were in conflict, and the fallback was to sample the whole thing at full resolution.

Context if you're new to the model. MiniMax H3 is the 33B omni-modal video generator with jointly-produced stereo audio that landed on HuggingFace in August 2026, under a Community License that excludes the US, EU, UK and South Korea - so in those places the local weights aren't your problem, the hosted Hailuo API is. H3 does 4–15 seconds at up to 2K/24fps, which is where continuation enters: you generate in chunks, and every chunk after the first carries an exact prefix you don't want disturbed. MiniMax's closed H3-Regenerate-2K does the polished version of this; this pack is an independent reimplementation and says so.

The problem it exists to fix

Chunk one is cheap. MiniMax H3 Progressive Handoff (Target Input) runs its early steps on a smaller grid (70% linear ≈ half the area) and jumps to the target grid.

Chunk two isn't. The moment the denoise mask contains exact-zero values - a protected prefix - Target Input bails to its conservative fallback and forwards everything through one ordinary target-grid sampler lifetime: no low-grid work, no learned upscaler, full price per step. The design doc puts a number on it: a representative run had the second chunk taking the complete eight-step target-grid schedule. And the obvious fix is worse - resize that prefix down to the low grid and the transformer conditions on a spatially altered prefix during the early steps, which restoring the exact values at the end cannot undo.

How it works

The partition is the trick. Instead of one mixed packed latent pretending to be a uniform lattice, the low stage carries two explicitly described video domains: protected prefix frames at the target grid, and generated suffix frames at the lower source grid, each with its own coordinates and RoPE.

Attention then runs over one permitted K/V union - not per-partition kernels, because Sol's sparse routing threshold comes from the domain it's handed - with the prefix rows carrying an additive log-measure bias of log(source_rows_per_frame / target_rows_per_frame). That's the honest part: a prefix with more discrete rows per frame shouldn't get more attention mass just for being denser. VDN builds the union, Sol evaluates it in one SM120 call.

From there the shipped default spends one source-uniform low/probe pair and then target-high: three continuation sampler lifetimes, two history boundaries, no duplicate shadow lifetime. At the splice, a bounded one-token video DC continuity correction touches only the first generated suffix token, so your original exact values come back out byte-for-byte.

Audio stays on H3's native joint path with four sampler-owned audio latent ticks of overlap. H3's audio latent rate is 40 Hz, so that's about 100 ms, and sampler_mask_exact_timestep keeps H3's inner timestep labels on the authoritative exact mask. Four isn't arbitrary: on a previously-failing three-chunk continuation, the first decoded boundary improved from roughly +11.15 dB at 16 ticks to +0.21 dB at 4.

The fields you'll actually touch

model (your patched H3 model) and trajectory (an H3_FLOW_TRAJECTORY handle from MiniMax H3 Flow Trajectory - share one per execution).

learned_upscaler, which is required here rather than optional. There's no handoff_transfer dropdown: the code pins learned_3d. You need the H3_LATENT_UPSCALER provider from xmarre/Comfyui_Minimax_h3_latent_Upscaler-Plus, configured in the shipped example with minimax_h3_latent_upscaler_3d_bf16.safetensors, CUDA, bf16, offload_after_upscale=false.

source_scale=0.70 is a linear width/height scale, not area - at 0.70 the private grid is about 49% of the target area. Then handoff_coordinate=0.35 with handoff_selection=fixed, and guidance_mode=direction+temporal with direction_weight=0.25, temporal_weight=0.20, low_frequency_cutoff=0.25.

acceleration_weight and consistency_weight are staged: they do nothing in direction+temporal, activating only in direction+acceleration and downsample_consistency respectively. Don't tune values the runtime ignores. Everything from vdn_linear_diagnostic down is a comparison knob - the tooltips are the author's own, and each variant (main_then_shadow, source_carrier_uniform_shadow, …) runs extra work. Reach for them to bisect a problem, not to improve output.

Outputs are model, which you wire onward into your sampler or the next patcher, and metrics (H3_FLOW_METRICS) for MiniMax H3 Metrics JSON. Look for the partitioned_stage_plan event.

Installing it

Manager, or:

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

Restart. That's genuinely it - no requirements.txt, and the only declared dependency is numpy>=1.25. Companion imports are lazy, so ComfyUI boots clean without them.

Where people get burned

It's inert without the coordinated stack. You need the partitioned backends from xmarre/ComfyUI-Sol-H3 and xmarre/ComfyUI-VDN-H3-Plus, and they're imported when you queue, not at startup:

RuntimeError: partitioned exact-prefix continuation requires the matching
Sol-H3 and VDN-H3-Plus development branches

Check before blaming your graph:

python -c "import sol_h3.partitioned_request, vdn_h3.partitioned_runtime; print('ok')"

Mixed vintages fail on an ABI check - "Flow and VDN partitioned external-sequence APIs do not match". Flow v0.3.8 pairs with Sol-H3 v0.1.6, VDN-H3-Plus v1.5.6, Continuum v3.4.4 and Spectrum MiniMax H3 v0.2.28; that pin lives in the repo's RELEASE_CONTEXT.md, so read it before updating one piece.

You need a complete 1→0 schedule - the progressive path has to know the absolute flow origin, and partial low-sigma refinement tails are rejected. And raising the audio ticks is a trap: four is the fix for a defect that showed up at sixteen. For an honest A/B, 0 disables the overlap.

It fails closed. When geometry or backends don't qualify, preflight drops to the released exact target-grid path - slower than you hoped, not wrong.

CategoryMiniMax H3/flow regenerate

Inputs (25)

NameTypeDefaultDescription
modelMODEL—
trajectoryH3_FLOW_TRAJECTORY—
source_modeCOMBOscale2 options: pixels, scale
source_scaleFLOAT0.700.1–0.99—
source_widthINT86432–8192—
source_heightINT64032–8192—
handoff_coordinateFLOAT0.350.01–0.99—
handoff_selectionCOMBOfixed2 options: fixed, auto_compute
guidance_modeCOMBOdirection+temporal5 options: off, direction, direction+acceleration, direction+temporal, downsample_consistency
direction_weightFLOAT0.250–2—
acceleration_weightFLOAT0.250–1—
consistency_weightFLOAT0.250–2—
low_frequency_cutoffFLOAT0.250.02–1—
temporal_weightFLOAT0.200–1—
learned_upscalerH3_LATENT_UPSCALER—
vdn_linear_diagnosticCOMBOnormalnormal preserves the partitioned VDN learned linear complement; bypass_partitioned_linear suppresses the complete complement; suppress_cross_grid_temporal_taps keeps the complement active but zeros only temporal short-conv taps that cross the target/source grid boundary; raw_token_measure keeps both VDN paths active but disables only the matched target-prefix density correction in softmax and learned-linear statistics.
audio_guided_overlap_ticksINT40–1640-Hz sampler-owned audio overlap width. The production default is 4 ticks (100 ms), validated with sampler_mask_exact_timestep. Values 0..16 remain available for controlled compatibility and diagnostics.
audio_guided_overlap_modeCOMBOsampler_mask_exact_timestepsampler_mask_exact_timestep is the production default: the sampler owns the overlap while MiniMax-H3 inner timestep/modulation labels retain the authoritative exact-prefix mask. sampler_mask and model_timestep_only remain advanced comparison modes.
prefix_transformer_contextCOMBOexact_target_partitionedexact_target_partitioned preserves the production-shaped heterogeneous target-prefix/source-suffix transformer. source_carrier_uniform is a bounded diagnostic that leaves the low/probe transformer on its native uniform source grid while caller-owned exact output restoration remains unchanged.
audio_position_domainCOMBOsource_carriersource_carrier is the production default for the fast source-uniform low/probe path. legacy_target remains available as the historical comparison domain.
audio_handoff_sourceCOMBOmain_partitionedmain_partitioned keeps the current low/probe audio state. source_carrier_uniform_shadow runs an isolated source-grid low-stage shadow lifetime and substitutes only its audio sampler state at the learned handoff; the main exact-partitioned video state and learned video transfer are retained.
av_handoff_sourceCOMBOmain_partitionedmain_partitioned preserves the #60/#61 handoff. source_carrier_uniform_shadow runs a separate uniform source-grid low+probe pair, selects its raw audio sampler state and clean generated video for the learned handoff, but keeps the main exact-partitioned captured Flow trajectory.
guidance_trajectory_sourceCOMBOmain_exact_partitionedmain_exact_partitioned preserves #62. source_carrier_uniform_shadow captures only the already-executed source-uniform shadow low+probe video trajectory into an isolated temporary store and uses that trajectory for target-high Flow guidance; handoff state, exact prefixes, and all audio controls stay #62.
low_probe_execution_sourceCOMBOsource_carrier_uniform_onlysource_carrier_uniform_only is the production default: one source-uniform low/probe pair followed by target-high, with no duplicate shadow lifetime. main_then_shadow remains available for historical diagnostics.
metricsoptH3_FLOW_METRICS—

Outputs (2)

NameTypeDescription
modelMODEL—
metricsH3_FLOW_METRICS—