String Passthrough
The node you attach when you just want to see the string
- text
ComfyUI's graph is great at moving data and terrible at showing it. When a prompt comes out of an LLM node as a STRING, you have two options: wire it into a text encoder and hope, or attach a display node and actually see it. String Passthrough is the second option - the pack's answer to "I want to know what's on this wire."
It's an output node in the ComfyUI sense: its job is to surface the value in the UI. You feed it a text string (forced input, so it wants a wire, not typing), and it echoes it back out the text output while also pushing the value to a preview widget on the node so you can read it in the graph. Technically it's the JS frontend that does the previewing - the Python side marks the node as an output and hands the text to the UI. Functionally: wire in, look at it.
Inputs and output
- text - required
STRING, wired from whatever's producing the text. - preview - an optional widget-only field. Here's the honest bit: it's cosmetic. The code comment calls it "widget-only - updated by JS after execution, never used by Python." You don't type into it; it's the display.
Output: text (STRING), unchanged - hence passthrough.
Installing
ComfyUI Manager → "StudioDeep", or:
cd ComfyUI/custom_nodes
git clone https://github.com/studiodeep-ai/comfyui-studiodeep StudioDeep
pip install -r StudioDeep/requirements.txt
Restart. No keys, no models, nothing.
Troubleshooting
- The node doesn't seem to do anything - it's a monitor, not a transformer. If the string looks wrong, the bug is upstream.
- Preview looks stale - the preview is refreshed by the frontend extension after execution. If you're running headless or an old frontend, the widget may lag even though the output value is correct. Check the
textoutput, not the widget. - It can't convert types - if you need a
STRINGfrom a number or an object, that's a different node's job.
There are fancier string-viewer nodes in the ecosystem; this one is just the pack's flavor, and for the StudioDeep workflow - where LLM output quality is the whole game - being able to eyeball every prompt before it hits a sampler is worth the three seconds of graph space it costs.
Inputs (2)
| Name | Type | Default | Description |
|---|---|---|---|
| text | STRING | — | |
| previewopt | STRING | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| text | STRING | — |