SaltDisplayAny
A pass-through debug node that prints whatever you plug into it
- input_value
- output
The "what is actually in this wire" node. Plug literally anything into input_value - a string, a number, a list, a dict, whatever some other custom node handed you - and SaltDisplayAny renders it as readable text right there on the canvas, no console-watching, no separate debugger. Every serious node pack ends up shipping something like this eventually, because ComfyUI's graph gives you no built-in way to peek at a value mid-pipeline without routing it into a Save or Preview node that wasn't built for the data type you actually have.
How it works
It's a pass-through: whatever comes in on input_value gets rendered as text for you to read, and the same value goes right back out on output unchanged. That means you can leave it inline in a working graph permanently, as a "check this" tap, rather than having to unplug it once you're done debugging.
The one setting that isn't just "everything," double_linebreaks, controls whether double line breaks in whatever text it's displaying get preserved as paragraph spacing rather than collapsed - mostly matters for long strings like prompts or JSON dumps where readable spacing helps.
The inputs and outputs that matter
input_value(required,*) - accepts any type. This is the whole node.double_linebreaks(optional, BOOLEAN, default true) - formatting toggle, not functional.
Output is output (*), the same value passed straight through, so it doesn't break your pipe if you leave it plugged into the middle of a working chain.
How to install it
ComfyUI Manager: search SaltAI-Open-Resources or SaltAI, install, restart. Manual:
cd ComfyUI/custom_nodes
git clone https://github.com/get-salt-AI/SaltAI
then restart. No dependencies worth mentioning - it's a pure display node.
Common issues & troubleshooting
It shows something unhelpful, like a raw object reference instead of readable text. You've handed it a Python object with no clean string representation - a raw tensor, a model object, a custom class instance. That's a limit of any generic display node, not specific to this one; for images or tensors, reach for a proper Preview Image node instead.
It keeps firing even though you thought you'd disconnected it. This node is marked as an output node internally, so it executes and renders whenever it's part of the graph, whether or not anything downstream actually consumes its output - don't be surprised to see it run on every queue.
Text looks cramped or oddly spaced. Toggle double_linebreaks - it's the only thing controlling how the rendered text is formatted, and the "right" setting depends on whether you're displaying a short value or a long block of text like a prompt.
Inputs (2)
| Name | Type | Default | Description |
|---|---|---|---|
| input_value | * | — | |
| double_linebreaksopt | BOOLEAN | true | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| output | * | — |