Nodes/IAMCCS-nodes/MiniMax H3 R38 Upscaled Chunk Accumulator
ComfyUI Node

MiniMax H3 R38 Upscaled Chunk Accumulator

Parking upscaled chunks to disk so the master only assembles when it's ready

By IAMCCS·Created 11 months ago·Updated a day ago· 113
MiniMax H3 R38 Upscaled Chunk Accumulator
  • cine_linx
  • native_visible_frames
  • upscaled_frames
  • motion_state
  • frames
  • master_ready
  • report
current_segment
total_segments
trim_head_frames
resolved_render_id
delivery_width
delivery_height
join_trim_frames0

A long H3 shot refined through latent upscale is generated in pieces - you cannot hold a multi-thousand-frame master in VRAM while you refine segment 7 of 20. So IAMCCS parks each refined, decoded segment to disk and assembles the full master only when the last segment lands. This node is that parking lot and that assembler, and it's the R38 equivalent of a video checkpoint.

When upscale is enabled, every segment's visible frames get written as a .pt file under ComfyUI/output/minimax_h3_shotboard/r38_latent_upres/<render_id>/segment_XXXXX.pt. Early segments return with master_ready = False. On the final segment it verifies every part is on disk (missing one → hard error listing the gaps), then loads and stitches them with overlap crossfades where the plan joins chunks, and returns the assembled master with master_ready = True.

How it works

  • Reads the shot plan off cine_linx. If latent upres isn't enabled, this node is a transparent bypass - native frames straight through, master_ready = False, report says "bypassed".
  • When enabled, its upscaled_frames input is lazy: the node first checks the plan, and only requests the expensive upscale branch if upscale is genuinely on. No upscale run happens in native mode.
  • Trims the context head off each decoded chunk (the trim_head_frames, or the motion-context trim if a native AV context is active), trims overlap if join_trim_frames says so, and saves.
  • Assembly crossfades overlapping seams with a linear alpha ramp so joins don't show a hard cut. That's the detail that keeps a 20-chunk master from looking like 20 glued-together clips.
  • Final step: if RTX wasn't requested, it does an exact center-crop to delivery_width/delivery_height; if RTX was requested it keeps the intermediate master because the RTX stage expects the un-cropped frames.

Inputs

Required: cine_linx, native_visible_frames, current_segment, total_segments, trim_head_frames, resolved_render_id, delivery_width, delivery_height. Optional: upscaled_frames (lazy), join_trim_frames, motion_state.

current_segment / total_segments / resolved_render_id are forceInput - they come from the run queue, not from typing.

Outputs

  • frames - this segment's chunk (early), or the full assembled master (last segment).
  • master_ready - the boolean the downstream delivery router watches.
  • report - status including the park path or assembly summary.

Install

Pack install (git clone https://github.com/IAMCCS/IAMCCS-nodes.git), MiniMax H3 support, the upscaler checkpoint, and - for the crossfade-free native path - nothing extra.

Where people get burned

  • "R38 cannot assemble upscaled master; missing segments" - usually a crash or manual interruption mid-run, or someone deleted the .pt park directory. The node is strict by design: it will not assemble a partial master.
  • The .pt files are real state. Restarting ComfyUI mid-run is fine (they're on disk), but clearing output/minimax_h3_shotboard/r38_latent_upres while a chain is queued guarantees a missing-segment error.
  • Wire delivery_width/delivery_height from the Control node, don't hard-type them; a mismatch with the plan silently center-crops wrong.
  • It's an output node in the "returns results" sense but writes .pt, not video. The actual MP4 comes from the delivery/editor stages after master_ready goes true.
CategoryIAMCCS/MiniMax H3/Latent Upres R38

Inputs (11)

NameTypeDefaultDescription
cine_linxIAMCCS_SUPERNODE_LINX
native_visible_framesIMAGE
current_segmentINT
total_segmentsINT
trim_head_framesINT
resolved_render_idSTRING
delivery_widthINT
delivery_heightINT
upscaled_framesoptIMAGE
join_trim_framesoptINT0
motion_stateoptIAMCCS_H3_MOTION_CONTEXT

Outputs (3)

NameTypeDescription
framesIMAGE
master_readyBOOLEAN
reportSTRING