MiniMax H3 Native Masked Video Context / 原生画面硬续接 Plan B (Advanced EXP/T8)
Hard-lock the previous segment's native latent tail
- av_latent
- context
- av_latent
- trim_context_frames
- report_json
Every long-video approach faces the same question: how do you make segment N+1 continue segment N instead of generating a fresh clip that happens to follow it? The default answer in most H3 pipelines is a "soft" context - you feed the previous segment's end as conditioning and hope the model extends it faithfully. This node is the Plan B that doesn't hope. It copies the validated tail of the previous segment's native video latent straight into the current segment's target latent, then hard-locks that prefix so the sampler physically cannot redraw it. The picture literally continues; only the new material after the join is generated.
That distinction matters, because "looks like it continues" and "is the same frames" are different things, and for genuine long-form continuity - a face that must stay the same person, a scene that must stay the same room - the second one is what you actually want.
How it works
The node is deliberately narrow. It takes the current segment's conditioning latent, copies in the validated previous video-latent tail from the shared context, and locks only that video prefix (the corresponding video mask is set so those latent positions are frozen through sampling). Then the existing Output Trim step in the workflow removes the rebuilt head, and what's left is: previous frames you can't change, plus newly generated continuation. Two things it will not touch, on purpose:
- the current segment's audio tensor - reused unchanged, so audio continuity is handled separately
- any Vocal Lock audio mask you already have in the workflow
That audio-reuse design is why the conditioning feeding it must be set to context_audio=video_only: this route is purely about picture continuity, and the node checks your reports enforce that before it does anything.
Inputs - this is a wiring node, not a tuning node
There are no sliders to massage, just four things that must be connected correctly:
av_latent- the matching Long Video Conditioning latent, wired before the samplercontext- the same validated Previous Context your Conditioning usedplanner_report_json- straight from the matching Segment Planner, no hand-copyingconditioning_report_json- straight from the matching Long Video Conditioning node
The outputs are the modified av_latent, trim_context_frames (an INT the downstream trim uses to know how many frames to strip), and report_json. If any of the four inputs disagree about chain, segment, or context - or you wire a report from the wrong segment - it errors out rather than producing subtly wrong output.
The big constraint: it cannot make segment 0
Read that twice, because it's where people get stuck. This node only continues. Your chain's segment 0 must be produced by the companion Plan_B_Segment0_Starter workflow, using the exact same chain_id and context_audio=video_only conditioning, so that a valid previous-context file exists for segment 1 to copy from. Start your continuation at segment_index = 1 in the Plan B workflow, and don't mix this with the older dual-clock long-video route - the Plan B workflows are pinned to the current native euler + native_flow sampler.
Installing and running it
It ships in the T8mars/comfyui-minimax-h3-audio-T8 pack - ComfyUI Manager, search "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
Restart ComfyUI. No extra pip dependencies; you need a recent ComfyUI with native MiniMax H3 support plus the H3 models in models/. This is an EXP node in an EXP workflow family - treat the whole long-video route as experimental, back up your accepted segments, and don't hand-edit chain_id values across runs.
Gotchas
- Everything must be direct-wired. The reports exist to be connected, not transcribed. Manual re-entry or cross-chain reuse is a guaranteed contract error.
- It's picture-only. If your continuation problem is audio continuity or lip-sync, this node is deliberately blind to it - that's by design, and the pack handles audio on a separate track.
- Red nodes → update ComfyUI. The pack needs current native H3 support in the core; updating just the custom node usually isn't enough.
Inputs (4)
| Name | Type | Default | Description |
|---|---|---|---|
| av_latent | LATENT | Connect the matching Long Video Conditioning latent before the sampler. | |
| context | H3_T8_CONTEXT | Connect the same validated Previous Context used by Conditioning. | |
| planner_report_json | STRING | Connect the matching Segment Planner report_json directly. | |
| conditioning_report_json | STRING | Connect the matching Long Video Conditioning report_json directly. Conditioning must use context_audio=video_only. |
Outputs (3)
| Name | Type | Description |
|---|---|---|
| av_latent | LATENT | — |
| trim_context_frames | INT | — |
| report_json | STRING | — |