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

Audio Notify Passthrough

Play a sound, then hand the data along untouched

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

Audio Notify Passthrough is the generic passthrough node from ComfyUI-Audio-Notifier: one * input, one * output, and a sound in between. It takes any value, plays a notification, and returns that exact value unchanged. Where the trigger nodes are dead ends, this one is a bridge - you insert it into an existing wire rather than branching off it.

That's the key move and it's worth understanding. ComfyUI wires are directional: if you run KSampler → Audio Notify Passthrough → VAE Decode, the passthrough has to execute before VAE Decode because the decode needs its output. That ordering is the whole point. You've told the graph "play a sound when the sampler's latent is ready, then keep going" in a way that's structurally guaranteed - no parallel-branch race conditions to worry about, because the data physically flows through the node.

The * type means it accepts and forwards anything: IMAGE, LATENT, MODEL, VIDEO, even custom types from other packs. That makes it the pack's catch-all when none of the typed variants (Image, Latent, Model, Clip, VAE, Audio, Video, Text) fit. If a typed node does exist, prefer it - the graph reads better and ComfyUI can't silently mismatch types. But for a one-off custom type, this is your node.

The inputs that matter

Everything except the data input is shared across the pack:

  • input - the value to pass through (any type).
  • notification_enabled - master mute.
  • delay_seconds - delay before playing, 0 to 3600 seconds.
  • repeat - play count, 1–100.
  • blocking_playback - off by default, so the sound runs in a background daemon thread and the graph doesn't wait for it. On, and the node holds until the sound finishes before passing the value on.
  • enable_sound_path / sound_path - an absolute file path on the backend machine.
  • enable_sound_name / sound_name - a file picked from the pack's sounds/ folder.
  • fallback_to_system_beep - beep when nothing resolves, on by default.

One output comes out: the same value that went in. Wire it to whatever would have received the original data.

How to use it well

Insert the passthrough right before the node you want to signal completion of. The README's example is the cleanest: KSampler -> Audio Notify Latent -> VAE Decode means "when KSampler output latent is ready, play sound, then pass latent to VAE Decode." The same pattern applies anywhere you have a heavy node whose output feeds something downstream - the sound fires exactly when that heavy node's work is done, and the data keeps flowing to its real destination.

If you don't need to forward the value, a trigger node is the lighter choice. But if the wire is already going somewhere, the passthrough costs you nothing extra and gives you guaranteed ordering. Both are better than the standalone Audio Notify node for timing, because that one has no upstream dependency and can fire at the start of a prompt.

Install and the usual gotchas

Zero dependencies, no models. Clone and restart:

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

Restart the ComfyUI backend (or your launcher's backend process), not just the browser tab. The two things that bite people across this whole pack: the sounds/ folder ships empty, so drop files in and restart before the sound_name dropdown has anything worth selecting (or use sound_path); and audio plays on the machine running the backend - if that's a server, the chime comes out there. No sound at all? Check that machine's volume, try a .wav first, and make sure ffplay/FFmpeg exists if you rely on mp3.

CategoryAudio Notifier

Inputs (10)

NameTypeDefaultDescription
input*
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
**