Nodes/Anima Artist Mixer Forge/Anima Artist Pack (Split + Encode)
ComfyUI Node

Anima Artist Pack (Split + Encode)

The node that makes multi-artist prompts on Anima actually work

By Rinne414·Created 2 months ago·Updated about a month ago· 5
Anima Artist Pack (Split + Encode)
  • clip
  • artist_pack
artist_chain
base_prompt

Every node in this pack is downstream of AnimaArtistPack, because this is the one that actually solves the encoding problem. Anima's text encoder is an LLM (Qwen3-0.6B), and LLMs are aggressively contextual - put wlop, krenz in one prompt and each artist tag's embedding gets contaminated by the other. By the time you generate, you get a squeezed-together style that resembles neither. This node's whole trick is refusing to encode them together: it splits your artist list apart, encodes each artist as its own conditioning, and packages the result for the cross-attention mixer downstream. Separately encoded, the artists never get a chance to fight at the prompt level.

The inputs that matter

  • clip - the Anima-compatible CLIP loader (the one whose tokens carry t5xxl_ids). The pack internally calls clip.encode_from_tokens_scheduled, so this has to be the loader Anima's own workflows use.
  • artist_chain - artists separated by commas or newlines. The tooltip is a spec sheet in itself. Two weight systems that stack:
    • (wlop:1.5) - CLIP-side weighting, non-linear, applied at text encoding, familiar from SD/A1111.
    • 1.2::wlop:: - injection-side weighting, linear and predictable, applied at cross-attention output. This is the pack's own syntax and the one you'll reach for.
    • Negative weights (-0.4::pixiv_style::) subtract a style direction instead of adding it - style subtraction.
    • Layer routing via wlop@0-8, timing via wlop@0-8%0.0-0.45, smooth fades via %0.0-0.45~0.1. Remember: @0.0-0.5 is a layer range, %0.0-0.5 is sampling progress.
  • base_prompt - optional main prompt, encoded with the artists. Leave empty to encode the artist names alone. Don't repeat artist names here.

What comes out

One output: artist_pack (type ANIMA_PACK), a bundle of the separately-encoded artist conditionings plus your base prompt. It wires straight into AnimaArtistPresetApply (the recommended path), AnimaArtistCrossAttn (manual), or the diagnostic nodes like AnimaArtistTagCheck and AnimaArtistInspector.

Install

ComfyUI Manager → search "Anima Artist Mixer Forge", or:

cd ComfyUI/custom_nodes
git clone https://github.com/peter119lee/Anima-Artist-Mixer-Forge

then restart. No extra Python dependencies. The model files are the standard Anima set: UNET → models/diffusion_models, qwen_3_06b_basemodels/text_encoders, qwen_image_vaemodels/vae. If the original Anima-Artist-Mixer is installed, disable it first (same node names).

Notes from the trenches

The ::weight:: syntax bypasses weight normalization at runtime - explicit weights stay absolute, which is what you want when one artist should genuinely dominate. And a quiet gotcha from the docs: any artist tag that starts with @ is safe (@wlop stays a name); only a numeric suffix like @0-8 is treated as a layer route. It's a small thing, but it's exactly the kind of thing that makes people think their chain is broken when it isn't.

CategoryAnima/Setup

Inputs (3)

NameTypeDefaultDescription
clipCLIP
artist_chainSTRINGArtist chain. Separate artists with commas or newlines. Example: wlop, sakimichan, krenz Two weight syntaxes (they can coexist and stack): 1) parentheses (wlop:1.5) - CLIP-side, non-linear 2) ::weight ::wlop::1.5 - injection-side, linear Default weight 1.0; range [-4.0, 4.0]. Negative weights subtract that artist's style (style subtraction). ::weight stacks with parentheses: ::(wlop:1.1)::0.8 Optional per-artist layer route: wlop@0-8, krenz@33%-67% Optional per-artist timing: wlop@0-8%0.0-0.45 Use % for sampling timing; @0.0-0.5 is a layer range. Optional timing fade: wlop%0.0-0.45~0.1 (smoothstep edges) When any artist uses ::weight, normalize_weights is bypassed at runtime (explicit weights stay absolute).
base_promptoptSTRINGMain prompt (optional). Follows Anima's recommended layout: artist first, then a newline, then the main prompt ('<artist>\n<base_prompt>'). Leave empty to encode the artist names alone.

Outputs (1)

NameTypeDescription
artist_packANIMA_PACK