Nodes/MaskVidExperiments/MVEx Audio Mask Debug
ComfyUI Node

MVEx Audio Mask Debug

What Is That Latent's Audio Mask Actually Doing? Now It Tells You.

By drozbay·Created 28 days ago·Updated 8 days ago· 126
MVEx Audio Mask Debug
  • latent
  • vae
  • report
timing

Audio noise masks are invisible, and that's the problem. You attach a mask to the audio side of a latent with MVEx Audio Mask To Latent, or you inherit one from someone's workflow, and you have no idea which time ranges are going to regenerate and which are going to stay - until the render comes back and half the dialogue is the wrong voice. MVEx Audio Mask Debug fixes the blindness: it reads the latent's audio mask and reports, in plain seconds, which ranges it keeps (0.0) and which it generates (1.0).

It accepts a joint AV latent or an audio latent alone. The output is a report string - route it to a Preview Any node (or a text display) and you get lines like:

audio side of nested mask: 128 latent frames, 3.20s at 40/s
0.00-1.00s = 0 (keep), 1.00-2.25s = 1 (generate), 2.25-3.20s = 0 (keep)

Why it earns its place

Two genuinely useful things it catches. First, timing mistakes - if your mask marks 1.5–2.0s but the debug shows 1.5–3.0s, your latents-per-second is wrong, and you'd otherwise only discover that after a wasted sample. Second, and sneakier: it detects a plain video-only mask sitting on a joint AV latent. That's a real footgun - a video mask on a joint latent leaves the audio side missing, and the sampler pads it with ones, meaning the entire audio regenerates whether you asked for it or not. The node tells you that's what happened instead of letting you puzzle over why every render changed the sound.

It also flags when mask values vary within a latent frame (reporting the per-frame max), and reports soft values honestly - a mask that isn't cleanly 0 or 1 gets labeled "soft" so you know the boundary isn't a clean cut.

The inputs

  • latent - joint AV or audio-only.
  • timing - auto reads the rate and layout from the connected audio VAE; manual to type them in (latents per second, and time-last vs time-then-bins layout).
  • vae - required when timing is auto; for a joint latent it's the audio VAE.

If there's no noise mask on the latent at all, the report simply says so and notes that everything generates (full denoise) - useful confirmation on its own.

Install

Same pack as everything else, MaskVidExperiments - ComfyUI Manager, search "MaskVidExperiments", or:

cd ComfyUI/custom_nodes
git clone https://github.com/drozbay/MaskVidExperiments

restart. No model files, no dependencies beyond ComfyUI's own, needs v0.15.0+.

The honest read: this is a debug utility, and a thin one - a string out the back that you have to route to a preview node yourself, since it's not an output node by default. It won't fix your mask, it just tells you the truth about it. But for anyone doing audio-side masking on LTX-2 or H3 latents, "which ranges regenerate" is the single most useful fact you can get before sampling, and nothing in core ComfyUI will give it to you. Keep it hanging off the end of your audio-mask chain as a permanent check.

CategoryMaskVidExperiments

Inputs (3)

NameTypeDefaultDescription
latentLATENT
timingCOMBOauto: read the audio latent rate and layout from the connected audio VAE. manual: enter them directly.
vaeoptVAEThe audio VAE used to encode this latent. Required when timing is auto.

Outputs (1)

NameTypeDescription
reportSTRING