H16-3 · Freeze ONE Window (T8 EXP)
Freeze one H3 window so you never sample those 34 frames again
- window_result
- source_segment
- segment_spec
- pass2_context
- plan
- cumulative_av_latent
- window_result
- artifact_path
- artifact_sha256
- report_json
Seven windows at 34 frames each is a long afternoon of rendering, and the moment you finish window 4 you're one careless graph edit away from re-running windows 0 through 3 because you wanted to try a different prompt on the tail. This node is how you stop that.
It takes one completed H16 PASS2 window - cumulative video and audio history included - and writes it to disk as an immutable artifact, returning the manifest path and its exact SHA-256. That SHA is what MiniMaxH3H16WindowLoadEXPT8 will demand later. Save it somewhere you'll actually find it, because the load node does not go hunting for files.
What lands on disk
A new directory under output/MiniMaxH3/h16_window_artifacts, one per save, never overwritten. Safetensors, not pickle. An OS-level lock guards the write, and the manifest is committed last - so if a run dies mid-write you get a rejection later, not a half-valid window that silently poisons your timeline. The artifact isn't just latents: it carries the plan SHA, source identity, window index and count, and the audio policy, which is what lets the load node prove that the thing you're resuming matches the thing you froze.
The input everyone forgets
confirm_save defaults to false. Which means the node will happily accept a window_result, verify it, and return an empty artifact_path and artifact_sha256 and a report that says not_saved_confirm_save_false. It does not silently save.
That's deliberate - this is a "freeze the selected result" node, not an automatic cache - but it's a genuinely annoying five minutes the first time. If your load node later complains about an empty path, you didn't flip the switch.
The rest of the inputs are all identity, and you're expected to feed them from the same places the window consumed them: window_result from the PASS2 window, source_segment and segment_spec from the chunked source/prepare chain, pass2_context, and the plan. Miss one and the verification step fails before any bytes get written.
Outputs: cumulative_av_latent (pass-through, so you can keep the graph flowing to the next window after the save), window_result (pass-through too), artifact_path, artifact_sha256, and report_json.
The honest caveats, in the author's own terms
Two, and they matter more than usual because this concept - "resume from a frozen stage" - invites wishful thinking.
Freezing is explicit, not automatic. Saving window 3 does not mean ComfyUI will skip window 3 next time because your MODEL and conditioning "look the same". There is no recipe cache. You're pinning a specific executed result.
And a frozen window is a historical fact, not a claim about today. The artifact records that window as it was actually sampled. It says nothing about whether your current model, LoRA stack or prompt would reproduce it. The docs put it as: explicitly selected means frozen, not equivalent. If you've since edited the window's inputs, save a new artifact rather than pretending the old one still describes your graph.
Install
Standard for the pack: Manager → MiniMax H3 Audio T8, or
cd ComfyUI/custom_nodes
git clone https://github.com/T8mars/comfyui-minimax-h3-audio-T8.git minimax-h3-audio-T8
then a full restart. requirements.txt intentionally installs nothing - the pack leans on ComfyUI's own torch/safetensors so updates can't break your environment. You need the H3 base model, Qwen3-VL text encoder, video and audio VAEs, the learned 3D upscaler in models/latent_upscale_models/, and a recent ComfyUI core. Whatever you do, don't rename or shuffle the files between save and resume - the artifact is bound to the source identity it was sampled against, and a mismatch is a refusal rather than a silent re-sample.
Where people get burned
Disk. Each of these artifacts carries cumulative AV history, so seven of them is not a rounding error in your free space - clear old window sets when a clip is finished rather than hoarding them all.
And expectations. This is a mid-chain checkpointing tool for people running split window graphs. If you're sampling one window because your clip is short, confirm_save=true just leaves files behind. Reach for it when the graph is long enough that losing progress hurts.
Inputs (6)
| Name | Type | Default | Description |
|---|---|---|---|
| window_result | T8_H16_PASS2_RESULT | — | |
| source_segment | LATENT | — | |
| segment_spec | T8_CHUNKED_SOURCE_SEGMENT | — | |
| pass2_context | T8_CHUNKED_PASS2_CONTEXT | — | |
| plan | T8_H3_CHUNKED_TWO_PASS_PLAN | — | |
| confirm_save | BOOLEAN | false | — |
Outputs (5)
| Name | Type | Description |
|---|---|---|
| cumulative_av_latent | LATENT | — |
| window_result | T8_H16_PASS2_RESULT | — |
| artifact_path | STRING | — |
| artifact_sha256 | STRING | — |
| report_json | STRING | — |