ComfyUI Node

Ping

Your workflow finished — this node actually tells you

By PBandDev·Created 5 months ago·Updated 5 months ago· 2
Ping
    • notification
    success_sound
    failure_sound
    volume
    enabled

    You queue 40 images, tab away, and come back 25 minutes later to find ComfyUI idle because the run died on frame 12 - no idea when, no idea why you missed it. The Ping node from comfyui-ping exists for exactly that: it makes ComfyUI tell you the moment a run finishes or fails, by playing a sound in your browser tab. The name is a small lie, in the best way - it doesn't ping a server, call an API, or need a key. It just plays audio in the tab you left open.

    This is one of those quality-of-life nodes you don't think you need until you've burned an evening on an unattended render. comfyui-ping is the modern, maintained replacement for the old ComfyUI-PC-ding-dong, which had gone years without updates; PBandDev built it as a clean rewrite with more settings and a node you can drop in a graph. Use it two ways: global notifications from ComfyUI's settings, or local overrides per workflow with this Ping node - a distinctive sound on the one job you actually want to notice.

    How it works

    Two halves. When this node executes in your graph, its Python backend builds a notification payload and emits a comfyui-ping.notification event. A small frontend extension (TypeScript, bundled into dist/) listens for that event and plays the selected sound in the browser with a plain HTML audio element. The same extension hooks ComfyUI's queue, so it also fires on every finished prompt or only when the whole queue drains, and it catches queue errors for failure sounds.

    The key thing to internalize: the sound is browser-side, not server-side. Keep the ComfyUI tab open and unmuted, or you get silence. Headless or remote setups get nothing - that's a feature if you like quiet, a trap if you were expecting pings.

    The inputs that matter

    • enabled (boolean) - master switch for this node's ping.
    • success_sound (string) - the sound id, e.g. ping-success.wav or a bundled:/custom: id; leave empty to fall back to your global setting.
    • volume (float, 0–1, step 0.05) - loudness; 0.8 is the default.
    • failure_sound (string) - present on the payload, but a heads-up: the node always emits a success-type event when it runs, so this field is really at home in the global settings, where a failed run gets the ping-failure.wav treatment.

    Output: notification (any type) - it carries the payload, and you don't need to wire it to anything. This is an output node; the point is the sound, not the wire.

    Install

    Easiest via ComfyUI Manager: open Custom Nodes Manager, search comfyui-ping, install, restart. Or by hand:

    cd ComfyUI/custom_nodes
    git clone https://github.com/PBandDev/comfyui-ping
    # then restart ComfyUI
    

    Good news on dependencies: there are none to worry about. No pip requirements, no models to download - the backend is stdlib-only and the frontend ships prebuilt. One real caveat: this is built on the modern ComfyUI extension API (requires-comfyui >= 0.3.0), so on a stale install the node simply won't appear. Update ComfyUI first, then install.

    Common gotchas

    • Nothing plays. Check the comfyui-ping section in settings (notifications on?), whether the tab is muted, and your notify mode. queue_drained - the default - stays quiet until the entire queue empties. That's the right behavior for a 40-job batch and very confusing if you expected a ping per image.
    • Missing or unreadable sound. The pack logs a warning and stays silent instead of erroring out, so a broken pick can look like "it doesn't work."
    • Uploads. .wav, .mp3, .ogg, .m4a, .flac, max 10 MiB, stored in the pack's sounds/ folder. Older installs' sounds/bundled, sounds/custom, and input/ping directories get migrated there automatically.
    • Remote setup. Sound is in the browser, so if your tab isn't open on the machine that matters, you won't hear it.

    That's the whole thing. A tiny node that does one job cleanly - the kind of pack that quietly removes a recurring annoyance from your day.

    Categorycomfyui-ping

    Inputs (4)

    NameTypeDefaultDescription
    success_soundSTRING
    failure_soundSTRING
    volumeFLOAT0–1
    enabledBOOLEAN

    Outputs (1)

    NameTypeDescription
    notification*