Nodes/ComfyUI-Creepy_nodes/Character Vault (Creepybits)
ComfyUI Node

Character Vault (Creepybits)

The Write-Side of Your Character Database

By Creepybits·Created about a year ago·Updated 2 months ago· 32
Character Vault (Creepybits)
    • text
    text**Ethnicity:** **Face structure:** **Face shape:** **Hair:** **Eyes:** **Mouth:** **Body type:**
    character_name
    save_to_dbfalse

    Character Vault is the save button for your character database. It takes a character description, stores it under a name in a local JSON file, and hands the text back to you. It's the write-side companion to Character Select (also in this pack), which reads that same database and lets you pull a character out of a dropdown with per-scene outfit swaps. By themselves neither node is much; together they're a tidy "persistent character library" for prompt-based workflows.

    What you actually set

    Three inputs, and only two really matter:

    • text - the character description you want to save. It comes pre-filled with a sensible template: ethnicity, face structure, face shape, hair, eyes, mouth, body type. Fill it in or replace it wholesale.
    • character_name - the key you're saving under. This is what shows up in Character Select's dropdown.
    • save_to_db - the safety switch. Set this to true for the node to write to disk. Leave it false and the node is just a passthrough.

    Output is text - the same description you put in, so you can chain this node into a prompt pipeline even while it archives.

    How it works

    When save_to_db is true, the node loads assets/scripts/characters.json from inside the pack folder, adds your entry, and writes it back. The file is created on first save, and crucially the data lives on disk - not in node memory - so it survives ComfyUI restarts, which is the whole point of a database node.

    Two rules baked into the code are worth knowing:

    1. Names must be unique. If a character with your character_name already exists, the node refuses to overwrite it and prints an error to the console. You can't update an entry in place - save under a new name (or edit the JSON by hand).
    2. Empty names are rejected. It checks before writing, so no blank keys cluttering the file.

    Gotchas

    Because characters.json doesn't ship with the pack, your first save creates it - but if you've already opened a workflow with Character Select, its dropdown was built at load time from a file that didn't exist. If a newly saved character doesn't show up in the dropdown, restart ComfyUI so the node re-scans the database on init.

    Also keep in mind the honest limit: this stores descriptions. Feeding the same prose to the sampler every time keeps the prompt identical, but a stable prompt is not a stable face - true identity consistency across generations still needs a character LoRA or an editing model. Character Vault is the "don't retype the description" layer, and it's good at that.

    Installing it

    It ships with the whole Creepybits pack:

    cd ComfyUI/custom_nodes
    git clone https://github.com/Creepybits/ComfyUI-Creepy_nodes.git
    

    Restart ComfyUI, or install via ComfyUI Manager by searching "Creepy". The pack's requirements install on first launch; no model downloads are involved. If saves aren't appearing, confirm the write path printed in the console (.../assets/scripts/characters.json) and that the pack folder isn't read-only.

    CategoryCreepybits/Databases

    Inputs (3)

    NameTypeDefaultDescription
    textSTRING**Ethnicity:** **Face structure:** **Face shape:** **Hair:** **Eyes:** **Mouth:** **Body type:**
    character_nameSTRING
    save_to_dbBOOLEANfalse

    Outputs (1)

    NameTypeDescription
    textSTRING