Nodes/rgthree's ComfyUI Nodes/SDXL Power Prompt - Simple / Negative (rgthree)
ComfyUI Node Runs on cloud

SDXL Power Prompt - Simple / Negative (rgthree)

SDXL Power Prompt - Simple / Negative (rgthree)

By rgthree·Created 3 years ago·Updated 13 days ago· 3,294
SDXL Power Prompt - Simple / Negative (rgthree)
  • opt_clip
  • CONDITIONING
  • TEXT_G
  • TEXT_L
prompt_g
prompt_l
opt_clip_width1024
opt_clip_height1024
insert_embedding
insert_saved
target_width-1
target_height-1
crop_width-1
crop_height-1

This is the SDXL negative-prompt node: the two-text-stream SDXL Power Prompt with the LoRA machinery removed. It exists for the same reason its SD1.5 cousin does - negative prompts can't use LoRAs, so a node built for negatives shouldn't carry LoRA plumbing. Feed it your "what you don't want" text in SDXL's g and l streams, connect a CLIP, and you get clean negative conditioning out, no clutter.

Why you'd reach for it

SDXL prompting has two text encoders and a set of size parameters, and the full SDXL Power Prompt - Positive wires all of that up plus LoRA support. For a negative prompt, the LoRA support is dead weight - LoRAs don't apply to negatives. This node is the trimmed version: it keeps the SDXL dual-text setup and the size parameters that SDXL conditioning wants, drops the LoRA dropdown and model input, and gives you a focused negative node.

The natural pairing is SDXL Power Prompt - Positive for your positive and this one for your negative. Both understand SDXL's g/l streams and both offer the embedding dropdown so you don't mistype a filename - which, for a negative prompt full of quality embeddings, is genuinely handy.

Inputs and outputs

The two required fields are the SDXL text pair:

  • prompt_g - the "global" negative text, multiline.
  • prompt_l - the "local" negative text, multiline.

The optional inputs cover the SDXL machinery, minus anything LoRA: opt_clip (connect to encode to conditioning on the node), opt_clip_width / opt_clip_height (default 1024, the encoder reference size), the dropdown helpers insert_embedding and insert_saved (they paste text into your prompt), and the composition controls target_width, target_height, crop_width, crop_height (default -1, meaning "use the default" until you set them). Note there's no insert_lora and no model input - that's the whole point of the negative variant.

Outputs: CONDITIONING (populated when a CLIP is connected - wire it to your KSampler's negative input) plus the raw TEXT_G and TEXT_L strings if you want to route the text elsewhere.

Installing it

The node ships in rgthree-comfy. Install via ComfyUI Manager (search rgthree's ComfyUI Nodes) or clone the repo:

cd ComfyUI/custom_nodes
git clone https://github.com/rgthree/rgthree-comfy.git

Restart ComfyUI afterward. No models to download, no heavy dependencies - the pack is graph and UI code.

Common issues

The main thing is picking the right node for the right slot. This is the SDXL negative (or any LoRA-free SDXL text). If you want LoRA support, you need the positive SDXL node - this one has no model input and can't load LoRAs at all. And if you're on a non-SDXL checkpoint, the two-stream g/l setup is overkill; use the plain Power Prompt - Simple instead.

Second, the SDXL size parameters default to -1 deliberately - that's "use a sensible default." You don't have to set target/crop width and height to get a working negative; leave them alone unless you're specifically tuning composition, which for a negative prompt is uncommon anyway.

Third, if you connected a CLIP but nothing seems to encode, confirm the CONDITIONING output is wired into your sampler's negative slot. Without a CLIP connected the node only emits raw text, which a KSampler can't consume directly.

And the pack-wide caveat: if the node renders wrong, check whether ComfyUI's Nodes 2.0 frontend is enabled. The Vue rewrite broke several rgthree nodes and the standing workaround is to keep it off.

Categoryrgthree

Inputs (11)

NameTypeDefaultDescription
prompt_gSTRING
prompt_lSTRING
opt_clipoptCLIP
opt_clip_widthoptINT10240–16384
opt_clip_heightoptINT10240–16384
insert_embeddingoptCOMBO1 options: CHOOSE
insert_savedoptCOMBO1 options: CHOOSE
target_widthoptINT-1-1–16384
target_heightoptINT-1-1–16384
crop_widthoptINT-1-1–16384
crop_heightoptINT-1-1–16384

Outputs (3)

NameTypeDescription
CONDITIONINGCONDITIONING
TEXT_GSTRING
TEXT_LSTRING