๐โถ Play Audio
A ding when your workflow is finally done
- anything
- AUDIO
- anything
Some workflows take a while - a long video render, a big batch loop, a chain of API calls. You tab away to do something else, and then you're periodically alt-tabbing back to check if it's done yet. Play Audio exists to fix exactly that: drop it at the tail end of a slow branch and it plays a sound the moment that branch actually executes, so you get an audible signal instead of a polling habit.
How it works
It defaults to a bell - no setup required, just wire something into it and it'll chime when that wire fires. You can override the sound two ways: point it at a specific file with audio_path, or feed it an AUDIO-type input directly from another node in your graph (say, the output of a TTS node, if you want it to literally say something instead of dinging).
The clever part is the required anything input and its matching output: whatever you plug in comes straight back out unchanged. That means you don't have to choose between "monitor this branch" and "keep using its output" - tap the node onto an existing wire in the middle of your graph, and it passes the value through untouched while triggering the sound as a side effect. No dead-ending your pipeline just to get an alert.
One thing worth being upfront about, since it's not stated anywhere in the docs but follows from what the node does: this plays audio in your ComfyUI session, which is meaningful when you're sitting at an interactive UI waiting on a run. If you're triggering workflows purely through the API - the way a lot of comfy.icu automation works - there's no one at a browser tab to hear it, so treat this as a local, interactive-session convenience rather than something to build alerting logic around.
The inputs and outputs that matter
anything(required) - the pass-through trigger. Wire in whatever marks "this branch is done" - an image, a video path, a text string, doesn't matter what type.AUDIO(optional) - feed it an actual audio signal from elsewhere in your graph to play that instead of the default bell.audio_path(optional, string) - point it at a file on disk instead.- Output
anything- the same value you passed in, untouched, so you can keep chaining your workflow after this node.
How to install it
ComfyUI Manager โ search Bjornulf_custom_nodes โ install โ restart. Manual:
cd ComfyUI/custom_nodes
git clone https://github.com/justUmen/Bjornulf_custom_nodes
pip install -r Bjornulf_custom_nodes/requirements.txt
Audio playback in this pack leans on pydub, which is in the shared requirements.txt - install the full pack's dependencies even if you only care about this one node, since it ships as part of the same install.
Common issues & troubleshooting
Nothing plays, no error either. Check whether both AUDIO and audio_path are empty - that's fine, it should fall back to the default bell, but if the default file itself is missing after a partial install, silence with no error is what you'd see. Reinstalling via ComfyUI Manager (rather than a half-finished manual clone) is the fastest fix.
It plays but I don't hear anything when running via the API / on a headless server. That's the expected limit described above - this is a local, in-session audio cue, not a webhook or notification system. If you need alerting for API-driven runs, you'll want something outside this node (a webhook call, a status check) rather than relying on Play Audio to reach you.
I fed it text instead of AUDIO and it errored. AUDIO wants ComfyUI's actual audio type, not a string - if you have a file path instead, use audio_path, not the AUDIO socket.
Inputs (3)
| Name | Type | Default | Description |
|---|---|---|---|
| anything | * | โ | |
| AUDIOopt | AUDIO | โ | |
| audio_pathopt | STRING | โ |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| anything | * | โ |