Show Any [darkilNodes]
One preview node that renders whatever you throw at it — and keeps its history across a page reload
- source
- value
ComfyUI's stock Show Text is fine until you plug a dict into it and get a wall of escaped braces. Show Any [darkilNodes] is the fix: a universal preview node that looks at what's actually connected, picks a renderer based on the value's runtime type, and displays it properly - while passing the value through unchanged on a value output so you can drop it mid-chain without breaking anything.
It's the node you reach for when you're debugging: checking what a node really emitted, eyeballing an intermediate image, watching a list of numbers tick by, or confirming a string is actually JSON before it hits something that expects JSON.
How it works
The node sniffs the value and renders accordingly:
- Text / numbers - selectable, copyable text.
- JSON (a dict, or a string that parses as JSON) - a collapsible tree with a Tree / Raw toggle.
- Boolean - a big green check or red cross.
- Number list (
[1, 2, 3]or a numeric-array string) - a read-only equalizer chart with value labels and auto-range. - Matrix / list of lists - stacked mini-equalizers, 10 per page with prev/next pagination.
- Image(s) / mask - inline previews; masks render as grayscale.
- Video - an HTML5 player; Audio - an HTML5 player.
- Markdown - rendered, if you pick Markdown in the
viewcombo.
Latents don't get a preview - you get a compact text summary instead, which is honest about what a latent tensor is. For plain strings there's a view combo (Auto / Text / Markdown / JSON): Auto shows a JSON tree when it parses, an equalizer for numeric arrays, otherwise plain text.
The signature feature: history that survives
Where this node beats every other debug node is persistence. The last 20 values are kept per node, whatever their type. The value survives a frontend redraw - coming back to the tab, switching workflows, anything that makes the graph rebuild - because the history lives outside the node and the last value is written back into the node itself. A value restored that way is labeled restored until the node runs again.
There's a history bar above the panel: < > steps one value, >| jumps to the newest, and x forgets everything except what's on screen. New values never steal the view from an older one you're still reading - the counter turns orange and >| takes you to the newest. The right-click menu has forget the value saved in the workflow, forget it on every Show Any node (graph-wide), and stop keeping the value in the workflow - after that the bar says not saved, and that's the node property showany_keep you can also flip in the properties panel. Whatever you do, the copy on screen is left alone.
Inputs and outputs
source(ANY, optional) - the value to display.value(ANY) - the input passed through unchanged.
One input, one pass-through output. It's an output node, so it forces a UI update when it runs - normal ComfyUI behavior, just know that dropping it at the end of a heavy chain runs the whole chain.
Install
It ships in comfyui-darkil-nodes, a zero-dependency pack - no Python packages, no model downloads:
- ComfyUI Manager: search "darkil" / "comfyui-darkil-nodes", or
cd ComfyUI/custom_nodes && git clone https://github.com/pytraveler/comfyui-darkil-nodes.git, then restart.
The node shows up under darkilNodes/logic.
Gotchas
Big values get truncated so the browser doesn't choke: text at 200k chars, number lists at 512 points, matrices at 200 series, image batches at 16 previews - each flagged with a truncated note. One thing to keep in mind: the pack is brand new (v0.3.0, mid-2026, author-driven so far), so if the history bar ever feels like overkill, remember the showany_keep property - you can turn the whole save-to-workflow behavior off and get a clean, no-strings preview node. That's the part I'd actually reach for: a debug node that shows you real values and doesn't lose them when you glance at another tab.
Inputs (1)
| Name | Type | Default | Description |
|---|---|---|---|
| sourceopt | * | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| value | * | — |