comfyui-character-suite
ComfyUI custom node suite for prompt engineering with persistent character and segment libraries.
Package profile
- Status
- Verified
- Publisher
- @DrkSun81
- Source
- GitHub
README
ComfyUI Character Suite
A node suite for prompt engineering with persistent character and segment libraries.
| Version | 1.1.1 |
| Revision | bb8b76d |
| Released | 2026-07-26 |
Changelog (recent)
- 1.1.1 (
bb8b76d) — Fix CS_LoraStacker FLOAT"None"errors: strength/bypass widgets no longer useconverted-widgethide (which skipped them in the prompt and shifted combo"None"into FLOAT fields). Visual collapse only; client-side float/bool coercion; server-side_as_float/_as_boolguards. - 1.1.0 — LoRA Stacker node with CivitAI trigger-word picker and example workflow.
- 1.0.0 — Initial release (Character Expander, segments, Prompt Builder, web Character Manager).
Installation
cd ComfyUI/custom_nodes/
git clone https://github.com/DrkSun81/comfyui-character-suite
# or extract the zip directly into custom_nodes/
Restart ComfyUI. No pip dependencies required.
Windows note: Requires Python 3.9+ (tested on 3.11). The embedded Python included with the standalone ComfyUI build is fully supported.
Example Workflow
An example workflow is included at examples/character_suite_example.json.
Drag it into ComfyUI to load a fully wired setup covering all nodes:
{Avery}expansion through CharacterExpander- Segment injection via SegmentLoader → Prompt Builder (CharacterSuite)
- CLIP encoding → KSampler → SaveImage
- PromptCategorizer wired off the final positive prompt
- SegmentSaver ready to capture the built prompt for reuse
Before running: update the checkpoint in the CheckpointLoaderSimple node to one you have installed. The default (
illustrious/absoluteTerritory_v3.safetensors) is set as a placeholder.
Nodes
All nodes appear under the CharacterSuite category in the Add Node menu.
🎭 Character Expander
Class name: CharacterExpander
Finds {Name} tokens in your prompt and replaces them with that character's stored tags. The character's negative prompt is automatically collected and merged into the negative output.
Inputs:
| Name | Type | Description |
|---|---|---|
positive_text | STRING | Your prompt, e.g. {Avery}, wearing armor, in a dungeon |
negative_text | STRING | Your base negative prompt |
merge_mode | COMBO | append (default) or prepend — where character tags land |
Outputs: positive, negative, expansion_log
Example:
Input positive: {Avery}, wearing armor, in a dungeon
Output positive: 1girl, silver hair, heterochromia, red left eye, blue right eye,
athletic build, confident expression, wearing armor, in a dungeon
Supports multiple characters in one prompt: {Avery} and {Kira}
🗂️ Prompt Categorizer
Class name: PromptCategorizer
Splits a flat comma-separated prompt into labeled buckets using keyword heuristics.
Inputs:
| Name | Type | Description |
|---|---|---|
prompt | STRING | Any prompt string to analyze |
use_llm | BOOLEAN | Send unclassified tags to a local LLM (default off) |
llm_api_url | STRING | LM Studio / Ollama endpoint (optional) |
Outputs: categorized_text (formatted summary) + one STRING output per category:
| Output | Examples |
|---|---|
quality | masterpiece, best quality, highres |
style | anime, cel shading, watercolor |
character | 1girl, heterochromia, confident expression |
hair | long silver hair, twintails |
clothing | school uniform, thighhighs |
action | running, holding sword |
pose | cowboy shot, from above |
scene | forest, sunset, rain |
lighting | rim light, dramatic lighting |
misc | everything else |
Wire any individual output directly into other nodes.
💾 Save Prompt Segment
Class name: SegmentSaver
Saves any prompt string as a named entry in the persistent segment lib
Nodes in this pack
7 nodes
Nodes in this pack
7 nodes- CharacterExpander
- CS_LoraStacker
- CS_PromptBuilder
- PromptCategorizer
- SegmentBrowser
- SegmentLoader
- SegmentSaver
Sources
3 sources
Sources
3 sourcesVerified Oct 9
Verified Oct 9
Source excerpts
1 excerpt
Source excerpts
1 excerptSource context: Repo DrkSun81/comfyui-character-suite
