LZ Artist Chain Text
Your Artist List as One Tag String, Without Going Cross-Eyed
- lz_pipe
- artist_tag
- artist_text
- lz_pipe
LZArtistChainText is the green node you drop in front of the Anima artist mixer when your artist list has outgrown a single run-on line. It's a tiny text utility with one job: take artists typed one per line and hand the downstream nodes a single comma-joined artist_tag string. It looks almost insultingly simple, and it is - but if you've ever squinted at wlop, sakimichan, krenz, atdan, ask, R_c, "A" buried in a jammed prompt box, you'll get why it exists.
Why green? The pack's author color-codes this one as the canonical source for the artist_chain input of LZAnimaArtistNode, LZAnimaArtistPack, and LZAnimaArtistCrossAttn. In a busy graph you can spot it instantly, which matters more than it sounds - Anima's whole appeal is that artist tags are borderline overpowered steerable style tokens, and most serious workflows stack a few at once.
How it works
The mechanism is a delimiter swap, nothing more. The node splits your multiline text on line breaks (handling Windows \r\n too), trims whitespace, drops blank lines, and rejoins everything with ", ". So:
wlop
sakimichan
krenz
becomes artist_tag = "wlop, sakimichan, krenz". Weird line endings and stray blank rows from copy-pasting won't survive the trip - that cleanup is genuinely useful, since pasting from animadex or a notes file is how these lists usually get built.
One honest caveat: the Anima mixer nodes behind this actually split on commas and newlines themselves, so technically you could feed them raw lines and get the same result. The value here is legibility, consistency, and knowing exactly what string you're about to hand over. If you're feeding something other than the LZ anima nodes - a tag-based encoder that wants comma-separated input - this is the standardized string you want.
Inputs and outputs
Only one input you'll touch:
- artist_text (STRING, multiline) - your artists, one per line. This is required and it's the whole node.
Optional:
- lz_pipe (LZ_PIPE) - a pass-through. Feed a pipe in and you get the identical pipe back, so you can slot this node into the middle of a piped workflow without breaking the chain.
Outputs, all three in order:
- artist_tag (STRING) - the comma-joined list. Wire this into the
artist_chaininput of the LZ anima artist nodes. - artist_text (STRING) - your original input, unchanged, if you also need the raw text elsewhere.
- lz_pipe (LZ_PIPE) - whatever pipe you fed in, passed straight through.
Weight syntax rides along fine: put ::wlop::1.5 on its own line and the joined output keeps it intact for the mixer's cross-attention layer.
Installing
The whole ComfyUI-LZNodes pack is one repo. Easiest route: ComfyUI Manager → Install Custom Nodes → search ComfyUI-LZNodes. Or the manual way:
cd ComfyUI/custom_nodes
git clone https://github.com/liz-ils/ComfyUI-LZNodes
Then restart ComfyUI. The node lives under MyCustomNodes → Anima. No Python dependencies, no model downloads, no API keys - for this node specifically it's pure string work, so there's essentially nothing to break.
Where people get burned
The real failure mode is input discipline. The node only splits on lines - if you paste your whole comma-separated list onto one line, it treats that line as a single "artist" entry and passes it through as-is. (Downstream still splits it back apart, so you're not broken, just circular.) The trap is newline-separated only when you also run artist names together with a space on one line - that becomes one mangled tag. Keep it one artist per line and you're fine. Pasted lists with double line breaks or \r endings are handled, so no worries there.
Beyond that: it's a helper, not a loader. It won't do anything by itself - hook the artist_tag output to a mixer node that actually knows how to use a chain. If you're new to Anima, budget an hour poking around animadex first to find a dozen styles you actually like, then let this node keep that list readable.
Inputs (2)
| Name | Type | Default | Description |
|---|---|---|---|
| artist_text | STRING | One artist per line. Example: artist 1 artist a artist b artist_tag output: "artist 1, artist a, artist b" (connect to artist_chain) artist_text output: the input text as-is. | |
| lz_pipeopt | LZ_PIPE | — |
Outputs (3)
| Name | Type | Description |
|---|---|---|
| artist_tag | STRING | — |
| artist_text | STRING | — |
| lz_pipe | LZ_PIPE | — |