Show Any (UTK)
A logic probe that shows you what's actually flowing through a wire
- data
- data
When a workflow doesn't do what you expect, the first question is usually "what is actually coming out of that node?" Show Any is the answer: wire any output into it and it prints the data's type and content in the node body, then passes the data through unchanged. It's a logic probe for your graph - you drop it on a wire you're suspicious about, run the queue, and read the verdict without touching anything else.
How it works
It's a straight port of comfyui-easy-use's showAnything idea, which is a good sign - that node has been the community standard for this for years. The input accepts any type (the * wildcard), and on execution it formats whatever it got: strings and numbers show their values, lists and dicts get pretty-printed JSON, and tensors - which is most of what flows through ComfyUI - show shape, dtype, device, and min/max values. That last bit is the genuinely useful part: a tensor that should be an image in 0..1 range coming out as min=0.0 max=14.3 tells you in one glance that something upstream is broken.
The data output is a passthrough of the exact input, so you can splice the node inline without changing behavior. It also stashes the last displayed value into the workflow JSON, so when you save and reopen a workflow the readout is still there instead of blank.
The inputs and output
Just two things, both optional and both called data:
data(input) - any type. Leave it empty and the node still renders, showingNoneType.data(output) - the same data, unmodified.
That's the entire interface, which is the point: a probe node shouldn't add friction.
Installing it
Shared pack install - ComfyUI Manager (search "ComfyUI-UniversalToolkit") or:
cd ComfyUI/custom_nodes
git clone https://github.com/whmc76/ComfyUI-UniversalToolkit
pip install -r requirements.txt
Then restart. Zero dependencies beyond what ComfyUI already has.
Where people get burned
- It's a debugger, not a previewer. For images it prints tensor shape and value ranges, not a picture. If you want to see pixels, reach for a preview node; if you want to know why the pixels are wrong, this one.
- Don't leave a dozen of them in production workflows. There's a real community debate about any-type pass-through nodes - routing anything anywhere makes graphs harder to debug, and Show Any is the family. It's harmless as a temporary probe, clutter as a permanent fixture. Use it to find the bug, then delete it.
- Tensor readouts show min/max for the whole tensor, so a single
nanin a batch will show up - that's a feature, not a bug.
For "why is my string empty / my tensor garbage / my list wrong" debugging, it's the fastest answer in the pack.
Inputs (1)
| Name | Type | Default | Description |
|---|---|---|---|
| dataopt | * | 输入任意类型的数据 |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| data | * | — |