Light-Tool: Show Anything
The universal debug node — dump any value on the graph and pass it through
- anything
- output
Show Text is for strings. This is for everything else. Show Anything takes a wildcard (*) input of literally any type, renders it in a read-only monospace widget on the node, and - here's the useful part - passes the exact same value through its output, unchanged. It's the node you drop on a wire when you have no idea what's actually flowing through it, whether that's a JSON dict from an API node, a list of tags, or the output of some wildcard-typed node that defies classification.
How it works
When the workflow runs, the node formats its input for display: strings show as-is, and lists/tuples/dicts get pretty-printed with json.dumps (indented, Unicode-safe) so nested structures are actually readable. The JS side then renders that in a monospace read-only box right on the node. Meanwhile the output passes the original value straight through - so Show Anything is simultaneously a debug viewer and a passthrough that doesn't force you to rewire your graph to inspect something mid-stream.
The honest limits
The name overpromises slightly, and knowing where it gets thin will save you a confused afternoon:
- Bare numbers can render blank. The formatter handles strings and containers beautifully; a raw
intorfloatisn't in its formatting branch, so the widget can come up empty even though the passthrough output still carries the value. For numbers, convert to a string first or check the value on a downstream node. - It's a viewer, not an editor. Read-only by design. Editing belongs in an input node.
- Pass-through is identity, not conversion. Don't expect it to turn a dict into a string for the next node - the output is whatever you fed in, in its original type.
Where it fits
Debugging, full stop. API returns, JSON pipelines, node outputs of indeterminate type - this is the "what am I actually holding here?" node. It pairs well with the pack's own JSON tooling: deserialize a JSON string, show the object to confirm the shape, then feed it onward or serialize it again. In a hobbyist graph it's also just satisfying to see what a mystery node actually emits.
Installing it
Part of ComfyUI-Light-Tool by Hmily. ComfyUI Manager → search "ComfyUI-Light-Tool" → Install → restart, or:
cd ComfyUI/custom_nodes
git clone https://github.com/ihmily/ComfyUI-Light-Tool
pip install -r requirements.txt
# restart ComfyUI
Pure Python plus a small JS widget, no models, offline.
Where people get burned
- Blank widget on a number. The single most common "is it broken?" moment with this node - and no, it's not broken, the value is still on the output.
- Not updated after the run. Like all widget-viewer nodes, it only populates on execution. Run the workflow.
- Expecting a formatted string output. The pretty-print is for the display, not the wire. If you need a JSON string out, use the pack's Serialize JSON Object instead.
One node, one job: show me what's here, and don't get in the way while I look.
Inputs (1)
| Name | Type | Default | Description |
|---|---|---|---|
| anything | * | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| output | * | — |