H3 Relay · H3 Ultimate 2× Enhance
The finisher that makes your raw H3 shot look like it cost more than it did
- h3_model
- sequence
- previous_enhanced
- reference_image_1
- reference_image_2
- reference_image_3
- additional_reference_images
- enhanced
- video
- video_path
- status
MiniMax H3 natively generates at a modest 480p tier, and if you've run the open weights locally you already know the other catch: this is a 33B omni-modal model, and even with the INT8 ConvRot repacks everyone leans on, a raw generation is the cheap part of your pipeline. The expensive part is making it look finished. H3 Ultimate 2× Enhance is H3 Relay's native-H3 answer to that: it takes the latest accepted raw shot and doubles it - learned 2× latent upscaler for the expansion, then a tiled one-step FastH3 VSA refinement to put real detail back. It's the flagship of the pack's finishing stage.
Where it sits
The whole point of H3 Relay is staged, reviewable long-form video: Sequence Start → Generate Shot produces short native clips you watch, reroll, and accept before any expensive finishing runs. H3 Ultimate 2× Enhance is one of the two finishers that consume an accepted shot (the sibling is LTX 2× Enhance, which routes through the LTX 2.5 stack instead). Its enhanced output is designed to chain: connect it to the next shot's Ultimate node for multi-shot sequences, then on to Interpolate and finally Assemble for the finished movie. It's an output node - it doesn't need to feed anything but the next stage.
What it actually does
Once you hit run, the node expands (behind the scenes, via ComfyUI's graph builder) into a subgraph: it reuses the FastH3 VSA model from your connected h3_model bundle, rebuilds conditioning from the accepted shot's complete global + scene prompt (your enhancement_prompt, if any, is appended as an extra refinement directive), reconnects up to nine reference images, loads the accepted raw latent, expands it 2× with the learned H3 latent upscaler, then runs one Euler/simple step at denoise 0.2, CFG 1, with the same video/audio shifts and 10% VSA keep as generation. That one-step pass is refinement of the upscaled latent, not more raw generation - it's why the cost stays bounded.
The tile numbers are maxima, not demands: the node derives the real 2× canvas from the sequence and clamps automatically. A 832×480 shot becomes 1664×960; a "1024×1024" request on that same shot quietly resolves to 1024×960 tiles rather than erroring or upscaling past the target.
Inputs that matter
Most of the defaults are right and you shouldn't touch them:
h3_model- must be the FastH3 VSA profile bundle fromH3 Relay · FastH3 VSA Profile(a standard H3 loader will error).sequenceis the accepted raw stream.enhancement_prompt- optional extra refinement direction; the accepted shot's full prompt is reused automatically, so this is a nudge, not a rewrite.temporal_chunk_frames(136) andtemporal_overlap_frames(17) - both must be multiples of 17 (H3's 17k+1 temporal grid).tile_width/tile_height(1024) andspatial_overlap(128) - safe upper bounds, auto-clamped.anchor_strength(0.999),refinement_seed,output_crf(18) - setoutput_crfif you want a lighter H.264 encode.
Outputs: enhanced (the finishing stream - next Ultimate node, Interpolate, or Assemble), video, video_path, and a status string explaining what ran.
The fine print (read this before you're surprised)
This is the experimental edge of the pack, and the README is unusually honest about it. Validated on an RTX 4090 running Linux with the official comfy-kitchen==0.2.33 CUDA wheel and a VSA-capable ComfyUI build - stock ComfyUI isn't enough, Windows GPU inference is unvalidated, and the FastVideo checkpoint itself is documented as T2VA-only (reference/continuation use is experimental). You also need two things H3 Relay deliberately does not ship or silently download:
- The external Comfyui-MMH3-UltimateUpscale pack (
https://github.com/bbaudio-2025/Comfyui-MMH3-UltimateUpscale) cloned intocustom_nodes- the actual MMH3 engine nodes. Without it, a fresh run stops with an actionable error naming the missing classes. Already-cached verified results still replay. - The learned H3 latent 2× upscaler (
minimax_h3_latent_upscaler_3d_fp16.safetensors) plus the FastH3 VSA checkpoint and the H3 text encoder/VAEs - exact filenames andhf downloadcommands are in the repo'sMODELS.md.
Also note the licensing split: H3 Relay itself is GPL-3.0, but that covers the pack's code only - the H3 weights, FastH3 repack, and upscaler carry their own upstream terms (MiniMax's H3 Community License has real territory restrictions; if you're in the US/EU/UK/Korea, check that before downloading).
My honest take: if you've accepted a raw shot you're happy with, this is the one-button "make it 2× and keep it consistent" finisher you'd reach for over hand-wiring MMH3 nodes yourself. Just keep a raw-assembly fallback handy while FastH3 reference behavior is experimental.
Inputs (17)
| Name | Type | Default | Description |
|---|---|---|---|
| h3_model | H3_RELAY_MODEL | — | |
| sequence | H3_RELAY_SEQUENCE | — | |
| enhancement_prompt | STRING | Additional H3 refinement direction. The accepted shot's complete global + scene prompt is reused automatically. | |
| refinement_seed | INT | 4242640–18446744073709550000 | — |
| output_crf | INT | 180–51 | — |
| ref_image_size | COMBO | match | 2 options: match, max |
| temporal_chunk_frames | INT | 13617–100000 | Pixel frames per Ultimate temporal window; must be 17n. |
| temporal_overlap_frames | INT | 170–100000 | Temporal overlap between Ultimate windows; must be 17n. |
| anchor_strength | FLOAT | 0.9990–1 | — |
| tile_width | INT | 1024256–4096 | Maximum spatial tile width. Automatically clamped to the sequence's actual 2x target width. |
| tile_height | INT | 1024256–4096 | Maximum spatial tile height. Automatically clamped to the sequence's actual 2x target height. |
| spatial_overlap | INT | 1280–2048 | Maximum tile overlap. Automatically clamped below the effective tile dimensions. |
| previous_enhancedopt | H3_RELAY_ENHANCED | — | |
| reference_image_1opt | IMAGE | — | |
| reference_image_2opt | IMAGE | — | |
| reference_image_3opt | IMAGE | — | |
| additional_reference_imagesopt | COMFY_AUTOGROW_V3 | — |
Outputs (4)
| Name | Type | Description |
|---|---|---|
| enhanced | H3_RELAY_ENHANCED | — |
| video | VIDEO | — |
| video_path | STRING | — |
| status | STRING | — |