Anima Artist Pack (Split + Encode)
The node that makes multi-artist prompts on Anima actually work
- clip
- artist_pack
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 carryt5xxl_ids). The pack internally callsclip.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 viawlop@0-8%0.0-0.45, smooth fades via%0.0-0.45~0.1. Remember:@0.0-0.5is a layer range,%0.0-0.5is 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_base → models/text_encoders, qwen_image_vae → models/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.
Inputs (3)
| Name | Type | Default | Description |
|---|---|---|---|
| clip | CLIP | — | |
| artist_chain | STRING | Artist 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_promptopt | STRING | Main 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)
| Name | Type | Description |
|---|---|---|
| artist_pack | ANIMA_PACK | — |