Nodes/ComfyUI-LZNodes/LZ Anima Artist Node
ComfyUI Node

LZ Anima Artist Node

Pack, encode, and inject in a single node

By liz-ils·Created 7 months ago·Updated 12 days ago· 1
LZ Anima Artist Node
  • clip
  • model
  • advanced_options
  • model
  • base_prompt
  • positive_text
artist_chain
combine_modeoutput_avg
fusion_modeinterpolate
strength1.00
enabledtrue
apply_to_uncondfalse
base_prompt

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.5 rides 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.

CategoryMyCustomNodes/Anima

Inputs (10)

NameTypeDefaultDescription
clipCLIP
modelMODEL
artist_chainSTRINGArtist 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_modeCOMBOoutput_avg3 options: concat, output_avg, lowrank_avg
fusion_modeCOMBOinterpolate3 options: interpolate, concat_with_base, base_preserve
strengthFLOAT1.000–4Artist 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.
enabledBOOLEANtrue
apply_to_uncondBOOLEANfalse
base_promptoptSTRINGBase prompt (optional). Recommend format: '<artist>\n<base_prompt>'
advanced_optionsoptANIMA_OPTS

Outputs (3)

NameTypeDescription
modelMODEL
base_promptCONDITIONING
positive_textSTRING