VELVET VICE MiniMax H3 — Quality Refine AV Merge
How H3 keeps pass-1 audio while pass 2 polishes the video
- base_latent
- refined_latent
- latent
The H3 Quality Refine feature in the Velvet Vice pack runs a second, low-denoise sampling pass over the video latent to clean up the render. But H3 isn't a video model with audio bolted on - the audio is packed into the same latent. So when pass 2 refines "the latent," what happens to the sound that pass 1 already got right?
That's exactly the problem VelvetViceMiniMaxH3AVRefineMerge exists to solve. It's the internal helper that stitches a refined pass-2 video latent back together with the untouched pass-1 audio latent so you don't have to choose between clean video and good sound.
How it works
The node takes two latents: base_latent (the original pass-1 result, audio included) and refined_latent (the pass-2 output, which refines the video). A preserve_base_audio boolean - default on - decides the outcome. When it's true, the node pulls the audio samples out of the pass-1 latent and the video samples out of the refined latent, and merges them into one packed AV latent. The audio you generated and approved in pass 1 is carried over byte-for-byte while the video benefits from the second pass. When preserve_base_audio is off, you get the refined latent as-is and the audio from pass 2 rides along instead.
This matches the author's framing in the pack README: "Preserve Base Audio keeps pass-1 audio while pass 2 refines the video latent." It's the option that makes Quality Refine feel safe - refining video detail without gambling your audio on a second stochastic pass.
Inputs and outputs
base_latent(LATENT) - the pass-1 H3 latent. Source of the audio when preservation is on.refined_latent(LATENT) - the pass-2 refined latent. Source of the video when preservation is on.preserve_base_audio(BOOLEAN, default true) - merge strategy switch.
Output is a single latent (LATENT), ready for the final VAE decode.
Install and context
It's part of the velvet-vice-minimax-h3 pack - install through ComfyUI Manager or:
cd ComfyUI/custom_nodes
git clone https://github.com/Velvet-Vice/velvet-vice-minimax-h3
then restart. No extra dependencies beyond the pack and ComfyUI's native H3 nodes.
A beginner-relevant note: you will basically never touch this node yourself. It lives inside the Quality Refine branch between the two sampler passes, and the user-facing controls - Quality Refine LIGHT / HIGH / CUSTOM and Preserve Base Audio - live on the H3 System Hub. If you're debugging a render where refined video came back with no sound or with pass-2 audio, this merge point is where the two latents meet, so it's the first place to look. And if Quality Refine is off entirely, this node never executes at all - that's the job of its sibling, the lazy-refine switch.
Inputs (3)
| Name | Type | Default | Description |
|---|---|---|---|
| base_latent | LATENT | — | |
| refined_latent | LATENT | — | |
| preserve_base_audio | BOOLEAN | true | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| latent | LATENT | — |