MiniMax H3 AudioRefine and ExactAudioLock Workflow Guide

H3Vid Teamon 8 days ago

A MiniMax H3 clip can have useful pictures and an unsuitable soundtrack. Two community node packs address different versions of that problem. AudioRefine continues generating audio around an existing sampled video latent. ExactAudioLock supplies a chosen waveform and controls where it lands in the final soundtrack.

Choose based on whether you want new sound or preservation of recorded sound. A voice reference that influences generation, a sampled audio refinement and a sample-accurate final waveform are different deliverables. This guide follows the authors' documentation reviewed October 15, 2026. We have not reproduced their graphs or timing measurements, and H3Vid does not currently execute either node pack.

Decide what must remain fixed

Your requirementDocumented routeWhat to inspect
Improve sound while retaining sampled videoAudioRefineVideo denoise value and refinement model branch
Use an exact full soundtrackExactAudioLock full lockFinal mux receives exact_audio
Keep dialogue while generating other soundDialogue Audio Lock plus FinalizeMatching dialogue reference and lock manifest
Encourage a similar voiceOrdinary audio referenceIdentity and wording still need review

Start with a saved, working ComfyUI H3 graph. These packs work with H3's joint audio/video latents. An exported MP4 is not the same input: the sampler-stage state contains information that a compressed final movie does not expose.

AudioRefine: continue the audio pass

The AudioRefine README describes a masked refinement pass. With video_denoise set to zero, its documented masking returns the video latent unchanged while audio remains available for denoising. That statement concerns latent preservation; independently re-encoding the final movie can still change compressed file bytes.

Use the author's example graph as the wiring authority. The initial Turbo sampler's LATENT output goes into H3 Audio Refine Sampler. The documented starting recipe branches the refinement model before the Turbo LoRA, reuses the conditioning, and decodes after refinement. A generic node description elsewhere in the README mentions reusing the model stack; that is less specific than the supplied Turbo example. Record which branch you actually used when comparing results.

The suggested starting range is four to six refinement steps with audio_denoise around 0.5 and Euler/simple. Lower denoise aims to retain more of the initial audio; a value of one regenerates it more extensively. These are author suggestions, not a tested quality guarantee. If you increase video denoise above zero, you are also allowing visual changes.

Frozen video does not make every step cheap

H3 processes packed audio and video tokens together. The technical explanation distinguishes freezing the final video latent from avoiding computation for its tokens. Without caching, those tokens still provide context during the refinement pass.

The optional Frozen Video Cache reuses their intermediate state. This can reduce later work, but adds memory use, a cache-building step and an approximation: cached video states do not continually react to evolving audio until refreshed. The author's measurements are machine- and graph-specific. They cannot establish a speedup on a different card or a workflow dominated by weight streaming.

Begin with the cache bypassed to validate the graph. If you enable it, compare whole-job time as well as refinement time. Keep cache precision, storage location, frame count and resolution in the record. Disk caching has a separate opt-in; a spill to scratch storage is an operational choice, not free acceleration.

ExactAudioLock: construct the target soundtrack

The ExactAudioLock project builds a full target-length waveform from scheduled inputs, encodes it into H3's audio target and applies a lock mask. The video remains generative. Its Timed Audio node places sources on a 24 fps target-video timeline, converting frames to waveform samples with integer arithmetic.

Follow the installation instructions, including requirements installed into ComfyUI's own environment. In Ref2VA, take the native MiniMax H3 Reference to Video node's joint latent output into av_latent. Feed the lock's locked_av_latent to the sampler and decode the sampled video normally.

For a full lock, connect exact_audio directly to the final video or mux node. Audio decoded from the sampled latent is not the final waveform authority for this route. A graph can condition generation successfully and still save the wrong soundtrack if that last audio wire is incorrect.

Set overflow and mixing policies deliberately. A source that extends beyond the target clip should either fail or be cropped by a chosen policy. Overlapping sources can be rejected, summed, or managed to prevent clipping. Listen to the complete mix after placement; correct timestamps do not prevent two loud recordings from overloading the output.

Preserve dialogue and generate the rest

The partial-lock guide allows unsupplied ambience, effects and music to remain generative. The lock protects dialogue intervals and margins, then Dialogue Audio Finalize restores the supplied samples inside the scheduled dialogue cores after decoding.

Wire the sampled generated audio, dialogue_reference_audio and matching dialogue_lock_manifest into that finalizer. Send its final_audio to the movie output. Keep the manifest with its corresponding reference: pairing one run's timing record with another recording makes the result ambiguous.

For a two-person exchange, assign separate timed events and make speaker ownership clear in the prompt. Add Guide can provide event-level conditioning at the same frame, but it does not replace waveform finalization. Exact audio placement also does not prove that the visible speaker has convincing lip movement.

Review the saved movie

Check the final exported file, rather than only previewing an upstream audio node. For refinement, compare speech clarity and unwanted sound against the original while checking visual preservation. For a full lock, confirm the final soundtrack uses the intended waveform and event offsets. For partial dialogue, inspect both the dialogue cores and transitions into generated ambience.

Keep the first graph small and change one control at a time. Use Omnichar voice references when portable character preparation is the actual need; use exact locking when an approved recording must survive into the output. This decision saves a great deal of unnecessary sampler experimentation.

The cover is an AI-generated concept illustration, not an AudioRefine test, ExactAudioLock screenshot or MiniMax H3 output.