Text Bridge
Pass text through, or override it by hand
- text_output
A little text hub that solves an annoyingly common ComfyUI problem: sometimes you want to use the text a previous node produced, and sometimes you want to type your own - and you don't want to rewire the graph every time you switch. Text Bridge does both from one node. Leave its text field empty and it passes through whatever text comes in; type something in the field and it uses that instead. One node, three modes, no rewiring.
It's the kind of quality-of-life node that's invisible until you need it, then becomes a fixture. Great for workflows where an upstream node (an LLM, a caption generator, a prompt builder) usually drives the prompt but you occasionally want to take the wheel and hand-write one.
How it works
There's a multiline text_input field on the node and an optional passthrough_text input. The behavior:
- Passthrough - something wired into
passthrough_text,text_inputleft empty: the incoming text goes out unchanged. - Manual override - you type into
text_input: it uses your text and ignores the passthrough. - Standalone - nothing connected to
passthrough_text: it's just a plain text input node.
So the single rule to remember is typed text wins. An empty field defers to the input; a filled field takes over.
The inputs and outputs that matter
text_input- the multiline field. Empty = defer to passthrough; filled = override.passthrough_text(optional) - text coming from another node.text_output- the resulting string, out to a CLIP Text Encode or wherever your prompt goes.
How to install it
ComfyUI Manager → search ControlAltAI Nodes → install → restart, or:
cd ComfyUI/custom_nodes
git clone https://github.com/gseth/ControlAltAI-Nodes
then restart. No dependencies - it's string handling.
Common issues
The one gotcha is the override rule biting you by surprise: if you typed something into text_input earlier and later wonder why the upstream text isn't coming through, it's because a non-empty field always wins. Clear the field to go back to passthrough. Whitespace counts as content in most implementations, so a stray space can look "empty" but still override - if passthrough seems dead, make sure the field is truly blank. Otherwise it does exactly what it says, and it's a tidy way to make a prompt slot that's usually automated but occasionally manual.
Inputs (2)
| Name | Type | Default | Description |
|---|---|---|---|
| text_input | STRING | — | |
| passthrough_textopt | STRING | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| text_output | STRING | — |