Pass String
The one-node buffer that un-breaks bypassed workflows
- STRING
Pass String does one thing and does it perfectly: takes a string in and gives the exact same string back out. It's a pass-through node - return string, is literally the whole implementation. So why does it exist? Because in ComfyUI, some nodes stop feeding their outputs correctly when they're bypassed, and a chain of downstream nodes that doesn't honor bypass can end up with a dead or empty input. Placing a passer in front of such a node is the classic workaround.
How it works
The input is a STRING with forceInput, so it's a wire-only port (the default: "" only matters if nothing's connected). Output is the same string. In the RvTools README the author is explicit about the original motivation: passers were created to sit in front of nodes that "had problems getting information from bypassed nodes" - the same gap rgthree's Display Any node used to trip over. In a managed group, a passer also gives you a second node to attach to (groups need at least two members), and lets you fan one string out to several consumers inside the group.
The inputs that matter
string- wire a string into this. The only input.- Output
STRING- identical text, now guaranteed present even when its source is bypassed or grouped.
Use it as a buffer before a node that reads a widget value instead of honoring a bypassed upstream, or as the anchor node that makes a group containing a single text node actually exist.
Installing
cd ComfyUI/custom_nodes
git clone https://github.com/r-vage/ComfyUI-RvTools_v2
Restart ComfyUI or install via ComfyUI Manager (search "ComfyUI-RvTools_v2"). No models, no extra dependencies.
Honest take
There's a genuine question of whether you need this. Modern ComfyUI and well-behaved custom nodes rarely require pass-through buffers, and a passer adds a node to a graph that a reroute or a direct wire would handle. The author's own framing is "I adopted these because users' workflows kept breaking on bypassed nodes" - so if your graph already works, skip it. Where it earns its keep is large group-based workflows where you want a stable, always-executed anchor point for an input that gets muted and unmuted with the group. And as with the rest of this pack: it's deprecated in favor of ComfyUI_Eclipse, and if a shared workflow asks for a v1 RvTools node, that repo is gone - the v2 name here is the one that installs cleanly.
Inputs (1)
| Name | Type | Default | Description |
|---|---|---|---|
| string | STRING | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| STRING | STRING | — |