全景式角色深度概念分解图 v2.0(角色设计板)
功能概述
把一张角色主体图片扩展成一张「角色设计分解板」:
- 中心锚点:角色的全身立绘 / 主要动态姿势。
- 四周环绕拆解:
1. 服装分层(脱下外套后的内层状态 + 私密内里单品展示)
2. 表情集(3–4 个头部特写,不同情绪)
3. 材质特写(1–2 个关键部位放大 + 小物件质感)
4. 随身包袋与内容物(打开的日常通勤包,散落的个人物品)
5. 美妆与护理(符合角色的化妆品组合)
6. 私密生活物件(不向外人展现、代表内心世界的物品) - 视觉引导:手绘风箭头 / 引导线,把周边元素连到中心人物的对应部位(包包→手部、服装→躯干等)。
- 风格:2D 插画 / 概念草图感,干净线条;羊皮纸 / 米黄 / 浅灰纹理背景;每个元素旁手写体注释(材质 / 品牌型号暗示)。
输出为单文件自包含 HTML(图片 base64 内嵌),可本地打开,也可在 WorkBuddy 预览面板直接查看。
触发条件
当用户提出以下需求时,立即加载并执行本 Skill:
- "根据这张图,出一张全景式角色深度概念分解图"
- "把这个人做成角色设计分解板 / 概念板"
- "服装分层 + 表情集 + 随身物品的角色设定图"
- "角色立绘拆解:衣服分层、表情、材质、包里装了啥"
- 关键词:角色设计板、概念分解图、outfit breakdown、character sheet、everyday carry
角色资产锚点方法论(10 篇实战提炼)
本技能产出的"分解板"本身就是一张角色一致性锚点资产。工业级做法(献丑AI / 星火 / 文枢智绘等 10 篇公众号共识):
- 先锁「正面全身锚点图」:单独生成一张正面清晰全身图,挑最满意的作唯一基准——后续三视图、表情、服装分层、包内物品全部以它为参照派生,一致性最稳。
- 四层级资产树:身份锚点(正面全身/三视图/身高对照)→ 表演控制(表情表/体态库/口型表)→ 视觉规范(配色卡/服装拆解/道具独立图)→ 环境融合(定妆照/破损状态图)。
- 人物小传翻译视觉:把性格转成可画的元素("坚毅"→紧抿嘴唇+锐利眼神+下颌线分明;"富家子弟"→剪裁西装+保养双手)。
- 固定参数写死:外貌固定句(泪痣/头肩比/发色)跨镜头重复出现,t2v 无参考图时尤其靠此兜底。
> 用本技能出分解板时,中心立绘就该是那张正面全身锚点图;六大分区是从它派生的"子资产",方便后续逐镜调用。
工作流程
用户提供:角色中心立绘图片(必填)+ 角色名 + 周边元素信息
↓
[步骤 1] 采集:确认中心立绘路径;收集六大分区素材
缺图时 → 让用户补图,或用 ImageGen 生成后回填路径,或留占位框
↓
[步骤 2] 拆解:按 references/framework.md 把信息落成 JSON
(center_image + clothing/expressions/materials/bag/beauty/private)
↓
[步骤 3] 渲染:python generate_board.py board.json -o board.html [--bg parchment|cream|gray]
↓
[步骤 4] 交付:present_files 打开预览,并附一页文字说明(各分区要点 + 缺哪些图)
步骤 1 · 采集素材
必填:角色中心全身立绘图片(用户提供的那张"主体人物"图)。
选填:周边六分区的图片与文字。每条可带 label(标签)与 note(手写注释,如"做旧羊毛混纺 / 植鞣牛皮")。
当某分区缺少图片时,有两种处理:
- 留占位:JSON 中该 img 设为 null 或省略,脚本会渲染带标签的虚线占位框,方便后续补图。
- AI 生图(可选,消耗额度):用 ImageGen 以中心立绘为参考,生成该分区的元素图(如 4 个表情、
脱下的外套单品、包内物品等),把返回的本地路径回填进 JSON 再渲染。
> 不要一次性向用户索要几十张图。先拿中心立绘 + 角色名跑出带占位的板,再按需补图/生图。
步骤 2 · 拆解成 JSON
严格参照 references/framework.md 的视觉拆解框架。JSON 结构:
{
"name": "角色名",
"subtitle": "可选,如:都市奇幻 · 古董店店主",
"center_image": "C:/path/to/character.png",
"clothing": {
"outer": {"img": "外层图路径", "label": "外层·风衣", "note": "做旧羊毛混纺"},
"inner": {"img": "内层图路径", "label": "私密内里·吊带", "note": "真丝莫代尔"},
"items": [{"img": null, "label": "围巾", "note": "羊绒"}]
},
"expressions": [
{"img": "图路径", "label": "平静"},
{"img": null, "label": "狡黠"},
{"img": null, "label": "惊恐"},
{"img": null, "label": "温柔"}
],
"materials": [
{"img": "图路径", "label": "皮革五金", "note": "黄铜做旧"}
],
"bag": {
"img": "包图路径", "label": "通勤托特包", "note": "植鞣牛皮",
"contents": [
{"img": "图路径", "label": "钥匙", "note": "铜质"},
{"img": null, "label": "口红"},
{"img": null, "label": "旧车票"}
]
},
"beauty": [
{"img": null, "label": "腮红"},
{"img": null, "label": "香水"}
],
"private": [
{"img": null, "label": "日记本", "note": "锁扣款"}
]
}
字段说明:img 为本地图片绝对路径;null/省略 → 占位框。label 显示在图下,note 为手写体注释。
步骤 3 · 渲染
python "C:\Users\46179\.workbuddy\skills\character-concept-decomposition\scripts\generate_board.py" "C:\path\to\board.json" -o "C:\output\board.html"
# 切换背景质感
python "...\generate_board.py" board.json -o board.html --bg cream # 米黄
python "...\generate_board.py" board.json -o board.html --bg gray # 浅灰
脚本会把所有本地图片 base64 内嵌进 HTML,输出单文件。
步骤 4 · 交付
用 present_files 打开 HTML 预览,并附文字说明:角色名、六大分区各展示了什么、哪些分区仍是占位(提示用户可补图或生图)。
视觉规范(速查)
| 项 | 规范 |
|---|---|
| 中心 | 全身立绘 / 动态姿势,作为视觉锚点 |
| 环绕 | 服装分层 / 表情集 / 材质特写 / 包袋内容物 / 美妆 / 私密,有序排布四周空白 |
| 引导线 | 手绘风箭头(带轻微抖动滤镜),连接周边元素 → 中心对应部位 |
| 服装 | 拆分单品;多层穿搭展示脱外套后的内层;独立展示私密内里,突出设计感与材质 |
| 表情 | 角落 3–4 个头部特写,不同情绪 |
| 材质 | 1–2 个关键部位放大;新增小物件质感特写 |
| 关联物品 | 打开的日常包 + 散落内容物(职业/爱好/性格/习惯);美妆护理;私密生活物件 |
| 画风 | 高质量 2D 插画 / 概念草图,线条干净 |
| 背景 | 米黄 / 羊皮纸 / 浅灰纹理,设计手稿氛围 |
| 注释 | 每元素旁手写体说明(材质 / 品牌型号暗示) |
文件结构
character-concept-decomposition/
├── SKILL.md ← 本文件
├── scripts/
│ └── generate_board.py ← 设计板生成器(JSON → 自包含 HTML)
└── references/
└── framework.md ← 视觉拆解框架详解
注意事项
- 中心立绘是必须的:没有它就无法形成锚点,先向用户要到这张图。
- 图片路径要本地可达:脚本读取本地文件并 base64 内嵌;网络图/不支持的格式会退化为占位。
- 占位很正常:首次出图允许大片占位,逐步补图比一次集齐更顺畅。
- 手写注释要"人味":材质/品牌暗示用短口语("做旧羊毛""黄铜包铜"),别写说明文。
- 背景可选:parchment(羊皮纸,默认) / cream(米黄) / gray(浅灰),配合不同手稿氛围。
- 长文本走文件:素材多时让用户提供 JSON 或图片目录,而非逐条粘贴。