LLS Simple Prompt Encode
One prompt node that knows whether you're on SDXL or FLUX
- text_encoder
- clip
- positive
- negative
- prompt_info
Stock ComfyUI handles positive and negative prompts as two separate nodes, and it treats SDXL's dual text encoders as something you must not think about. LLS Simple Prompt Encode collapses both ideas at once: one node, both prompts, and it quietly picks the correct encoding path for whatever model family you're actually running - SD 1.5, SDXL, SDXL Turbo, or FLUX.
The "simple" in the name isn't a downgrade. It means you stop writing per-family spaghetti.
How it works
The node takes a CLIP input (labelled text_encoder, with a legacy clip alias so any checkpoint loader's output works) and dispatches to a family-specific encoding path. The family comes from your model_family dropdown - set to Auto by default, in which case the node infers it from the CLIP object you connected. Then it applies the family rules:
- SD 1.5 - standard single-encoder CLIP encode of both prompts.
- SDXL - encodes using both text encoders at the model's default 1024×1024 framing, which SDXL conditioning needs to be told about.
- SDXL Turbo - encodes normally but weakens the negative prompt (drops it if you provided one), because Turbo models are distilled to run on positive guidance and don't respond well to strong negatives.
- FLUX - ignores your negative prompt entirely (it encodes it as empty) and, importantly, forces
clip_skipto -1, since FLUX's T5 encoder isn't a CLIP stack and the whole clip-skip dial is meaningless there.
Those last two are the bits that trip people: negative prompts do not mean the same thing on every model family, and the node is quietly enforcing that so you don't have to remember.
clip_skip (default -1) is worth understanding because of where it doesn't work. Clip skip exists for one historical reason - the anime checkpoint line (Pony, Illustrious, NoobAI) all expect conditioning from CLIP's penultimate layer, so SD 1.5/SDXL anime models want -2. It does nothing on FLUX, and on vanilla SDXL it changes little because both encoders already default to the penultimate layer. So: leave it at -1 unless your checkpoint's page prints "Clip Skip: 2", in which case set it.
Outputs
positive and negative are standard CONDITIONING tensors feeding any sampler - including LLS Simple KSampler or a stock KSampler. The third output, prompt_info, is a JSON string recording which family it detected, whether the negative was weakened/ignored, and the effective clip skip. Wire it to a text display node once if you want proof of what the node decided; otherwise ignore it.
Wiring it in
Pair it with an LLS loader (Simple Checkpoint Loader or Universal Model Loader):
LLS Simple Checkpoint Loader → LLS Simple Prompt Encode → LLS Simple KSampler → VAE Decode → Preview
Installing
Via ComfyUI Manager (search "LLS-node"), or:
cd ComfyUI/custom_nodes
git clone https://github.com/Gin3601/LLS-node
Restart ComfyUI, then look under LLS/Conditioning. No requirements.txt in the pack - it only uses ComfyUI's built-in CLIP machinery.
Gotchas
- It needs an encoder, and it's loud about it. Leave
text_encoderunwired and you get a[LLS] Missing text encodererror rather than a silent empty conditioning. Connect the CLIP from your loader - theclipinput exists so old workflows keep working. - Set
model_familytoAutoand trust the inference. Manually pinning the wrong family is the fastest way to produce broken conditioning; the only time to override is when inference misreads an unusual model, which is rare. - Remember the FLUX behavior: negative prompts are dropped. If you're coming from SD 1.5 habits and your Flux images look fine anyway, this is why.
Inputs (6)
| Name | Type | Default | Description |
|---|---|---|---|
| positive_prompt | STRING | — | |
| negative_prompt | STRING | — | |
| clip_skip | COMBO | -1 | 25 options: , -1, -2, -3, -4, -5, +19 |
| model_family | COMBO | Auto | 9 options: Auto, SD1.5, SD15, SDXL, SDXL_TURBO, FLUX_SCHNELL, +3 |
| text_encoderopt | CLIP | — | |
| clipopt | CLIP | — |
Outputs (3)
| Name | Type | Description |
|---|---|---|
| positive | CONDITIONING | — |
| negative | CONDITIONING | — |
| prompt_info | STRING | — |