MiniMax H3 Easy Segment Refine
The second pass that makes long MiniMax H3 videos worth keeping
- h3_context
- segments
- model
- sampler
- sigmas
- refined_segments
Your first pass through a context-segment chain gives you connected shots at whatever resolution you set on the plan. If that's 480P or 540P - the safe place to start when you're iterating - you don't want to ship that. MiniMax H3 Easy Segment Refine is the pack's resolution-aware second pass: it re-samples each segment at a higher target while keeping the continuity, the per-shot prompts, and the first-pass audio intact. Same shots, more resolution, no scene-by-scene discontinuity.
What it does
This node takes the first-pass segments output from Segment Sample, the h3_context plan, a model, sampler, sigmas, and a seed, and runs each segment through a second sampling pass at a higher resolution. Crucially, it keeps per-segment boundaries honest: every segment rebuilds its own prompt and reference conditioning, and the refined tail - not the first-pass one - carries continuity into the next segment. The first-pass audio stream stays as the default timeline audio, so you're not re-rolling the soundtrack for free.
Picking a refine mode
The refine_mode input is the first decision:
pixel_resize- decode each segment, resize it, re-encode. No extra model file required. The simplest and most predictable path, and it uses the first pass as the source.latent_upscale- instead of pixel resizing, upscale the latent with the H3 3D latent upscaler before re-sampling. This needs a matching upscaler checkpoint inmodels/latent_upscale_models/- the node will refuse to runlatent_upscalemode without one selected (latent_upscale_scaledefaults to 1.3, andlatent_upscale_device/latent_upscale_precisiondefault tocuda/fp16).
Set your output size with target_width / target_height; leave them at 0 to follow the plan's canvas (the node treats 0 as "use the first pass's resolution").
The second decision is refine_execution. whole_segment re-samples each segment in one go. tiled_low_vram splits the current segment into spatial tiles (tile_width/tile_height default 512, tile_overlap 128, tile_fade 32) and samples them separately - it trades noticeably more sampling time for a much lower VRAM ceiling. If your card chokes on whole-segment refinement at 2K, tile it.
Where it sits
Context Segments → Segment Sample → Segment Refine → Segment Decode → final video
The output refined_segments (MINIMAX_H3_SEGMENTS) goes to Segment Decode, same as the first pass - you just swap which chain feeds it. The repo ships ready-made Pixel_Refine and Latent_Refine workflow files if you want the exact wiring without guessing.
Gotchas
Three things bite people. First, like Segment Sample, Segment Refine re-executes on every queue - no node-cache shortcuts, so tune your plan at low resolution before paying for a full refinement. Second, don't leave refine_mode on latent_upscale without the checkpoint installed; the validation explicitly blocks that combo with a clear message, so it's a fast fail rather than a silent wrong render. Third, if your refine pass and first pass disagree on continuity mode or context length, the chain's seams reappear - keep both nodes reading from the same Context Segments plan, and the whole thing stays coherent.
Installing
Same pack, same steps. Update ComfyUI to a build with the official MiniMax H3 nodes, then install ComfyUI-MiniMaxH3-Easy via ComfyUI Manager (search the pack, pick Nightly) or:
cd ComfyUI/custom_nodes
git clone https://github.com/nkxx188/ComfyUI-MiniMaxH3-Easy.git
Restart ComfyUI, and if you plan to use latent_upscale, drop the H3 upscaler checkpoint into models/latent_upscale_models/ before you queue anything.
Inputs (18)
| Name | Type | Default | Description |
|---|---|---|---|
| refine_mode | COMBO | pixel_resize | 2 options: pixel_resize, latent_upscale |
| h3_context | MINIMAX_H3_CONTEXT | — | |
| segments | MINIMAX_H3_SEGMENTS | — | |
| model | MODEL | — | |
| sampler | SAMPLER | — | |
| sigmas | SIGMAS | — | |
| seed | INT | 00–4294967295 | — |
| refine_execution | COMBO | whole_segment | 2 options: whole_segment, tiled_low_vram |
| target_width | INT | 00–16384 | — |
| target_height | INT | 00–16384 | — |
| latent_upscale_model | COMBO | 1 options: (place models in: /tmp/ComfyUI/models/latent_upscale_models) | |
| latent_upscale_scale | FLOAT | 1.31–4 | — |
| latent_upscale_device | COMBO | cuda | 2 options: cuda, cpu |
| latent_upscale_precision | COMBO | fp16 | 3 options: fp32, fp16, bf16 |
| tile_width | INT | 51232–16384 | — |
| tile_height | INT | 51232–16384 | — |
| tile_overlap | INT | 12832–16384 | — |
| tile_fade | INT | 320–16384 | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| refined_segments | MINIMAX_H3_SEGMENTS | — |