GALIAIS-Nodes 02 脸发眼
The 02 layer that stops every character looking the same
- DB
- AI服务商
- 上游提示词段
- 脸发眼段
- 文本
- 元信息JSON
Two characters differ on the face, hair, and eyes before they differ anywhere else - which is exactly why this pack made it layer 02. The FaceHairEyes node (02 脸发眼) collects everything about the head and expression into one section so the Final Composer can keep it coherent instead of scattering blue eyes and long black hair across random prompt lines. If your portraits all come out with the same generic anime face, this is the node you were missing.
What you fill in
Five content fields with matching 使用 toggles:
- 头发 (hair) - cut, length, color, style:
long hair, side ponytail, black hair. - 眼睛视线 (eyes/gaze) - color and gaze direction:
blue eyes, looking at viewer, wide eyes. - 面部五官 (face features) - the features beyond eyes: nose, blush, freckles, jaw,
sharp eyes,fangs. - 情绪表情 (emotion/expression) -
smile,serious,blushing,tears. - 脸发眼补充 (supplement) - free-text extras, the only multiline field.
Plus the shared character-layer controls: 角色槽位 (全局 or 角色1–8) and 角色标签 (character label) for multi-character grouping, 启用 (enable) and 权重 (weight) for section strength, then the random/AI block - 启用随机Tag, Tag生成模式, 随机种子, and the AI collaboration options (which need the AI服务商 optional input and a live API). The optional DB input feeds the random picker with real Danbooru tags, and 上游上下文 / 上游提示词段 let you chain context from an earlier layer.
Outputs
The standard trio: 脸发眼段 (the section object for the composer's 提示词段 inputs), 文本 (plain text preview), and 元信息JSON (what contributed, what the random picker chose). The section output is what matters - the composer orders it internally, so wiring order between layers doesn't change the final layout.
Where it earns its keep
Layer 02 is where the pack's random-tag machinery actually shines. Randomized hair color and expression per run is a great way to batch a character into many variations while keeping identity stable (that stays in layer 01). The 情绪表情 field is also the classic "why does my character look angry" fix - if the model keeps adding an expression you didn't write, check this layer and the narrative layer before blaming the checkpoint. On the anime-SDXL lineage (Illustrious, NoobAI, Pony), these are plain Danbooru tags and the model understands them deeply; keep them as tags, not prose.
One warning: don't stuff contradicting tags here (both blush and no blush), and don't set random hair while the base prompt pins a specific hair color - the section merge doesn't catch semantic conflicts, only exact duplicates.
Install
Pack-wide install, 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 separate if you want it. The pack is new and quiet online, so the README flow and 元信息JSON are your debugging companions.
Inputs (40)
| Name | Type | Default | Description |
|---|---|---|---|
| 角色槽位 | COMBO | 全局 | 9 options: 全局, 角色1, 角色2, 角色3, 角色4, 角色5, +3 |
| 角色标签 | STRING | — | |
| 头发 | STRING | — | |
| 眼睛视线 | STRING | — | |
| 脸部五官 | STRING | — | |
| 情绪表情 | STRING | — | |
| 脸发眼补充 | STRING | — | |
| 启用 | BOOLEAN | true | — |
| 权重 | FLOAT | 1.000–5 | — |
| 使用头发 | 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 | 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=本字段不限热度,正数=该字段最低热度 |
| 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 | — |