Prompt Composer Multiple Text
Ten weighted text blocks in one node
- text_out
This is Prompt Composer's Single Text node, times ten, crammed into one box on your canvas. Instead of chaining ten separate nodes just to hold ten independent, independently-weighted chunks of a prompt - say, ten physical traits for a character, or ten style descriptors you want to mix and match - you get all of them in one place with one active switch and one output. It's the node to reach for once your prompt has grown past "a few pieces" and you don't want your graph turning into spaghetti.
Worth flagging up front: the pack's own README describes this as "Multiple Text Node: contains six typing boxes." The node as it actually ships has ten - text_1 through text_10, each with its own weight slider. The README just hasn't caught up with the node. Don't go hunting for a missing four boxes; they're there.
How it works
Each of the ten text/weight pairs behaves exactly like the standalone Single Text node: fill in a box, leave its weight at 1 for plain text, or move the slider to get that box's contents wrapped in (text:weight). Whatever you leave blank contributes nothing. However many of the ten you actually fill in get combined, along with anything piped in from text_in_opt, into the single text_out.
The inputs and outputs that matter
text_1…text_10(multiline strings) - ten independent slots. Leave any of them empty and they simply don't add anything.weight_1…weight_10(0 to 1.95, step 0.1, default 1) - one weight per text slot, same rules as Single Text: 1 means untouched, anything else wraps that slot's text in(text:weight).active(boolean) - bypass the whole node without deleting it or its ten boxes' worth of content.text_in_opt(optional string) - chain input from an upstream Prompt Composer node.text_out- the combined result, feeding the next node or your text encoder.
The same weighting caveat applies, times ten
Every one of those ten weight sliders builds (text:weight) syntax, and that syntax is CLIP-only. On SD1.5, SDXL and SDXL-derived checkpoints (Illustrious, NoobAI, Pony) it works as expected. On an LLM-encoded checkpoint - Flux, Z-Image, Anima, Chroma's T5 side - none of those ten sliders do anything useful; the parentheses just sit in your prompt as literal text. If you're building a ten-part description for one of those models, it's worth just leaving every slider at 1 and doing the emphasis with word choice and order instead.
How to install it
Through ComfyUI Manager: search florestefano1975, install, restart. Or by hand:
cd ComfyUI/custom_nodes
git clone https://github.com/florestefano1975/comfyui-prompt-composer
then restart. No models to fetch, no dependency chain to fight - it's plain Python string handling, so the install is quick and low-risk compared to most custom node packs.
Common issues & troubleshooting
You expected six boxes and see ten. That's the node, not a bug - the README undercounts by four, as covered above.
The graph gets tall. Ten multiline text boxes take up real canvas space. If you only need two or three chunks with weights, the standalone Single Text node (or a couple of them chained) is lighter on the eyes; save Multiple Text for when you genuinely have that many independent, separately-weighted pieces.
Weights aren't doing anything. Same story as everywhere else in this pack - check whether your checkpoint uses a CLIP text encoder or an LLM one. The attention syntax is inert on the latter.
Upstream text disappeared. text_in_opt is optional and easy to leave unplugged by accident, especially with a node this wide. If a chain feeding into this one seems to have vanished from your output, check that wire first.
Inputs (22)
| Name | Type | Default | Description |
|---|---|---|---|
| text_1 | STRING | — | |
| weight_1 | FLOAT | 1.00–1.95 | — |
| text_2 | STRING | — | |
| weight_2 | FLOAT | 1.00–1.95 | — |
| text_3 | STRING | — | |
| weight_3 | FLOAT | 1.00–1.95 | — |
| text_4 | STRING | — | |
| weight_4 | FLOAT | 1.00–1.95 | — |
| text_5 | STRING | — | |
| weight_5 | FLOAT | 1.00–1.95 | — |
| text_6 | STRING | — | |
| weight_6 | FLOAT | 1.00–1.95 | — |
| text_7 | STRING | — | |
| weight_7 | FLOAT | 1.00–1.95 | — |
| text_8 | STRING | — | |
| weight_8 | FLOAT | 1.00–1.95 | — |
| text_9 | STRING | — | |
| weight_9 | FLOAT | 1.00–1.95 | — |
| text_10 | STRING | — | |
| weight_10 | FLOAT | 1.00–1.95 | — |
| active | BOOLEAN | false | — |
| text_in_optopt | STRING | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| text_out | STRING | — |