MultiString Prompts Encode
Six conditioning blocks, one node — the CLIP encoder that ends the wiring marathon
- clip
- positive_1
- positive_2
- positive_3
- positive_4
- positive_5
- negative
MultiString Prompts Encode is the "stop wiring me six CLIPTextEncode nodes" answer to a workflow that keeps needing more than one prompt. It's the encode half of the SquirrelRat/MultiString-Prompts pack: drop in a CLIP model, type five positive prompts and one shared negative, and out the other side come six ready-to-sample CONDITIONING blocks. No string node in the middle, no encoder forest, no matching up which string feeds which encode.
If you've built a ComfyUI workflow with regional prompting or a prompt sequence, you know the pain this removes. The boring ComfyUI way is a CLIPTextEncode per prompt, all sharing the same CLIP wire - fine once, miserable when you're iterating on four or five texts. This node collapses that into one box you can edit in one place.
How it works
Under the hood it's the same prefix/suffix string logic as its sibling plus a standard CLIP encode. Each of the six prompts is processed to prefix, prompt, suffix, then tokenized and encoded via encode_from_tokens with return_pooled=True - the exact conditioning format stock CLIPTextEncode produces. Which means the outputs drop straight into a KSampler (or KSamplerAdvanced) positive and negative inputs with zero adaptation. It's not doing anything clever; it's just doing it six times so you don't have to.
One inconsistency with the sibling node is worth knowing before it bites you: the encode node doesn't treat empty prompts as empty. The plain string node returns "" for a blank box, but this one still applies the enabled prefix/suffix. Leave positive_prompt_3 blank with the prefix on, and you get a conditioning of just your prefix text - real, sampleable, and probably not what you meant.
The inputs and outputs that matter
clip- the CLIP model to encode with (from your checkpoint or the appropriate loader). Match it to your model family; you can't feed a random CLIP into this and get sane results.positive_prompt_1throughpositive_prompt_5- five multiline positive prompts.negative_prompt- one shared negative, applied to all.prefix/suffixwith theirenable_prefix/enable_suffixtoggles - the shared keyword blocks, run through every box.
Outputs are positive_1 through positive_5 and negative, all CONDITIONING. The classic wiring: each positive_N goes to a KSampler (or into ConditioningSetArea for regional prompting), and negative goes to the negative inputs of however many samplers you're running.
Installing it
Same pack, same install - it ships alongside MultiString Prompts:
cd ComfyUI/custom_nodes
git clone https://github.com/SquirrelRat/MultiString-Prompts
Restart ComfyUI. Or use Manager → Install Custom Nodes → search "MultiString Prompts". The encode node's only import is torch, which is already there, so there are no extra dependencies and no model files to fetch.
Gotchas
The empty-slot behavior above is the main one - check any slot you intend to leave blank, or disable the prefix for that node. The other caveat is broader and applies to every negative prompt you've ever written: on guidance-distilled, flow-matching models (most of the Flux/current-LLM-encoded family), negatives are essentially inert at CFG 1. If you're on that generation of models, the shared negative output is still handy plumbing - but the negative text itself may not be steering anything. On SD1.5/SDXL/Pony/Illustrious it works exactly as you'd expect.
Inputs (11)
| Name | Type | Default | Description |
|---|---|---|---|
| clip | CLIP | — | |
| enable_prefix | COMBO | true | 2 options: true, false |
| enable_suffix | COMBO | true | 2 options: true, false |
| prefix | STRING | — | |
| suffix | STRING | — | |
| positive_prompt_1 | STRING | — | |
| positive_prompt_2 | STRING | — | |
| positive_prompt_3 | STRING | — | |
| positive_prompt_4 | STRING | — | |
| positive_prompt_5 | STRING | — | |
| negative_prompt | STRING | — |
Outputs (6)
| Name | Type | Description |
|---|---|---|
| positive_1 | CONDITIONING | — |
| positive_2 | CONDITIONING | — |
| positive_3 | CONDITIONING | — |
| positive_4 | CONDITIONING | — |
| positive_5 | CONDITIONING | — |
| negative | CONDITIONING | — |