MiniMax H3 → LTX · Resume Saved Native
Upscale a finished H3 master in LTX without loading H3 at all
- native_frames
- native_audio
- cine_linx
- master_ready
- render_id
- fps
Here's a workflow shape that saves real time: H3 generates a sequence at its native resolution, you accept it, and then you want the polish pass - a refinement in LTX that sharpens detail without redesigning the shot. The obvious way to do that is to re-run the whole H3 graph to get the media back into a graph, which means loading a 33B model to read a file you already have.
MiniMax H3 → LTX · Resume Saved Native skips that. It reads a saved native checkpoint plus its metadata sidecar, decodes the frames and audio, rebuilds the shotplan, and hands the whole thing to an LTX refinement branch. No H3 models are loaded.
What it is
Two inputs, both required:
native_file- the path to the saved native master. Must resolve insideComfyUI/output.upscale_prompt- the direction for the LTX pass. It ships with a good default you should probably keep: preserve shot order, hard cuts, framing, faces, clothing, lighting, lip motion and performance; recover fine detail without redesigning subjects or changing camera motion. That's the correct brief for a refinement pass. If you rewrite this to describe a new scene, you get a new scene, and you'll blame the node.
Six outputs:
native_frames(IMAGE) andnative_audio(AUDIO) - the decoded master, straight into your LTX graphcine_linx- the rebuilt plan, with upscale mode switched on and your prompt attachedmaster_ready(BOOLEAN) - set true on a successful read; use it to gate anything downstreamrender_id(STRING) - a fresh run id, suffixed onto the original generation's id, so this pass has its own identityfps(INT) - read from the metadata, not guessed
How it works
The node is strict in a way that's worth understanding before it annoys you.
It resolves native_file and refuses anything outside the ComfyUI output directory. Then it requires a sidecar: the same path with .iamccs.json appended. That sidecar holds the generation record - the shotplan, fps, frame count, and the list of segment files - and it's read with strict=True, so a missing sidecar is a hard file-not-found rather than a graceful degradation.
Then it decodes the video into frames and checks the decoded frame count against the metadata's frame_count. If they differ, it raises: "checkpoint frame count differs from its metadata." That's a deliberate paranoid check, and it catches the real failure this workflow invites - someone trimmed or re-encoded the mp4 after it was written, and now the timing doesn't match the plan.
Audio gets the same treatment. If the generation recorded segment files and each has its locked-audio sidecars, the node rebuilds the soundtrack from those segments rather than trusting the container, and verifies that the segment frame counts sum to the decoded frame count. That's how you keep the audio authoritative when you're re-processing a master that may have been through a mux.
Finally it mutates the plan: upscale_mode to LTX 2.3, upscale_enabled true, and your upscale_prompt into the plan's upscale settings. So the downstream LTX nodes are being told, via the bus, what they're doing - you don't wire that by hand.
Also worth knowing: IS_CHANGED watches the modification times of both the media and its sidecar, so regenerating the native clip invalidates the read instead of silently reusing a cached decode of the old one.
Install
Part of IAMCCS-nodes:
cd ComfyUI/custom_nodes
git clone https://github.com/IAMCCS/IAMCCS-nodes.git
Restart, hard-refresh, or install from ComfyUI Manager by searching IAMCCS Nodes. One copy only in custom_nodes.
No requirements.txt for the pack. You do need a working LTX 2.x setup for the branch downstream of it - model, video VAE, audio VAE, and the LTXV nodes that ship with ComfyUI. The pack's SuperNodes requirements doc lists the specific LTXV nodes its wrappers expect (LTXVConcatAVLatent, LTXVSeparateAVLatent, LTXVAudioVAEEncode, LTXVLatentUpsampler and friends) and names VideoHelperSuite and MTB as external dependencies for the combine/audio paths. ComfyUI 3.0.0 or newer.
Common issues
"LTX resume source must be a native checkpoint under ComfyUI/output." Your path escaped the output directory, or it's relative and resolved somewhere unexpected. Use the path the generation actually reported.
FileNotFoundError on the sidecar. You pointed it at an mp4 that came from somewhere else - a download, a colleague's export, an old workflow that didn't write sidecars. This node resumes IAMCCS native checkpoints, not arbitrary video. For arbitrary media, decode it normally and skip this node.
Frame count mismatch. The file was trimmed or re-encoded after generation. The metadata is the truth here; regenerate or accept that this pass can't be trusted for timing.
Audio drifts against picture after the refinement. Check whether the segment audio sidecars were present. If they weren't, the node fell back to the container audio - which is fine for a short single shot and risky for a stitched programme.
LTX output ignores your prompt. If the plan's upscale settings are overridden further down the graph by another Settings node, your upscale_prompt loses. Keep one authority for that value.
Where it fits
Native H3 render → resume source → LTX refinement → back to delivery. Pair it with MiniMax H3 → LTX · Tiled AV Refinement for the sampling stage, because a full-resolution AV refinement on a consumer card is exactly the job that wants tiling rather than a bigger GPU.
Inputs (2)
| Name | Type | Default | Description |
|---|---|---|---|
| native_file | STRING | — | |
| upscale_prompt | STRING | Preserve the source video's exact shot order, hard cuts, framing, faces, clothing, lighting, lip motion and performance. Recover fine detail without redesigning subjects or changing camera motion. | — |
Outputs (6)
| Name | Type | Description |
|---|---|---|
| native_frames | IMAGE | — |
| native_audio | AUDIO | — |
| cine_linx | IAMCCS_SUPERNODE_LINX | — |
| master_ready | BOOLEAN | — |
| render_id | STRING | — |
| fps | INT | — |