Nodes/ComfyUI-Audio-Notifier/Audio Notify Latent
ComfyUI Node

Audio Notify Latent

Hear when the sampler is done, before you waste time decoding

By uni-miao·Created 4 months ago·Updated 4 months ago· 0
Audio Notify Latent
  • latent
  • LATENT
repeat1
delay_seconds0.0
notification_enabledtrue
blocking_playbackfalse
enable_sound_pathfalse
sound_path
enable_sound_namefalse
sound_name
fallback_to_system_beeptrue

Audio Notify Latent is the passthrough node in ComfyUI-Audio-Notifier that takes a LATENT, plays a sound, and returns it unchanged. It answers the single most common question in long image workflows: is the sampling over yet? That's the moment everyone actually watches the progress bar for, and this node is the honest way to get a bell for it.

Sampling is where ComfyUI spends its time - the KSampler grinding out step after step. VAE decoding after it is comparatively fast, but you usually don't care about the decode itself; you care that the sampler has finished. The README's example is exactly this pattern:

KSampler → Audio Notify Latent → VAE Decode

Insert the node between the sampler and the decode, and it does two things at once: it plays a sound the moment the latent is ready, and it guarantees the decode can't start until the sampler has actually produced it. That ordering is structural - the latent flows through the node - so there's no race with a parallel branch to argue about. The decoded image then arrives right on the chime's heels, which is the real "look at the screen" moment.

Inputs and output

The latent input is the data; the rest are shared pack-wide:

  • notification_enabled - the mute switch.
  • delay_seconds - nudge the chime later.
  • repeat - 1–100 plays.
  • blocking_playback - off by default (background thread, doesn't slow the graph); on to make the node wait for the sound before forwarding the latent.
  • enable_sound_path / sound_path - an absolute path to a sound file on the backend machine.
  • enable_sound_name / sound_name - a file from the pack's sounds/ folder.
  • fallback_to_system_beep - beep if nothing resolves, on by default.

One output: the unchanged LATENT, straight into VAE Decode or wherever the latent was heading.

The thing to keep in mind

This is a latent passthrough, so it fires when sampling is done - not when the whole workflow is done. If you've got heavy upscaling or a second pass after the decode, the workflow still has work left when you hear it. That's usually fine (sampling is the long pole), but if you want the "everything is finished" bell, hang a notifier further downstream. And since the node forwards the latent untouched, the latent type means it'll only accept genuine latents - use the generic Audio Notify Passthrough if your type isn't covered.

Install and gotchas

No dependencies, no models to download. Clone and restart the backend:

cd ComfyUI/custom_nodes
git clone https://github.com/uni-miao/ComfyUI-Audio-Notifier.git

Restart the ComfyUI backend process, not just the browser tab. Pack-wide gotchas: the sounds/ folder ships empty, so add your own files (or use an absolute sound_path) and restart before the dropdown has choices; and the audio always plays on the machine running the backend - if that's a remote box, that's where the chime comes out. Hearing nothing at all? Check that machine's volume, and prefer .wav files since they're the most reliably supported.

CategoryAudio Notifier

Inputs (10)

NameTypeDefaultDescription
latentLATENT
repeatINT11–100
delay_secondsFLOAT0.00–3600
notification_enabledBOOLEANtrue
blocking_playbackBOOLEANfalse
enable_sound_pathBOOLEANfalse
sound_pathSTRING
enable_sound_nameBOOLEANfalse
sound_nameCOMBO2 options: , .gitkeep
fallback_to_system_beepBOOLEANtrue

Outputs (1)

NameTypeDescription
LATENTLATENT