Nodes/Comfy-UI on-complete-email-me/On Complete Play Sound
ComfyUI Node

On Complete Play Sound

Stop watching the progress bar — make ComfyUI chime when the render is done

By bobddadoo·Created 2 years ago·Updated 3 months ago· 4
On Complete Play Sound
  • any

    OnCompletePlaySound is the laziest node you'll ever love. You drop it at the end of a workflow, wire one thing into it, and the next time a render finishes the machine plays a little jingle. No email to configure, no URL to paste, no API key. It's the point-and-shoot member of the hyunamy/comfy-ui-on-complete-email-me pack (the other two being the webhook and the Gmail sender), and for 86 impressions of Google traffic it's clearly the one people find first.

    Here's the catch you need to understand before you get excited: it plays sound on the machine running ComfyUI, not in your browser. The node loads a bundled finished.mp3 with pygame.mixer and plays it through whatever audio device the server has. If ComfyUI runs on your desktop, you hear it through your speakers. If it runs on a headless box, a rented GPU server, or a Colab - congratulations, your render finished into silence. The reddit thread where the author first plugged this pack was literally someone asking how to stop wearing headphones all night; for that person it worked. For the guy with a rented A6000, it doesn't.

    The other thing to know: there's only one input - any, the wildcard port that accepts anything. That's not a bug, it's how the node forces execution order. You wire your final image (or really any output upstream of it) into any, and ComfyUI guarantees this node runs after that thing. No outputs, nothing to catch. It's a pure terminal notification node.

    Install is the same as the rest of the pack, via ComfyUI Manager's Install via Git URL (https://github.com/hyunamy/comfy-ui-on-complete-email-me) or a manual clone into custom_nodes. The one real dependency here is pygame (requirements.txt pins pygame>=2.0.0); the rest - requests, numpy, pillow - ComfyUI already ships. No model downloads, no heavy anything.

    If you want more control, pythongosssss/ComfyUI-Custom-Scripts has a Play Sound node that routes audio through the browser and lets you pick a file and volume. OnCompletePlaySound is the opposite trade: one wire, zero config, but you get exactly the one bundled sound at the default volume, on the server's audio out. For a daily-driver desktop setup that's honestly all you need.

    Where people get burned:

    • No sound at all. First check where ComfyUI actually runs and whether that machine has working audio. If it does and pygame still dies, it's usually the SDL audio init failing on a machine with no default output device - the error shows up in the ComfyUI console.
    • A queue of 10 runs = 10 chimes in a row. It fires once per execution, and there's no debounce. Fun if you queue short tests, annoying at 2am.
    • You can't change the sound or the volume without editing the repo's assets/finished.mp3. Some people just swap in their own file.

    For a "did the overnight batch finish yet?" alert on a machine you can actually hear, this is the simplest thing in the category. Just don't expect it to follow you to the couch.

    Categorynotify

    Inputs (1)

    NameTypeDefaultDescription
    any*

    Outputs (0)

    No outputs