Anima Artist Chain Builder
:weight, @layers, and %timing — build them
- artist_chain
- preview
The Anima artist chain syntax - 1.2::wlop::, @layers, %timing, ~fade - is powerful and, let's be honest, fiddly to type by hand. AnimaArtistChainBuilder exists so you don't have to. It takes plain per-artist values (weight, layer range, timing window) and assembles a valid artist_chain string for AnimaArtistPack, with a preview so you can see what it generated before you spend a single CLIP encode on it.
The inputs
artist_table- the real workhorse. One artist per line asartist | weight | layers | timing, e.g.@wlop | 1.2 | 0-8 | 0.0-0.45. Lines starting with#are ignored. The README's advice: the three visible rows are just shortcuts - use this table for anything larger.layout-manual(use your per-row layer/timing values),even_layers(split DiT blocks evenly across artists), orlayer_scheduled(default; early/mid/late layers plus early/mid/late sampling windows in one click). Foreven_layersandlayer_scheduled, empty routes auto-fill.artist_1/2/3andweight_1/2/3- the quick rows. Leave an artist blank to skip that row. Weights range −4 to 4 (negative = style subtraction).layer_route_1/2/3andtiming_route_1/2/3- optional per-row routes, only honored inmanuallayout. Layer routes look like0-8,0,2,4,0%-33%, or0.33-0.67; timing routes like0.0-0.45or0.0-0.45~0.1(with fade). Remember:%timing, not@.num_blocks- block count for the preview; Anima default is 28.
Outputs
artist_chain (STRING) → AnimaArtistPack.artist_chain. preview (STRING) - the rendered chain plus a visual block map, shown in the node's UI panel (or wire it into a Show Text node on older frontends).
Install
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 dependencies; standard Anima model trio and the Anima-compatible CLIP loader apply. Don't install alongside the original Anima-Artist-Mixer - duplicate node names shadow each other.
My take
The layer_scheduled layout is the feature that makes this node worth it: one click spreads your artists across layers and sampling windows, which is exactly the thing people hand-tune and then regret. A practical workflow: draft the chain here, run it through AnimaArtistChainPreview to validate the syntax and tag vocabulary before encoding, then feed the result to AnimaArtistPack. The pair costs you nothing but a few seconds, and it catches the typos that otherwise surface as confusing "why is my mix all wlop" renders.
Inputs (15)
| Name | Type | Default | Description |
|---|---|---|---|
| layout | COMBO | layer_scheduled | manual: use the per-row layer/timing values even_layers: split DiT blocks evenly across artists layer_scheduled: early/mid/late layers + early/mid/late sampling windows in one click |
| artist_table | STRING | Multi-artist table. One per line: artist | weight | layers | timing. Example: @wlop | 1.2 | 0-8 | 0.0-0.45 Empty layers/timing auto-fill per layout. Lines starting with # are ignored. | |
| artist_1 | STRING | Artist tag. Leave empty to skip this row. | |
| weight_1 | FLOAT | 1.00-4–4 | — |
| artist_2 | STRING | Artist tag. Leave empty to skip this row. | |
| weight_2 | FLOAT | 1.00-4–4 | — |
| artist_3 | STRING | Artist tag. Leave empty to skip this row. | |
| weight_3 | FLOAT | 1.00-4–4 | — |
| layer_route_1opt | STRING | Optional layer route, e.g. 0-8, 0,2,4, 0%-33%, or 0.33-0.67. Used in manual layout; other layouts auto-fill empty routes. | |
| timing_route_1opt | STRING | Optional timing route, e.g. 0.0-0.45 or 0.0-0.45~0.1 (with fade). Used in manual layout; other layouts auto-fill empty routes. Use % timing in artist_chain; @0.0-0.5 is a layer range. | |
| layer_route_2opt | STRING | Optional layer route, e.g. 0-8, 0,2,4, 0%-33%, or 0.33-0.67. Used in manual layout; other layouts auto-fill empty routes. | |
| timing_route_2opt | STRING | Optional timing route, e.g. 0.0-0.45 or 0.0-0.45~0.1 (with fade). Used in manual layout; other layouts auto-fill empty routes. Use % timing in artist_chain; @0.0-0.5 is a layer range. | |
| layer_route_3opt | STRING | Optional layer route, e.g. 0-8, 0,2,4, 0%-33%, or 0.33-0.67. Used in manual layout; other layouts auto-fill empty routes. | |
| timing_route_3opt | STRING | Optional timing route, e.g. 0.0-0.45 or 0.0-0.45~0.1 (with fade). Used in manual layout; other layouts auto-fill empty routes. Use % timing in artist_chain; @0.0-0.5 is a layer range. | |
| num_blocksopt | INT | 281–64 | Block count for the preview. Anima default is 28. |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| artist_chain | STRING | — |
| preview | STRING | — |