View Text (Streaming)
Actually see what your VLM is saying
- text
- characters
- words
- lines
- stats_json
Here's a ComfyUI frustration every VLM user hits: your caption node returns a STRING, and unless you wire it somewhere that displays text, you have no idea what it said. ViewText is the pack's answer - a read-only text display node. You connect any string output to it and the text appears on the node in the graph, which means you can finally see what your LLaVA caption or your prompt generator produced before you commit it to the sampler.
What it's for
Debugging and inspecting. After any VLM, LLM, or prompt node in this pack, drop a ViewText on the output so the result is visible in the workflow instead of living invisibly in the wire. It's the text equivalent of a preview image node, and it's genuinely the node the pack's own README tells you to use for seeing string outputs.
How it works
One string in, and it renders it in a scrollable widget on the node. Because it's marked as an output node, ComfyUI will keep it "in the loop" and display the result after each run. The current version also passes the string through on the output side, so you can hang it mid-graph - view and continue the flow - without breaking anything. It streams in the frontend too, so long VLM responses appear progressively rather than all at once.
Input and output
- text - any
STRING. Caption output, prompt generator output, JSON from the structured nodes, whatever.
Output is the same string it received - so it's safe to insert anywhere, not just at the end of a workflow.
Install
The trivial node gets the trivial install:
cd ComfyUI/custom_nodes
git clone https://github.com/gokayfem/ComfyUI_VLM_nodes
python -m pip install -r ComfyUI/custom_nodes/ComfyUI_VLM_nodes/requirements.txt
Or ComfyUI Manager → search VLM_nodes.
The honest take
This is a utility node with no magic, but it fixes a real workflow gap. Between ViewText for reading and the pack's SimpleText for writing, you get the two string ends of any graph covered without pulling in another node pack. If you already have a display-text node you like, you don't need this one - a string is a string. But for anyone living inside VLM Nodes, it's the fastest way to stop guessing what the model said.
Inputs (1)
| Name | Type | Default | Description |
|---|---|---|---|
| text | STRING | — |
Outputs (5)
| Name | Type | Description |
|---|---|---|
| text | STRING | — |
| characters | INT | — |
| words | INT | — |
| lines | INT | — |
| stats_json | STRING | — |