RPG Character Selector
A D&D character sheet that writes your SDXL prompt for you
- positive_prompt
- negative_prompt
- Ollama_Generate_V2_Textbox_2
- selection_summary
If you've ever spent twenty minutes typing "elf ranger with a distinctive hairstyle" and then re-rolling the whole prompt because the hair came out wrong, this is the node for you. RPGCharacterSelector is the heart of the ComfyUI-RPG-Characters pack: thirteen dropdowns that read like a character sheet (race, ethnicity, gender, age, class, hair, beard, clothes, augmentations, emotion, scene), and it turns your picks into a finished, structured prompt - positive and negative - aimed at 1024x1024 extreme close-up portraits.
It's a pure string generator. No model, no CLIP, no GPU work - you feed it dropdown choices and it hands you prompt text. That's the whole trick, and it's why it works with SD 1.5, SDXL, and Flux alike: it doesn't care what's downstream, it just writes better tags than you will at 2am.
How it works
Every dropdown maps to a Python dictionary of curated prompt fragments (the pack ships ~13 data files, each with dozens of entries). When you hit run, the node looks up each selection, joins the fragments, and prefixes the whole thing with "Create an extreme close-up portrait of". The negative prompt is assembled the same way from per-entry negatives.
Here's the sneaky part: a lot of entries contain {variant|variant|variant} blocks, and the node randomly picks one on every run. So "Elf" isn't one prompt - it's a family, and you get a different member each time. That's great for variety when you're batch-generating a tavern full of NPCs, and terrible if you're trying to reproduce a face. The selection_summary output is your fix: it lists every random pick that run, so you can see exactly what changed and copy it if you want it back.
Scene gets special handling. Plain White / Plain Black / Green Screen and the other "plain" scenes don't just become a location tag - they become "Scene: Solid X Background Only. No objects or distractions." That's a deliberate nod to chroma-key workflows, where a busy prompt will wreck your background removal.
The inputs and outputs that matter
You set the dropdowns. The only one worth flagging: Augmentations, which is the pack's sci-fi/cyberpunk bolt-on (Magic Tattoo, Cybernetic Eye, Subdermal Armor…). If you're doing pure fantasy, leave it on "No Augmentations".
Outputs:
positive_prompt/negative_prompt- the standard tag strings. Wire these into a CLIP Text Encode (or the pack's own concatenator, which we'll get to).Ollama_Generate_V2_Textbox_2- the same description, but phrased as prose for an LLM. It feeds ComfyUI-Ollama'sOllamaGenerateV2node if you run the local-LLM path.selection_summary- a plain-text record of your choices plus the random picks. Wire it to a text preview and you've got a free "what did I just generate" readout.
Install
In ComfyUI Manager, search RPG-Characters and install, or clone manually:
cd ComfyUI/custom_nodes
git clone https://github.com/lord-lethris/ComfyUI-RPG-Characters.git
Restart ComfyUI. There's no requirements.txt and no model downloads - this pack is pure Python. The only external dependency is optional: the Ollama outputs need a running Ollama server plus the stavsap/ComfyUI-Ollama node; skip that and the string outputs still work fine.
Common issues
- Outputs change between runs. That's the random variants, not a bug. Use
selection_summaryto track what happened. - Nothing comes out of the Ollama outputs. The README is upfront: those need Ollama installed and running, and ComfyUI-Ollama installed, or they do nothing. The plain string outputs don't.
- The pack has a small footprint. This is a hobbyist pack from a single author, not a big ecosystem project - expect occasional rough edges and read the repo's Issues if something misbehaves.
Inputs (13)
| Name | Type | Default | Description |
|---|---|---|---|
| race | COMBO | 46 options: Human, Elf, High Elf, Wood Elf, Dark Elf (Drow), Wild Elf (Grugach), +40 | |
| ethnicity | COMBO | 80 options: None, Aboriginal Australian, Ancient Gauls, African American, Arab, Argentine, +74 | |
| gender | COMBO | 13 options: Feminine, Demigirl, Demiboy, Masculine, Agender, Non-binary, +7 | |
| age | COMBO | 16 options: Infant, Toddler, Childhood, Preteen, Adolescent, Young Adult, +10 | |
| character_class | COMBO | 44 options: No Class, AD&D - Alchemist, AD&D - Butler, AD&D - Innkeeper, AD&D - Barman, AD&D - Tavern Wench, +38 | |
| hair_style | COMBO | 59 options: Bald, Afro, Beehive haircut, Bleached spikes, Blunt bob, Bob, +53 | |
| hair_colour | COMBO | 61 options: No hair, Ash Blonde, Auburn, Black, Blonde, Blue, +55 | |
| beard_style | COMBO | 52 options: No Beard, Anchor, Balbo, Bandholz, Chin strap, Circle Beard, +46 | |
| beard_colour | COMBO | 61 options: No Beard, Ash Blonde, Auburn, Black, Blonde, Blue, +55 | |
| clothes_style | COMBO | 43 options: Naked, AD&D - Adventurer’s Gear, AD&D - Assassin’s Garb, AD&D - Barbarian Furs, AD&D - Bardic Costume, AD&D - Cleric Vestments, +37 | |
| Augmentations | COMBO | 16 options: No Augmentations, Magic Tattoo, Enchanted Eye, Runed Armor, Winged Boots, Arcane Gauntlet, +10 | |
| emotion | COMBO | 51 options: Neutral, Anger, Anticipation, Contempt, Despair, Disgust, +45 | |
| scene | COMBO | 93 options: Plain White, Plain Black, Plain Red, Plain Green, Plain Blue, Plain Yellow, +87 |
Outputs (4)
| Name | Type | Description |
|---|---|---|
| positive_prompt | STRING | — |
| negative_prompt | STRING | — |
| Ollama_Generate_V2_Textbox_2 | STRING | — |
| selection_summary | STRING | — |