Preview String (Bypass)
See the text that's actually flowing without breaking the wire
- string
Ever wished you could peek at the text flowing between string nodes without cutting the connection to whatever's next? That's this whole node. PreviewStringBypass sits inline in a string chain, shows you what's passing through, and passes it straight along. The name tells you exactly how to think about it: it's a preview you can live with, and a bypass point when you don't need to look.
ComfyUI's built-in Preview Text is a terminal node - it displays a string and ends there. Drop it in the middle of a workflow and you've broken the wire; you have to reroute around it. This one doesn't have that problem. It takes a string in, echoes the exact same value out, and renders read-only text boxes on the node face so you can actually see the current value on the canvas. Right-click bypass works like any node if you want to silence it temporarily without deleting it.
Where you'll actually use it
String plumbing gets opaque fast in ComfyUI - which is why this pack has a whole family of text nodes. Reach for it when you want to verify what's really coming out of something like the pack's String Format or CSV Random Picker before that text hits a CLIP text encode, or when you're building a prompt template with {} placeholders and the substitution isn't doing what you expect. It's a debugging friend, not a fancy tool - the kind of node you add, check once, and leave bypassed forever.
One detail that earns its keep: it's list-aware. INPUT_IS_LIST and OUTPUT_IS_LIST are both on, so a list of strings from a batch-oriented workflow flows through untouched instead of erroring. Feed it ten prompt variants and you get ten read-only boxes to eyeball at once.
Inputs and outputs
Only two things exist here, and you can't mess either up:
string(input) - note it'sforceInput: you can't type into it, it must be wired from another node. That's deliberate; it's a probe, not a text box.string(output) - the same value, list-capable, ready to feed the next node.
If nothing's connected to the input, there's nothing to show - that's expected, not a bug. For a standalone display of a single value you're better off with the core Preview Text node; this one is for when the string has somewhere to go.
Installation
It's part of the lhaoyun6/ComfyUI-lhyNodes pack - the same suite as String Format, CSV Random Picker and the WanAnimate tools. Easiest path:
cd ComfyUI/custom_nodes
git clone https://github.com/lihaoyun6/ComfyUI-lhyNodes.git
python -m pip install -r ComfyUI-lhyNodes/requirements.txt
Or search "lhyNodes" in ComfyUI Manager and restart. The pack's requirements (ultralytics, opencv-python, yarl) are for its heavier nodes, not this one - a string pass-through pulls in nothing extra. You'll find it under lhyNodes/Utilities.
One small gotcha: the README's node list hasn't caught up with every node in the pack, so don't panic if this one isn't documented there. If it shows up in your right-click menu after install, it works. This is a genuinely thin utility node, and that's fine - some of the best tools in a workflow are the ones you forget are there because they never cause trouble.
Inputs (1)
| Name | Type | Default | Description |
|---|---|---|---|
| string | STRING | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| string | STRING | — |