Lumi Text Input
The multiline text box you were about to build yourself
- text
Every pack ends up with one of these eventually, because every workflow needs it: a node that is just a multiline text box with a STRING output. Lumi Text Input is that node. You type text, it outputs the same text. No transformations, no tokens, no cleverness - which is precisely the point, because a plain, dependable text source is the load-bearing piece under a lot of graphs.
Why not just use the widget on the consuming node? Because ComfyUI doesn't always let you. Nodes that take forceInput string inputs (like Lumi Wrap Text or the LLM processors) want a connection, not a widget - and even where a widget exists, putting the text in one named input node means you can change the text once and have it feed several consumers, or share a workflow where the person loading it can edit the prompt in a single obvious place. It's the same reason every text-heavy pack ships one: trivial, and quietly indispensable.
The input and output
- text - multiline, default empty. Type (or paste) whatever you need - a prompt, an instruction block, a style snippet.
- Output: text, a plain
STRING. Feed it into a text encoder, a wildcard processor, an LLM prompt processor, Lumi Wrap Text, or anywhere a string is the contract.
That's the entire surface area. One thing worth knowing: because the widget holds the value, the text you type is saved with the workflow - so a shared workflow carries its prompts with it, and people can edit them in place without touching the graph.
Installing
cd ComfyUI/custom_nodes
git clone https://github.com/illuminatianon/comfyui-lumi-tools
cd comfyui-lumi-tools
uv sync
Restart ComfyUI, or install "Lumi Tools" via ComfyUI Manager.
When it's the right tool
Honestly, if your consuming node already has an editable text widget and you don't need to share the value across multiple inputs, this node is redundant - skip it and save yourself a wire. Reach for it when a node demands a forced string input, when you want one prompt feeding several places, or when you're building a template workflow where the prompt lives in one visible spot. It's not flashy, it's not going to appear in any showcase, and you'll never write a reddit post about it. But the day you need "a string from a box, nothing else," it's exactly the node you want and you won't have to cobble one together.
Inputs (1)
| Name | Type | Default | Description |
|---|---|---|---|
| text | STRING | Text to output. |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| text | STRING | — |