ELLA Encode
ELLA Encode — where the conditioning becomes time-aware
- ella
- embeds
- CONDITIONING
Most conditioning in ComfyUI is a boring static blob: encode once, feed the sampler, done. ELLA isn't that. Its connector re-runs at every denoising step with the current timestep baked in - the "time-aware" bit of the Timestep-Aware Semantic Connector. ELLA Encode is the node that turns that into actual CONDITIONING.
Here's what it does mechanically: it takes the ELLA_EMBEDS bag from T5 Text Encode #ELLA, and for every timestep in the schedule it runs the ELLA connector on your T5 embeddings, producing one conditioning per step. Each one gets a start_percent/end_percent slice so the sampler knows which step it belongs to. The output is a list of per-step conditionings, and that's the thing you hand to the KSampler.
Inputs
Only two, and both are non-negotiable:
- ella - the
ELLAobject, and it must have come out ofSet ELLA Timesteps. That node is what stores the timestep schedule on the object. WireLoad ELLA Modelstraight into this and you'll get the explicit error:timesteps are required but not provided, use the 'Set ELLA Timesteps' node first. - embeds - the
ELLA_EMBEDSbag fromT5 Text Encode #ELLA.
Output is CONDITIONING, straight into your KSampler's positive (or negative - you'd run a second copy for negative embeds, or use Apply ELLA which handles both at once).
The modern pipeline
This node is the heart of the current (non-deprecated) way to run ELLA:
Load ELLA Model ─→ Set ELLA Timesteps ─→ T5 Text Encode #ELLA ─→ ELLA Encode ─→ KSampler
(ELLA_EMBEDS) (CONDITIONING)
That chain is the pack's answer to the older Apply ELLA node, which patched the UNet at sampling time instead. Apply ELLA still works but its no-sigmas mode is deprecated; Set ELLA Timesteps + ELLA Encode is the path the maintainers want you on, and it's more compatible with the rest of the ecosystem (LoRAs, ControlNet, per-positive-only setups).
Gotchas worth knowing
- The output is a list of conditionings (one per step), not a single tensor. That's normal - don't try to feed it into a node that expects one flat conditioning.
- If you need LoRA trigger words to survive, remember ELLA alone only knows what FLAN-T5 knows; CLIP-vocabulary trigger words need the CLIP side mixed in (via
Combine CLIP & ELLA Embedsor by wiring a CLIP intoELLA Text Encode). - The quality depends on the timestep schedule matching your sampler exactly - that's
Set ELLA Timesteps's whole job, and it's the first thing to check if output degrades.
Install is the standard pack install - ComfyUI Manager or git clone https://github.com/TencentQQGYLab/ComfyUI-ELLA into custom_nodes with pip install -r requirements.txt - plus the ELLA model in models/ella and FLAN-T5 XL in models/ella_encoder.
Inputs (2)
| Name | Type | Default | Description |
|---|---|---|---|
| ella | ELLA | — | |
| embeds | ELLA_EMBEDS | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| CONDITIONING | CONDITIONING | — |