Display Text (FormInput)
See what's actually in that string before it wrecks your prompt
- displayed_text
Every ComfyUI user has hit the moment where a string goes into something and comes out wrong, and you have no idea what the wire was actually carrying. Display Text (FormInput) is the node you drop in to find out. It shows a string's value right on the graph so you can see, with your own eyes, what a prompt, a filename template, or a concatenated mess of text has become by the time it reaches the next node.
How it works. This is the display node of the FormInput pack, and it's built the way ComfyUI display nodes are supposed to be. Look at nodes.py and you'll see OUTPUT_NODE = True - that's the same flag PreviewImage uses. It tells ComfyUI this node is a terminal output, so it always executes even when nothing downstream is consuming it. That's exactly what you want from a "show me" node; a plain mid-graph node could be pruned out of execution and silently show you nothing.
It takes one required input, text_to_display (a multiline STRING, defaulting to "Text to display"). The return is the classic ComfyUI output-node pattern: a {"ui": {"text": [...]}} dict, which is how a node gets values to the frontend to render, plus the text passed through as a regular STRING output named displayed_text. So it's a display and a pass-through - you can drop it in the middle of a chain to inspect, without breaking the flow. One honest caveat, straight from the author's code comment: the text renders in the node "if supported" by your frontend. Don't expect a popup or a toast; on most setups it appears in the node's own UI, small but readable. If you're automating via the API, the value also lands in the response because it's an output node.
When you'd actually reach for it. Debugging string plumbing: after a concat or replacement node, or before a value goes somewhere expensive. It's also a tidy way to surface text in a workflow you share - a visible label that says what's being sent, which fits the pack's whole "make workflows into forms people can read" pitch.
Install. Same pack as the others - search "FormInput" in ComfyUI Manager, or:
cd ComfyUI/custom_nodes
git clone https://github.com/monkeyWie/ComfyUI-FormInput
Restart and you'll find it under "FormInput". No requirements.txt, no models, nothing that can conflict with your other nodes.
The gotcha. Because it's an output node, it forces its entire upstream branch to run every time. Great for a debug node; mildly annoying if you leave it parked in a big production workflow, because that branch is now pinned to always execute. If you can't see the text on the node, resize it - the display area is small. And remember the default text ("Text to display") ships with the node, so if you wire it up and do nothing, that's the placeholder you'll see, not your actual string.
Inputs (1)
| Name | Type | Default | Description |
|---|---|---|---|
| text_to_display | STRING | Text to display | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| displayed_text | STRING | — |