MiniMax H3 Source AV Prepare / 来源音画重绘准备 (EXP/T8)
Assemble video and audio latents for a redraw, with denoise masks H3 understands
- video_latent
- audio_latent
- av_latent
- video_latent
- audio_latent
- report
Redrawing a source clip in H3 isn't one VAE encode - it's two (video and audio) plus a decision about how much of each you want H3 to keep vs. regenerate. MiniMaxH3SourceAVPrepareT8 is the node that makes that decision explicit and legal. It assembles your H3 video and audio latents into one joint AV latent, preserves metadata and masks, and creates separate video and audio denoise masks so the sampler knows exactly what to keep and what to redraw.
Think of it as the strict-but-flexible junction between "source AV" and "sampling." The author is careful about one thing: this is stream assembly, not temporal concatenation, and the denoise strengths are experimental - explicitly not claimed to be a linear redraw weight until real A/B calibration exists.
The inputs that matter
video_latentandaudio_latent- H3 video latent[B,24,T,H,W]and audio latent[B,32,2,T](or a joint AV latent whose streams get used).video_mode(remix) -lockmasks everything to 0 (keep the source),regeneratemasks to 1 (redraw),remixusesvideo_denoise_strength(0.5).audio_mode(lock) - same three-way choice for the soundtrack, withaudio_denoise_strength(0.35). Defaultlockbecause the pack's hard rule is: the original soundtrack is precious, preserve it unless you explicitly say otherwise.audio_fit_policy(fit_to_video_generate_tail) - how to align the audio clock when lengths don't match.strictnever adjusts; trim/pad policies are explicit; a padded tail is zero latent with mask 1 so H3 may generate it. Every adjustment is reported.dtype_device_policy(match_video) -match_videoconverts only the smaller audio stream;strictrefuses a mismatch.
Outputs: the combined av_latent, the separate video_latent and audio_latent (handy if you want to inspect or swap streams), and a report.
The philosophy underneath
This is where the pack's "source audio is sacred" stance gets wired in. In the audio-control workflows (examples/workflows/02-audio-control/, e.g. 2026-08-06_H3_Audio_Lock_Source_Stable_4V4A.json), keeping audio_mode=lock plus add_source_as_reference is the recommended way to preserve the original soundtrack while still giving the sampler a strong audio-conditioning signal. The denoise masks are the mechanism: a locked stream is masked to 0 so the sampler doesn't touch it, a remixed stream gets a strength-weighted mask, a regenerated one is masked to 1.
Install
Pack standard - Manager search "MiniMax H3 Audio T8", or
cd ComfyUI/custom_nodes
git clone https://github.com/T8mars/comfyui-minimax-h3-audio-T8
then restart. No extra pip packages. You need the video and audio VAEs in your model folders, and a MiniMaxH3SourceMediaWindowT8 (or your own encode path) upstream to provide the latents.
Gotchas
video_denoise_strengthis not a dial. The author's warning is explicit: 0.5 does not mean "half the redraw." It's an experimental strength with no linear claim until A/B-calibrated. Tune by eye/ear, not arithmetic.- Locked ≠ reference.
lockpreserves the source latent; it doesn't automatically make it a semantic reference for the sampler. If you want the source as a reference while keeping it locked, that's a separate reference-conditioning path elsewhere in the pack - check the audio-control workflow READMEs (examples/workflows/02-audio-control/) for how those are wired. - Regenerated tails need ears. A padded tail is zero latent with mask 1, so H3 may fill it - but the author insists regenerated or padded audio needs perceptual validation. Listen, don't assume.
If you're building anything that redraws an existing clip - V2V, source-audio replacement, partial regen - this node is the correct and honest assembly point: it gives H3 legal masks, keeps your source audio locked by default, and tells you exactly what it adjusted.
Inputs (8)
| Name | Type | Default | Description |
|---|---|---|---|
| video_latent | LATENT | H3 video latent [B,24,T,H,W], or an existing H3 joint AV latent. | |
| audio_latent | LATENT | H3 audio latent [B,32,2,T], or an H3 joint AV latent whose audio stream will be used. | |
| video_mode | COMBO | remix | lock=mask 0; remix=use strength; regenerate=mask 1. |
| video_denoise_strength | FLOAT | 0.500–1 | Used only by remix. No linear visual-strength claim is made before real A/B calibration. |
| audio_mode | COMBO | lock | lock=preserve source latent; remix=use strength; regenerate=mask 1. |
| audio_denoise_strength | FLOAT | 0.350–1 | Used only by remix; regenerated or padded audio still requires perceptual validation. |
| audio_fit_policy | COMBO | fit_to_video_generate_tail | strict never adjusts. trim/pad policies are explicit; a padded tail is zero latent with mask 1 so H3 may generate it. Every adjustment is reported. |
| dtype_device_policy | COMBO | match_video | match_video converts only the smaller audio stream; strict refuses a mismatch. |
Outputs (4)
| Name | Type | Description |
|---|---|---|
| av_latent | LATENT | — |
| video_latent | LATENT | — |
| audio_latent | LATENT | — |
| report | STRING | — |