Nodes/ComfyUI-ELLA/ELLA Encode
ComfyUI Node

ELLA Encode

ELLA Encode — where the conditioning becomes time-aware

By TencentQQGYLab·Created 2 years ago·Updated 2 years ago· 382
ELLA Encode
  • 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 ELLA object, and it must have come out of Set ELLA Timesteps. That node is what stores the timestep schedule on the object. Wire Load ELLA Model straight 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_EMBEDS bag from T5 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 Embeds or by wiring a CLIP into ELLA 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.

Categoryella/conditioning

Inputs (2)

NameTypeDefaultDescription
ellaELLA
embedsELLA_EMBEDS

Outputs (1)

NameTypeDescription
CONDITIONINGCONDITIONING