ComfyUI Node

Debug Extra

See what ComfyUI actually handed your node when it ran

By hustille·Created 3 years ago·Updated 2 years ago· 5
Debug Extra
    • 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 prompt and 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 state output 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_pnginfo can 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.

    Categoryutils/hus

    Inputs (0)

    No inputs

    Outputs (3)

    NameTypeDescription
    extra_pnginfoSTRING
    promptSTRING
    stateSTRING