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

SDXL Power Prompt - Positive (rgthree)

SDXL Power Prompt - Positive (rgthree)

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

This is the SDXL sibling of rgthree's Power Prompt: a prompt node built for SDXL's two-text-encoder setup, with the same conveniences - embedding and LoRA dropdowns, inline <lora:...> loading, and on-node CLIP encoding. SDXL is fussier to prompt than SD1.5 because it takes two text inputs and a set of size parameters, and this node bundles all of that plumbing into one box so you write your prompt and get properly-formed SDXL conditioning out.

Why you'd reach for it

SDXL's conditioning has moving parts that SD1.5 doesn't. It uses two text encoders - the "g" and "l" streams - and it wants width/height/target/crop parameters to steer composition. Wiring that up with stock nodes means a couple of CLIP encodes and careful attention to the size fields. This node folds it into one place: two prompt boxes for the g and l text, the size parameters as inputs, and the same Power Prompt goodies (menus so you never mistype an embedding or LoRA name, inline LoRA parsing when a model is connected).

If you already like the regular Power Prompt for SD1.5, this is the version you drop in when you switch to an SDXL checkpoint. Pair it with the LoRA-free negative variant for a clean two-node prompt setup.

Inputs and outputs

The two required fields are the SDXL text pair:

  • prompt_g - the "global" text stream, multiline.
  • prompt_l - the "local" text stream, multiline. A common approach is a fuller description in g and tighter tag-style text in l, though plenty of people just put the same prompt in both to start.

The optional inputs cover the SDXL machinery and the Power Prompt conveniences: opt_model (connect to enable inline <lora:...> loading), opt_clip (connect to encode to conditioning on the node), opt_clip_width / opt_clip_height (default 1024, the encoder's reference size), the dropdown helpers insert_lora / insert_embedding / insert_saved (they paste text into your prompt, nothing more), and the composition controls target_width, target_height, crop_width, crop_height (default -1, meaning "use the sensible default" until you set them).

Outputs: CONDITIONING (populated when a CLIP is connected - wire it to your KSampler's positive), pass-through MODEL and CLIP, and 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 one that catches people: inline <lora:...> tags do nothing unless you connect a model to opt_model and pass the node's MODEL output onward. Without that, your LoRA tags are just text.

Second, the SDXL size parameters default to -1 on purpose - that means "let the node pick a reasonable default." You don't need to touch target/crop width/height to get a working image; they're there for when you specifically want to push composition. Leaving them at -1 is fine and normal.

Third, this is the positive node - it supports LoRAs because positive prompts can use them. Negative prompts can't, so for your negative use the SDXL Power Prompt - Simple / Negative variant, which drops LoRA support for a cleaner negative. And as always with LoRAs: if one seems inert, it's usually a missing trigger word in the prompt, not a loading failure.

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

Categoryrgthree

Inputs (13)

NameTypeDefaultDescription
prompt_gSTRING
prompt_lSTRING
opt_modeloptMODEL
opt_clipoptCLIP
opt_clip_widthoptINT10240–16384
opt_clip_heightoptINT10240–16384
insert_loraoptCOMBO2 options: CHOOSE, DISABLE LORAS
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 (5)

NameTypeDescription
CONDITIONINGCONDITIONING
MODELMODEL
CLIPCLIP
TEXT_GSTRING
TEXT_LSTRING