🎮 Character Tag Selector
Pick It From a Dropdown
- text
- preview_image
Every anime workflow has the same quiet tax: you know exactly which character you want, and then you spend a minute trying to remember whether it's raiden_shogun_(genshin_impact) or raiden_shogun_(genshin) and whether the underscore goes before the parenthesis. The Character Tag Selector is the answer to that tax. It's a dropdown that ships with a curated database of Genshin Impact, Honkai Star Rail, Zenless Zone Zero, and Wuthering Waves characters, and it hands you a ready-made prompt line plus a preview image of whoever you picked.
The name undersells the useful part. This is a prompt authoring node, not a generation node - it doesn't call any API and needs no key. It just saves you from mangling a Danbooru tag by hand, which matters more than it sounds: on the Danbooru-trained anime models (Illustrious, NoobAI, and to a degree Pony V6), the exact tag is the difference between "Raiden Shogun, recognizable" and "some woman with a polearm." Those models understand the real tag vocabulary far better than a prose description, so the spelled-out tag is your strongest lever for hitting a named character on the first try.
How it works
The node reads a JSON file per game that ships inside the pack under web/data/ - each entry has Chinese and English names, the canonical Danbooru tag, the game's source tag, and a URL to the character's official icon on Hoyoverse's CDN. Under the hood it's three small things done well: it caches the parsed JSON by file mtime, a bit of frontend JS filters the character dropdown down to the currently selected game, and when you pick someone it fetches their icon (with a 256MB in-memory LRU plus a disk WebP cache in ComfyUI's temp folder) and hands it to you resized to at most 512px. If the download fails - you're offline, or the CDN said no - you get a gray 512×512 placeholder. The text output is not affected.
The inputs and outputs that matter
Three dropdowns, and honestly only one of them is a real decision:
- json_file - which game's roster to use (defaults to Genshin).
- character - the full list of all 281 characters across all four games, shown as
中文名 (English Name). The frontend filters it by json_file, so pick the game first. - output_type - the format: Danbooru标签 gives
raiden_shogun_(genshin_impact), 英文自然语言 givesRaiden Shogun from Genshin Impact, plus two Chinese-language variants. Default to the Danbooru tag if you're on an anime SDXL model; if you're on a natural-language model like Anima or Flux, the English-natural option is the right one - booru tags are largely inert there.
Outputs are text (a STRING you wire into a CLIP Text Encode) and preview_image (an IMAGE). The image is mostly a "yes, this is who I meant" sanity check, but nothing stops you from feeding it to an IPAdapter or a reference node if you want identity grounding on top of the tag.
Installing it
The README just says to copy the folder into ComfyUI/custom_nodes/ and restart, and that works. You can also git clone it:
cd ComfyUI/custom_nodes
git clone https://github.com/kotone/Comfyui-character-tag-selector
Then restart ComfyUI. There are no pip dependencies to install and no model downloads - it only needs requests, torch, and Pillow, all of which ship with ComfyUI already. (ComfyUI Manager should find it as "Comfyui-character-tag-selector" if you prefer that route.)
Gotchas
- Preview images are gray squares? You're offline or the Hoyoverse CDN is unreachable, and the node can't fetch the icon. The tag still works - this is cosmetic.
- "❌ 未找到角色" (character not found) in the text output means the character you picked isn't in the currently selected game file. This happens if the frontend filter hasn't refreshed - reset json_file and re-pick.
- The README and UI labels are Chinese (
Danbooru标签etc.), which can surprise English users, but the output text is in whatever language you choose.
It's a small, single-purpose pack with zero community footprint yet - don't expect updates. But for gacha-banner chasing on Illustrious/NoobAI, it's genuinely the least fiddly way to nail a character tag on the first try.
Inputs (3)
| Name | Type | Default | Description |
|---|---|---|---|
| json_file | COMBO | genshin_impact_characters-en-cn.json | 4 options: genshin_impact_characters-en-cn.json, honkai_starrail_characters-en-cn.json, wuthering_waves_characters-en-cn.json, zzz_characters-en-cn.json |
| character | COMBO | 雅珂达 (Jahoda) | 281 options: Archer (Archer), Saber (Saber), 「11号」 (Soldier 11), 「席德」 (Seed), 「扳机」 (Trigger), 七七 (Qiqi), +275 |
| output_type | COMBO | Danbooru标签 | 4 options: Danbooru标签, 英文自然语言, 中文自然语言, 中文名 + 作品名 |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| text | STRING | — |
| preview_image | IMAGE | — |