Load ELLA Model
The node that hides two big downloads
- ELLA
LoadElla looks like the easiest node in the pack - two dropdowns, one output, done. The deception is in what it's actually loading. This node pulls in not one but two model files, one of them a full-size language model, and bundles them into a single "ELLA" object that the text-encode node then uses. It's the gateway to everything ELLA does, and it's the place where most installs go wrong.
What it loads
ELLA ("Equip Diffusion Models with LLM for Enhanced Semantic Alignment") works by swapping SD 1.5's weak CLIP text encoder for a real language model. So LoadElla has to load both halves of that swap:
- The ELLA adapter - a small (~300 MB)
.safetensorscheckpoint that fuses language-model embeddings into the UNet. This is the actual ELLA weights file:ella-sd1.5-tsc-t5xl.safetensors, from the QQGYLab HuggingFace repo. - The text encoder - Google's
flan-t5-xl, downloaded as a whole folder. This is the part people underestimate. It's a 3B-parameter T5 model, several gigabytes, and it's what gives ELLA its sentence comprehension.
Under the hood the node builds a T5TextEmbedder from the t5 folder, instantiates the ELLA adapter, loads your checkpoint's state dict into it, and moves everything onto the text-encoder device at the right precision. What comes out the ELLA output is a bundle containing both - it doesn't plug into a UNet or a VAE, it only feeds ELLATextEncode nodes.
The two inputs and where the files go
- ella_model - dropdown of
.safetensorsfiles inComfyUI/models/ella/. Drop the ELLA checkpoint there and it appears. - t5_model - dropdown of folders in
ComfyUI/models/t5_model/(default:flan-t5-xl).
Both directories get created automatically on first run. The README's recommended way to fetch the T5:
cd ComfyUI/models/t5_model
git clone https://huggingface.co/google/flan-t5-xl
and grab ella-sd1.5-tsc-t5xl.safetensors from QQGYLab/ELLA into models/ella/. Manual file-by-file download works too if you don't want git.
Install and the things that bite
Same pack, same install as the rest: ComfyUI Manager, search ComfyUI_ELLA, or git clone https://github.com/ExponentialML/ComfyUI_ELLA into custom_nodes, then restart. The README has a loud note worth repeating: only the SD 1.5 ELLA checkpoint exists. The researchers released SD 1.5 weights only - don't hold your breath for an SDXL version, and don't expect the 1.5 file to work on anything else.
Real-world issues, in order of how often people hit them:
"layerNormKernelImpl" not implemented for 'Half'- the T5 layer-norm kernel chokes in fp16 on many setups. Community-confirmed fix: add--fp32-text-encto your ComfyUI launch args and restart. It costs a bit of VRAM but it's the difference between working and a hard crash after encoding.- Empty dropdowns - almost always the files in the wrong place. The ella file goes in
models/ella/, the T5 is a folder undermodels/t5_model/, not a loose set of files. transformersnot found - the code leans on HuggingFace'stransformersfor the T5, and a bare ComfyUI install may not have it. If you get a ModuleNotFoundError,pip install transformersinto ComfyUI's Python environment.
The flan-t5-xl download is the big one - give yourself disk space and a patient afternoon the first time. After that, LoadElla is boring, which is exactly what you want a loader to be.
Inputs (2)
| Name | Type | Default | Description |
|---|---|---|---|
| ella_model | COMBO | 0 options: | |
| t5_model | COMBO | 1 options: flan-t5-xl |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| ELLA | ELLA | — |