Nodes/Async Pause/Toast (Passthrough)
ComfyUI Node

Toast (Passthrough)

A toast mid-workflow, without cutting the wire

By vilanele·Created 11 months ago·Updated 8 months ago· 8
Toast (Passthrough)
  • any
  • any
detail
severityinfo
life3000

The Toast (Passthrough) node is the inline version of the pack's Toast node: it shows the same popup notification in the ComfyUI browser window, but it passes whatever you feed it straight through instead of ending the line. The output-node version is a terminal "I'm done" flag. This one is a "stage X reached, moving on" flag that lets the data keep flowing underneath the notification.

That passthrough behavior is the whole reason to pick this over the output node. You can thread it between the stages of a long pipeline - after the first upscale pass, after the face-detail pass - and each one pops a toast at you while the image or latent it carried continues downstream untouched. Stack several with different detail text and you get a running commentary on a long batch, visible at a glance when you glance back at the screen.

The inputs

Same four as the output version, and the first one doubles as your pass-through wire:

  • any (required) - the data to pass through and the trigger. Feed it the image, latent, or whatever's flowing; it comes out the any output unchanged.
  • detail (multiline text) - the message shown in the toast. Make it say something specific about the milestone: "Stage 2 of 3 - upscale done."
  • severity (dropdown: success, info, warn, error, secondary, contrast; default info) - the toast's color/level. info for neutral progress, warn when something might deserve a look.
  • life (integer, default 3000) - milliseconds the toast stays visible before auto-closing. 3000 ms is a three-second glance; stretch it if you're not sitting at the screen.

The one output is any, an exact echo of the input. And as with the output variant, the toast's summary line is fixed ("Toast node executed") - your editable parts are detail, severity, and life.

How it works

Identical skeleton to every node in this pack: the backend returns the input untouched plus a dummy UI trigger, and frontend JS calls ComfyUI's toast API with the widget values. It's light, it's local, and there are no Python dependencies or model files anywhere in the pack.

Install

# ComfyUI Manager → Custom Nodes → search "Async Pause" → Install → restart
# or manually:
cd ComfyUI/custom_nodes
git clone https://github.com/vilanele/ComfyUI-AsyncPause
# restart ComfyUI

Output node vs. passthrough

Pick by where you are in the graph:

  • End of the branchToast (output node). Terminal, visually obvious, no output socket.
  • Mid-pipeline, more to come → this one. If you accidentally wire the output version mid-stream, ComfyUI will refuse the connection because it has no output socket - swap to passthrough.

Gotchas

The recurring one in this pack applies here hardest of all: ComfyUI's cache skips nodes whose inputs haven't changed, and a skipped node fires no toast. A mid-pipeline passthrough fed by a stable intermediate will happily stop toasting on repeated runs of the same workflow. Change something upstream (seed, slider) to force re-execution, or place it where the data naturally varies. Also worth knowing: since the toast appears in the ComfyUI tab, it's only useful when the window is visible - for "machine finished while I was away," pair it with the pack's audio node instead. The README's own recipe puts toast and audio notifications around a Pause node in a subgraph, so you hear the arrival, see the message, and click continue.

Categoryutils

Inputs (4)

NameTypeDefaultDescription
any*
detailSTRINGDetail message to display in toast
severityCOMBOinfoMessage severity level
lifeINT30000–100000000Duration in milliseconds before auto-closing

Outputs (1)

NameTypeDescription
any*