Nodes/Arctenoxs-Essentials_ComfyUI/CLIP Text Encode [Positive + Wildcards] (Arctenox's Essentials)
ComfyUI Node

CLIP Text Encode [Positive + Wildcards] (Arctenox's Essentials)

CLIP encode with wildcards and the receipts to prove what ran

By Arctenox·Created 8 months ago·Updated 2 months ago· 1
CLIP Text Encode [Positive + Wildcards] (Arctenox's Essentials)
  • clip
  • conditioning
  • text
  • resolved_text
text
wildcard_seed0

ComfyUI's stock CLIP Text Encode (Prompt) does one thing: encode a string into conditioning. This node does that and then gives you the string back - twice. CLIP Text Encode [Positive + Wildcards] is the positive-only encoder in Arctenox's Essentials, and its real selling point isn't the encoding, it's the two string outputs that ride along with the conditioning.

Inputs: text (your positive prompt, multiline), clip, and wildcard_seed (-1 for new picks each run, 0+ for locked/reproducible). The text field supports wildcards natively - {a|b|c} inline groups and __filename__ file tokens - so you can get prompt variety without wiring up a separate wildcard processor.

Outputs:

  • conditioning - what you feed the sampler.
  • text - the original string, unchanged, passed through so you can log it or route it to a metadata node.
  • resolved_text - the prompt after wildcard resolution, i.e. the exact string that actually got encoded.

That third output is the hidden gem. When a generation comes out baffling, "what did the model actually see?" is the first question - and with wildcards in play the answer is usually "not what I typed." resolved_text gives you the literal string that hit the CLIP tokenizer, no hunting through console logs. Wire it to a text display or save it into image metadata and debugging a bad wildcard pick takes seconds instead of a rerun.

Two mechanical details worth knowing:

  • When wildcard_seed is -1, the node returns a special IS_CHANGED sentinel so ComfyUI re-executes it every run. Set -1 and the wildcards genuinely change per run instead of being cached.
  • When it's a fixed seed, IS_CHANGED returns that seed - stable input, stable output, reproducible runs.

Caveats, and they're real. This is a positive-only encoder - the negative prompt still needs a stock CLIP Text Encode (Prompt) (or the pack's equivalent). It's also aimed at CLIP-tokenized, tag-style models. Wildcard-driven tag lists shine on Pony/Illustrious/NoobAI workflows; if you're feeding an LLM-encoded model like Flux, the wildcard machinery still works on the string level, but the comma-tag habits that make wildcards shine matter less there. And if you don't use wildcards at all, the stock node plus this pack's sibling encoders will do fine - the string outputs are the reason to pick this one.

Install. Part of Arctenox's Essentials - ComfyUI Manager → search "Arctenox's Essentials", or:

cd ComfyUI/custom_nodes/
git clone https://github.com/Arctenox/Arctenoxs-Essentials_ComfyUI

Restart ComfyUI. Wildcard files live in the pack's wildcards/ directory or ComfyUI/wildcards/. Dependencies are the usual light trio - torch, numpy, optional psutil - so installation is a non-event. The pack is flagged deprecated in its README while the author remasters it, so the node may migrate to a successor pack; the behavior shouldn't change.

CategoryArctenox Essentials/Conditioning

Inputs (3)

NameTypeDefaultDescription
textSTRINGPositive prompt. Supports wildcards: {a|b|c} → picks one option __filename__ → picks a random line from wildcards/filename.txt
clipCLIP
wildcard_seedINT0-1–18446744073709550000Seed for wildcard resolution. -1 = new random picks every run 0+ = locked / reproducible

Outputs (3)

NameTypeDescription
conditioningCONDITIONING
textSTRING
resolved_textSTRING