ComfyUI Node Runs on cloud

Eff. Loader SDXL

Eff. Loader SDXL

By jags111·Created 3 years ago·Updated 5 months ago· 1,487
Eff. Loader SDXL
  • lora_stack
  • cnet_stack
  • SDXL_TUPLE
  • LATENT
  • VAE
  • DEPENDENCIES
base_ckpt_name
base_clip_skip-2
refiner_ckpt_name
refiner_clip_skip-2
positive_ascore6.00
negative_ascore2.00
vae_name
positiveCLIP_POSITIVE
negativeCLIP_NEGATIVE
token_normalization
weight_interpretation
empty_latent_width1024
empty_latent_height1024
batch_size1

This is the Efficient Loader's SDXL-specific cousin. It loads a base checkpoint and a refiner checkpoint together, encodes your prompts for both, sets up the empty latent, and bundles the whole lot into a single SDXL_TUPLE that plugs straight into the KSampler SDXL (Eff.) node. If you're running the classic SDXL base+refiner pipeline, this collapses what used to be a small forest of loader and encode nodes into one.

How it works

The magic export here is that SDXL_TUPLE output - it carries the base model, the refiner model, and both sets of conditioning as one connection. The matching sampler knows how to unpack it and hand off from base to refiner at the step you pick. You wire this loader's tuple into the sampler and you're basically done with setup.

It also carries SDXL's refiner-specific conditioning knobs that the plain loader doesn't have.

The inputs that matter

  • base_ckpt_name / refiner_ckpt_name - your two checkpoints. refiner_ckpt_name can be None if you only want the base loaded through this node.
  • positive / negative - multiline prompt boxes, encoded on the node with the same token_normalization and weight_interpretation controls as the standard loader.
  • base_clip_skip / refiner_clip_skip - both default to -2. On SDXL, clip skip is largely a non-event because both text encoders already read from the penultimate layer, so don't expect the dial to do much here - it matters far more on SD1.5/anime models than on SDXL.
  • positive_ascore / negative_ascore - SDXL's aesthetic-score conditioning, feeding the refiner. Defaults are 6 and 2; these are the "how much do you want the refiner to lean toward pretty" numbers and the defaults are sensible starting points.
  • empty_latent_width / empty_latent_height - default 1024, which is SDXL's native resolution. Stay near there.

For extra models, the optional lora_stack and cnet_stack inputs take a LoRA Stacker and a ControlNet stack.

Outputs: SDXL_TUPLE (into the sampler), LATENT, VAE, and DEPENDENCIES - that last one feeds an XY Plot node so grid comparisons know your model setup.

Installing it

ComfyUI Manager → search Efficiency Nodes for ComfyUI, or:

cd ComfyUI/custom_nodes
git clone https://github.com/jags111/efficiency-nodes-comfyui

Restart after. The "🔍 View model info…" right-click menu needs pythongosssss's ComfyUI-Custom-Scripts to be installed.

Common issues

Worth saying plainly: the separate-refiner workflow this node is built for has fallen out of fashion. Many current SDXL finetunes are trained to run without a refiner, and a lot of people get cleaner results from base-only plus a hires pass. If you're not specifically committed to a refiner model, the plain Efficient Loader plus KSampler (Efficient) is simpler.

There's also a documented pack quirk here: on SDXL, a LoRA applied through the stack has historically only affected the base and not the refiner. If a LoRA seems underpowered on a base+refiner run, that's the likely culprit - verify against a base-only setup.

Pack-wide: an IMPORT FAILED on startup (frequently a pip freeze non-zero-exit error) means the pack didn't load - update ComfyUI, the packages, and the node. After a ComfyUI update breaks things, updating the node to the latest commit is the standard fix.

CategoryEfficiency Nodes/Loaders

Inputs (16)

NameTypeDefaultDescription
base_ckpt_nameCOMBO0 options:
base_clip_skipINT-2-24–-1
refiner_ckpt_nameCOMBO1 options: None
refiner_clip_skipINT-2-24–-1
positive_ascoreFLOAT6.000–1000
negative_ascoreFLOAT2.000–1000
vae_nameCOMBO1 options: Baked VAE
positiveSTRINGCLIP_POSITIVE
negativeSTRINGCLIP_NEGATIVE
token_normalizationCOMBO4 options: none, mean, length, length+mean
weight_interpretationCOMBO5 options: comfy, A1111, compel, comfy++, down_weight
empty_latent_widthINT102464–16384
empty_latent_heightINT102464–16384
batch_sizeINT11–64
lora_stackoptLORA_STACK
cnet_stackoptCONTROL_NET_STACK

Outputs (4)

NameTypeDescription
SDXL_TUPLESDXL_TUPLE
LATENTLATENT
VAEVAE
DEPENDENCIESDEPENDENCIES