Prompt Concat 🔀
Prompt Concat (WildPromptor) — merge prompt fragments into one string
- prompt
This is the glue node of the pack - the one that takes all those separate keyword fragments and welds them into a single prompt. If you're using the Subject, Environment, Virtual, and Styles list nodes, this is where their outputs come together. It's honestly the node you'll keep even if you drop the rest of the pack.
Prompt Concat ships in WildPromptor by 1038lab (also the author of ComfyUI-RMBG).
How it works
It's a string joiner with named slots. You hand it text on any of its inputs and it concatenates them, in order, separated by whatever separator you choose. The slots are deliberately named to match the pack's list nodes, so the mental model is: one fragment per aspect of the image, all merged at the end.
The clever bit is that the slots are just labels - nothing forces you to put "subject" text in the subject slot. It's a seven-input concatenator with sensible names.
The inputs and outputs
The text slots (all optional, all multiline) are prefix, subject, environment, virtual, styles, illustrious, and suffix. Fill the ones you need, leave the rest empty. Empty slots contribute nothing.
Three controls shape the join:
- separator -
comma,space, ornewline(comma is the default and what most SDXL-lineage prompts want) - remove_duplicates - drops repeated tokens, handy when two fragments both throw in "detailed"
- sort - alphabetizes the result (rarely what you want, but it's there)
The output is prompt, a single STRING (not a list). That goes straight into a CLIP Text Encode.
The typical wiring: prefix holds your quality tags or fixed opener, the middle slots take the outputs of the Subject / Environment / Virtual / Styles list nodes, and suffix holds a closing phrase. Concat merges them and you have a full, structured prompt with no manual typing.
A practical note on structure
Structuring a prompt in blocks - subject, then setting, then camera and lighting - isn't just tidiness. On modern LLM-encoded models it genuinely helps, because the encoder reads your prompt as a structured instruction rather than a token bag. So the prefix→subject→environment→virtual→styles→suffix ordering this node encourages is a reasonable default. Just don't confuse "structured" with "long": each fragment should be a few strong concepts, not a paragraph.
The separator choice matters more than it looks. Comma is right for tag-based models. If you're feeding a natural-language model and your fragments are sentence-like, newline or space may read more cleanly than jamming everything with commas.
Installing it
ComfyUI Manager: search ComfyUI-WildPromptor, install, restart. Or clone:
cd ComfyUI/custom_nodes
git clone https://github.com/1038lab/ComfyUI-WildPromptor
and restart. It's under 🧪AILab/🧿WildPromptor. No downloads.
Common issues
- Doubled-up tokens in the output - turn on
remove_duplicates. Two list nodes both emitting "cinematic lighting" is common. - Everything's on one line and hard to read - that's the
commaseparator. Switch tonewlinewhile you debug. - A slot didn't show up - check the wire actually carries a string and isn't empty; empty inputs are silently skipped, which is by design but looks like a dropped connection.
sortscrambled my prompt - leave it off unless you specifically want alphabetical tokens; word order affects attention, so sorting can weaken your intended emphasis.
Inputs (10)
| Name | Type | Default | Description |
|---|---|---|---|
| prefixopt | STRING | — | |
| subjectopt | STRING | — | |
| environmentopt | STRING | — | |
| virtualopt | STRING | — | |
| stylesopt | STRING | — | |
| illustriousopt | STRING | — | |
| suffixopt | STRING | — | |
| separatoropt | COMBO | comma | 3 options: comma, space, newline |
| remove_duplicatesopt | BOOLEAN | false | — |
| sortopt | BOOLEAN | false | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| prompt | STRING | — |