SDXL Power Prompt - Simple / Negative (rgthree)
SDXL Power Prompt - Simple / Negative (rgthree)
- opt_clip
- CONDITIONING
- TEXT_G
- TEXT_L
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.
Inputs (11)
| Name | Type | Default | Description |
|---|---|---|---|
| prompt_g | STRING | — | |
| prompt_l | STRING | — | |
| opt_clipopt | CLIP | — | |
| opt_clip_widthopt | INT | 10240–16384 | — |
| opt_clip_heightopt | INT | 10240–16384 | — |
| insert_embeddingopt | COMBO | 1 options: CHOOSE | |
| insert_savedopt | COMBO | 1 options: CHOOSE | |
| target_widthopt | INT | -1-1–16384 | — |
| target_heightopt | INT | -1-1–16384 | — |
| crop_widthopt | INT | -1-1–16384 | — |
| crop_heightopt | INT | -1-1–16384 | — |
Outputs (3)
| Name | Type | Description |
|---|---|---|
| CONDITIONING | CONDITIONING | — |
| TEXT_G | STRING | — |
| TEXT_L | STRING | — |