Queue Label
A node that names your ComfyUI queue jobs — and does literally nothing else
- info
- info2
- info3
If you've ever stared at a ComfyUI queue full of eight entries that all just say 3f2a9c81... and had no idea which one is the 4K upscale and which is the anime LoRA test, this node is for you. Queue Label gives a queued job a human-readable name in the queue panel. That's its entire job. No outputs, no processing, no API calls - it's a sticky note that lives inside your workflow.
It ships inside ComfyUI-QueueControl, the extension that patches ComfyUI's built-in queue with pause/resume, a priority system, and save/load. That pack is where this node is actually useful - its whole pitch is giving you control over a FIFO queue that otherwise treats every job like an anonymous drone, and a name on each job is the first step to making that control legible.
How it works (the honest version)
Drop the node into a workflow and its execute() does nothing - the source is literally return {}. The trick is that QueueControl's panel code reads your workflow's prompt data when the job is queued, scans it for a node with class type QueueLabel, and grabs the text. ComfyUI stores the full workflow in the queue item, so the extension can read the label without ever executing the node.
Because the label is captured at queue time, it's frozen the moment you hit Queue. Change the label after the job is waiting and the panel won't update - re-queue if it matters.
It's marked as an output node, which normally forces ComfyUI to always run it (and its upstream graph) even when nothing else changed. Don't sweat the performance angle here: since it does nothing, it costs nothing. Free tag.
The two inputs
- label - a plain text field. Type whatever note you want to leave yourself. This is the one you'll actually set.
- info - optional, and it accepts any type, so you can wire almost any output into it. The panel then shows
label (info).
Here's the catch, and the author says it plainly: info can only show values that are already written into the workflow before execution - typed text, dropdown selections, fixed numbers. Anything a node would compute at runtime (reading a file, a random seed, a KSampler's output) doesn't exist yet while the job is sitting in the queue, so the extension traces the connection backward through the graph, up to ten hops, looking for a literal value to display.
What that means in practice: wire a model loader's output and you get the model name. Wire a latent and you'll usually get its width or resolution. Wire a Conditioning output and you'll probably get the prompt text sitting upstream of it - the author warns the whole prompt can get crowded, but it's also a fairly unique identifier. If you can't trace back to a literal, the info part just stays empty rather than erroring.
My advice: don't overthink it. Type a plain label and, if you have a stable seed generator or a fixed resolution, wire that into info for free extra context. Two jobs with identical labels get distinguished by that trailing number, which is exactly when it earns its keep.
Installing it
Install via ComfyUI Manager (search "ComfyUI-QueueControl"), or the manual route:
cd ComfyUI/custom_nodes
git clone https://github.com/seeker-ktf/ComfyUI-QueueControl.git
Restart ComfyUI. No dependencies, no model downloads - the pack explicitly patches ComfyUI's existing queue rather than replacing it, and installs nothing extra. That's genuinely nice: plenty of queue utilities drag in a pile of requirements, this one doesn't.
Gotchas
- It only displays values present at queue time, so it's near-useless for anything computed on the fly - that's the design, not a bug.
- Label is snapshotted when queued; edit it first, not after.
- The node only helps inside this pack's queue panel. Native ComfyUI shows you nothing extra - you need QueueControl installed for the label to surface anywhere.
Thin node, but the right one to reach for when your queue is ten deep and you need to know which job is which at a glance.
Inputs (7)
| Name | Type | Default | Description |
|---|---|---|---|
| label | STRING | — | |
| infoopt | * | — | |
| info_idxopt | INT | 00–50 | — |
| info2opt | * | — | |
| info2_idxopt | INT | 00–50 | — |
| info3opt | * | — | |
| info3_idxopt | INT | 00–50 | — |
Outputs (0)
No outputs