Light Queue Counter Title Tap
Fold this node and read your queue count off its title bar
- trigger
The author says start with this one, and the author is right. LightQueueCounterTitleTap is the flagship node of ComfyUI-LightQueueCounter: wire any value into it, fold the node shut, and its title bar becomes a little badge showing how many jobs are queued on your ComfyUI backend right now. People have built whole desktop widgets to scratch exactly this itch; this does it inside the graph, at near-zero cost.
What it is
A trigger node with no outputs. You feed it anything - ANY type, so an image, a latent, a string, whatever happens to be handy - and it reads the backend queue, then uses its own title as the display. It's a tap on the main line, not a splice: nothing passes through, nothing downstream depends on it, your workflow data path stays untouched.
How it works
The backend reads PromptServer.instance.prompt_queue directly, under the queue's mutex - len(queue) for pending, len(currently_running) for running, summed for total. No hitting the /queue API, no serializing a giant queue array to JSON every run, which is why the author can claim ~0.004s per execution and why the title says "Light." It runs every pass thanks to an IS_CHANGED that returns NaN, so the display always re-renders.
The real trick lives in the frontend. The pack's web extension listens for ComfyUI's executed event, grabs the payload this node sends back (label, running, pending, total), builds the title string, and writes it into node.title. It even installs callbacks on the label and title_format widgets, so you can tweak either one and the title re-renders from the last execution - no re-run needed. Small, but a genuinely nice touch.
The inputs that matter
trigger- required, ANY. Just needs to fire at the right point in the graph; the value itself is ignored.label- default"queue". The name shown in the badge.title_format-total,short, orfull:
total: queue: 42
short: queue: 1/41/42 (running/pending/total)
full : queue: running=1, pending=41, total=42
print_to_console- defaultfalse. Off by default, unlike its sibling node; flip it on if you want the same line in the server log.
Placement
Hang it off any node that runs at the moment you care about - commonly the last node in your workflow - then collapse it. Folded, it becomes a compact status badge on the canvas. Unfold it to change the label or format. If you want the count at a specific data path instead, the pack's AnyPassthrough node does the same reading but passes your data through with the numbers as outputs.
Installing it
No dependencies, no models, no requirements.txt. Clone it in and restart:
cd ComfyUI/custom_nodes
git clone https://github.com/ruminar/ComfyUI-LightQueueCounter.git
Or use ComfyUI Manager - search "LightQueueCounter". The pack is GPL-3.0, one small release so far, and the entire footprint is a single Python file plus the web extension that does the title magic.
Common issues
- It's a snapshot, not a ticker. There's no polling loop by design. If nothing is executing, the badge holds the number from the last run until the next execution comes through. Queue ten jobs and it counts down one per run - useful, but don't expect live decrements while a single long job cooks.
- Which graph is it showing? The count reflects the backend queue at the moment this node executed. If you run multiple workflows from different tabs, the badge shows whatever executed last.
- Folding hides the controls. Collapse it for a clean badge, but remember you'll need to unfold to change the label or format.
- It has no outputs.
triggeris a one-way door. If you wired it expecting data to come back out, that's the wrong node - the AnyPassthrough variant is the one that gives you outputs.
Inputs (4)
| Name | Type | Default | Description |
|---|---|---|---|
| trigger | * | — | |
| labelopt | STRING | queue | — |
| title_formatopt | COMBO | total | 3 options: total, short, full |
| print_to_consoleopt | BOOLEAN | false | — |
Outputs (0)
No outputs