Show Any Lite (GeN13)
The one-line inspector you'll actually leave in the graph
- any
- STRING
- any
Debug nodes have a size problem. The useful ones are big enough to read, which means they eat canvas, which means you delete them, which means the next time you need one you've lost the wiring you'd worked out. So you end up with a library of half-working preview branches instead of one honest inspector.
Show Any Lite (GeN13) is the small version of the pack's any-type inspector: one line by default, drag it taller if you need more, accepts anything, passes it through. Small enough to leave on the canvas permanently.
How it behaves
Both inputs are optional. Drop in the typed content box and it's a text note. Connect any - any type at all - and the node displays what's on the wire: strings and numbers as themselves, floats to six decimals, lists and dicts formatted as JSON, tensors as a one-line size summary rather than a tensor repr.
Outputs are the pair you'd expect from the Show Any family:
STRING- the text as shown in the box.any- the upstream object, unchanged. A router, not a converter, so it can sit between two nodes without altering what flows.
The compact framing is the point. Where the full Show Any gives you eight lines, counters, manual/auto editing and annotation duties, this one gives you the value and gets out of the way. Dragging it taller is a per-node UI thing; you're not editing a widget value to see more.
Where it fits
Wiring it inline in front of a wildcard input is the classic use. Any node with a * socket can't be inspected with normal previews - you can't preview a dict - and this tells you whether you're passing a string, a list of strings, or a serialised JSON blob that merely looks like a string. That distinction causes an enormous amount of confused debugging in LLM and prompt-chain graphs.
Second: sanity-checking numbers where they enter the graph. A Remote Int or a Counter feeding a seed, watched through a Show Any Lite, tells you instantly whether the batch is actually incrementing or whether every queue is using the same value.
Third: it's a text node for when you need a constant. Because content is used as the output when nothing's connected, it works as a plain string source without adding a second kind of node to your vocabulary.
Installing
Manager → search GeN13 → install → restart. Manual:
cd ComfyUI/custom_nodes
git clone https://github.com/heigen13/ComfyUI-GeN13
pip install -r ComfyUI-GeN13/requirements.txt
One requirement, nvidia-ml-py, used by the pack's monitor strip beside the Run button. This node needs nothing beyond ComfyUI itself. No models, no downloads.
The fine print
It's an output node - it always runs, and the cache works backward from output nodes, so an inline Show Any Lite forces its upstream branch to execute every queue. That's generally what you want for an inspector and occasionally what you don't want for a graph you're trying to make faster. If a workflow feels slower than it should, count the previews.
Being small has a cost too: one line truncates. If you're checking a 400-token LLM prompt, drag it taller or use Show Any, and if you want the text kept with the workflow as documentation rather than just for reading, the fuller node is the one built for that.
And like any any-type node, it doesn't validate what passes through. It'll show you that you're sending a string when the next node wanted a number - it won't stop you. That's the job: be the witness, not the bouncer.
Inputs (2)
| Name | Type | Default | Description |
|---|---|---|---|
| anyopt | * | Input: any type. Text, numbers and JSON are shown as is; IMAGE and other tensors show a size summary. | |
| contentopt | STRING | Content: used as the output when any is not connected; type directly in the box. |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| STRING | STRING | Text: as shown in the box. |
| any | * | Passthrough: the upstream object, unchanged. |