Nodes/ComfyUI_ELLA/Load ELLA Model
ComfyUI Node

Load ELLA Model

The node that hides two big downloads

By ExponentialML·Created 2 years ago·Updated 2 years ago· 160
Load ELLA Model
    • ELLA
    ella_model
    t5_model

    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:

    1. The ELLA adapter - a small (~300 MB) .safetensors checkpoint 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.
    2. 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 .safetensors files in ComfyUI/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-enc to 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 under models/t5_model/, not a loose set of files.
    • transformers not found - the code leans on HuggingFace's transformers for the T5, and a bare ComfyUI install may not have it. If you get a ModuleNotFoundError, pip install transformers into 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.

    Categoryella/loaders

    Inputs (2)

    NameTypeDefaultDescription
    ella_modelCOMBO0 options:
    t5_modelCOMBO1 options: flan-t5-xl

    Outputs (1)

    NameTypeDescription
    ELLAELLA