Nodes/ComfyUI-BrushNet-Wrapper/BrushNet ELLA Loader
ComfyUI Node

BrushNet ELLA Loader

The One-Input Node That Swaps In Better Prompt Understanding

By kijai·Created 2 years ago·Updated 2 years ago· 150
BrushNet ELLA Loader
  • brushnet
  • brushnet

This is the smallest node in the pack and the one that confuses people most, because its input and output are the same type. One BRUSHNET in, one BRUSHNET out - so what does it even do?

The one trick

ELLA is Tencent QQGYLab's "Efficient Large Language Model Adapter": it wraps a T5-based text model and injects its embeddings into the UNet's cross-attention, giving SD 1.5 much better prompt understanding than the stock CLIP text encoder. The BrushNet ELLA Loader takes your existing brushnet pipeline and swaps its UNet for an ELLAProxyUNet that embeds the ELLA adapter in front of the original UNet. Same BRUSHNET type out, but the pipeline inside now speaks better text.

On first run it downloads ella-sd1.5-tsc-t5xl.safetensors from the QQGYLab/ELLA HuggingFace repo into ComfyUI/models/ella automatically. Nothing to configure - the node has exactly one required input and no settings. That's the whole job.

The catch: it's half a feature without another pack

The swap is only half the ELLA story. The BrushNet Sampler (ELLA) node expects an ella_embeds input of type ELLAEMBEDS - precomputed prompt embeddings - and this pack does not contain a node that produces them. You need a companion ELLA text-encoder node (the example workflow wires one called ella_t5_embeds from a separate ELLA wrapper), which in turn wants a full FLAN-T5-xl text encoder on disk. Install just this pack and the sampler's ella_embeds socket will have nothing to plug into. That's the part everyone trips on.

Typical chain

Checkpoint Loader → BrushNet Model Loader → BrushNet ELLA Loader → BrushNet Sampler (ELLA)
                                                        ↑
                        (separate pack) ELLA T5 node → ella_embeds

Install is the pack standard: ComfyUI Manager search "BrushNet", or git clone https://github.com/kijai/ComfyUI-BrushNet-Wrapper into custom_nodes + pip install -r requirements.txt (portable: python_embeded\python.exe -m pip install -r ComfyUI\custom_nodes\ComfyUI-BrushNet-Wrapper\requirements.txt), restart. First run also grabs the ELLA weights.

Honest take: this is a niche-of-a-niche path from 2024 - ELLA-on-SD1.5 inpainting. It works, the prompt adherence gain is real if you're stuck on SD 1.5 for uncensored work, and the node itself is dead simple. But it drags in a T5 encoder and a second pack, and by 2026 the whole masked-inpainting-with-a-better-encoder problem has gentler answers. Only go down this road if you specifically want BrushNet inpainting and ELLA text conditioning on an SD 1.5 base.

CategoryBrushNetWrapper

Inputs (1)

NameTypeDefaultDescription
brushnetBRUSHNET

Outputs (1)

NameTypeDescription
brushnetBRUSHNET