Prompt Subject
A Danbooru Tag Builder That Doesn't Make You Remember the Tags
- prompt
Writing prompts for SDXL-era models is basically remembering Danbooru tags: 1girl, long hair, school uniform, and the exact spelling that the checkpoint actually learned. Prompt Subject is the node that stops you from having to hold all of that in your head. Pick a character, a subject type, an action, some clothing, and it assembles a comma-separated tag string for you - and if you can't decide, every category has a Random option that rolls the dice for you.
How it works
The node is a menu-driven builder with 21 categories, all read from a subject.json file shipped inside the pack. Pick a value in each dropdown and the node concatenates the selections into one prompt string, comma-joined. The categories run the full character-description range: Character (43 named characters - 2k-tan, alice margatroid, ahri, and friends), Subject Type (112 options like 1girl, 1girl, 1boy, adolescent), Action (272 of them, from holding to air guitar), Action+ and Action++ (two extra action slots, so you can stack "holding sword, sitting"), plus Positioning, Hair, Face, Ears, Skin, Clothing, Accessories and more. Every single category defaults to None and is skipped when left alone - so you only build what you want, and you can leave the rest untouched.
Two things worth knowing about the mechanics. First, Random isn't "pick from every option" - it's "pick from every option except None and Random", so you never get a literal "Random" tag in your prompt. Second, the whole thing is seeded by the seed input, so a fixed seed gives you reproducible randomness; change the seed and the dice reroll. If a category is set to a concrete value, the seed does nothing to it.
The single output, prompt (STRING), wires straight into a CLIP Text Encode node. It's designed to pair with Prompt Settings (also in this pack) for the style/shot side of the prompt - the subject node builds who and what, the settings node builds how it's shot.
Where it shines (and where it doesn't)
This is squarely aimed at tag-based checkpoints - SDXL, Illustrious, Pony, NoobAI, WAI. Those models eat comma-separated Danbooru tags for breakfast, and the curated lists in subject.json are genuinely good at nudging you toward tags that actually fire. On Flux, Chroma or other LLM-encoded models it still works, but those understand natural-language sentences better than tag soup, and the carefully-spelled tags lose some of their magic.
Installing it
It ships in ComfyUI-RvTools_v2. Manager → search "ComfyUI-RvTools_v2", or:
cd ComfyUI/custom_nodes
git clone https://github.com/r-vage/ComfyUI-RvTools_v2
# restart ComfyUI
The JSON data files live in the pack's json folder and load at startup - no separate download, no model files.
Gotchas
If the dropdowns look empty or a category is missing, the node failed to read its subject.json - the error gets logged at startup. That shouldn't happen from a clean install, but it's the first thing to check if a shared workflow's version of this node doesn't match yours. And the standing caveat for everything in this pack: the README marks RvTools_v2 as unmaintained and points you to ComfyUI_Eclipse, which inherits most of these nodes. Fine to keep using - just know it's a dead-end repo, and the [RvTools] name suffix means Manager sometimes fails to match old workflow names to it.
Inputs (22)
| Name | Type | Default | Description |
|---|---|---|---|
| Character | COMBO | None | 43 options: None, Random, 2k-tan, alice margatroid, abe nana, admiral graf spee (azur lane), +37 |
| Subject Type | COMBO | None | 112 options: None, Random, 1girl, 1girl, 1boy, 1girl, 2boys, 1boy, +106 |
| Action | COMBO | None | 272 options: None, Random, holding, \||/, \m/, \n/, +266 |
| Action+ | COMBO | None | 272 options: None, Random, holding, \||/, \m/, \n/, +266 |
| Action++ | COMBO | None | 272 options: None, Random, holding, \||/, \m/, \n/, +266 |
| Positioning | COMBO | None | 40 options: None, Random, ass focus, back focus, cropped arms, cropped legs, +34 |
| Hair | COMBO | None | 157 options: None, Random, absurdly long hair, afro, ahoge, antenna hair, +151 |
| Rare Hairstyle | COMBO | None | 32 options: None, Random, beach waves hair, braided hairstyle, bun hair, crimped hair, +26 |
| Rare Hairstyle Man | COMBO | None | 43 options: None, Random, clean-shaven, comb over, drop fade, fade with beard, +37 |
| Rare Hair Colors | COMBO | None | 19 options: None, Random, auburn, blonde, brown, chestnut, +13 |
| Head Accessories | COMBO | None | 117 options: None, Random, anchor choker, anchor hair ornament, animal hood, antlers, +111 |
| Face | COMBO | None | 259 options: None, Random, ^^^, ;d, :<>, :|, +253 |
| Ears | COMBO | None | 36 options: None, Random, animal ears, bat ears, bear ears, cat ear headphones, +30 |
| Neck | COMBO | None | 71 options: None, Random, adjusting collar, amulet, animal collar, aqua neckwear, +65 |
| Skin | COMBO | None | 4 options: None, Random, white skin, white skin that glimmers like frost |
| Clothing | COMBO | None | 184 options: None, Random, aqua dress, argyle dress, armored dress, athletic leotard, +178 |
| Upper Body Decoration | COMBO | None | 114 options: None, Random, angel wings, arm belt, armband, badge, +108 |
| Lower Body Decoration | COMBO | None | 82 options: None, Random, ankle garter, ankle lace-up, anklet, apron, +76 |
| Full body decoration | COMBO | None | 11 options: None, Random, bandaid, buttons, cane, chains, +5 |
| Shoes and socks | COMBO | None | 80 options: None, Random, alternate legwear, american flag legwear, ankle socks, argyle legwear, +74 |
| Accessories | COMBO | None | 27 options: None, Random, arrow, backpack, camera, chair, +21 |
| seed | INT | 0-1125899906842624–1125899906842624 | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| prompt | STRING | — |