EasyLoader (PixArt)
A one-node loader for a model time mostly forgot
- optional_lora_stack
- pipe
- model
- vae
PixArt was a genuinely big deal for about six months in 2024. This node loads it - checkpoint, VAE, T5 text encoder, optional LoRA, and an empty latent, all from one box - but it's worth knowing upfront what you're loading before you go hunting for the weights.
What PixArt actually was
PixArt Sigma (and the earlier Alpha) proved a DiT-plus-T5 architecture could out-adhere models many times its size - the community's own line was that a 0.6B-parameter model, smaller than SD 1.5, was hitting SD3-class prompt following. There were serious threads arguing the whole ecosystem should move to it. Then Flux launched in August 2024 and did the same trick at a scale that made PixArt's efficiency story irrelevant overnight; the PixArt team joined Nvidia not long after. It didn't fail on merit - it got timed out by something better. If you're picking a model for a new project today, this isn't it. If you've got an existing PixArt workflow, or you're specifically chasing its speed-to-adherence ratio on modest hardware, this loader is the easy way to run it.
How it's put together
PixArt swaps SD's CLIP text encoder for T5 - the same conditioning approach Flux and Qwen-Image later scaled up - which is why this loader has both a clip_name slot and a dedicated t5_name/t5_type pair instead of the usual single CLIP field. The T5 side is genuinely heavy, which is why you get device (offload it to cpu to save VRAM, at some speed cost) and dtype (fp16/bf16/fp32, or default) as separate controls from the diffusion model itself.
The inputs and outputs that matter
ckpt_name and vae_name are your usual dropdowns, populated from whatever's in your models folders. model_name is the PixArt variant - PixArtMS_XL_2, the Sigma builds at various sizes, or one of the ControlPixArt variants if you're doing ControlNet-style conditioning on it. padding controls T5 tokenizer padding; leave it at the default unless you know why you're changing it. ratio is PixArt's fixed aspect-ratio bucket system - pick a preset ratio like the model was trained on rather than freely setting width/height, or choose custom to fall back to the explicit empty_latent_width/empty_latent_height fields. positive/negative are your prompts, batch_size your usual batch count, and lora_name/lora_model_strength bolt on a single LoRA if you have one for this architecture (rare, but they exist).
Three outputs: pipe (the bundled connection Easy-Use nodes pass around), plus model and vae broken out separately in case you want to wire something non-Easy-Use downstream. An optional optional_lora_stack input lets you feed a stack of multiple LoRAs instead of the single built-in slot.
Installing it
ComfyUI Manager: search ComfyUI Easy Use, install, restart. By hand:
cd ComfyUI/custom_nodes
git clone https://github.com/yolain/ComfyUI-Easy-Use
Windows: double-click install.bat. Linux/Mac: cd in and run pip install -r requirements.txt yourself - there's no script for you. Restart ComfyUI. The README credits ComfyUI_ExtraModels for the underlying DiT support, so if PixArt loading errors out on a missing class, that's the dependency to check got pulled in.
Where people get stuck
The most common issue isn't the node, it's finding the weights - PixArt checkpoints, VAE, and the T5 encoder are three separate downloads from HuggingFace, and none of them auto-fetch. If the model produces garbled output, double check ratio matches a bucket the checkpoint was actually trained on rather than an arbitrary custom size; PixArt is noticeably less forgiving of off-distribution aspect ratios than SDXL is. And if generation is painfully slow on modest VRAM, that's almost always the T5 encoder running on GPU - set device to cpu for it and keep the diffusion model on GPU.
Inputs (18)
| Name | Type | Default | Description |
|---|---|---|---|
| ckpt_name | COMBO | 0 options: | |
| model_name | COMBO | 7 options: PixArtMS_XL_2, PixArtMS_Sigma_XL_2, PixArtMS_Sigma_XL_2_900M, PixArtMS_Sigma_XL_2_2K, PixArt_XL_2, ControlPixArtHalf, +1 | |
| vae_name | COMBO | 0 options: | |
| t5_type | COMBO | 1 options: sd3 | |
| clip_name | COMBO | 0 options: | |
| padding | INT | 11–300 | — |
| t5_name | COMBO | 0 options: | |
| device | COMBO | cpu | 3 options: auto, cpu, gpu |
| dtype | COMBO | 5 options: default, auto (comfy), FP32, FP16, BF16 | |
| lora_name | COMBO | 1 options: None | |
| lora_model_strength | FLOAT | 1.00-10–10 | — |
| ratio | COMBO | 1.00 | 41 options: custom, 0.25, 0.26, 0.27, 0.28, 0.32, +35 |
| empty_latent_width | INT | 102464–16384 | — |
| empty_latent_height | INT | 102464–16384 | — |
| positive | STRING | — | |
| negative | STRING | — | |
| batch_size | INT | 11–64 | — |
| optional_lora_stackopt | LORA_STACK | — |
Outputs (3)
| Name | Type | Description |
|---|---|---|
| pipe | PIPE_LINE | — |
| model | MODEL | — |
| vae | VAE | — |