Nodes/ComfyUI Fictiverse Nodes/Character Appearance
ComfyUI Node

Character Appearance

The dropdown prompt builder

By Fictiverse·Created 3 years ago·Updated 24 days ago· 27
Character Appearance
  • prefix
  • appearance_text
gender
body_type
height
skin_tone
hair_style
hair_color
eye_color

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.

CategoryFictiverse/Character

Inputs (8)

NameTypeDefaultDescription
genderCOMBO3 options: None, Male, Female
body_typeCOMBO8 options: None, Skinny, Slim, Athletic, Muscular, Curvy, +2
heightCOMBO4 options: None, Small, Tall, Gigantic
skin_toneCOMBO5 options: None, Pale, Fair, Olive, Dark
hair_styleCOMBO5 options: None, Short, Long, Curly, Bald
hair_colorCOMBO10 options: None, Black, Brown, Blonde, Red, Gray, +4
eye_colorCOMBO5 options: None, Blue, Green, Brown, Hazel
prefixopt*

Outputs (1)

NameTypeDescription
appearance_textSTRING