Nodes/ComfyUI-NeuralMedia/πŸ–ŒοΈ SDXL Text Encoder Simple
ComfyUI Node

πŸ–ŒοΈ SDXL Text Encoder Simple

SDXL text encoding with the resolution dials out front

By YarvixPAΒ·Created 2 years agoΒ·Updated about a year agoΒ· 5
πŸ–ŒοΈ SDXL Text Encoder Simple
  • clip
  • CONDITIONING
β—„width4096β–Ί
β—„height4096β–Ί
β—„crop_w0β–Ί
β—„crop_h0β–Ί
β—„target_width4096β–Ί
β—„target_height4096β–Ί
β—„textβ€”β–Ί

Here's the thing most people don't realize about SDXL: the text encoder doesn't just read your prompt, it reads the resolution. SDXL was trained with aspect-ratio and crop information baked into the conditioning - which is why generating at 1344Γ—768 feels different from 1024Γ—1024 even with the same prompt. Core ComfyUI exposes all that as CLIPTextEncodeSDXL, a node with six size fields and a text box. SDXL Text Encoder Simple is that same shape, renamed, in this pack's menu: same fields, same single conditioning output.

If you've never touched the six size dials, you've been lucky. Let's map them, because they're less scary than they look:

  • width / height - the resolution of the image itself.
  • target_width / target_height - the resolution the model is actually generating at (the KSampler's latent size).
  • crop_w / crop_h - crop-offset conditioning, used by SDXL's inpainting and aspect-ratio bucketing.

The rule of thumb: target_width and target_height should match your sampler's output resolution, and width/height should match the source image when you're doing img2img-style work. Get the target pair right and the rest usually falls into place.

The twist in this node

The defaults. Core ComfyUI's SDXL encoder defaults to 1024Γ—1024 across the board. This one defaults all six to 4096. That's almost certainly a leftover from the author's own upscaling workflows (the pack is a personal grab-bag), and it's a trap if you blindly hit run: the conditioning will tell the model you're generating at 4096Γ—4096 while your KSampler is actually outputting 1024Γ—1024. The mismatch is exactly the kind of subtle thing that produces odd composition and nobody knows why.

So: treat the defaults as wrong until you've set them. Match target_width/target_height to your sampler, keep the others consistent with the image, and this node behaves like the core one.

The rest

The other two inputs are the familiar ones: text (the prompt, multiline) and clip (wire from your checkpoint or a dual-CLIP loader). Output is a single CONDITIONING that feeds the sampler's positive (or negative) input. It's an SDXL-family node - SD 1.5, Flux, and Qwen-Image all use different encoder shapes, so don't reach for this one outside SDXL workflows.

Install

cd ComfyUI/custom_nodes
git clone https://github.com/YarvixPA/ComfyUI-NeuralMedia
cd ComfyUI-NeuralMedia
pip install -r requirements.txt

or ComfyUI Manager β†’ search ComfyUI-NeuralMedia, then restart ComfyUI. Pack by YarvixPA (the FLUX.1-Fill-dev-GGUF quantizer); if a manual clone 404s, Manager's registry entry is the reliable route.

The honest take

This node is a rename-plus-defaults of functionality ComfyUI already ships. If you know your way around CLIPTextEncodeSDXL, there's nothing here you're missing - except that 4096 default, which is the one thing you should actively distrust. Use it if you're building a self-contained NeuralMedia workflow; otherwise core's node does the same job with saner starting values.

CategoryComfyUI-NeuralMedia

Inputs (8)

NameTypeDefaultDescription
widthINT40960–16384β€”
heightINT40960–16384β€”
crop_wINT00–16384β€”
crop_hINT00–16384β€”
target_widthINT40960–16384β€”
target_heightINT40960–16384β€”
textSTRINGβ€”
clipCLIPβ€”

Outputs (1)

NameTypeDescription
CONDITIONINGCONDITIONINGβ€”