Nodes/comfyui-minimax-h3-audio-T8/H3 Chunked · Sample ONE PASS2 Segment (T8 EXP)
ComfyUI Node

H3 Chunked · Sample ONE PASS2 Segment (T8 EXP)

Refine one H3 time segment at a time — and actually mean it

By T8mars·Created 2 months ago·Updated about 7 hours ago· 1,158
H3 Chunked · Sample ONE PASS2 Segment (T8 EXP)
  • model
  • positive
  • source_segment
  • lifted_segment
  • segment_spec
  • pass2_context
  • plan
  • noise
  • sampler
  • sigmas
  • previous_result
  • negative
  • cumulative_av_latent
  • segment_result
  • report_json
◄cfg1.00►

Long clips are a memory problem before they're a quality problem. The usual fix is a two-stage recipe: sample cheap at low resolution, upscale the latent, then refine. MiniMax H3's joint audio-video latent makes that awkward, because a "cheap" low-res pass still carries the whole audio stream, and refining the whole timeline at once is exactly the activation spike you were trying to avoid.

H3 Chunked · Sample ONE PASS2 Segment is the surgical tool. It samples one time segment of the second pass, with its own MODEL, CONDITIONING, NOISE, SAMPLER and SIGMAS wired in from outside, and hands you back the stitched whole plus a typed result to pass to the next segment. Nothing is sampled behind your back and nothing is cached behind your back - that's the whole design philosophy of this pack's "Modular Sampling" family.

This is the v1–v4 legacy contract, not the newer v5 one. If you're on the standard joint 4+4 route, you want MiniMaxH3ChunkedV5PASS2WindowEXPT8 instead.

What it actually does

You feed it a sliced, already-upscaled segment: source_segment (a LATENT from H3 Chunked · Slice ONE First-Pass Segment), lifted_segment (the same segment after your learned 3D upscaler, via H3 Chunked · Learned Lift ONE Segment), and segment_spec - the typed identity token that says which slice of which plan this is. The node keeps the original spatial-tile and temporal-merge math, so segments are stitched the same way the all-in-one sampler stitched them. It refuses to guess: wrong spec, gap in time, or a mutated read-only region is an error, not a silent re-sample.

pass2_context comes from H3 Chunked · Prepare Global PASS2 State, which fixes the original full-source mask and the once-only global noise before any chunk runs. Use the same NOISE seed there and here.

cfg defaults to 1, which is where this model lives. negative is optional; with CFG 1 it matters far less than you'd expect.

Inputs and outputs that matter

  • segment_index-driven chain: you don't loop. Each segment gets its own node instance, slotted via segment_index on the Slice node upstream.
  • previous_result (optional): feed segment n-1's typed output here and the node knows the earlier overlap is already finished. Leave it empty on segment 0.
  • cumulative_av_latent - the whole clip as it stands after this segment. This is what you decode at the end.
  • segment_result - typed handoff. This goes into the next segment's previous_result, into the v1 save/load nodes, and into the Relay audit.
  • report_json - the receipt. Read it. It's where the node tells you what it merged and where the read-only overlap values moved.

One thing that trips people: on this v1 route the final audio is the original first-pass audio, passed through. That's a real difference from v5, where PASS2 produces the joint AV audio. If lip-sync or generated speech matters, that's the reason to switch contracts.

Install

ComfyUI Manager: search MiniMax H3 Audio T8 and install, or:

cd ComfyUI/custom_nodes
git clone https://github.com/T8mars/comfyui-minimax-h3-audio-T8.git minimax-h3-audio-T8

Then fully quit and restart ComfyUI (not just refresh the browser, and not just a queue restart). This pack needs a recent ComfyUI with native H3 support, and the Registry copy can lag GitHub - if the node is missing after a Manager install, install from GitHub instead. Base nodes need no extra pip packages; requirements.txt is deliberately empty apart from requirements-prompt-rewriter.txt for the optional prompt-rewriter feature. Put the H3 main model in models/diffusion_models, Qwen in models/text_encoders, the video and audio VAEs in models/vae; the extra T8 weights live on HuggingFace under t8star.

Where it goes wrong

  • Red node, or an input that doesn't exist in the panel. You probably have two copies of this pack in custom_nodes. An old copy shadows the real one and serves stale schemas. Rename the old directory with a .disabled suffix - a leading underscore does not disable a node pack - then restart and check /object_info for python_module.
  • Effects that "didn't do anything". Stage effects on this route (EAV, Prompt Relay) are wired outside this node and must be measured by their own audit node. Connecting a wire is not evidence.
  • Expecting a cache. There isn't one. Use the v1 Segment Save/Load pair if you want to freeze work.
  • Spatial tiling. Keep the full-frame contract. Tiles have no Relay certification here.

And the author's own standing caveat, which is worth internalising: a workflow that passed on someone else's sample doesn't certify your material, your GPU or your seams. Dual-pass stitching still shows a slight seam colour shift. Watch the actual clip.

CategoryT8/MiniMax H3/Modular Sampling/Chunked Experimental

Inputs (13)

NameTypeDefaultDescription
modelMODEL—
positiveCONDITIONING—
source_segmentLATENT—
lifted_segmentLATENT—
segment_specT8_CHUNKED_SOURCE_SEGMENT—
pass2_contextT8_CHUNKED_PASS2_CONTEXT—
planT8_H3_CHUNKED_TWO_PASS_PLAN—
noiseNOISE—
samplerSAMPLER—
sigmasSIGMAS—
cfgFLOAT1.000–100—
previous_resultoptT8_CHUNKED_PASS2_RESULT—
negativeoptCONDITIONING—

Outputs (3)

NameTypeDescription
cumulative_av_latentLATENT—
segment_resultT8_CHUNKED_PASS2_RESULT—
report_jsonSTRING—