角色 IP 设计工坊(yrns-ip-designer)
> 心法一句话:一致性不靠"描述同样的角色",靠"逐字复用的身份卡 + 可执行的门禁"。
> 本技能把"一句话人设 → 全套动作素材"固化为六阶段产线,任何角色类型(人物/动物/物品/妖怪)、
> 任何动作清单都走同一条线——换角色换风格,不换流程。
何时用 / 不用
立即使用:用户要设计 IP 角色形象;要为某角色批量产出多个动作/姿态素材;要选画风或从参考图学画风;要做桌宠、表情包、贴纸、吉祥物的成套角色图。
不要使用:只要一张独立插画(直接生图);改已有成套素材(局部编辑);纯风格咨询无产出需求(直接回答)。
验收标准(做完长什么样)
交付时须全部满足:
- 每个动作一张透明背景 PNG(1K 以上分辨率),命名
<角色>_<动作>_<序号>.png,落在用户指定目录; - 同角色跨动作:头身比、帽高等头部装饰比例、身形胖瘦、道具比例、配色 hex 完全一致,肉眼胶片拼图无"忽大忽小/忽胖忽瘦/换脸/换色";
- 全程三次用户确认关口都有明确确认记录,且均为逐图审核清单(见下"审核门通用规程"):①形象定稿(标定参考图+标线复核图)②lineup 合版分组方案 ③最终交付(胶片拆项);
- 量体门禁全部通过(或经用户同意降级并记录原因);标定图头部标线比值与身份卡五官锚定行同源一致(calib_marks.py 校验通过)。
审核门通用规程(三道确认门统一形态)
> 教训:笼统丢图让用户"看着回一句",漏审、说不清哪张不对、返工整版。凡用户审核环节一律清单化(用户定稿铁律)。
- 载体:复制
assets/review-gate-template.html,只替换{{GATE_TITLE}}与{{ITEMS_JSON}}(每项:序号、图名、这张图审什么、图片路径),经局域网 HTTP server 给用户可点开的链接(适配手机逐张看)。 - 每项一个单选:✅通过 / ❌不通过;❌ 必须附一句原因——门①的原因按 aesthetic-gate「诊断报告四段」定位到层,直接映射要改身份卡哪一行。
- 回执:页面"生成回执"按钮产出一段文本(
#1 通过 / #2 不通过:原因…),用户复制回传即算确认记录。 - 过门判定:全部项"通过"才算过门;❌ 项单独打回重出,只复审该项,不整体重审。
六阶段产线
> 每阶段末的【门】不过就不许进下一阶段。先跑通再长大:任何阶段发现风格库/比例表缺内容,联网检索补齐并写回文件(OTF)。
阶段 A · 需求收集(问清再动手)
必须收集齐四项,缺项就追问(一次 ≤2 问):
| 项 | 要什么 |
|---|---|
| 角色类型 | 人物 / 动物(四足/禽/水生) / 物品拟人 / 妖怪——决定比例体系 |
| 人设输入 | 文字描述,和/或参考图(参考图须区分"学画风"还是"画得像它"——默认只学画风不抄角色) |
| 动作清单 | 用户指定动作列表及每组张数(默认每动作 1 张;动画帧组用户明确提出才做) |
| 用途与画幅 | 桌宠序列帧/表情包/贴纸…决定各动作 w:h 比例与是否需循环 |
阶段 B · 定风格(风格库 or 参考图学画风)
- 读
assets/style-library.md,按角色类型向用户呈现 3~5 个候选风格(名称+一句话特征+代表作),用户点名单即定。 - 用户给了参考图要求"照这个画风"→ 走
references/style-transfer.md学画风流程:提取画风卡(线条/轮廓/上色/光影/质感/五官画法/配色 hex),模仿画风而非角色。 - 配色优先级(用户定稿铁律):用户参考图提取的 hex > 风格库默认色板 > 自由发挥。参考图配色用脚本量取(取色见 style-transfer.md)。
- 库里没有用户想要的风格 → WebSearch 检索该风格特征,按 style-library 条目格式追加登记后再用。
阶段 C · 比例检索 + 身份卡(写一次,逐字复用)
- 第 0 步检索不可跳过:新角色类型先联网检索其比例体系(头身比、各姿态头顶高阶梯比、关键部位比例),多源交叉,写入身份卡与 style-library 同目录笔记。人物≠动物,成人≠儿童≠Q版(检索 SOP 见
references/workflow-sop.md§C)。 - 按
references/prompt-templates.md的身份卡格式产出 [IDENTITY]:比例全部锚定身体部位(绝不写绝对像素),配色只允许 hex,画风描述归身份卡。 - 持卡自审不可跳过:写给用户看之前,逐条过
references/aesthetic-gate.md「身份卡七判」(剪影口诀/钩子预算=1/16×16/6:3:1/气质倒推/因果可答/角色四问),不过先改卡。 - 身份卡 + 风格 + 动作清单一起呈现给用户,口头确认后才进入生成(这一步顺带完成,不单独卡)。
阶段 D · 标定参考图 →【用户确认门①】
- 生成 1 张标定图:正面 A-pose、全身、脚触底边、头顶留 1/10、关键道具入画、相机锁措辞照抄模板。
- 底色铁律:纯色底,色相距角色任何主色 ≥60°(红脸类用 #0000FF 蓝底);永远不在提示词写 transparent background(会画假棋盘格)。
- 生成后立即量背景 hue(见阶段 F 脚本用法),不合格重出。
- 生成后立即叠标线标定:
python3 scripts/calib_marks.py --in calib_t.png --expect "eyes:0.50,brow:...,chin:1.00"(期望值=身份卡五官锚定行,写实 defaults 与 Q版覆盖见 workflow-sop §C.5)。脚本输出复核图 calib_marks.png + 各段÷头高比值表 + 身形比(躯干宽÷头高);越界先改身份卡或重出,标定值回填身份卡『五官锚定行』与『身形锚定行』——身份卡与门禁同源。身形(胖瘦)自此锁定:体型档+肩宽/躯干宽÷头高写死进卡。 - 拿给用户前先自查:按
references/aesthetic-gate.md「审图三关」(秩序→对比→呼吸)过一遍并记录结论。 - 【用户确认门①】用"审核门通用规程"清单页审核,待审项逐条列:标定图(审头身比/帽高等头部装饰/道具比例/配色四点)、标线复核图(审五官刻度)、各自的通过/不通过单选。全部通过才进阶段 E。用户要改 → 先按 aesthetic-gate「诊断报告四段」定位到层,再只改身份卡对应行,重出标定图+重跑标线,只复审 ❌ 项。
阶段 E · 动作批量派生(lineup 默认法)
- 【合版确认门②】出任何 lineup 整版图之前必须先过:把分组方案列成"审核门通用规程"清单页——每批一项(默认全部动作一张图、多行网格共用地线;仅崩坏风险高才拆批。项内含:批次名、含哪几个动作、行×列布局、身份卡版本号),每项 ✅通过/❌不通过+原因。全部通过才生成;❌ 的批次单独调方案复审,不整版重议。lineup 一张=整版 token,废一张整版=全部动作重做,这是全产线最贵的返工,确认绝不能省(用户定稿铁律)。
- 默认一张整图出全部动作(单图 lineup,多行网格):同一角色全部姿态一次画进同一张图,所有行共用同一地线(
all rows share one ground line),缩放一致性由同画布天然保证且最省 token;人物一行 ≤6,四足动物一行 ≤4,大轮廓角色(多尾/飘袖/长道具)一行 ≤3——姿态多就加行不拆图,仅单图行数过多致细节崩坏才拆批。 - 抠底后标线验收(进切片前):
python3 scripts/calib_marks.py --in lineup_t.png --grid "r:0.75"画 地线/站顶线/坐顶线 三横线并逐列打印头顶高÷站高——坐姿列必须贴坐顶线(r=该风格阶梯比),站姿列互等;不贴即整版重出,禁止缩放硬掰(判据同源 workflow-sop §C.6)。 - 四条生成铁律(每条 prompt 必带,全文见 prompt-templates.md):
1. 全身铁律:任何姿态完整入画,禁半身特写/裁切;
2. 定高线:坐姿等在 prompt 写死阶梯比(如crown reaches about 75 percent of the standing figure's crown height),数值来自阶段 C 比例表;
3. 站锚:纯坐姿/低姿态排必须同图带 1 个站姿锚点并写明相对值;
4. 间距铁律:相邻角色之间留大片净空——措辞写死wide clear gaps between figures, no extremity of one figure may touch or overlap its neighbor(尾/袖/发梢等伸展物最容易串进邻角切片;切片脚本的孤岛清理只能兜底,不能替代留距)。 - 动作行只写动作,严禁重复外貌描述(多余描述=新的随机源)。
- 身份漂移(脸/服不一致)超标的姿态,降级为逐姿态 img2img(链深 ≤2),但全身铁律与定高线不豁免。
- 提示词尾部统一挂负面清单(模板里有)。生成后先审图再进下一阶段——错误图会污染整条链。
阶段 F · 抠图 + 量体门禁 +【用户验收门③】
顺序不可反:量底色 → 抠图 → 切片 → 量体 → 胶片人审 → 交付。
# 1) 背景hue预检 + 纯色底抠透明(本技能自带,纯 python/PIL)
python3 scripts/chroma_key.py in.png out.png [--preview prev.jpg]
python3 scripts/chroma_key.py in.png --check-only # 批量前单帧验底
# 2) lineup 整版切单姿态(有空列用 gaps,袍摆相接用 even;默认自动清掉切片左右边缘上不属于主体的邻角残片)
python3 scripts/lineup_slice.py lineup_t.png --out-dir slices --prefix p --n 6 [--edge-clean 24]
# 3) 量体门禁:以标定图为基准。同姿态类型直接比头数;跨姿态类型写期望阶梯比 "图:0.75"
# (阶梯比数值取自 workflow-sop.md 比例表;Q版无颈缩时按提示 --head-h 手工校准一次)
# 身形门默认开(躯干宽÷头高 ±18%):展臂/大袖帧写 "图:r:nb" 豁免脚本、转清单人审
python3 scripts/measure_gate.py --ref calib.png --poses a.png "seat.png:0.75" "wave.png:nb" [--tol 0.12] [--body-tol 0.18] [--montage film.jpg]
# 4) 参考图取配色 hex(阶段 B 学画风用)
python3 scripts/measure_gate.py --palette ref.png
- 脸高/头高偏差 >±3% → 打回重出该帧(重出比肉眼巡检便宜得多)。含跨朝向校验:正脸/侧脸/低头帧同入 --poses 直比 heads——头是刚体,换朝向不许头缩(判据见 workflow-sop §C.5)。
- 同组双帧(A/B)同姿态类型时身高差 >±3% → 定标差过大,播出来是"先缩小再变大"——该组降级单姿态(宁可少动作幅度,不出缩放感)并记录原因。
- 内容高/头高 ≈ 该姿态头数,偏离 >±12% → 生成器画了"假姿态",打回不许靠缩放硬掰。
- 全部通过后拼一张胶片质检图(montage,measure_gate.py 附带输出)留档,给用户审前先用五层尺子过一遍剪影(黑块 2cm)与钩子唯一性(
references/aesthetic-gate.md)。给用户审时拆进"审核门通用规程"清单页:每张切片一项(附量体数值与审点:轮廓完整/无残边/表情动作到位/与标定同脸同色同身形;nb 豁免帧重点人工核胖瘦),逐张 ✅/❌;montage 总图与整图标线验收图(calib_marks --grid 产物)作为末两项供整体核对,不替代逐项。用户全部项通过才算交付;❌ 帧单独重出、只复审该项。
历史坑速查(改之前先读 troubleshooting.md)
忽大忽小根因=生成器每张图比例都飘,文字描述锁不住;交叉淡入=重影,序列帧一律硬切;朝向不可靠=只生成单向、镜像交给下游;1K 以下直接生成会糊;色底指令会被模型调色——先单帧验底色再批量。完整因果链见 references/troubleshooting.md。
资源索引(按需加载,别一次全读)
| 何时读 | 读哪个 |
|---|---|
| 阶段 C 比例检索 SOP / 姿态阶梯比表 / §C.5 五官标线与朝向标定 / §C.6 身形锚定与单图标线验收 | references/workflow-sop.md |
| 写任何提示词(身份卡/相机锁/动作行/负面清单/lineup) | references/prompt-templates.md |
| 用户给参考图要学画风 | references/style-transfer.md |
| 门禁失败、出图异常排障 | references/troubleshooting.md |
| 阶段 C 持卡自审 / 阶段 D/F 审图与用户不满意时下诊断 | references/aesthetic-gate.md |
| 阶段 B 选风格 | assets/style-library.md |
| 抠图/切片/量体/取色/标线标定 | scripts/chroma_key.py、scripts/lineup_slice.py、scripts/measure_gate.py、scripts/calib_marks.py |
| 三道确认门做清单页(门①②③通用) | assets/review-gate-template.html |
扩展与成长(OTF)
- 新风格/新角色类型用过、验证过的比例表和画风卡,当场写回 style-library / workflow-sop 对应小节,注明来源。
- 角色换物种(人→动物)时阶段 C 检索整步重做,禁止沿用人类阶梯比。
- 桌宠序列帧合成(A/B 帧插帧、呼吸浮动)属下游工程,本技能交付到"透明 PNG + 门禁通过"为止。