Show Text
Show Text — A Window Into Your Graph That Also Travels in the File
- STRING
What it's for
Something in your graph produces text and you want to see it - the prompt after a wildcard expansion, the caption a vision model wrote, the filename a node is about to use, the output of a string-mangling chain. ComfyUI's built-in way to inspect a value is to wire it to a Preview node, which is a click away from what you're looking at and tells you nothing about where in the run it happened.
Show Text draws the incoming string in a read-only box right on the node and passes it straight back out. It's a tap you drop inline: the wire keeps going, and the value is visible on the canvas while you work.
It's small enough that there's not much to say about it, which is the point. Either you want a window into a string or you don't.
How it works
One input, text (STRING), one output, STRING, same value. A list input shows one box per element and comes out as a list again, so you can park it on a BC_PromptList output and watch all twenty prompts at once instead of guessing what the wrapping did.
Two details worth knowing. The shown text is also written into the workflow metadata of saved images, so a graph you share carries the strings that were on the node - which is either the feature you wanted or a small information leak, depending on what the string contains. And it's registered as an output node, so it always executes. That's a double-edged trait: useful when you want to force an otherwise-unused branch to run, mildly annoying when a stray Show Text sitting on a slow branch makes your run do work you thought was cached away.
The box grows with the content rather than scrolling inside a fixed frame, so a long caption makes a tall node. Resize it; the node is not precious about its own shape.
When you'd reach for it over the alternatives
For watching a string change as you edit, this is the least-friction option in the pack. If what you actually want is a log - a running record across many runs, or something you can copy out in bulk - you want a node that appends to a file or writes to the console, not this one. And if you're already running rgthree, its display nodes cover similar ground; no reason to install a pack for this alone.
The real reason to have it in your toolbox is debugging. When a prompt-dependent branch misbehaves, half the time the problem is that the string reaching the CLIP encoder isn't the string you think it is. Put a Show Text in front of the encoder, and the question answers itself.
Install
Manager: search ComfyUI-BCNodes, install, restart. Manual:
cd ComfyUI/custom_nodes
git clone https://github.com/0xBeycan/ComfyUI-BCNodes
Nothing extra to install - this node needs none of the pack's optional pip dependencies (postfx, caption-audit are for the PostFx and Caption Audit nodes). After a restart, type BCNodes in the node library and you'll find Show Text under BCNodes/text, alongside Prompt List, which pairs with it nicely.
Where people get burned
It doesn't stop at nothing - it's an output node. Because it always executes, it forces whatever is upstream of it to produce a value. That's occasionally exactly what you want (you need that branch to run so its side effect happens) and occasionally the reason a workflow that "should" be cached re-runs a load or a download. If a run got slower after you added a debugging node, suspect this first.
The text isn't editable. It reads; it does not write. If you need to nudge a string between two nodes by hand, you want a primitive string node, not this.
Lists come out as lists, and that propagates. Wire a list in and the list goes out, so everything downstream runs once per element. If you just wanted to eyeball one element, you've accidentally changed how many times your sampler runs. Use BC_PromptList's body_text output or a single-element source if that matters.
Inputs (1)
| Name | Type | Default | Description |
|---|---|---|---|
| text | STRING | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| STRING | STRING | — |