Nodes/Notification Bridge/πŸ’¬ Discord Notify
ComfyUI Node

πŸ’¬ Discord Notify

Get a Discord ping when ComfyUI finishes β€” no API key, just a webhook

By INuBq8Β·Created about a year agoΒ·Updated about a year agoΒ· 1
πŸ’¬ Discord Notify
  • img
  • IMAGE
β—„messageβœ… Workflow complete!β–Ί
β—„webhook_urlhttps://discord.com/api/webhooks/...β–Ί

Long renders are a great excuse to wander off and forget ComfyUI is still hammering your GPU. DiscordNotifyNode is a two-second fix for that: drop it in the graph, and the moment the workflow reaches it, a message lands in a Discord channel of your choosing. Your phone pings, you know the render is done, and you stop babysitting the queue.

It comes from Notification Bridge (INuBq8/ComfyUI-NotificationBridge), a tiny two-node pack from a hobbyist author - the README is upfront that this is their first custom node, built as a learning project. Keep that in mind, because "learning project" shows up in a few sharp edges below. The core idea is sound though.

How it works

This is a bridge node, not an output node. You place it in the data flow - the README's example is [VAE Decode] β†’ [πŸ’¬ Discord Notify] β†’ [Save Image] - and it does two things: pass the image through untouched, and POST your message to a Discord webhook as a side effect. That's the whole mechanism: requests.post(webhook_url, json={"content": message}), then it checks for Discord's HTTP 204 "all good" response.

One expectation to kill right now: it does not attach the image. The img input is a pass-through so the graph stays intact; the Discord message is plain text. If you want the render in the channel, you already have Save Image doing that on disk. This node is about the ping, not the attachment.

The inputs that matter

There are only three, all required, and only two you'll actually touch:

  • img - bridge input from upstream, typically VAE Decode. It flows straight through.
  • message - defaults to "βœ… Workflow complete!". Swap in something meaningful like the checkpoint or stage, since it fires when the node executes.
  • webhook_url - the only thing you must supply. In Discord: Server Settings β†’ Integrations β†’ Webhooks β†’ New Webhook, then copy the URL. It starts with https://discord.com/api/webhooks/....

The output is a single IMAGE, wired straight into Save Image. Nothing else comes out of it.

Installing it

Standard custom-node fare, no models, no heavy dependencies. Search Notification Bridge in ComfyUI Manager, or:

cd ComfyUI/custom_nodes
git clone https://github.com/INuBq8/ComfyUI-NotificationBridge

Restart ComfyUI and both nodes appear under Notifications in the menu. The pack's requirements.txt contains only twilio - the Discord node just needs requests, which ComfyUI already ships. This might be the lightest install you ever do.

Where people get burned

  • Failures are quiet. The whole send is wrapped in a try/except that prints to the ComfyUI console and still returns the image. Wrong or expired webhook URL? You'll see a HTTP 404 in the terminal log, but the node "succeeds" and the graph looks fine. If your ping isn't arriving, check the console, not the node.
  • The webhook URL is a write key. It gets embedded in the workflow JSON that's stored in your saved PNG's metadata. Share a workflow publicly and anyone who grabs it can post to your channel. Rotate the webhook before you share.
  • Timing. It fires when the queue reaches it, so put it after the expensive stuff and before Save Image - which is exactly where the README puts it.

For a free, zero-dependency "workflow done" notification, it does the job. Just remember the console is where it tells you the truth.

CategoryNotifications

Inputs (3)

NameTypeDefaultDescription
imgIMAGEβ€”
messageSTRINGβœ… Workflow complete!β€”
webhook_urlSTRINGhttps://discord.com/api/webhooks/...β€”

Outputs (1)

NameTypeDescription
IMAGEIMAGEβ€”