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

Audio Notify Text Trigger

The most practical 'tell me when' node in the pack — if you have a wire to spare

By uni-miao·Created 4 months ago·Updated 4 months ago· 0
Audio Notify Text Trigger
      text
      repeat1
      delay_seconds0.0
      notification_enabledtrue
      blocking_playbackfalse
      enable_sound_pathfalse
      sound_path
      enable_sound_namefalse
      sound_name
      fallback_to_system_beeptrue

      Audio Notify Text Trigger is the trigger node from ComfyUI-Audio-Notifier that takes a string, plays a sound when that string is ready, and forwards nothing. On paper that sounds like the least useful member of the family - who cares about text chimes? - but it's actually the one people reach for, because text is usually produced last in a pipeline.

      Think about where strings live in a real workflow: the output of a prompt/dynamic-text node, a filename or caption that a save-with-metadata chain produces, a "show text" value at the very end. Text is cheap to compute, so it tends to sit at the tail. Wire this node to a string that only exists after everything else has run, and you've built a decent "the workflow is basically done" bell out of a node that technically only means "this string is ready."

      The trade-off: it's a trigger, meaning input only, no output (RETURN_TYPES is empty, and it's flagged as an output node so ComfyUI treats it as an endpoint). If you need the text to keep flowing into a display or save node, use Audio Notify Text (the passthrough version) instead. This one is purely for the noise.

      How it works

      The text input is a STRING with forceInput set, which means you can't type a literal into it - it has to come from a wire. That's a feature, not a bug: the chime only fires when an actual upstream node has produced a string, so you can't accidentally trigger it early with a hardcoded value. When the string arrives, the node runs its shared playback path: resolve a sound file (either sound_path or a file in the pack's sounds/ folder, else the system beep fallback) and play it, non-blocking in a background thread by default.

      The common config inputs apply unchanged:

      • notification_enabled - the master mute.
      • delay_seconds - hold the chime for a few seconds.
      • repeat - play it up to 100 times if one ding isn't loud enough.
      • blocking_playback - set True if you want the node to wait for the sound to finish.

      The timing caveat that bites everyone

      Trigger nodes mean "notify after input data is ready," not "notify after the whole workflow is done." Two consequences:

      1. If your string is produced in the middle of the graph (say, straight off a prompt encoder), you'll hear it early.
      2. If this node runs in a parallel branch alongside a Save node, ComfyUI doesn't guarantee Save runs first - you can hear the chime before the file is on disk.

      The fix is to feed it a string that is downstream of what you actually care about. A classic pattern: put it after the node that builds your save filename, so the ding fires right as the name exists.

      Install and 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), not just the browser tab. Two things trip people up: the pack's sounds/ folder ships empty, so populate it (or use an absolute sound_path) before expecting the dropdown to have anything; and the sound plays on the machine running the backend - if that's a remote box, that's where the noise comes out. If you hear nothing at all, try a .wav first, then check the backend machine's volume. And no, none of this is a global "queue finished" listener - for strict completion you'd want a frontend/notification extension instead.

      CategoryAudio Notifier

      Inputs (10)

      NameTypeDefaultDescription
      textSTRING
      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