String
The String node that just holds text — boring, and you'll use it constantly
- string
The FairLab String node is the most boring node in a 58-node pack, and it's probably the one you'll reach for most. It's a text box that outputs the text. That's it. But once you've built a workflow where the same prompt has to feed a CLIP encoder, a filename, and a note node, "just a text box" stops being a triviality and starts being the difference between typing a prompt in three places and defining it once.
The underlying problem is the classic "one source, many consumers" pattern from ComfyUI's node plumbing. Core ComfyUI solved this with PrimitiveStringMultiline; FairLab ships its own typed version so the whole pack uses the modern IO.* annotation style and plays nicely with the current type system. If you've been converting CLIP Text Encode's prompt widget to an input so you can wire one authoritative string into it, this node is the source you drop on the other end.
What it does
It's a single multiline text box with one output. Type a prompt (or paste one), and the string output carries it to anything expecting a STRING socket. The mechanism is a one-liner - the node's function just returns the value it was given - but the multiline flag is the feature that matters: this is the input you actually write a paragraph into, not a one-liner.
The input widget is the field you'll actually set. The output is one string socket. Wire it into a CLIP Text Encode, a text-file saver, or another FairLab string node and you're done.
Where it fits
Pair it with String Append when you need to bolt a quality tag onto a base prompt at one spot instead of hand-editing every encode. Pair it with Save String To Directory when you want the same text persisted to disk. And if you're on the fence about whether your template resolved the way you think, stick a Show String in the middle of the wire to see what's actually flowing.
One thing worth knowing: it's flagged as an output node, so ComfyUI treats it as a place where execution can end - same category as Preview Image. In practice that means the graph will run down to it, which is exactly what you want when a string feeds something.
Installing it
FairLab is one pack with 58 nodes, and you get all of them at once:
cd ComfyUI/custom_nodes
git clone https://github.com/yanhuifair/ComfyUI-FairLab.git
cd ComfyUI-FairLab
pip install -r requirements.txt
Then restart ComfyUI. Or just search "ComfyUI-FairLab" in ComfyUI Manager and click install - same result, less typing. No model downloads, no API keys; the heavy dependencies in this pack are mostly for the image and translate nodes, so a pure text workflow pulls in nothing extra.
Troubleshooting
There's not much to break here. If the node doesn't show up after install, restart ComfyUI and check the terminal for an import error - the usual cause is a missing dependency for one of the other nodes in the pack (the README's fix is pip list | grep -E "opencv|googletrans|perfect-pixel"). If the node is there but you can't connect it to something, check the socket type - it's STRING, and it won't plug into an INT or *-typed socket.
Inputs (1)
| Name | Type | Default | Description |
|---|---|---|---|
| string | STRING | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| string | STRING | — |