Hypnodes Character Stacker
The filing cabinet that keeps ten character prompts in one tidy node
- char_stack
A multi-character scene means a pile of separate text boxes, and a pile of separate text boxes means wires crossing the whole graph. The Character Stacker is the fix: one node that holds up to ten character prompts, side by side, ready to hand to the Conditioner as a single sealed bundle.
It's a deliberately boring node, and that's its strength. No clever logic - just ten multiline positive_prompt_1 through positive_prompt_10 boxes. The one input that does something is character_count (INT, 1–10). Crank it and the frontend shows or hides prompt boxes to match, so your workflow stays lean instead of showing nine empty text fields you're never going to fill. If you're running the full Hypnodes suite, this count stays in sync with the Control Hub's character_count - same bus, same number.
The output and where it goes
The single output, char_stack (type HN_CHAR_STACK), is what the README calls a "sealed envelope." Internally it's a list of {slot, positive} entries, and here's a quiet detail worth knowing: empty boxes are skipped entirely. If you leave positive_prompt_3 blank, it doesn't get a slot, and the Conditioner downstream sends that slot empty conditioning instead of garbage.
Wire char_stack into the Hypnodes Conditioner (HN_CharacterConditioning), which does the CLIP encoding. The README is clear that the Stacker's job ends at holding text - encoding is the Conditioner's job.
The one best practice that matters
The README's #1 tip for this node: focus. The global prompt in the Control Hub already handles environment, lighting, and quality tags. So don't write 1girl, solo, in a forest, masterpiece, blue hair in a character box. Write blue hair, white sundress, holding a flower. Keep each box to the character's physical appearance and actions only.
Why? Because regional prompting works best when each region's conditioning is clean and specific. Duplicating the scene description into every character box doesn't make the AI obey better - it adds "token noise" that pulls each region away from what makes that character distinct. If you're on an anime SDXL/Illustrious-style model, stick to Danbooru-style tags here; the whole pack is tuned for that vocabulary.
Install
Via ComfyUI Manager (search Hypnodes), or:
cd ComfyUI/custom_nodes
git clone https://github.com/hypnichorse/ComfyUI-Hypnodes
Restart ComfyUI. No model downloads, no extra dependencies beyond numpy/pillow that ComfyUI already ships.
One gotcha: the prompt boxes are plain text with no built-in wildcard support, so if you're used to node packs that do {prompt} templating, this isn't that. It's a structured filing cabinet, not a prompt-generator - pair it with a wildcard or text node upstream if you want randomization.
Inputs (11)
| Name | Type | Default | Description |
|---|---|---|---|
| character_count | INT | 11–10 | — |
| positive_prompt_1opt | STRING | 1girl, solo, | — |
| positive_prompt_2opt | STRING | — | |
| positive_prompt_3opt | STRING | — | |
| positive_prompt_4opt | STRING | — | |
| positive_prompt_5opt | STRING | — | |
| positive_prompt_6opt | STRING | — | |
| positive_prompt_7opt | STRING | — | |
| positive_prompt_8opt | STRING | — | |
| positive_prompt_9opt | STRING | — | |
| positive_prompt_10opt | STRING | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| char_stack | HN_CHAR_STACK | — |