Text
A text constant you can actually see, no extra pack required
- text
Text constants are the most basic building block in ComfyUI, and yet the stock way to make one is fiddly: a primitive widget that hides its value until you dig into the node, or a reroute with a default you keep forgetting. Primitive Text from ComfyUI Extended is the stripped-down version - one multiline box, one STRING output, no surprises.
It's the kind of node that shouldn't need to exist, but the author of this pack decided it was worth shipping, and honestly it is. When a text prompt or a filename needs to be visible on the canvas and available as a proper STRING wire, this is the cleanest version of that.
How it works
One required input, text (STRING, multiline). The node returns it straight through as the text STRING output. That's the entire implementation - read it, output it. The multiline box means long prompts, negative-prompt blocks, or filename templates don't turn into a single cramped line.
The value is plain in the node's widget, no clicking into properties to find it, which is the quiet advantage over ComfyUI's own primitive handling. It's also a normal node with a real STRING output, so it composes everywhere: into a CLIP text encode, a text concat, a save path, a preview.
Install
Shared with the rest of this dependency-free pack:
cd /path/to/your/ComfyUI/custom_nodes
git clone https://github.com/rookiepsi/comfyui-extended.git
Restart ComfyUI, find it under comfyui-extended/primitive. Or install "ComfyUI Extended" through ComfyUI Manager and restart. No models, no pip packages - the pack's own pyproject.toml declares zero dependencies.
Common issues
- It's a constant, not a variable. There's no method switching like the pack's Integer primitive - this one just outputs what you typed. If you want cycling values, that's what Integer is for.
- Long text still shows. Multiline input means line breaks survive; if a downstream node chokes on a newline, that's the downstream node, not this one.
- Empty string is a valid value. If you leave it blank, you'll output
"", which some downstream nodes treat differently from a missing input.
The honest take: you already had ways to make text. What this adds is visibility - the value sitting right on the node, ready to be wired, no properties panel involved. For a pack that's all about quality of life, that's exactly on-brand.
Inputs (1)
| Name | Type | Default | Description |
|---|---|---|---|
| text | STRING | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| text | STRING | — |