GALIAIS-Nodes Multi Character Coordinator
Turn Per-Character Sections Into One Coherent Frame
- 提示词段1
- 提示词段2
- 提示词段3
- 提示词段4
- 提示词段5
- 提示词段6
- 提示词段7
- 提示词段8
- 提示词段9
- 提示词段10
- 提示词段11
- 提示词段12
- 提示词段13
- 提示词段14
- 提示词段15
- 提示词段16
- 多角色叙事段
- 叙事文本
- 布局JSON
- 上游上下文
Two characters is where tag prompting starts to fall apart. You can describe each one perfectly and still get a frame where they're not looking at each other, or the model merges them into one person. The Multi Character Coordinator exists for exactly that moment: it takes up to sixteen per-character prompt sections and reassembles them into a single coherent narrative section with an explicit spatial layout and relationship.
It's the pack's answer to the "which character is which" problem - and notably, it's rule-based text assembly, not an LLM. No API key, no surprises, fully deterministic.
How it works
Up to 提示词段1 through 提示词段16 (character section inputs, type GALIAIS_NODES_CHARACTER_SECTION) plug in - these come from the pack's per-character nodes like CharacterIdentity and CharacterOutfit. Then you declare the frame:
- 空间布局 (spatial layout): 左到右 (left-to-right), 前后景 (foreground/background), 中心环绕 (center-surround), or 对称 (symmetrical).
- 角色关系 (relationship): 并列 (side-by-side), 交互 (interacting), 对视 (eye contact), 追逐 (chasing), 保护 (protecting), 对立 (opposition), or 自定义 (custom).
- 关系补充 (relation note) - free text to add nuance the preset can't express, like "but they refuse to acknowledge each other."
- 输出语言 (Chinese / English / mixed) and 去重 (dedupe).
The node composes a narrative text that positions each character and their relationship, and emits it as a 多角色叙事段 (multi-character narrative section) that downstream composer nodes can treat like any other section, plus 叙事文本 (the plain text itself), 布局JSON (the machine-readable layout), and 上游上下文 (upstream context for chaining into the next character node).
Installing it
It's part of the GALIAIS-Nodes pack:
cd ComfyUI/custom_nodes
git clone https://github.com/GALIAIS/GALIAIS-Nodes.git
Restart ComfyUI, or install via ComfyUI Manager ("GALIAIS-Nodes"). No Python dependencies. It works standalone with string sections, but the intended flow feeds it the typed character sections from the pack's own 01–10 character nodes - that's what makes the layout logic know where each person is.
Why it's worth it, and where it's not magic
This is the node that keeps your multi-character prompts legible instead of a 300-token pile. But keep expectations calibrated: it arranges and describes; it can't force a sampler to render the arrangement. The layout and relationship language it emits is guidance, and guidance works a lot better on Anima-style models with strong prompt comprehension than on strict tag models. The trap is skipping the per-character sections and feeding it raw text blobs - the layout machinery reads those section objects, so garbage sections produce generic output. Wire it correctly and the narrative text genuinely holds together; wire it lazily and it's just a join node with extra steps.
Inputs (22)
| Name | Type | Default | Description |
|---|---|---|---|
| 启用 | BOOLEAN | true | — |
| 输出语言 | COMBO | 英文 | 3 options: 中文, 英文, 中英混合 |
| 空间布局 | COMBO | 左到右 | 4 options: 左到右, 前后景, 中心环绕, 对称 |
| 角色关系 | COMBO | 交互 | 7 options: 并列, 交互, 对视, 追逐, 保护, 对立, +1 |
| 关系补充 | STRING | — | |
| 去重 | BOOLEAN | true | — |
| 提示词段1opt | GALIAIS_NODES_CHARACTER_SECTION | — | |
| 提示词段2opt | GALIAIS_NODES_CHARACTER_SECTION | — | |
| 提示词段3opt | GALIAIS_NODES_CHARACTER_SECTION | — | |
| 提示词段4opt | GALIAIS_NODES_CHARACTER_SECTION | — | |
| 提示词段5opt | GALIAIS_NODES_CHARACTER_SECTION | — | |
| 提示词段6opt | GALIAIS_NODES_CHARACTER_SECTION | — | |
| 提示词段7opt | GALIAIS_NODES_CHARACTER_SECTION | — | |
| 提示词段8opt | GALIAIS_NODES_CHARACTER_SECTION | — | |
| 提示词段9opt | GALIAIS_NODES_CHARACTER_SECTION | — | |
| 提示词段10opt | GALIAIS_NODES_CHARACTER_SECTION | — | |
| 提示词段11opt | GALIAIS_NODES_CHARACTER_SECTION | — | |
| 提示词段12opt | GALIAIS_NODES_CHARACTER_SECTION | — | |
| 提示词段13opt | GALIAIS_NODES_CHARACTER_SECTION | — | |
| 提示词段14opt | GALIAIS_NODES_CHARACTER_SECTION | — | |
| 提示词段15opt | GALIAIS_NODES_CHARACTER_SECTION | — | |
| 提示词段16opt | GALIAIS_NODES_CHARACTER_SECTION | — |
Outputs (4)
| Name | Type | Description |
|---|---|---|
| 多角色叙事段 | GALIAIS_NODES_CHARACTER_SECTION | — |
| 叙事文本 | STRING | — |
| 布局JSON | STRING | — |
| 上游上下文 | STRING | — |