Nodes/IAMCCS-nodes/MiniMax H3 Post-Upscale Control V2 (LTX / Wan)
ComfyUI Node

MiniMax H3 Post-Upscale Control V2 (LTX / Wan)

The control hub that decides the upscale pass without loading it

By IAMCCS·Created 11 months ago·Updated 5 days ago· 113
MiniMax H3 Post-Upscale Control V2 (LTX / Wan)
  • cine_linx
  • native_frames
  • native_frames
  • upscale_prompt
  • stage_target_width
  • stage_target_height
  • duration_seconds
  • upscale_seed
  • sage_enabled
  • wan_denoise
  • selected_mode
  • report
  • ltx_detailer_enabled
  • ltx_detailer_lora_name
  • ltx_detailer_strength
  • ltx_4k_enabled
  • ltx_4k_quality
  • ltx_seam_safe
  • ltx_encode_temporal_size
  • ltx_encode_temporal_overlap
  • ltx_decode_temporal_size
  • ltx_decode_temporal_overlap
  • ltx_decode_spatial_overlap
  • ltx_looper_temporal_tile_size
  • ltx_looper_temporal_overlap
  • ltx_looper_guiding_strength
  • ltx_looper_overlap_strength
  • ltx_looper_cond_image_strength
  • ltx_looper_horizontal_tiles
  • ltx_looper_vertical_tiles
  • ltx_looper_spatial_overlap
  • ltx_looper_available
segment_index0
master_readytrue

After H3 renders your segment, the Shotboard can hand it to LTX 2.3 or Wan 2.2 for an upscale-and-detail pass. The Post-Upscale Control V2 is the node that figures out which pass, at what resolution, with which seed and settings - and hands those values to the real workflow branches. Crucially, it doesn't load LTX or Wan itself. That separation is the point: if upscaling is disabled, the big models never enter VRAM at all.

How it works

Give it the shot plan (cine_linx), the native frames, and a segment_index, and it resolves the plan's upscale settings into a huge list of concrete values. It computes the delivery target size (default 2x native), decides whether the LTX 4K stage kicks in, works out the upscale seed (base seed + a 10000 offset by default), and extracts every LTX knob - detailer enable/name/strength, seam-safe tiling sizes and overlaps, the temporal looper tile config, Sage attention, and the Wan denoise value. master_ready gates whether it plans for a full stitched master or just the current chunk.

The lazy contract is the same trick as the rest of the pack: the branches that do load LTX/Wan sit behind lazy inputs downstream, and the delivery router only requests them when the selected mode actually needs them. This node is the "decision" half of that arrangement; it costs almost nothing to run.

The outputs that matter

Twenty-nine outputs, so let's be honest about which few you touch:

  • selected_mode - "off", "ltx23", or "wan22_5b". The single most useful wire; plug it into switches that gate the LTX/Wan branches.
  • stage_target_width / stage_target_height - what the upscale stage should produce.
  • upscale_seed - so the upscale pass is reproducible and offset from the base render.
  • upscale_prompt - the prompt text for the finishing pass.
  • sage_enabled, wan_denoise, ltx_detailer_enabled / ltx_detailer_lora_name / ltx_detailer_strength - the per-pass quality controls.

The long tail (all the ltx_encode_*, ltx_decode_*, and ltx_looper_* values) exists so the real LTX branch can use plan-authored tiling without you redrawing connections. Note ltx_looper_available comes back false: the temporal-looper LTX path is incompatible with H3's audio-visual nested latents, so the pack deliberately uses the standard sampler instead.

Installing it

Part of IAMCCS-nodes (Manager, search "IAMCCS", or clone into custom_nodes). The node itself is dependency-free - it just reads the plan. The LTX/Wan branches it feeds, though, need their models and packs installed separately, or the lazy branches will be missing when you actually select them.

Gotchas

This node can't make a disabled upscale happen. If upscale_enabled is off in the plan - or master_ready is false - it reports selected_mode = "off" and hands back native-sized targets. Don't wire a Wan branch expecting it to run when the plan says off; check selected_mode. And if you change plan settings expecting the upscale to follow, remember the node reads the plan each run - the change applies on the next queue, not retroactively.

CategoryIAMCCS/MiniMax H3/Atomic Backend

Inputs (4)

NameTypeDefaultDescription
cine_linxIAMCCS_SUPERNODE_LINX
native_framesIMAGE
segment_indexINT00–1000000
master_readyoptBOOLEANtrue

Outputs (30)

NameTypeDescription
native_framesIMAGE
upscale_promptSTRING
stage_target_widthINT
stage_target_heightINT
duration_secondsFLOAT
upscale_seedINT
sage_enabledBOOLEAN
wan_denoiseFLOAT
selected_modeSTRING
reportSTRING
ltx_detailer_enabledBOOLEAN
ltx_detailer_lora_nameSTRING
ltx_detailer_strengthFLOAT
ltx_4k_enabledBOOLEAN
ltx_4k_qualitySTRING
ltx_seam_safeBOOLEAN
ltx_encode_temporal_sizeINT
ltx_encode_temporal_overlapINT
ltx_decode_temporal_sizeINT
ltx_decode_temporal_overlapINT
ltx_decode_spatial_overlapINT
ltx_looper_temporal_tile_sizeINT
ltx_looper_temporal_overlapINT
ltx_looper_guiding_strengthFLOAT
ltx_looper_overlap_strengthFLOAT
ltx_looper_cond_image_strengthFLOAT
ltx_looper_horizontal_tilesINT
ltx_looper_vertical_tilesINT
ltx_looper_spatial_overlapINT
ltx_looper_availableBOOLEAN