GALIAIS-Nodes 03 身体体态
The 03 layer for proportions, skin, and the non-human bits
- DB
- AI服务商
- 上游提示词段
- 身体段
- 文本
- 元信息JSON
After identity (01) and the face (02), the body is what makes a character read as a specific type rather than a floating head. The Body node (03 身体体态) holds everything below the neck that isn't clothing: proportions, build, skin, and the non-human anatomy that half the anime tag vocabulary is actually about. It's the layer that separates petite from athletic and keeps a cat-eared character's tail and wings from being improvised by the sampler.
What you fill in
Five content fields with 使用 toggles:
- 体型比例 (body type/proportions) -
petite,athletic,tall,curvy, the silhouette tags. - 四肢躯干 (limbs/torso) -
long legs,toned arms,narrow waist, body-part specifics. - 皮肤质感 (skin texture) -
pale skin,tanned,smooth skin,scars. - 非人身体 (non-human body) - this is the fun one:
wings,tail,horns,fangs,pointed ears,halo, any non-human physical features. - 身体补充 (body supplement) - free-text extras, multiline.
Shared layer controls apply as always: 角色槽位 (全局 / 角色1–8) and 角色标签 for multi-character grouping, 启用 and 权重 (0–5) for section strength, then the random/AI block (启用随机Tag, Tag生成模式, 随机种子 - with AI-collaborative modes needing the optional AI服务商), the optional DB for dictionary-backed random picks, and 上游上下文 / 上游提示词段 for chaining context from earlier layers.
Outputs
The standard trio: 身体段 (section object → composer's 提示词段 inputs), 文本 (plain text), 元信息JSON (contribution metadata + random picker audit).
Where it earns its keep
The 非人身体 field is the quiet MVP. In tag-based anime models, non-human features are where prompts go wrong most - a tail described in prose instead of the Danbooru tag (tail) is a coin flip the model often loses. Putting them in this dedicated field keeps them in tag form and separate from the outfit layer, where they'd otherwise collide with clothing tags. The 体型比例 field is similarly underrated: it's the cheapest lever for character variety, and it's the layer that prevents "every character has the same generic build" syndrome across a multi-character scene.
The body layer is also where the pack's random machinery pays off cleanly - randomizing 体型比例 or 皮肤质感 across runs gives you a character-study batch that stays recognizably the same person. Keep 非人身体 random off unless you're deliberately mutating; a random tail is a new character, not a variation.
The honest read
For human-only, clothed subjects you could skip this layer entirely and lose little - outfit (04) carries more visual weight. Where it becomes non-optional is monster girls, furries, fantasy races, or any character where the anatomy is the design. And as with the rest of the pack: Chinese labels, young and quiet pack, no community writeups, so trust the 元信息JSON and the README's flow when something renders wrong.
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 (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 | — |