Multi-String Conditioning
Five text fields, one conditioning — keep your prompt chunks separate
- clip
- conditioning
- combined_text
- lora_syntax
Multi-String Conditioning is the non-pipe half of the pack's prompt machinery: a CLIP plus up to five labeled text fields (quality, style, trigger, character, prompt), all encoded separately and merged into one conditioning. It's the same concatenation trick the full-pipe Prompt node does internally, exposed as a standalone node for people who'd rather keep the text chunks in separate boxes than one blob.
Why separate boxes? Because in the Danbooru-tag world the ordering and grouping of a prompt genuinely matter, and keeping "quality tags" in its own field means you can flip or reorder a category without touching the rest. The node even strips comment lines and <lora:...> syntax from each field, so you can keep your prose notes and LoRA tags right in the boxes - the LoRAs get pulled out to a separate output instead of being encoded as garbage text.
The inputs that matter
- clip - required; the text encoder you're conditioning with.
- quality, style, trigger, character, prompt - all optional force-input strings (they expect wires, though typing works too). Any combination is fine; empty fields are skipped.
- mode - the interesting one:
- concatenate (default) - each non-empty field is encoded to its own conditioning and the tensors are concatenated along the sequence dimension. The model reads all of it, chunks stay coherent.
- combine - encodes each field and averages the conditioning tensors. This blends the concepts together rather than stacking them; useful when you want "a style + a character" fused instead of read in sequence.
- join - just joins all text into one string and encodes it once. The "I don't care, give me a CLIPTextEncode" option.
Outputs
- conditioning - the merged result, ready for a KSampler.
- combined_text - the cleaned, comma-joined text (LoRA tags and comments stripped). Feed it to a display node or metadata writer.
- lora_syntax - the collected
<lora:...>tags, so you can apply them elsewhere (that's exactly what the pack's Lora Extract node is for).
Installing
Part of the mudknight utils pack. ComfyUI Manager → search comfyui-mudknight-utils, or:
cd ComfyUI/custom_nodes
git clone https://github.com/mudknight/comfyui-mudknight-utils
Restart ComfyUI. No model downloads, no Impact Pack needed - pure CLIP encoding.
Gotchas
- Empty output conditioning - if every field is empty, the node encodes an empty string and returns it, so your sampler runs on a blank prompt. Not a crash, but a mystery if you expected text. Check that your fields actually have content.
- "combine" isn't "better" - averaging conditionings is a specific tool, not an upgrade. It can wash out detail on complex prompts; stick with concatenate unless you have a reason.
- LoRA tags go to a separate output - if you wire
conditioningstraight to a sampler and ignorelora_syntax, your LoRAs are silently not applied. That's by design (this node doesn't have a model), but it's the classic "why is my LoRA doing nothing" moment.
A quiet utility in a zero-impression pack - it's for people who think in prompt categories rather than prompt strings, and it does exactly that job cleanly.
Inputs (7)
| Name | Type | Default | Description |
|---|---|---|---|
| clip | CLIP | — | |
| qualityopt | STRING | — | |
| styleopt | STRING | — | |
| triggeropt | STRING | — | |
| characteropt | STRING | — | |
| promptopt | STRING | — | |
| modeopt | COMBO | concatenate | 3 options: concatenate, combine, join |
Outputs (3)
| Name | Type | Description |
|---|---|---|
| conditioning | CONDITIONING | — |
| combined_text | STRING | — |
| lora_syntax | STRING | — |