MVEx Audio Mask Debug
What Is That Latent's Audio Mask Actually Doing? Now It Tells You.
- latent
- vae
- report
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 -
autoreads the rate and layout from the connected audio VAE;manualto 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.
Inputs (3)
| Name | Type | Default | Description |
|---|---|---|---|
| latent | LATENT | — | |
| timing | COMBO | auto: read the audio latent rate and layout from the connected audio VAE. manual: enter them directly. | |
| vaeopt | VAE | The audio VAE used to encode this latent. Required when timing is auto. |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| report | STRING | — |