ComfyUI Node

Save Character

Freeze Your Hero for Next Session

By Spit8·Created 2 months ago·Updated 2 months ago· 1
Save Character
  • character
  • path
filename

Encoding a character is half the job. The other half is not having to do it again tomorrow. CP_SaveCharacter takes a CHARACTER object and writes it to disk as a .char package - the pack's portable identity format - so the next session is a dropdown pick instead of a re-encode.

If you're using this pack to build a recurring cast of game characters, this node is your save-game button.

How it works

It writes the character bundle to ComfyUI/output/characters/<name>.char - which is a folder containing meta.json (name + metadata like captions and prompt templates) and tensors.safetensors (the reference image, palette, and optional CLIP-Vision embedding). The filename input is optional: give it one, or it falls back to the character's stored name, or to character if neither exists. A trailing .char is stripped so you don't double it.

Output: path, the absolute path of the saved package, as a string.

The inputs

  • character - from CP_CharacterEncode or CP_LoadCharacter.
  • filename - optional, default "" (uses the character's name).

That's it. One output node, one job.

Installing

Part of Spit8/_ComfyUI_CharacterPose:

cd ComfyUI/custom_nodes
git clone https://github.com/Spit8/_ComfyUI_CharacterPose
pip install -r _ComfyUI_CharacterPose/requirements.txt

Restart ComfyUI; it's under CharacterPose/Character.

Gotchas

  • It's an output node, so it runs when the graph executes and saves regardless of where it sits. That's what you want here.
  • The .char is a folder, not a single file. If you're backing up or sharing characters, copy the whole name.char directory.
  • It saves to output/characters/, which is exactly the directory CP_LoadCharacter scans - so save now, load later, zero friction.
  • Re-saving with the same name overwrites. That's usually what you want for an updated design; just know there's no versioning.

Encode, save, move on. When the next workflow loads, your hero's standing right there in the dropdown.

CategoryCharacterPose/Character

Inputs (2)

NameTypeDefaultDescription
characterCHARACTER
filenameSTRING

Outputs (1)

NameTypeDescription
pathSTRING