Nodes/ComfyUI-RvTools_v2/Prompt Subject
ComfyUI Node

Prompt Subject

A Danbooru Tag Builder That Doesn't Make You Remember the Tags

By r-vage·Created about a year ago·Updated 5 months ago· 23
Prompt Subject
    • prompt
    CharacterNone
    Subject TypeNone
    ActionNone
    Action+None
    Action++None
    PositioningNone
    HairNone
    Rare HairstyleNone
    Rare Hairstyle ManNone
    Rare Hair ColorsNone
    Head AccessoriesNone
    FaceNone
    EarsNone
    NeckNone
    SkinNone
    ClothingNone
    Upper Body DecorationNone
    Lower Body DecorationNone
    Full body decorationNone
    Shoes and socksNone
    AccessoriesNone
    seed0

    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.

    Category🫦 RvTools II/ Text

    Inputs (22)

    NameTypeDefaultDescription
    CharacterCOMBONone43 options: None, Random, 2k-tan, alice margatroid, abe nana, admiral graf spee (azur lane), +37
    Subject TypeCOMBONone112 options: None, Random, 1girl, 1girl, 1boy, 1girl, 2boys, 1boy, +106
    ActionCOMBONone272 options: None, Random, holding, \||/, \m/, \n/, +266
    Action+COMBONone272 options: None, Random, holding, \||/, \m/, \n/, +266
    Action++COMBONone272 options: None, Random, holding, \||/, \m/, \n/, +266
    PositioningCOMBONone40 options: None, Random, ass focus, back focus, cropped arms, cropped legs, +34
    HairCOMBONone157 options: None, Random, absurdly long hair, afro, ahoge, antenna hair, +151
    Rare HairstyleCOMBONone32 options: None, Random, beach waves hair, braided hairstyle, bun hair, crimped hair, +26
    Rare Hairstyle ManCOMBONone43 options: None, Random, clean-shaven, comb over, drop fade, fade with beard, +37
    Rare Hair ColorsCOMBONone19 options: None, Random, auburn, blonde, brown, chestnut, +13
    Head AccessoriesCOMBONone117 options: None, Random, anchor choker, anchor hair ornament, animal hood, antlers, +111
    FaceCOMBONone259 options: None, Random, ^^^, ;d, :<>, :|, +253
    EarsCOMBONone36 options: None, Random, animal ears, bat ears, bear ears, cat ear headphones, +30
    NeckCOMBONone71 options: None, Random, adjusting collar, amulet, animal collar, aqua neckwear, +65
    SkinCOMBONone4 options: None, Random, white skin, white skin that glimmers like frost
    ClothingCOMBONone184 options: None, Random, aqua dress, argyle dress, armored dress, athletic leotard, +178
    Upper Body DecorationCOMBONone114 options: None, Random, angel wings, arm belt, armband, badge, +108
    Lower Body DecorationCOMBONone82 options: None, Random, ankle garter, ankle lace-up, anklet, apron, +76
    Full body decorationCOMBONone11 options: None, Random, bandaid, buttons, cane, chains, +5
    Shoes and socksCOMBONone80 options: None, Random, alternate legwear, american flag legwear, ankle socks, argyle legwear, +74
    AccessoriesCOMBONone27 options: None, Random, arrow, backpack, camera, chair, +21
    seedINT0-1125899906842624–1125899906842624

    Outputs (1)

    NameTypeDescription
    promptSTRING