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

Audio Notify Trigger

A 'ding when this data is ready' node that never touches what you're waiting on

By uni-miao·Created 4 months ago·Updated 4 months ago· 0
Audio Notify Trigger
  • 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 Trigger is the generic trigger node in ComfyUI-Audio-Notifier: one * input, no output, and a sound when the scheduler reaches it. It exists for the common case where you want to hear that something heavy finished but you don't want to reroute the data - you just want the notification to be a dead end.

    Where you'd actually use it: you have a KSampler grinding out latents and you're in the other room. You don't need the latent forwarded anywhere new; you just want a ding the moment it's ready. A trigger node is the honest way to express that, because it doesn't pretend to be part of the data path. Connect anything to its input (the * type means any type - IMAGE, LATENT, MODEL, whatever), and when that value exists the node fires trigger(), plays the sound, and returns nothing.

    The pack also ships typed triggers (Image, Latent, Audio, Video, Text) if you want the graph to be self-documenting about what you're waiting on. The generic one is the fallback when your type isn't covered - say, a custom type from another pack - or when you just don't want to think about it.

    The inputs that matter

    Beyond input, every input is shared across the whole pack:

    • notification_enabled - the master mute switch; flip it to stop a node playing without deleting it.
    • delay_seconds - hold the chime, in case it fires a touch before you want it.
    • repeat - 1 to 100 plays; more than one ding for a loud house.
    • blocking_playback - default off, so the sound runs in a background daemon thread and doesn't slow the graph. Turn it on if you need the node to finish the sound before anything downstream runs.
    • enable_sound_path / sound_path and enable_sound_name / sound_name - your two ways to pick a sound file (absolute path, or a file in the pack's sounds/ folder).
    • fallback_to_system_beep - on by default, so if no file resolves you still hear a beep instead of silence.

    Resolution order is strict: an enabled, existing sound_path wins; then an enabled sound_name from sounds/; then the beep fallback. No file and no fallback means a logged skip.

    The caveat that comes with every trigger node

    "Input ready" is not "workflow done," and the README is upfront about it. Two things to internalize:

    1. A trigger plays when its input data is ready, period. If you wire it parallel to a Save Image node, ComfyUI makes no guarantee that Save Image runs first - you can hear the chime before the file hits disk.
    2. To make the sound mean something specific (like "saved"), put the trigger downstream of that node, so it only fires after the thing you care about has actually happened.

    This trips people constantly, and it's the single most common complaint in the pack's troubleshooting section ("sound plays too early"). If you want a strict "entire prompt finished" bell, that's a frontend/global-listener job, not what any trigger node here does.

    Install

    No dependencies, no models to fetch. 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. Remember the two gotchas shared by the whole pack: the sounds/ folder ships effectively empty, so give it files (or use sound_path) and restart before expecting the dropdown to be useful; and the audio always plays on the backend machine - the server, not your laptop. No sound at all usually means a volume issue on that box or a missing ffplay for non-WAV files.

    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 (0)

    No outputs