LZ Anima Loader
Three parts, one node
- MODEL
- CLIP
- VAE
- positive
- negative
- positive_text
- negative_text
- lz_pipe
- model_name
- model_hash
Anima isn't an SDXL checkpoint, so it doesn't load like one. The Circlestone 2B diffusion transformer ships as separate pieces - the DiT itself, a Qwen3-0.6B text encoder, and a Qwen-Image VAE - and vanilla ComfyUI makes you wire up three loaders for them. LZ Anima Loader does it in one node: three dropdowns, two prompt boxes, ten outputs including a ready-to-go pipe.
How it works
The class is a thin composite over ComfyUI's own UNETLoader, CLIPLoader, and VAELoader. Pick your three files, type your prompts, and it loads the diffusion model from models/diffusion_models, the text encoder from models/text_encoders, and the VAE from models/vae, then encodes both prompts against the Qwen encoder. Outputs:
- MODEL / CLIP / VAE - for people who still want the raw pieces.
- positive / negative - the two CONDITIONING tensors.
- positive_text / negative_text - the strings, for logging.
- lz_pipe - the whole bundle in one socket for the pack's pipe-based sampler.
- model_name / model_hash - the diffusion model filename plus a cached 10-char SHA-256 prefix (same streaming hash the pack's checkpoint loader uses). Log these and you know exactly which weights made an image.
The prompt defaults are the telling detail: positive pre-fills masterpiece, best quality, score_9, safe, and negative pre-fills worst quality, low quality, score_1, score_2, score_3, artist name. Those score_1–score_9 tags are Anima's quality language - its training data uses them the way Illustrious-era models use "best quality" - and the negative's artist name placeholder is a genuine Anima tip: because the base is so strongly artist-tag driven, explicitly suppressing generic artist output is a real lever.
What Anima is, in one breath
If you haven't met it: Anima is Circlestone Labs' 2B anime model on NVIDIA's Cosmos-Predict2 backbone - not SDXL, not AnimateDiff (the names are unrelated). Its Qwen text encoder never got its world knowledge overwritten by Danbooru training, so it handles natural language and multi-character scenes better than the SDXL anime line. Costs: it's slow for its size, plain out of the box until you add an artist tag, and has no ControlNet. This node doesn't fix any of that; it just makes running it not a chore.
Installing it
cd ComfyUI/custom_nodes
git clone https://github.com/liz-ils/ComfyUI-LZNodes
restart, find it under MyCustomNodes/Loaders. Or ComfyUI Manager → search ComfyUI-LZNodes. No extra pip dependencies - the pack ships no requirements.txt and this node only wraps core loaders.
Where people get burned
The classic Anima trap isn't this node, it's the model you point it at: you need all three components in the right folders, and the text encoder has to be a Qwen-compatible one, not an SDXL CLIP. Grab the files from the official Anima model card (HF: circlestone-labs/Anima). Also remember the 16-channel latent thing - the pack's PresetEmptyLatentImage has an "Anima (16ch)" mode for exactly this reason, so if you're hand-rolling latents, use that instead of an SDXL latent generator. And as with any Anima setup, skip the negative boilerplate you're used to from SDXL: at the turbo-LoRA CFG ~1 settings the negative does nothing anyway, and on the base model the score_ tags are the dialect.
Inputs (5)
| Name | Type | Default | Description |
|---|---|---|---|
| diffusion_model | COMBO | 0 options: | |
| text_encoder | COMBO | 0 options: | |
| vae | COMBO | 0 options: | |
| positive | STRING | masterpiece, best quality, score_9, safe, | — |
| negative | STRING | worst quality, low quality, score_1, score_2, score_3, artist name | — |
Outputs (10)
| Name | Type | Description |
|---|---|---|
| MODEL | MODEL | — |
| CLIP | CLIP | — |
| VAE | VAE | — |
| positive | CONDITIONING | — |
| negative | CONDITIONING | — |
| positive_text | STRING | — |
| negative_text | STRING | — |
| lz_pipe | LZ_PIPE | — |
| model_name | STRING | — |
| model_hash | STRING | — |