Nodes/IAMCCS-nodes/MiniMax H3 R38 Latent Upres Control
ComfyUI Node

MiniMax H3 R38 Latent Upres Control

The planner that turns H3 Settings into a tile-by-tile upscale recipe

By IAMCCS·Created 11 months ago·Updated a day ago· 113
MiniMax H3 R38 Latent Upres Control
  • cine_linx
  • latent_upscale_param
  • temporal_split_param
  • spatial_split_param
  • stage_width
  • stage_height
  • delivery_width
  • delivery_height
  • rtx_enabled
  • rtx_quality
  • report

MiniMax H3 generates at a "native" resolution, and like every video model, its native isn't your delivery resolution. IAMCCS's answer for the R38 pipeline is latent-domain upscaling: instead of decoding at low res and hoping an image upscaler can invent pixels, you run the video latent through a dedicated 3D latent upscaler and refine at the target size - a second, lighter sampling pass on the bigger latent. It's a proper video upscale in the generative sense, not a resize, and that's expensive, so it's chunked and tiled to fit in VRAM.

IAMCCS_MiniMaxH3LatentUpresControlR38 is the planning node for all of that. It reads the shot plan off the cine_linx bus, and computes the entire upscale recipe as a set of parameter objects: how big the stage latent is, how it splits temporally, how it tiles spatially, what the final delivery dimensions are, and whether the NVIDIA RTX path takes over the last step. Everything downstream (the sampling node, the conditioning node, the chunk accumulator) reads these parameters.

How it works

  • If the plan doesn't enable H3 latent upres (or selects a different mode), the node still returns parameters - with upscale effectively off, downstream nodes behave like a native decode pipeline. It's always safe to have in the graph.
  • When enabled, it checks that the minimax_h3_latent_upscaler_3d checkpoint actually exists in models/latent_upscale_models and raises immediately if not - no point planning a run you can't execute.
  • It computes delivery size from the plan, then either halves it into an RTX staging size (if RTX VSR is requested) or uses it directly as the stage size. Spatial tiling (tile size, overlap, fade widths) and temporal chunking (chunks of 17-frame multiples with overlap) come out of the settings.
  • The anchor_strength (~0.999) controls how hard the temporal chunks anchor to each other - the thing that stops tiled upscale from producing visible seams between chunks.

Inputs and outputs

One input: cine_linx (the shot plan). It's a pure settings-reader.

Outputs - the interesting set:

  • latent_upscale_param, temporal_split_param, spatial_split_param - opaque H3_UPSCALE_PARAM / H3_TEMPORAL_PARAM / H3_SPATIAL_PARAM structs consumed by the sampling/conditioning/accumulator stages.
  • stage_width / stage_height - the latent stage resolution.
  • delivery_width / delivery_height - the final output resolution.
  • rtx_enabled and rtx_quality - whether the RTX VSR path is active and at what quality.
  • report - a one-line summary ("model=… | stage=… -> delivery=… | temporal=… | tile=… | rtx=off").

Install

cd ComfyUI/custom_nodes
git clone https://github.com/IAMCCS/IAMCCS-nodes.git

For it to do anything: MiniMax H3 support in ComfyUI plus the minimax_h3_latent_upscaler_3d checkpoint (the source says FP16/BF16/FP32 supported) in models/latent_upscale_models. No per-node Python deps.

Gotchas

  • "H3 Latent Upres requires an installed minimax_h3_latent_upscaler_3d checkpoint." You either haven't downloaded the upscaler or it's in the wrong folder. That's the single most common failure here.
  • Values come from the plan, not from this node. You don't tune tiling here - you tune it in H3 Settings and this node just turns it into numbers. Editing widgets that don't exist will be your first instinct; the second is editing the settings node.
  • When rtx_enabled is on, the stage is half delivery resolution because RTX VSR does the other half. Don't "fix" that by changing stage size - that's the design.
CategoryIAMCCS/MiniMax H3/Latent Upres R38

Inputs (1)

NameTypeDefaultDescription
cine_linxIAMCCS_SUPERNODE_LINX

Outputs (10)

NameTypeDescription
latent_upscale_paramH3_UPSCALE_PARAM
temporal_split_paramH3_TEMPORAL_PARAM
spatial_split_paramH3_SPATIAL_PARAM
stage_widthINT
stage_heightINT
delivery_widthINT
delivery_heightINT
rtx_enabledBOOLEAN
rtx_qualitySTRING
reportSTRING