Debug Extra
See what ComfyUI actually handed your node when it ran
- extra_pnginfo
- prompt
- state
ComfyUI silently hands every node two things you never see: extra_pnginfo (the whole workflow graph) and prompt (the exact values that executed). Debug Extra is a window onto both. It dumps them as pretty-printed strings, along with a filtered per-node summary of widget values, so you can finally see what the backend actually sent - not what you think it sent.
Honest framing: this is a developer's tool, and the target audience is people writing custom nodes or debugging why a workflow misbehaves. If that's not you, it's still worth one look, because the "state" output is exactly what Batch State hashes under the hood - this node is the microscope, Batch State is the measuring tape.
How it works
It declares the hidden extra_pnginfo and prompt inputs, then pretty-prints them. The third output is the interesting one: it walks the workflow graph and builds a dictionary of each node's widget values, naming entries like Type(title).node_id so you can tell which node is which. Nodes whose type contains Debug, Show, Function, or Evaluate are skipped - same filter Batch State uses - so debug plumbing doesn't clutter the dump. It marks IS_CHANGED to NaN, forcing a re-run on every queue so the output reflects the current run rather than a cached one.
The outputs
- extra_pnginfo - the full workflow graph: nodes, positions, links, properties. Big, and honest about it.
- prompt - the executed prompt dictionary: each node's id mapped to the values that actually ran.
- state - the filtered per-node widget-value summary described above.
All three are STRING, so wire them into a text display node (like ShowText) or a text saver to actually read them.
Where you'd use it
- Custom node dev. If your node reads widget values from the prompt and they're not what you expect, dump
promptand see exactly what shape the data is in. - Workflow forensics. Why did that KSampler use seed X? What did the frontend send for this node's title? It's all in there.
- Verifying connections. The
stateoutput shows resolved values per node, which makes it obvious when a widget is actually a wire reference rather than a typed number.
Gotchas
- The outputs are verbose, and
extra_pnginfocan be genuinely huge on a big workflow. Read them in a text node with a scrollbar, not a one-line preview. - It's a debugging aid, not a workflow component. Nothing about it is wrong, but a graph you share doesn't need it, and the dumps will keep changing on every queue.
Install
Via ComfyUI Manager, search "hus' utils" (pack title: hus' utils for ComfyUI). Or manually:
cd ComfyUI/custom_nodes
git clone https://github.com/hustille/ComfyUI_hus_utils
Restart ComfyUI. No requirements.txt, no pip step, no model downloads - pure Python standard library, so there's nothing to break and nothing to audit beyond the few hundred lines of source.
Inputs (0)
No inputs
Outputs (3)
| Name | Type | Description |
|---|---|---|
| extra_pnginfo | STRING | — |
| prompt | STRING | — |
| state | STRING | — |