GALIAIS-Nodes 01 角色身份
The 01 layer where a character becomes someone
- DB
- AI服务商
- 上游提示词段
- 角色段
- 文本
- 元信息JSON
The GALIAIS-Nodes character system splits a prompt into ten layers, numbered 01 to 10 in the display names, and 01 角色身份 (Character Identity) is where the character actually becomes a person. This is the node that holds the "who" - subject count, name, source work, artist, age - before the other layers add the face, clothes, and pose. It's the anchor section the Final Composer builds on, so getting identity right here is what keeps a character recognizable across a whole session.
What you fill in
Six content fields, and each has a matching 使用 (use) toggle so you can switch it off without clearing the text:
- 主体人数 (subject count) -
1girl,2boys, that style of count tag. - 角色 (character) - the character's name or defining tags. This is the core of "who."
- 作品 (work) - the series/franchise, if any.
- 画师 (artist) - and this one gets special treatment: the node normalizes the artist tag against the Danbooru DB (when one is connected) and inserts it before the subject, because artist tags conventionally lead a prompt.
- 年龄身份 (age/identity) -
teenager,adult,loli, occupation, whatever defines the role. - 身份补充 (identity supplement) - free-text extras, the only multiline field.
Above those sit 角色槽位 (character slot: 全局 / 角色1–8) and 角色标签 (character tag/label). Set the slot to a specific character for multi-character scenes - the composer then groups everything tagged 角色1 under one character and joins characters with your chosen separator. Set it to 全局 and the section applies scene-wide.
Then the common pack machinery: 启用 (enable) and 权重 (weight 0–5) control whether and how hard the section lands, and below that is the random/AI block - 启用随机Tag (enable random tags) flips on automatic tag filling from the connected DB (the pack's Danbooru database), with Tag生成模式 choosing between plain rule-based random, AI-collaborative selection, and AI intent-directed selection. The AI modes need the AI服务商 optional input and cost API calls; the rule modes are local and free. 随机种子 keeps results reproducible.
Outputs and how to read it
Three outputs: 角色段 (the character section object - wire this into the composer's 提示词段 inputs), 文本 (the plain rendered text, useful for previewing), and 元信息JSON (metadata: which fields contributed, what the random picker chose, whether AI wrote anything). When a render ignores your character, 元信息JSON is where you find out that the section was disabled or the 权重 got zeroed.
The honest read
This is the one character layer that's not optional in practice - every other layer describes how a person looks and acts, but identity is the person. The random-tag machinery is the pack's calling card, but for identity you probably want it off: a randomized 角色 field produces a different person every run, which defeats the point of a named character. Save the randomness for outfit and scene. Also: the pack is Chinese-first (all these labels), new, and has no community writeups yet - the README's workflow diagram is the map.
Install
Pack-wide, once:
git clone https://github.com/GALIAIS/GALIAIS-Nodes.git ComfyUI/custom_nodes/GALIAIS-Nodes
Restart ComfyUI, or ComfyUI Manager → "GALIAIS-Nodes". No pip dependencies; the Danbooru DB is a separate download if you want dictionary-backed tag picking.
Inputs (44)
| Name | Type | Default | Description |
|---|---|---|---|
| 角色槽位 | COMBO | 全局 | 9 options: 全局, 角色1, 角色2, 角色3, 角色4, 角色5, +3 |
| 角色标签 | STRING | — | |
| 主体人数 | STRING | — | |
| 角色 | STRING | — | |
| 作品 | STRING | — | |
| 画师 | STRING | — | |
| 年龄身份 | STRING | — | |
| 身份补充 | STRING | — | |
| 启用 | BOOLEAN | true | — |
| 权重 | FLOAT | 1.000–5 | — |
| 使用主体人数 | BOOLEAN | true | — |
| 使用角色 | BOOLEAN | true | — |
| 使用作品 | BOOLEAN | true | — |
| 使用画师 | BOOLEAN | true | — |
| 使用年龄身份 | BOOLEAN | true | — |
| 使用身份补充 | BOOLEAN | true | — |
| 启用随机Tag | BOOLEAN | false | — |
| Tag生成模式 | COMBO | 规则随机 | 5 options: 规则随机, AI协同选择, AI协同选择+规则兜底, AI意图定向选择, AI意图定向选择+规则兜底 |
| AI自由度 | FLOAT | 0.350–1 | — |
| AI意图方向 | STRING | 粗略描述你想要的方向;AI只会从当前节点已启用字段的候选tag中选择,并把方向扩写成自然语言。 | |
| AI扩写强度 | COMBO | 标准 | 3 options: 精简, 标准, 完整 |
| AI是否写入补充 | COMBO | 只放元信息 | 3 options: 只放元信息, 写入本节点补充, 关闭 |
| AI RAG模式 | COMBO | 关闭 | 4 options: 关闭, 轻量语义, 示例增强, 混合增强 |
| RAG候选数 | INT | 120–200 | — |
| RAG示例数 | INT | 30–20 | — |
| 随机策略 | COMBO | 只补空字段 | 2 options: 只补空字段, 追加到字段 |
| 每字段随机数 | INT | 1 | — |
| 随机数主体人数 | INT | -1 | -1=沿用每字段随机数,0=关闭本字段随机,正数=该字段最多随机数量;AI协同会按合理性少选 |
| 随机数角色 | INT | -1 | -1=沿用每字段随机数,0=关闭本字段随机,正数=该字段最多随机数量;AI协同会按合理性少选 |
| 随机数作品 | INT | -1 | -1=沿用每字段随机数,0=关闭本字段随机,正数=该字段最多随机数量;AI协同会按合理性少选 |
| 随机数画师 | INT | -1 | -1=沿用每字段随机数,0=关闭本字段随机,正数=该字段最多随机数量;AI协同会按合理性少选 |
| 随机数年龄身份 | INT | -1 | -1=沿用每字段随机数,0=关闭本字段随机,正数=该字段最多随机数量;AI协同会按合理性少选 |
| 随机种子 | INT | 00–4294967295 | — |
| 随机允许NSFW | BOOLEAN | false | — |
| 随机最低热度 | INT | 00–100000000 | — |
| 最低热度主体人数 | INT | -1-1–100000000 | -1=沿用随机最低热度,0=本字段不限热度,正数=该字段最低热度 |
| 最低热度角色 | INT | -1-1–100000000 | -1=沿用随机最低热度,0=本字段不限热度,正数=该字段最低热度 |
| 最低热度作品 | INT | -1-1–100000000 | -1=沿用随机最低热度,0=本字段不限热度,正数=该字段最低热度 |
| 最低热度画师 | INT | -1-1–100000000 | -1=沿用随机最低热度,0=本字段不限热度,正数=该字段最低热度 |
| 最低热度年龄身份 | INT | -1-1–100000000 | -1=沿用随机最低热度,0=本字段不限热度,正数=该字段最低热度 |
| DBopt | GALIAIS_NODES_DANBOORU_DB | — | |
| AI服务商opt | GALIAIS_NODES_AI_PROVIDER | — | |
| 上游上下文opt | STRING | — | |
| 上游提示词段opt | GALIAIS_NODES_CHARACTER_SECTION | — |
Outputs (3)
| Name | Type | Description |
|---|---|---|
| 角色段 | GALIAIS_NODES_CHARACTER_SECTION | — |
| 文本 | STRING | — |
| 元信息JSON | STRING | — |