Nodes/ComfyUI-ELLA/Load ELLA Model
ComfyUI Node

Load ELLA Model

Load ELLA Model — the connector, not the brains

By TencentQQGYLab·Created 2 years ago·Updated 2 years ago· 382
Load ELLA Model
    • ELLA
    name

    Every ELLA workflow starts here, and it's worth being clear about what this node doesn't load. ELLA (Equip Diffusion Models with LLM for Enhanced Semantic Alignment, from Tencent's GYLab) improves SD 1.5's prompt understanding by replacing the weak CLIP text conditioning with something that actually reads sentences. But the big language model - the FLAN-T5 XL encoder that does all the reading - is a separate download. This node only loads the little connector that sits between the two.

    The connector is a small network: a timestep embedding plus a Perceiver resampler with 64 learnable latents. You give it FLAN-T5's output embeddings plus the current denoising timestep, and it squeezes everything down to the 64 tokens SD 1.5's UNet expects for cross-attention. That's the entire .safetensors file. The "brains" never touch this node.

    Inputs and output

    It's a loader, so it's dumb on purpose.

    • name - a dropdown of everything in ComfyUI/models/ella/. You'll see exactly one file unless you've collected more: ella-sd1.5-tsc-t5xl.safetensors (that's the only model Tencent shipped for this).
    • output - an ELLA object, which you feed into Set ELLA Timesteps, ELLA Encode, ELLA Text Encode, or Apply ELLA.

    There are no other knobs. No dtype selector, no half-precision toggle. The model loads at whatever precision ComfyUI's text-encoder heuristics pick.

    How it actually works

    Under the hood it's the ELLAModel from model.py: TimestepsTimestepEmbeddingPerceiverResampler. The "time-aware" part is the whole point - this connector takes a timestep as an input, which is what lets ELLA adapt its semantic features at every step of sampling. That's the Timestep-Aware Semantic Connector (TSC) from the paper, and it's why the rest of the pack is obsessed with timesteps matching your KSampler.

    The practical catch: this is an SD 1.5-only party. People waited for an SDXL release and Tencent never shipped one (their GitHub comments said so, and the community was not happy about it). If you're on SDXL or newer, this pack does nothing for you.

    Install and the model file

    Install the pack the usual way:

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

    Then create ComfyUI/models/ella/ if it doesn't exist and drop the file there:

    mkdir -p ComfyUI/models/ella
    # put ella-sd1.5-tsc-t5xl.safetensors in it
    

    Get the model from the QQGYLab/ELLA Hugging Face repo. You can also set an ella entry in extra_model_paths.yaml to point at a custom location. The pack needs a recent ComfyUI - if the dropdown comes up empty after restarting, your file isn't where the pack is looking.

    Note the other model this workflow needs: FLAN-T5 XL, the ~6 GB text encoder, lives in ComfyUI/models/ella_encoder/ and is loaded by the separate "Load T5 TextEncoder #ELLA" node. Forgetting it is the most common first-run mistake - the ELLA object loads fine and then everything downstream errors out.

    Categoryella/loaders

    Inputs (1)

    NameTypeDefaultDescription
    nameCOMBO0 options:

    Outputs (1)

    NameTypeDescription
    ELLAELLA