LZ Anima Artist Node
Pack, encode, and inject in a single node
- clip
- model
- advanced_options
- model
- base_prompt
- positive_text
The pack's README calls LZAnimaArtistNode the "combined node," and that's exactly what it is: where LZAnimaArtistPack and LZAnimaArtistCrossAttn split the work into two stages, this one does both in a single node - split/encode your artist chain and inject it into the model's cross-attention - plus it encodes the base prompt for you. Model in, patched model + conditioning out, one interface to learn instead of two.
What it does
Inputs on the left, all the controls you'd expect:
- clip and model - required. The CLIP encodes the artist chain, the MODEL gets patched.
- artist_chain - the same multiline artist list (commas or newlines) with the same dual weight syntax as the Pack node:
(wlop:1.5)rides the CLIP encoding layer,::wlop::1.5rides the cross-attention injection layer, and they stack (::(wlop:1.1)::0.8). - base_prompt (optional) - your actual subject. Its tooltip recommends the
<artist>\n<base_prompt>format Anima's training expects. If you leave it empty, the node still works but each artist encodes against nothing, which is visibly weaker. - combine_mode, fusion_mode, strength, enabled, apply_to_uncond - identical semantics to the CrossAttn node (see that article for the play-by-play). Strength is the dial: 0–1.0 interpolates, 1.0–4.0 extrapolates, and 1.5–2.5 is where artists really take over.
- advanced_options - an optional ANIMA_OPTS socket for the deep controls.
Outputs are model (patched), base_prompt (the base CONDITIONING - README notes it feeds straight into the pipe system as positive_text), and positive_text (the string for logging). All three make this node a drop-in starting point for a pipe-based workflow: it produces the patched model and the conditioning your sampler wants.
When to use the combined node vs. the split
Honestly, most people should start here. If you're not yet tuning per-layer block ranges and EMA smoothing, the two-node split buys you nothing but more graph to read. The split only earns its keep once you want the Pack's ANIMA_PACK for something else (feeding two different injection configs, say) or you're in the advanced options deep end and want the stages visually separated. The combined node keeps the exact same internals - it's just front-loaded.
Installing it
cd ComfyUI/custom_nodes
git clone https://github.com/liz-ils/ComfyUI-LZNodes
restart → LZNodes/Anima. ComfyUI Manager: ComfyUI-LZNodes. No extra dependencies.
Where people get burned
The same traps as the family, concentrated: forgetting that strength 1.0 is full interpolation (off = toggle enabled), pushing extrapolation past ~2.5 until the composition dissolves, and expecting the node to do something with a single artist name and no base prompt - it will, but the result reads as "anime by that artist" rather than "your subject in that style." And if you're on an SDXL checkpoint rather than Anima, this node is wasted on you: it's built around Anima's training shape, and the whole mechanism exists because plain Anima tag-blending is weak. Use it where it belongs.
If artist chains are why you installed LZNodes at all, this is the node you'll actually keep on canvas.
Inputs (10)
| Name | Type | Default | Description |
|---|---|---|---|
| clip | CLIP | — | |
| model | MODEL | — | |
| artist_chain | STRING | Artist chain. Separate with commas or newlines. Example: wlop, sakimichan, krenz Supports two weight syntaxes (can coexist): 1) Bracket syntax (wlop:1.5) - affects CLIP encoding layer, nonlinear 2) ::weight syntax ::wlop::1.5 - affects cross-attn injection layer, linear Default weight=1.0. Range [0.0, 4.0]. ::weight and brackets can be stacked: ::(wlop:1.1)::0.8 | |
| combine_mode | COMBO | output_avg | 3 options: concat, output_avg, lowrank_avg |
| fusion_mode | COMBO | interpolate | 3 options: interpolate, concat_with_base, base_preserve |
| strength | FLOAT | 1.000–4 | Artist injection strength. 0.0-1.0: interpolation lerp(base, artist, strength) 1.0-4.0: extrapolation base + strength * (artist - base) Recommended 1.5-2.5 for extrapolation. |
| enabled | BOOLEAN | true | — |
| apply_to_uncond | BOOLEAN | false | — |
| base_promptopt | STRING | Base prompt (optional). Recommend format: '<artist>\n<base_prompt>' | |
| advanced_optionsopt | ANIMA_OPTS | — |
Outputs (3)
| Name | Type | Description |
|---|---|---|
| model | MODEL | — |
| base_prompt | CONDITIONING | — |
| positive_text | STRING | — |