Apply ELLA
Apply ELLA — the legacy method that still works (for now)
- model
- ella
- positive
- negative
- sigmas
- model
- positive
- negative
Apply ELLA is the original way to get ELLA into a workflow, and it's now the one the maintainers would rather you retire. If you open an old ELLA workflow - anything from before April 2024 - this is the node at its center. It's not broken; it's just on a deprecation path, and it's worth knowing why before you build new stuff on it.
The node takes a MODEL, an ELLA object, and positive/negative ELLA_EMBEDS, and outputs a patched model plus ready-to-use positive and negative CONDITIONING for the KSampler. The modern sibling chain (Set ELLA Timesteps + ELLA Encode) produces the same conditioning but without patching the model, which is friendlier to the rest of the ecosystem.
The two modes, and the deprecation
This is where it gets subtle. Apply ELLA has an optional sigmas input, and the behavior changes depending on whether it's connected:
- With
sigmas- the current, supported path. It builds the per-timestep conditioning the same wayELLA Encodedoes, from the sigmas you feed in (e.g. fromBasicScheduler, matching your sampler). This is the "upgraded" behavior from the April 2024 release. - Without
sigmas- the legacy path. It wraps the UNet with an internal proxy (EllaProxyUNet) that re-runs ELLA at every sampling step and swaps out the cross-attention conditioning on the fly. The pack prints a warning when you hit this:Apply ELLAwithoutsigmasis deprecated and will be removed in a future version. UseSet ELLA Timesteps+ELLA Encodeinstead.
So the honest guidance: if you're loading an old workflow, plug a sigmas source into this node and it stops being deprecated. If you're building new, use Set ELLA Timesteps + ELLA Encode and skip this node entirely.
Inputs and outputs
- model - your checkpoint's
MODEL. - ella - from
Load ELLA Model. - positive / negative -
ELLA_EMBEDSbags, both required (the pack expects symmetric positive/negative embeds; if the keys don't match it raisespositive and negative embeds types must match). - sigmas (optional) - the modern path's switch.
- Outputs: a patched model, plus positive and negative
CONDITIONINGfor the sampler.
Legacy ELLA's biggest pain point was LoRAs - early adopters spent weeks asking "anyone got LoRAs working yet?" - because ELLA's conditioning doesn't carry CLIP's vocabulary by default. The fix is the same as everywhere else in this pack: mix the CLIP conditioning back in (via Combine CLIP & ELLA Embeds, or the Conditioning (Concat) route with ELLA's output into conditioning_to).
Install is the pack install - ComfyUI Manager or git clone https://github.com/TencentQQGYLab/ComfyUI-ELLA into custom_nodes, pip install -r requirements.txt - plus the ELLA model in models/ella and FLAN-T5 XL in models/ella_encoder. If you hit the Half-precision error or dark AYS output, the fixes are the pack's standard ones: FP32 on the T5 loader, and for AYS check add_noise / lower cfg on SamplerCustom.
Inputs (5)
| Name | Type | Default | Description |
|---|---|---|---|
| model | MODEL | — | |
| ella | ELLA | — | |
| positive | ELLA_EMBEDS | — | |
| negative | ELLA_EMBEDS | — | |
| sigmasopt | SIGMAS | — |
Outputs (3)
| Name | Type | Description |
|---|---|---|
| model | MODEL | — |
| positive | CONDITIONING | — |
| negative | CONDITIONING | — |