Nodes/Arctenoxs-Essentials_ComfyUI/CLIP Text Encode [Prompt Gen] (Arctenox's Essentials)
ComfyUI Node

CLIP Text Encode [Prompt Gen] (Arctenox's Essentials)

Your hand-written prompt, plus a tag generator's ideas, minus the overlap

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

The Prompt Generator in this pack is great at inventing coherent tag lists, but you rarely want it to write the whole prompt. You've got a character, a setting, a vibe you're keeping. CLIP Text Encode [Prompt Gen] is the glue node that lets the generator fill in the gaps instead of taking over: it encodes your hand-written prefix, appends the generator's output, and - this is the smart bit - strips any generator tags that already exist in your hand-written text before it does.

Inputs:

  • text - your positive prompt prefix, multiline, wildcards supported.
  • clip - the CLIP model.
  • wildcard_seed - -1 for fresh wildcard picks per run, 0+ to lock them.
  • prompt_gen_output (optional) - connect the prompt output of ArctenoxPromptGenerator here. It gets appended to your text with ", " as the separator.

Outputs mirror the pack's other encoder: conditioning (ready for a sampler), text (the original prefix), and resolved_text (the final combined string that actually got encoded).

The deduplication is the detail most people miss until they've stared at a generated prompt. Say your prefix is 1girl, blue_eyes, school uniform and the generator, walking from its seed tags, also lands on blue_eyes. Left to its own devices you'd encode blue_eyes twice. This node normalizes both sides (lowercase, spaces→underscores) and filters the generator's tags down to ones not already covered, so you get the generator's new ideas without paying for its redundancy. It compares against your prefix, not against its own output, which is the right trade: your words win.

Where this shines is a hybrid workflow - the one where the generator supplies the "what's in the scene" tags (which it's good at, since it's walking real Danbooru co-occurrence data) while you keep the character and composition fixed in text. Set the generator's seed and this node's wildcard_seed to fixed values and the whole thing is reproducible; leave them at -1 and every run is a fresh variation on your fixed premise. Batch it and you've got a poor-man's prompt explorer.

Caveats. This is positive-only - the negative prompt still needs its own encode node. It assumes the generator's output is comma-separated tags, which it is by design, so it's at home with tag-based anime models (Illustrious, Pony, NoobAI) and less obviously useful for natural-language models like Flux, where a random tag append is usually noise. Also note the dedup only catches exact matches after normalization - blue_eyes and sky blue eyes are different tags to it, which is fine, that's a semantics problem nobody's solving in a string node.

Install. Ships in 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. No model downloads beyond your checkpoint's CLIP, and no Python deps beyond torch, numpy, and optional psutil. The README marks the pack deprecated while its author remasters it - worth knowing, but the node works as documented today, and the skills (prefix + generated tags + dedup) map onto any pack that does the same job.

CategoryArctenox Essentials/Conditioning

Inputs (4)

NameTypeDefaultDescription
textSTRINGHand-written positive prompt prefix. The PromptGenerator output will be appended after this. Wildcards supported.
clipCLIP
wildcard_seedINT0-1–18446744073709550000Seed for wildcard resolution. -1 = new random picks every run 0+ = locked / reproducible
prompt_gen_outputoptSTRINGConnect the 'prompt' output of ArctenoxPromptGenerator here. It will be appended to text with ', ' as a separator.

Outputs (3)

NameTypeDescription
conditioningCONDITIONING
textSTRING
resolved_textSTRING