- name
- blindbox-ip-sheet
- description
- 制作 3D 盲盒潮玩 IP 角色设定图(Character Setting Sheet)——竖版 1:2.5 长图,固定五区块:Hero Banner / 角色档案 / Multiview 四视图 / Action pose 横幅 / 动作图集。当用户要求"盲盒潮玩设定图""IP 角色设定页""潮玩角色设定""blind box character sheet",或给定角色形象与档案后要一页式发布图时使用。覆盖信息采集、提示词组装、整版生成、结构化补丁(动作网格与标签的程序化排版)、单视图替换与验收。
- metadata
- {"agent_created":"true"}
# 3D 盲盒潮玩 IP 设定图
## 先说最重要的一条
**单张生成能做好"质感 + 角色 + 色块版式",做不好"结构化网格 + 成组文字"。** 这是多次实测的结论,直接决定工作流:
| 区块 | 生成模型表现 | 处理方式 |
|---|---|---|
| 一 Hero Banner | 稳。角色裁切溢出、大字压在色块上都对 | 直接生成 |
| 二 角色档案 | 标题可以,**两栏 × 3 行字段网格经常错位**(标签与值串行、漏项、乱码) | 生成后按需用 `scripts/sheet_text.py` 重绘 |
| 三 Multiview 四视图 | 基本对,但**躯干/尾巴类细节会出结构性 bug**(如两条尾巴) | 单视图出问题时用 `scripts/replace_view.py` 换掉那一格 |
| 四 Action 横幅 | 稳 | 直接生成 |
| 五 动作图集 | **几乎必错**:姿势重复、标签拼错、顺序不听指令 | 单独生成姿势图 → `scripts/compose_actions.py` 排版 |
推论:**不要用图生图去改区块五或字段网格。** 实测连续 3 次都还原成原样,白烧积分。改结构一律走"单独生成元素 + 程序化合成"。
---
## 流程
### Step 0 采集信息
按模板收齐下列字段。缺失项按右列推断,不要反复追问,写完在回复里声明推断值。
| 字段 | 必填 | 缺失时的处理 |
|---|---|---|
| 角色名称(中文) | 是 | 必须问 |
| 角色英文名 | 否 | 用品牌英文名;没有则用中文名的意译全大写 |
| 形象描述(物种、主色、标志性特征) | 是 | 必须问 |
| 昵称 / 出生地 / 生日 / 性别 / 性格 / 爱好 | 否 | 只填用户给的;**生日缺省用 `08.08`**,其余缺省宁可留白也不编造 |
| 品牌主色 | 否 | 取角色主体色的**加深一档同色系**(浅驼角色 → 焦糖琥珀),保证色块上角色仍能分离 |
| 参考图 | 否 | 有则作为身份锚点;无则先生成角色主形象 |
### Step 1 确认规格
一次生成前告知:**1 张 1024×2560(精确 1:2.5)、五区块、预计 2~3 次生成(整版 1 次 + 姿势图 1 次,出问题可能再补)**。规模与规格写清楚再开工,中途不逐张追问。
### Step 2 建立身份锚点
- 用户给了角色图 → 直接当锚点,**每次生成都带上这张图**,绝不退化成文字描述。
- 用户没给 → 先只生成角色主形象(正面、全身、白底),确认后再进整版。
### Step 3 整版生成
用 `references/prompt-templates.md` 的【模板 A】组装提示词,逐项填占位符。
先核对当前生图入口是否支持 `1024x2560`。若不支持,按实际能力生成,再通过裁切、扩图或排版达到精确 1:2.5;交付前读取实际像素验证,不把提示词尺寸当作输出保证。
生成后**必须读图核对**:五区块是否都在、比例是否近似 25/15/20/15/25、Hero 角色是否溢出色块、Multiview 四格顺序与中英标注是否正确。
### Step 4 结构化补丁
按失败类型选脚本(都只需一张底图 + 一个素材,不重新生成整版):
```bash
# ① 区块五重排:单独生成的 N 姿势白底图 → 等距网格 + 重绘英文标签
python scripts/compose_actions.py --base sheet.png --poses poses.png --out sheet_v2.png \
--labels stand,running,sitting,lying,jumping,"left hook" --cols 3 --rows 2
# ② 替换 Multiview 某一格(如后视图双尾、侧视图比例异常)
python scripts/replace_view.py --base sheet_v2.png --view back.png --out sheet_v3.png \
--center 638 --baseline 1414 --height 286
# ③ 重绘区块二字段网格(标签与值串行时)
python scripts/sheet_text.py --base sheet_v3.png --out sheet_v4.png --grid 2x3 \
--fields "昵称:袋袋,出生地:澳大利亚 · 墨尔本,生日:08.08,性别:男,性格:热情开朗,爱好:运动 · 看书 · 旅行"
```
三个脚本共用 `scripts/cutout.py` 的抠图逻辑;背景补片自动贴合底图原有渐变,不留矩形接缝。**所有矩形类参数统一为 `X0 Y0 X1 Y1`(左上角 + 右下角)**,传错顺序会静默盖掉邻格。参数含义与调参见各脚本 `--help` 与 `references/layout-spec.md`。
### Step 5 验收
逐项核对,**结论写进给用户的回复**:
- 画幅是否精确 1:2.5(读像素,不靠目测)
- 五区块齐全,占比接近 25/15/20/15/25
- 角色造型、配色、哑光质感、比例在各区块是否同一个人
- 图上文字:拼写、语言一致、无乱码;档案字段标签与值是否对齐
- Multiview 四格顺序与标注(正视图/侧视图/后视图/45°视图 + front/side/after/forty-five°)
- 动作图集姿势数量、顺序、标签与用户要求逐项对上
- 无投影残影、无双尾/多肢、补丁边缘在 1:1 下不可见
不合格时**先报告具体现象再问是否重做**,不自动重做(重做要花积分)。
---
## 参考文件
| 文件 | 何时读 |
|---|---|
| `references/prompt-templates.md` | 组装整版提示词、姿势图提示词、单视图补图提示词时 |
| `references/layout-spec.md` | 需要精确坐标、字号、色值、基线时;调脚本参数时 |
| `references/pitfalls.md` | 出问题(乱码、双尾、接缝、白边、姿势不听指令)时查表 |
## 脚本
| 脚本 | 作用 |
|---|---|
| `scripts/cutout.py` | 白底抠图(暖色判据 / 饱和度判据),输出 RGBA + 内容框 |
| `scripts/compose_actions.py` | 姿势网格图 → 指定区域等距排布 + 重绘标签 + 背景渐变贴合 |
| `scripts/replace_view.py` | 替换设定图中任意一格角色视图(抠图 + 等比缩放 + 基线对齐 + 接地投影) |
| `scripts/sheet_text.py` | 重绘区块二的字段网格(清除旧内容 + 按 2 列 × N 行排版) |
依赖:Python 3.10+ + Pillow(可通过 `python -m pip install Pillow` 安装)。字体默认取系统 `msyh.ttc / msyhbd.ttc`(中文)、`arial.ttf`(拉丁),可用 `--font` 覆盖。
View on GitHub