All articles
Finish the Audio Last: A Three-Pass MiniMax H3 Refine Workflow

Finish the Audio Last: A Three-Pass MiniMax H3 Refine Workflow

Fast MiniMax H3 passes look fine and sound wrong. A Japanese ComfyUI builder chains an acceleration LoRA draft, a video-frozen audio refinement pass, and a latent upscaler into one relay that finishes a single shot properly. The packaged workflow is membership-only, but the techniques are public and worth stealing.

AI-assisted draft. Reviewed and edited by the Phosphene team before publication.

The clip renders. The motion holds, the lighting sits right, and then someone talks and the whole thing collapses. Muffled consonants, a narrator who drifts in and out of an accent, music that sounds like a memory of music. Video generation got fast this year. Audio finishing did not come along for the ride.

A Japanese ComfyUI builder who publishes as Ai-Hakase, whose speed experiments we have covered before, ran into exactly this wall and packaged a fix they call Perfect Refine. The packaged workflow sits behind their paid membership, same as their earlier releases. The ideas underneath are public, and they assemble into something worth understanding even if you never download their files: a three-pass relay that finishes one shot, picture and sound together, instead of chasing longer timelines. Their previous piece was about breaking the 15-second barrier with latent chaining. This one is about a different problem entirely: making a single 5-to-15-second shot feel finished when you watch it to the end.

Why fast passes sound cheap

MiniMax H3 generates video and audio jointly, in one packed audiovisual latent. When you accelerate it with the official Alibaba PAI distillation LoRAs (trained for 8 steps, run practically at 6 function evaluations), you cut the step count from the 20-ish default down to almost nothing. The video stream survives that treatment well. It is what everybody benchmarks and posts. The audio stream degrades first, and it degrades in a specific way: pronunciation edges go soft, dialogue picks up that generic synthesized timbre, and background music loses its low end. The ComfyUI-H3-AudioRefine README states the target use case bluntly: turbo workflows where 4-step video is acceptable but 4-step audio is not.

There is a general lesson hiding here. Distillation does not shave quality evenly off the top. It takes the most from whatever is subtle: audio texture in a video model, small text and hands in an image model, secondary objects in a scene. The big visual read survives because that is what the training objective and the human eye both prioritize. So the rational move is not to pay full price for the whole output. Pay the cheap price everywhere, find out which stream fell behind, and buy quality back only for that one.

That is the entire logic of Perfect Refine, expressed as three passes.

Pass one: draft small, draft cheap

Reference image in, prompt in, acceleration LoRA on, six function evaluations. The purpose of this pass is composition and motion, not finish. Ai-Hakase drafts at 0.2 to 0.5 megapixels, which sounds wasteful to skip past until you remember two things.

First, H3 direct output tops out around 1.2 megapixels anyway, so there is no palace to defend at high resolution. Second, latent token count scales with resolution, and token count is where your compute actually goes. A 0.3MP draft costs a small fraction of a 1.2MP one, which is what makes the whole relay feel instant rather than merely tolerable.

Pass two: freeze the video, fix the sound

This is the pass that did not exist a month ago. The H3-AudioRefine node pack takes the sampled latent from pass one, freezes the video stream, and runs additional denoising steps on the audio stream alone. Under the hood it uses the masked inpaint path ComfyUI already ships for the packed AV latent: a preserve mask of 0.0 on video, 1.0 on audio. The frozen video tokens stay in the attention sequence as context, so the model cleans up the audio against the finished picture rather than in isolation. Mispronounced words and ragged consonants, the exact artifacts Ai-Hakase demonstrates in their examples, are what this pass exists to repair.

Two wiring details are worth stealing outright.

The refine branch taps the model before the turbo LoRA, not after. The extra audio steps therefore run on the undistilled base weights. The audio quality you lost in pass one is literally what the distillation took away, and this is where you buy it back. It is a clean instance of a broader trick: when a compressed model degrades something, refine that thing with the original weights rather than the compressed ones.

And the cost model is honest about what it saves. On a plain graph, frozen video tokens ride through attention on every audio step, so each audio-only refinement step still costs close to a full forward pass. The optional H3 Frozen Video Cache changes that: the first refinement step builds the cache, and later steps process only the audio rows at a fraction of the cost. Either way the saving is step arithmetic: four turbo steps plus four to six audio steps puts you at eight to ten denoising steps total — full-cost on a plain graph, cheaper once the cache is built — against twenty for a clean joint pass at full quality. You are not making steps cheaper. You are skipping the steps that were only there to fix the picture, because the picture is already fixed.

One warning from the README that deserves amplification: the cache backend can live in VRAM, RAM, or on disk, and the disk mode was measured at roughly 10 GB of writes for the specific clip and configuration Ai-Hakase tested. That spend repeats on every cache build or invalidation, not once per session, so thirty fresh renders in an evening can mean hundreds of gigabytes of drive writes, spent on scratch data. Leave disk caching off unless you have pointed ComfyUI at a drive you are willing to wear out.

Pass three: resolution through the latent

The final pass answers the resolution question without paying the VAE tax. H3 ships a heavy VAE at roughly five billion parameters, so the naive route, decode to pixels, upscale, re-encode, is the most expensive possible way to add detail. The LBH-123-AI latent upscaler instead upscales the 24-channel video latent directly with a small trained network, around 2x in this workflow, and then the sampler refines at the target resolution.

If you have run a hires-fix loop in Stable Diffusion, the shape is identical: compose cheap at low resolution, commit expensive detail exactly once. The upscaler's own documentation is careful about the trade: this saves time, not VRAM. The refine pass still runs at full target resolution, so peak memory looks like direct high-res generation. Your speed comes from the small draft, not from a cheaper finish.

Assembling it

The relay is strict about order: draft, then audio, then upscale. Refining audio after the upscale means re-running audio steps over more tokens for no benefit. Upscaling before the audio pass bakes the audio work into a longer sequence than it needs. The order is not stylistic; it falls out of the cost structure above.

Ai-Hakase's practical notes for the assembled whole: the usual speed stack (Spectrum, Easy Cache, SageAttention) can all stay enabled with this graph; on a 24GB-class GPU, plan for clips around ten seconds at the upscale stage; and if you need longer outputs or more precision, the GGUF-quantized UNET is the recommended variant. If you want the contra point on what turbo acceleration costs elsewhere in the pipeline, our ref2va Turbo retest measured the same family of tricks with numbers.

What survives contact with other stacks

Strip away the MiniMax specifics and three principles remain.

Refine per stream, not per output. When a joint model lags in one modality, freeze the good stream and spend compute on the bad one. The masked-inpaint machinery this relies on already exists in ComfyUI for H3, and the same idea transfers to any pipeline where one component of an output is visibly worse than the rest.

Draft small, refine once. The expensive pass should be the only pass at target resolution. Everything before it happens at whatever resolution the composition decision actually needs, which is usually a fraction of the target.

Refine with the weights that were taken away. Distilled and quantized variants trade subtle quality for speed. When you go back for that quality, go back to the original weights for the refinement step, not the compressed ones, or you will pay full price for a partially restored result.

None of this is MiniMax-specific. It is just that the H3 ecosystem currently has the pieces lying closest to hand.

Sources