Character Appearance
The dropdown prompt builder
- prefix
- appearance_text
Character Appearance is a prompt-building shortcut from the Fictiverse pack's "Character Crafter" family. Instead of hand-typing "A muscular tall person with dark skin and long black hair with brown eyes," you pick each trait from a dropdown - gender, body type, height, skin tone, hair, eyes - and the node assembles a clean English sentence for you.
The appeal is consistency and speed, not eloquence. When you're generating a character across many images or frames, the goal is that every prompt says the same thing the same way. Type a description once and you'll subtly reword it every time - a "tall" here, a "heightened frame" there - and diffusion notices. A dropdown produces byte-identical phrasing every run, which is exactly what character-consistency workflows want. It also means you can hand the graph to someone who's never written a prompt and have them design a character by clicking.
How it works
Each dropdown maps to a word or short phrase, and the node joins the selected pieces into a fixed sentence template. The output pattern is roughly: A <body type> <height> <skin tone> person with <eyes> and <hair>. Pick "None" on anything and that piece is simply skipped - so None everywhere just produces "A person.", which is a fine way to get a generic character baseline.
The exact grammar is worth knowing because it's opinionated. Hair gets a "hair" or "haircut" suffix depending on how many hair traits you set, and skin gets a "skin" suffix (dark skin). So the node is doing real sentence construction, not just string-pasting - but it's rigid about it. If you need something outside its vocabulary ("short, silver-streaked hair parted to the side"), this node can't express it, and you should hand-write that bit.
Inputs and outputs
The trait dropdowns - each with a "None" first option:
- gender (None / Male / Female)
- body_type (Skinny, Slim, Athletic, Muscular, Curvy, Heavy, Very fat)
- height (Small, Tall, Gigantic)
- skin_tone (Pale, Fair, Olive, Dark)
- hair_style (Short, Long, Curly, Bald)
- hair_color (Black, Brown, Blonde, Red, Gray, Blue, Green, Purple, White)
- eye_color (Blue, Green, Brown, Hazel)
The optional prefix input is a wildcard socket that prepends whatever you feed it to the final string - handy for adding a character name or a style tag ahead of the description.
Output:
- appearance_text (STRING) - the assembled sentence.
Wire it into your positive prompt (via a text concat node, or the pack's own Prompt Assembler), and you've got a reusable character description block you can tweak by clicking instead of typing.
Installing it
Part of ComfyUI Fictiverse Nodes. ComfyUI Manager: search "ComfyUI Fictiverse Nodes" and install. Or:
cd ComfyUI/custom_nodes
git clone https://github.com/Fictiverse/ComfyUI_Fictiverse
Restart ComfyUI. No dependencies or model downloads - it's pure string building. Pack is Apache 2.0.
Common issues
The pack's classic startup error - ModuleNotFoundError: No module named 'custom_nodes.ComfyUI_Fictiverse' - means the folder isn't named exactly ComfyUI_Fictiverse; rename and restart.
Node-specific: remember that "None" on a dropdown omits the trait rather than prompting against it. If you want a character explicitly without something (e.g. bald is a hair_style choice, so that's covered), "None" won't say that - it just stays silent, and the model will fill in whatever it defaults to.
Inputs (8)
| Name | Type | Default | Description |
|---|---|---|---|
| gender | COMBO | 3 options: None, Male, Female | |
| body_type | COMBO | 8 options: None, Skinny, Slim, Athletic, Muscular, Curvy, +2 | |
| height | COMBO | 4 options: None, Small, Tall, Gigantic | |
| skin_tone | COMBO | 5 options: None, Pale, Fair, Olive, Dark | |
| hair_style | COMBO | 5 options: None, Short, Long, Curly, Bald | |
| hair_color | COMBO | 10 options: None, Black, Brown, Blonde, Red, Gray, +4 | |
| eye_color | COMBO | 5 options: None, Blue, Green, Brown, Hazel | |
| prefixopt | * | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| appearance_text | STRING | — |