Nodes/LanPaint/LanPaint MiniMax Audio Decode
ComfyUI Node

LanPaint MiniMax Audio Decode

Turning MiniMax H3's audio latent back into something you can hear

By scraed·Created about a year ago·Updated 7 days ago· 1,338
LanPaint MiniMax Audio Decode
  • samples
  • vae
  • audio

MiniMax H3 generates video with native audio, which means its audio lives in latent space until something decodes it. LanPaint_MiniMaxAudioDecode is that something for LanPaint's AV inpainting pipeline: feed it a MiniMax H3 audio latent and it hands you back an AUDIO waveform, in the layout ComfyUI actually expects.

It's the mirror image of LanPaint_MiniMaxAudioEncode, and it exists for the same boring-but-lethal reason: the H3 audio VAE wrapper returns audio channels-last, [B, L, C], while ComfyUI's AUDIO convention is [B, C, L]. Skip the conversion and every downstream node (preview, save, VideoCombine) sees a waveform with its channels and samples swapped - which decodes to silence or static, not a subtle bug you can easily spot. This node does the transposition back and reports the correct sample rate (the VAE's, normally 32 kHz), so what comes out is a proper ComfyUI audio dict ready to preview or save.

The inputs

  • samples - a MiniMax H3 audio latent, or a nested AV latent straight from a LanPaint sampler. In the AV case it automatically unwraps the nested latent and decodes just the audio stream - so you can drop this node on the AV decode path without tearing the bundle apart yourself.
  • vae - the MiniMax H3 audio VAE.

Output is a single audio (waveform + sample rate).

How it fits the pipeline

Two typical spots. In a plain audio-inpainting workflow it's the final decode after sampling, feeding a SaveAudio or a preview node. In the full AV pipeline it's also what LanPaint_AVDecode calls internally to get the audio stream it merges back into the video - so like its encode sibling, it's doing the real work both directly and behind the scenes. If you only ever use the AV Encode/Decode pair, you'll never wire this one yourself; you'd only reach for it when you want to pull the audio out of an AV latent as its own track.

Install and caveats

Ships with the LanPaint pack: ComfyUI Manager → search "LanPaint", or clone into custom_nodes and restart:

cd ComfyUI/custom_nodes
git clone https://github.com/scraed/LanPaint

No pip dependencies bundled. You need the MiniMax H3 audio VAE loaded - the decode is the inverse of the encode, and it can't invent the VAE's output sample rate if it isn't there.

The one thing to keep straight: the nested-AV handling only works if the latent actually is a nested AV latent (the kind LanPaint_AVEncode produces). Feed it a plain audio latent and it decodes it directly; feed it something else entirely and the stream-unwrap step is a good place for the error to land. Match the VAE you decoded with, and don't mix in a video VAE - this node's entire reason for being is that the audio VAE's conventions are its own.

Categoryaudio

Inputs (2)

NameTypeDefaultDescription
samplesLATENTAudio latent, or a nested AV latent (the audio stream is decoded).
vaeVAEThe MiniMax H3 audio VAE.

Outputs (1)

NameTypeDescription
audioAUDIO