Nodes/ComfyUI-BrushNet-Wrapper/BrushNet Sampler (ELLA)
ComfyUI Node

BrushNet Sampler (ELLA)

Inpainting with a T5 Brain Instead of a CLIP One

By kijai·Created 2 years ago·Updated 2 years ago· 150
BrushNet Sampler (ELLA)
  • brushnet
  • ella_embeds
  • image
  • mask
  • images
steps25
cfg7.50
cfg_brushnet1.00
control_guidance_start0.00
control_guidance_end1.00
guess_modefalse
clip_skip0
seed0
schedulerUniPCMultistepScheduler

BrushNet Sampler (ELLA) is the same masked-inpainting sampler as the plain one, with one meaningful difference: your prompt text doesn't come from a prompt box on the node. It comes pre-encoded as ella_embeds from an ELLA text-encoder node, and the UNet in the pipeline has been swapped so it understands those richer embeddings.

Why you'd bother

Plain SD 1.5's CLIP text encoder is... fine, in the way a vending machine menu is fine. ELLA replaces that conditioning path with a T5-based adapter that injects the text features straight into cross-attention, so prompts behave more like they do on Flux or SDXL - longer, natural-language descriptions actually land. Combined with BrushNet's dual-branch masking, you get the era's best "describe what goes in the hole" inpainting on an SD 1.5 base. If that's your stack (it's the classic one for uncensored work), this is the strongest version of it.

How it works

You need the whole chain, and the chain is the fiddly part:

Checkpoint Loader → BrushNet Model Loader → BrushNet ELLA Loader → this node
                                                    ↑
             separate ELLA pack's T5 node → ella_embeds input
  • brushnet_ella_loader swaps the pipeline's UNet for an ELLAProxyUNet wrapping the ELLA model (downloads ella-sd1.5-tsc-t5xl.safetensors to ComfyUI/models/ella on first use).
  • The ella_embeds input is type ELLAEMBEDS and must come from an ELLA text-encoder node in a separate pack - the bundled example workflow uses one named ella_t5_embeds. This pack alone can't produce it, and that T5 node also wants a FLAN-T5-xl text encoder downloaded. Budget some setup time; this is the "everything must be in exactly the right place" corner of the ecosystem.

The node then runs the full diffusers pipeline internally, exactly like the plain sampler: mask composited via image * (1-mask), scheduler chosen from its own dropdown (default UniPCMultistepScheduler), CPU offload enabled once per session.

Inputs you'll actually touch

  • image / mask - the source and the region to regenerate (white = regenerate).
  • ella_embeds - the precomputed prompt/negative embeddings from the ELLA T5 node. This is your "prompt."
  • cfg_brushnet - BrushNet condition strength, default 1.0. Raise it if content ignores the mask.
  • control_guidance_start / control_guidance_end - which slice of denoising the condition guides.
  • steps, cfg, clip_skip, guess_mode, seed, scheduler - standard sampling controls.

Output is images (IMAGE), which you'll typically composite back over the original with a mask-composite node. Two things this node refuses: PowerPaint models ("use the PowerPaint sampler") and using IP-Adapter at the same time as ELLA - both raise exceptions, so don't wire either in.

Install is the pack standard (Manager search "BrushNet", or clone + pip install -r requirements.txt; models auto-download on first run). Honestly, though - this is a 2024 experiment that asks a lot of setup for an SD 1.5-only payoff. If you're not already committed to the SD 1.5 + ELLA stack, skip it: a current base model with its native text encoder gets you the same prompt understanding without the three-piece puzzle.

CategoryBrushNetWrapper

Inputs (13)

NameTypeDefaultDescription
brushnetBRUSHNET
ella_embedsELLAEMBEDS
imageIMAGE
maskMASK
stepsINT251–200
cfgFLOAT7.500–20
cfg_brushnetFLOAT1.000–20
control_guidance_startFLOAT0.000–1
control_guidance_endFLOAT1.000–1
guess_modeBOOLEANfalse
clip_skipINT00–20
seedINT00–18446744073709550000
schedulerCOMBOUniPCMultistepScheduler10 options: DPMSolverMultistepScheduler, DPMSolverMultistepScheduler_SDE_karras, DDPMScheduler, LCMScheduler, PNDMScheduler, DEISMultistepScheduler, +4

Outputs (1)

NameTypeDescription
imagesIMAGE