H3→LTX RGB · Audit Refiner Candidate (T8 EXP)
Checking the RGB→LTX handoff, and keeping the original audio honest
- stage_boundary
- source_frames
- source_audio
- prepared_frames
- ltx_latent
- model
- noise
- guider
- sampler
- sigmas
- candidate_latent
- candidate_latent
- source_audio
- report_json
What it is
On the RGB route - render frames, prepare them, encode into LTX, refine - this is the node that sits between your LTX sampler and the TAEHV decode, and rechecks everything you claimed at binding time.
It takes the stage_boundary from MiniMaxH3LTXRGBStageBindEXPT8, the current H3 source frames and audio, the prepared frames and prep report, the LTX latent, the connected refiner controls (MODEL, NOISE, GUIDER, SAMPLER, SIGMAS) and the setup report, plus the candidate_latent your sampler produced. Then it recomputes the contract and compares.
If the source changed, if the prep report doesn't match the frames you're now handing it, if the LTX latent doesn't correspond, or if the sampler controls drifted since binding, it raises. That's the value: the failure you'd otherwise get is a render that looks slightly off, which is the worst kind of bug to chase.
The audio passthrough is the interesting output
Outputs are candidate_latent, source_audio and report_json.
source_audio is the same AUDIO object you fed in, handed back unchanged. It's not a conversion - it's the pack making the bypass explicit in the graph, so the original H3 track travels alongside the refined video and reaches your muxer by a visible wire instead of by convention. When the docs for this pair say "original H3 AUDIO is passed through unchanged," this output is how that sentence becomes a wire.
So the end of an RGB chain looks like:
… LTX sampler → RGB Stage Audit ─┬─ candidate_latent → TAEHV decode → images
└─ source_audio ────────────────────→ CreateVideo(audio=…)
And the report is stated plainly as not being a portable receipt or a quality decision. It won't travel to another machine; it won't tell you the clip is good.
What it won't catch
Worth being straight about, because this route has scars. The pack's own development record for the RGB/Identity-preserve chain includes runs where the candidate latents were value-identical between full and cold passes, and the exported video still failed strict decode - and at least one case where the same video.partial.mp4 decoded cleanly after the service exited with the file's SHA unchanged. Thread-scheduling-shaped symptoms, no confirmed root cause, and the project refused to paper over it with a monkeypatch.
So the audit verifies the graph. It does not verify your export. Play the file, every time.
Inputs and outputs
Inputs: stage_boundary, source_frames, source_audio, prepared_frames, prep_report_json, ltx_latent, model, noise, guider, sampler, sigmas, setup_report_json, candidate_latent. Outputs: candidate_latent, source_audio, report_json. Nothing to tune - every input is a claim being re-verified.
Install
cd ComfyUI/custom_nodes
git clone https://github.com/T8mars/comfyui-minimax-h3-audio-T8.git minimax-h3-audio-T8
Manager: MiniMax H3 Audio T8, then fully quit and restart ComfyUI and refresh the page. If nodes are red or missing, update ComfyUI core, the frontend and Manager together - updating only the pack commonly isn't enough on this one.
Disk layout: H3 transformer in models/diffusion_models, Qwen3-VL text encoder in models/text_encoders, H3 video and audio VAEs in models/vae, plus the LTX-2.x set and the pack's video tools. No weights in the repo, and no Python dependencies either - requirements.txt exists to promise that.
Use the bundled 60-ltx-rgb-stage-split graphs; the Identity-Preserve and plain variants are separate recipes and the audit is bound to whichever you started from.
Common issues
"Source/prep/sampler controls changed." You edited something upstream after binding. Rebinding is the fix, not disabling the audit.
Encode or decode errors at the very end. This pipeline has a documented history of media-export flakiness that latent-level checks don't reveal. Export at a smaller geometry to see whether the failure follows the geometry; that was a real diagnostic in the project's own notes.
Video looks right, audio is off. Audio is passthrough here, so a wrong track means you wired the wrong AUDIO object into the muxer - the audit's source_audio output is the one that came from the H3 source.
Red nodes / missing node. Update core, frontend and Manager together and restart fully.
Inputs (13)
| Name | Type | Default | Description |
|---|---|---|---|
| stage_boundary | T8_LTX_RGB_STAGE_BOUNDARY | — | |
| source_frames | IMAGE | — | |
| source_audio | AUDIO | — | |
| prepared_frames | IMAGE | — | |
| prep_report_json | STRING | — | |
| ltx_latent | LATENT | — | |
| model | MODEL | — | |
| noise | NOISE | — | |
| guider | GUIDER | — | |
| sampler | SAMPLER | — | |
| sigmas | SIGMAS | — | |
| setup_report_json | STRING | — | |
| candidate_latent | LATENT | — |
Outputs (3)
| Name | Type | Description |
|---|---|---|
| candidate_latent | LATENT | — |
| source_audio | AUDIO | — |
| report_json | STRING | — |