◊ Characters
Weighted multi-character tags from a 5k-name database
- CHARACTER PROMPT
Illustrious's character knowledge is one of its strongest selling points - if a character has roughly 200 or more works on Danbooru, the model usually already knows them without a LoRA. This node is a front end to that knowledge: five character slots, weighting controls, and a live search against the pack's own database of 5,000+ names, so you're not hunting down exact tag spellings by hand.
Five slots, not equal weight
Character (Base) through Character (Quinary) give you five named characters in one node - useful for group scenes or crossovers - and Weighed Average changes how they combine (the pack doesn't publish the exact formula behind it, so treat it as "smooths the blend between multiple named characters" rather than something you can predict precisely; test it against your specific combination). Format Tag wraps the output in escaped parentheses for weight emphasis, matching the Danbooru/Illustrious tag-weighting convention the rest of the pack uses too.
What this node can't do on its own
Naming five characters in one CHARACTER PROMPT string puts all five names in the same global conditioning - it doesn't give you spatial separation between them. Multiple named subjects in one prompt is exactly the situation where attributes bleed into each other (hair color, outfit, pose smearing between characters), because conditioning applies across the whole canvas rather than per-subject. If you need each character actually confined to a different part of the frame, pair this node's output with IllustriousRegionalConditioning and build one region per character rather than expecting five names in one string to keep them visually distinct.
The inputs and outputs that matter
Character (Base/Secondary/Tertiary/Quaternary/Quinary)- five STRING fields, all optional in practice since empty strings are simply skipped, but at least the first should probably be filled or the node has nothing to do.Weighed Average- off by default; try it if a straightforward tag list produces a blend you don't like.Format Tag- on by default, wraps output for weight emphasis.prefix/suffix- splice extra text around the assembled character tags.
Output is a single CHARACTER PROMPT string - feed it into your main prompt, typically alongside IllustriousArtists and whatever scene description you're writing by hand.
Installing it
ComfyUI Manager: search "EasyIllustrious," install, restart. Manually:
cd ComfyUI/custom_nodes
git clone https://github.com/regiellis/ComfyUI-EasyIllustrious
pip install -r ComfyUI-EasyIllustrious/requirements.txt
No downloads beyond the pack - the character database ships with it.
Common issues
A named character doesn't look right, or the model seems not to know them. Check they clear roughly the 200-works-on-Danbooru threshold that tends to separate "the model just knows this" from "you need a LoRA." A correctly spelled tag for an obscure character will still produce a generic result if the underlying training data simply didn't have enough of them - that's a training-data gap, not something this node can fix by typing the name more precisely.
Multiple characters bleeding into each other - shared hair color, mixed outfits. Expected behavior for a flat multi-character prompt, not a bug in this node. Reach for IllustriousRegionalConditioning if you need actual spatial separation.
Weighed Average changes the output in ways you didn't expect. Since the exact blending math isn't documented, A/B it on and off for your specific character combination rather than assuming what it'll do.
Inputs (9)
| Name | Type | Default | Description |
|---|---|---|---|
| Character (Base) | STRING | Primary character | |
| Character (Secondary) | STRING | Secondary character | |
| Character (Tertiary) | STRING | Tertiary character | |
| Character (Quaternary) | STRING | Quaternary character | |
| Character (Quinary) | STRING | Quinary character | |
| Weighed Average | BOOLEAN | false | Use averaged weights |
| Format Tag | BOOLEAN | true | Wrap with ( ) for emphasis |
| prefixopt | STRING | Prefix to the prompt with a custom string. | |
| suffixopt | STRING | Suffix to the prompt with a custom string. |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| CHARACTER PROMPT | STRING | — |