ποΈ SDXL Text Encoder Simple
SDXL text encoding with the resolution dials out front
- clip
- CONDITIONING
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.
Inputs (8)
| Name | Type | Default | Description |
|---|---|---|---|
| width | INT | 40960β16384 | β |
| height | INT | 40960β16384 | β |
| crop_w | INT | 00β16384 | β |
| crop_h | INT | 00β16384 | β |
| target_width | INT | 40960β16384 | β |
| target_height | INT | 40960β16384 | β |
| text | STRING | β | |
| clip | CLIP | β |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| CONDITIONING | CONDITIONING | β |