KPU Wailustrious Character Builder
Build a Danbooru-Tag Character Without Typing a Single Tag
- character_description
- character_type
This is the pack's workhorse, and it's the node I'd tell a beginner to start with. KPU Wailustrious Character Builder turns fifteen dropdowns into one ready-to-use Danbooru-tag character description - no tag vocabulary memorized, no typo'd twintail instead of twintails, just pick and go.
The reason it exists is that anime SDXL checkpoints (the Illustrious family - WAI, NoobAI, Hassaku) are trained on Danbooru tags, and tags beat sentences for controlling exactly what a character looks like. A correct tag like long hair, twintails, blue eyes resolves precisely; prose is a coin flip. This node encodes that whole convention for you. The code even says it: output is built in Danbooru tag format, "for compatibility and consistency" with those models.
How it works
It's pure string assembly, no GPU, no API, no key. You pick from curated enums - character_type (girl, boy, elf, demon, maid, magical girl, nun, witch), hair_color, hair_length, hair_style, eye_color, eye_shape, body_type, clothing, clothing_color, pose, action, expression - plus two free-text fields, body_feature and accessories, and an optional special_traits for anything custom. The node joins the non-empty ones into a comma-separated character_description string, doing the small bookkeeping along the way (it won't produce "long hair hair" when the tag already contains the word, and it skips the black hair repetition you'd otherwise get by hand).
Two outputs come out: character_description (the tag string) and character_type (the type you selected, passed through separately). That second output exists so the pack's WailustriousMultiCharacterGenerator can count how many girls and boys are in a scene and emit the 1girl, 2girls style count token. The Character Builder deliberately does not add the count itself - single-character scenes don't need one, and the multi-char node owns that job.
The inputs that matter
For a beginner, honestly, most of them are self-explanatory dropdowns. The three to pay attention to:
character_type- the gender/type, returned separately so downstream counting works. Note onlygirlandboyget counted by the multi-char node; anelfordemoncharacter is currently skipped in scene counting.clothingandaccessories- the highest-leverage tags for making a character read as "a character" rather than a floating head.special_traits- your escape hatch. Want a maid with cat ears? Typecat earshere; it gets appended verbatim.
Wiring it in
The typical flow: Character Builder → WailustriousMultiCharacterGenerator (feed character_description into a character_N_desc slot and character_type into the matching character_N_type slot) → CLIP Text Encode → sampler. The prompts these produce are aimed at the "Wailustrious XL" line the pack targets - in practice that means any Illustrious-family checkpoint, most commonly WAI-illustrious-SDXL, eats them happily.
Once you're generating, the family's settings apply: CLIP skip 2 (a Clip Set Last Layer at -2), CFG 5–7, Euler a sampler, 15–30 steps, and do not attach an external VAE - it's baked into the checkpoint. And a warning straight from WAI's own model page: keep the prompt reasonably short. Overlong quality-tag stacks and long negatives actually make Illustrious-family output blurrier.
Installing
Pack is comfyui-kpu-utils by kpucha - a young, Spanish-authored, hobby-scale project with almost no community footprint, so do the usual glance at the repo before you trust it (the code is benign: prompt assembly only). Install via Manager (search "comfyui-kpu-utils") or:
cd ComfyUI/custom_nodes
git clone https://github.com/kpucha/comfyui-kpu-utils
Restart, and it shows up under KPU Utils. Ignore the comfyui>=0.9.0 pip line in requirements - that package doesn't exist on PyPI; nothing else needs installing, and there are no model downloads.
Gotchas
- Free-text fields are free-text: a typo is a tag the model doesn't know, so if a tag isn't landing, double-check your spelling and prefer the dropdowns.
- The output is just text. Until you wire it into a CLIP Text Encode node, it's a string going nowhere.
- Single-character scenes are this node's happy place. The moment you want two characters interacting, skip to the Multi-Character node - WAI and friends are famously bad at keeping attributes attached to the right person without explicit prefixes.
Inputs (15)
| Name | Type | Default | Description |
|---|---|---|---|
| character_type | COMBO | girl | 8 options: girl, boy, elf, demon, maid, magical girl, +2 |
| hair_color | COMBO | black | 14 options: black, white, brown, red, pink, purple, +8 |
| hair_length | COMBO | long hair | 5 options: very short hair, short hair, shoulder-length hair, long hair, very long hair |
| hair_style | COMBO | straight hair | 9 options: straight hair, wavy hair, curly hair, twintails, drill hair, side ponytail, +3 |
| eye_color | COMBO | blue eyes | 12 options: black eyes, white eyes, brown eyes, red eyes, pink eyes, purple eyes, +6 |
| eye_shape | COMBO | 6 options: , large eyes, small eyes, cat eyes, fox eyes, sharp eyes | |
| body_type | COMBO | slim | 7 options: slim, slender, petite, curvy, busty, muscular, +1 |
| body_feature | STRING | — | |
| clothing | COMBO | school uniform | 11 options: school uniform, sailor uniform, maid outfit, dress, casual clothes, formal suit, +5 |
| clothing_color | COMBO | 10 options: , white, black, blue, red, green, +4 | |
| accessories | STRING | — | |
| pose | COMBO | standing | 8 options: standing, sitting, lying down, kneeling, floating, jumping, +2 |
| action | COMBO | looking at viewer | 6 options: looking at viewer, looking away, profile, back view, from above, from below |
| expression | COMBO | smiling | 8 options: smiling, happy, neutral, serious, sad, embarrassed, +2 |
| special_traitsopt | STRING | — |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| character_description | STRING | — |
| character_type | STRING | — |