Nodes/XENodes/Show Any
ComfyUI Node

Show Any

See what's actually flowing through that wire

By xeinherjer-dev·Created 6 months ago·Updated a day ago· 2
Show Any
  • value
  • any

Every time a workflow hands you a wrong result and you have no idea why, you wish you could just look at a wire. That's this node. Show Any accepts absolutely any data type on its single value input and prints it as text right on the node - strings print as-is, numbers as numbers, and complex objects get pretty-printed as JSON. It's the debugger's stethoscope, and it's the XENodes-pack answer to rgthree's Display Any for people running Nodes 2.0.

The mechanism is worth understanding because it explains two of the node's habits. It's an output node, so it always runs and it terminates a branch - nothing downstream of it gets executed, because the engine treats it like a Preview Image. It serializes your value to a string and shoves that text back into the workflow's saved data (widgets_values), which is why the display persists: run once, and the last result stays on the node when you save the workflow or drag it back out of a PNG. It also has to reach into the workflow JSON to find itself, and it does that recursively - the "composite ID support" in the README is the code that hunts the node down even when it's nested inside a Nodes 2.0 Group Node subgraph, so the display survives being buried.

The I/O:

  • value (any type) - plug literally anything in. A latent won't print as pixels, but you'll see its shape and dtype, which is usually what you needed.
  • any output - passes the input straight through, unchanged. You can tap a wire with Show Any and keep the data flowing to its real destination. That pass-through is the whole reason it's an output node and a passthrough: you can watch a value mid-pipeline without forking your graph.

Where it earns its keep: before a KSampler, to confirm the conditioning actually changed after a LoRA; after a text node, to see the literal string being sent to a prompt parser; at the end of any node that "silently does nothing," to check whether it's outputting None. That last one is the classic - a muted or empty branch feeds None downstream and everything downstream quietly no-ops. Show Any makes the nothing visible.

Install is the standard pack routine: search "ComfyUI-XENodes" in ComfyUI Manager, or

cd ComfyUI/custom_nodes
git clone https://github.com/xeinherjer-dev/ComfyUI-XENodes.git xenodes

then restart ComfyUI. No models, no extra pip deps for this node.

Honest gripes: it's not a rich inspector. A tensor shows as an array summary, not a histogram, and if you need to inspect a whole batch of images you're better off with a proper preview node. And there's the pass-through trap - because Show Any forwards its input, beginners sometimes leave it in the final path expecting it to do something to the pixels. It doesn't; it's a scope, not a filter. Finally, remember the pack loads as one unit: if no XENodes nodes appear at all after install, check the console for a sibling import failure (SaveAudio needs PyAV's av) before assuming the install broke.

Categoryxenodes/utils

Inputs (1)

NameTypeDefaultDescription
valueCOMFY_MATCHTYPE_V3

Outputs (1)

NameTypeDescription
anyCOMFY_MATCHTYPE_V3