Nodes/Anima-Wardrobe/Anima 随机女性角色(含官方标签特征)
ComfyUI Node

Anima 随机女性角色(含官方标签特征)

Roll a character out of 5,981, weighted so it isn't always the same five

By lingdongbudong·Created 25 days ago·Updated 25 days ago· 15
Anima 随机女性角色(含官方标签特征)
  • upstream_wardrobe
  • text
  • wardrobe
  • report
◄pool热门 TOP200►
◄keyword►
◄min_post_count0►
◄character_count1►
◄include_featurestrue►
◄huge_breastsfalse►
◄avoid_repeattrue►
◄levelsuggestive►
◄relation自动(按等级)►
◄seed-1►
◄order_modepreserve►
◄opt_prompt—►

Anima knows a lot of characters and documents almost none of them, which is why its ecosystem grew discovery tools instead of wikis. This node is the random-access version of that idea: point it at a pool and it hands you a character - the exact trigger string Anima recognizes, plus her official feature tags - ready to drop into a prompt. Roll two and it wires the interaction tags for you.

What's in the pool, and how it picks

The data is presets/character_pool.json, a 2.3 MB file of 5,981 1girl entries, each with a name, series, trigger string, Danbooru post count, hair colour, eye colour and official feature tags. Selection is weighted by the square root of post count, which is the right shape: a blockbuster character shows up often but not every time, and obscure ones stay plausible instead of getting drowned out. Weights are sqrt(count+1), so a character with 10,000 posts is about ten times as likely as one with 100 - not a hundred times.

avoid_repeat covers the other half of the problem. It keeps the last 40 picks in presets/.recent_girls.json inside the pack folder and filters them out of the candidate list, falling back to the full list only if that leaves too few characters to fill your request.

A design detail worth noticing: the picked tags go into the character slot, deliberately not the clothing slot. A character's signature outfit is identity, not wardrobe - putting kneehighs there would lock the sticky clothing slot and quietly kill your ability to dress her. The count word (1girl / 2girls / 3girls) goes in its own slot, and multi-pick results are merged into a single claim entry, because two entries in the same slot at the same sequence number would mean one of them gets shadowed and a character silently vanishes from your prompt.

The controls you'll actually set

pool is the big one: 热门 TOP200, 热门 TOP1000, the full 5,981, or one of the filtered pools. keyword only means anything once you pick 按作品, 按发色 or 按瞳色 - type genshin, white or blue there and it filters by series, hair colour or eye colour. min_post_count drops the deep cuts (set it to 1000 and you're in household-name territory). character_count is 1–3. include_features decides whether you get the official traits or just name-and-series.

Then the two switches that mark this as an adult-content-aware tool rather than a random-name generator: huge_breasts, which strips any body-size words from the picked features and appends huge breasts so the result is deterministic, and relation, which only fires when you roll two or more. On 自动(按等级), two girls at level 0–1 get friends-and-holding-hands tags, level 2–3 gets yuri plus a specific act, and level 4 gets the extreme list. Set it to 不加 if you want the two characters to simply coexist.

seed at -1 gives you a fresh roll each execution; pin it and you reproduce the same casting. Output is text (the prompt), wardrobe (the structured claim to chain into the arbiter), and report - which is where you find out what it picked, since the text output is only ever going to be Danbooru tags.

Install

Part of the pack; nothing to download separately and no Python dependencies.

cd ComfyUI/custom_nodes
git clone https://github.com/lingdongbudong/Comfyui-Anima-Wardrobe
# restart ComfyUI - the node appears under the AnimaWardrobe category

Or ComfyUI Manager → Install Custom Nodes → search Anima-Wardrobe.

Where people get burned

Empty pools are the classic. Pick 按发色 with an empty keyword and you get zero candidates. So does a hair colour your min_post_count filters out entirely - the filtered pools already require 50 posts as a floor, which rules out some genuinely obscure colours. Check the report: it prints the candidate count before it picks, so 候选=0 is your answer.

The character slot is replaceable. That's intentional - swap the character and her features should swap with her - but it also means a downstream character selector will happily overwrite this node's pick. If you want the roll to stick, wire wardrobe forward into an arbiter rather than assuming tag text alone carries authority.

avoid_repeat writes a file. It's inside the pack's presets/ directory, so a read-only custom_nodes mount (common in Docker setups) means the state never persists and you'll see repeats sooner than expected. Nothing breaks; the avoidance just quietly stops working.

One last thing, from the Anima side: multi-character prompts are where attribute bleeding shows up, and word order is what binds an attribute to a subject. Two characters plus a rolled outfit plus a scene is exactly the crowded case the model can trip on, so keep the non-character parts of the prompt short and let the tags do the work.

CategoryAnimaWardrobe

Inputs (13)

NameTypeDefaultDescription
poolCOMBO热门 TOP2006 options: 热门 TOP200, 热门 TOP1000, 全部女性, 按作品, 按发色, 按瞳色
keywordSTRING池选「按作品/按发色/按瞳色」时生效
min_post_countINT00–1000000—
character_countINT11–3—
include_featuresBOOLEANtrue—
huge_breastsBOOLEANfalse—
avoid_repeatBOOLEANtrue—
levelCOMBOsuggestive6 options: sfw, suggestive, explicit, hardcore, extreme, any
relationCOMBO自动(按等级)4 options: 自动(按等级), 正常互动, 百合向, 不加
seedINT-1-1–2147483647—
order_modeCOMBOpreserve2 options: preserve, normalize
opt_promptoptSTRING—
upstream_wardrobeoptANIMA_WARDROBE—

Outputs (3)

NameTypeDescription
textSTRING—
wardrobeANIMA_WARDROBE—
reportSTRING—