EasyLoader (Full) - Anima
The loader that refuses to let you pick the wrong VAE
- pipe
- model
- vae
- clip
- latent
- model_name
- vae_name
- model_string
- model_vae
Anima is a three-file model - diffusion model, text encoder, VAE - and the classic way to waste an evening on it is pairing the 16-channel Qwen Image VAE with an SD VAE you also happen to have in models/vae. This loader's headline feature is that it won't let you.
What Anima actually is
Quick orientation, because it changes what the loader has to be careful about. Anima is Circlestone Labs' 2B anime base on NVIDIA Cosmos-Predict2, with a Qwen3-0.6B text encoder and the Qwen Image VAE. It is not SDXL, and that's the point: Illustrious, NoobAI and Pony v6 all share SDXL's CLIP encoders, and heavy Danbooru training overwrote their world knowledge with tag associations. Anima's encoder never went through that, so Danbooru tags and natural language coexist in one prompt. Different stack, different files, different failure modes.
How the file lists work
The model_name and checkPoint dropdowns don't trust folder names or filenames. The loader reads the Safetensors header and lists only files whose architecture keys match Anima. Two practical consequences: renamed files and files in arbitrary subfolders appear normally, and files that aren't Safetensors or whose architecture can't be identified simply don't show up. If you've just dropped a model in and it's missing from the dropdown, the header is the reason - not the path.
At runtime there's a second check on top: the loaded model must report itself as Anima, the CLIP's tokenizer must be an Anima one, and the VAE must have 16 latent channels. A 4-channel SD VAE is rejected before sampling with a message telling you to pick the Qwen Image VAE. Good behavior, and much better than the alternative, which is a decode full of noise.
Inputs and outputs
The node opens with checkPoint set to None (use separate model / CLIP / VAE). In that default mode you pick the three files independently:
model_name- the Anima diffusion model frommodels/diffusion_models.weight_dtype-default,fp8_e4m3fn,fp8_e4m3fn_fast,fp8_e5m2. The low-VRAM lever; Anima runs on 6GB, and this is one of the knobs that keeps it there.clip_name- the Anima Qwen3 0.6B text encoder frommodels/text_encoders.clip_device-defaultorcpu.vae_name- the 16-channel Qwen Image VAE frommodels/vae.
Then resolution (31 built-in entries, including width x height (custom), read from ComfyUI-Easy-Use's resolution list when that pack is present), empty_latent_width, empty_latent_height and batch_size.
Pick a checkpoint instead and the separate controls hide: the checkpoint supplies the model, and its included CLIP/VAE take priority. The hidden selections aren't discarded - they become the automatic fallback if the checkpoint turns out to be missing CLIP or VAE weights.
Outputs: pipe, model, vae, clip, latent, model_name, vae_name. pipe goes to the sampler, model_name and vae_name go to Anima Prompt Saver, and latent is the empty latent for your chosen size and batch.
The thing everyone gets wrong
There are no positive/negative prompt widgets and no conditioning outputs. The pipe it hands over carries positive=None and negative=None. This is deliberate, and it breaks every habit you brought from Easy-Use's own EasyLoader (Full).
The flow is: loader's clip → your Anima-compatible text-encoding nodes → their CONDITIONING outputs → the optional positive and negative inputs on EasyKSampler (Full) - Anima. Two text encoders, wired one into each. If your sampler complains about missing conditioning, this is the missing step.
Also gone, compared with upstream EasyLoader: generic component override sockets, clip_skip, A1111-style prompt weighting, and any built-in LoRA stack. Load your LoRAs on the model after this node. It also doesn't download anything - the README is explicit that no model files ship with the pack.
Install
cd ComfyUI/custom_nodes
git clone https://github.com/nobinBB/comfyui-easy-use-anima
pip install piexif
Or ComfyUI Manager → comfyui-easy-use-anima. Then place the files:
ComfyUI/models/
├─ diffusion_models/your_anima_model.safetensors
├─ checkpoints/your_full_anima_checkpoint.safetensors # optional override
├─ text_encoders/qwen_3_06b_base.safetensors
└─ vae/qwen_image_vae.safetensors
Restart. ComfyUI-Easy-Use is optional; without it the loader falls back to a built-in 31-entry resolution list and the pack's sampler uses core sampling.
Updating from an older build
The internal node ID is easy animaLoaderV2 specifically so old widget positions don't get applied to the new layout. After updating, restart, then delete the old loader from any saved workflow and add EasyLoader (Full) - Anima fresh, reconnecting conditioning through external text-encoding nodes. Loading an old workflow and hoping it adapts is how you end up with a model dropdown that maps to a resolution.
Inputs (10)
| Name | Type | Default | Description |
|---|---|---|---|
| checkPoint | COMBO | None (use separate model / CLIP / VAE) | Anima checkpoint from models/checkpoints. Its MODEL is used, included CLIP/VAE take priority, and missing CLIP/VAE fall back to the saved selections below. |
| model_name | COMBO | Anima diffusion model from models/diffusion_models; for example anima-base-v1.0.safetensors. | |
| weight_dtype | COMBO | default | 4 options: default, fp8_e4m3fn, fp8_e4m3fn_fast, fp8_e5m2 |
| clip_name | COMBO | Anima Qwen3 0.6B text encoder from models/text_encoders; normally qwen_3_06b_base.safetensors. | |
| clip_device | COMBO | default | 2 options: default, cpu |
| vae_name | COMBO | Anima requires a 16-channel Qwen Image VAE; normally qwen_image_vae.safetensors. Incompatible SD VAEs are rejected. | |
| resolution | COMBO | 1024 x 1024 | 31 options: width x height (custom), 512 x 512, 512 x 768, 576 x 1024, 768 x 512, 768 x 768, +25 |
| empty_latent_width | INT | 102464–16384 | — |
| empty_latent_height | INT | 102464–16384 | — |
| batch_size | INT | 11–4096 | — |
Outputs (9)
| Name | Type | Description |
|---|---|---|
| pipe | PIPE_LINE | — |
| model | MODEL | — |
| vae | VAE | — |
| clip | CLIP | — |
| latent | LATENT | — |
| model_name | — | |
| vae_name | Baked VAE | — |
| model_string | STRING | — |
| model_vae | STRING | — |