maker-ui-bbox-workflow · git:20261015.5491005 · 2026-10-15 · sha256 5ee7423eb076beca
maker-ui-bbox-workflow git:20261015.5491005A
Immutable. This exact content never changes and is served at /api/v1/blob/5ee7423eb076beca.
---
name: maker-ui-bbox-workflow
description: 通过 CLI 编排 Maker「游戏UI制作 · Bbox预排参考图(实验)」:复用当前识图,按需创建预排、分离与切图批次,检查并导出 PNG 资源包。用于此实验模板及其个人副本;普通「游戏UI制作」使用 maker-ui-workflow。
---
# Bbox 预排 UI 工作流
本 Skill 管理预排模板的独立执行流程。先读实际卡片、连线与参数,不按示例数量或标题序号猜输入。
官方模板 ID 为 `7e1cb6ad-732f-4dc3-a951-000000000015`;个人副本以分组关联的本 Skill 识别。
模板标记 `cliOnly`,整组只由 CLI 编排;用户仍可单独执行预排、生图和切图。
新实例只有原稿、识图输入与去文字步骤,示例批次只供预览,不复制为任务。
不要把普通模板转换成预排流程,也不要求画布自己识图决策。
## 准备与识图
1. 沿用用户已选项目,通过 `canvas pages`、`canvas inspect` 读取 page-id、canvas-id、revision
与当前分组。操作使用当前 CLI schema,通过受控接口保存,不改写打开中的画布文件。
2. 调用 `canvas model-settings --target-dir <项目>`,识图按返回的 vision.source 执行;默认 Server API 不可用时由系统临时降级为 chatgpt-web,用户主动选择优先,不自行切换渠道。
付费识图、生图遵循已有授权;本地预排不调用生图模型、不消耗模型积分。
3. 原始设计稿 → 原稿与识图输入 → 去文字与元素识别。先完成去字,再识别去字图的 UI
与原稿的文字。local 由当前 AI 客户端识别;custom 用已配置 API;server 用画布两轮识图。已有任务不因接口不可用换渠道重做。
chatgpt-web 仅复用同包的[网页识图协议](../maker-ui-workflow/references/chatgpt-web.md),
不因此切换为普通模板的拆图流程。
4. 用 `canvas recognition-input` 取当前输入,用 `canvas recognition-result` 校验两轮结果
并按返回协议回填。Bbox 为 version=1、design-pixels、xywh,保留 design/cutSource 的
路径、哈希、真实尺寸及 elements/texts。换图后重新识图,不能沿用示例坐标。
当前原稿和去文字图身份未变且已有有效结果时直接复用,不再次调用识图或打开识图网页。
## 预排、分离与切图
1. 先判断素材复用、按钮状态及美术字需求,必要时修正当前识图清单。保存后调用
`canvas sync-ui-batches`,input 如 `{"id":"分组ID","artText":["T001","T008"],"background":false}`,携带最新 revision。
artText 填当前 Bbox 中所有需要图片化的文字 ID,每项独立建卡;没有时传 []。
普通文字留作 Label,cutout=false 不自动提取;role=title 不等于美术字需求。旧 true 仅代表单个主标题,不用于多组美术字。
background 决定是否额外还原识图清单未列出的环境背景;纯弹窗不默认补场景。
接口按分类将素材以原尺寸紧凑装入图集,2048 仅为单边上限,画幅按实际占用选择支持的比例,记录每项裁切矩形,仅创建实际需要的“预排→分离→PNG”和资源包;
空分类不建卡。同一结果重复调用不重复建卡,不触发识图、生图或扣费。
已有卡片和产物保留;旧测试或换稿留下的卡片不要当作新批次完成。无结果、无任务且
确认无人工修改的旧占位卡才可通过 delete-nodes 清理,不删除已生成素材。
容量超限时停止说明需要拆分处理,不截断元素清单或宣称自动分画布已经完成。无需外部排版脚本。
2. 每批严格沿用:当前去文字图 → Bbox 本地预排卡 → 生图分离卡 → PNG 资源卡。
本地预排以原稿 Bbox 像素为尺寸基准(小数宽高四舍五入),只移动、不缩放入格;去文字图分辨率不同时仅映射回该基准。画布留白与素材间隔透明,裁片保留来源 Alpha;素材间留 8 像素间隔,放不下才续批,单项超过 2048 像素停止说明,不缩小。它仍带原背景、遮挡物,不是已分离的最终素材。
3. 分离卡只引用对应批次的预排图,不改回整屏去字图,也不混入其它参考图。提示词按
“保留原尺寸主体”“移除背景与覆盖物”“输出同坐标透明 PNG”分开写;明确要求真实 Alpha=0,不铺纯色底或绘制棋盘格;原稿坐标不作为预排图上的定位坐标。
不覆盖已有槽位清单,不重排 ID,不把预排卡当成付费生图卡。
4. 预排与分离必须输出当前 nativeLayout 记录的相同尺寸,不固定为 2048×2048。先看预排是否紧凑、主体清晰;不要将大面积空白图直接送生图。按已记录的实际矩形裁切,不做内容检测重排或缩放;更换 Bbox、来源或布局后先重做预排。
下游使用本次生成记录的规划,不能用新规划解释旧结果。按上游状态恢复,不重复已完成生成。
5. 美术字是独立支线,引用原始设计稿;普通文字使用 texts 还原 Label。不要把普通文字
塞进预排图集,也不要因去字图没有美术字就跳过该支线。
6. 同步完成后先 inspect 核对批次数、元素覆盖及连线。已获授权时运行分组到资源包,保留识图开启;缺少本地/网页识图结果时先回填、保存,
再以最新 revision 继续。队列根据连线执行,预排、生图和裁切各有自己的完成状态。
生图同页最多并发 3 张;明确失败默认最多重试 2 次(首次加重试共 3 次),沿用分组队列。
结果未知、下载或保存失败不重新付费生成;本地预排不占用生图并发通道。
## 检查与恢复
- 核对每批主体完整、槽位顺序、默认/按下态、背景透明度、底板与图标分离。数量相同不代表质量通过;
预排图只是参考约束,模型仍可能重绘、跨格、粘连。未复核资源保持 unreviewed。
- 空分类无需生成,资源包跳过已确认完成的空分类;来源过期时先更新来源。
- 切图失败先保留生成图,使用已有裁框与去底能力修正,不自动重新付费生图。
- 未知请求先查询原任务。Server API 恢复需复用原编号并显式确认;不把 unknown 当作失败重提。
- 完成必须逐项对照 Bbox:每个元素(含 duplicateOf 复用实例)有正常态绑定,按钮和页签还有按下态;
每个选定美术字 ID 在 bindings.json 的 artTextBindings 中有对应 PNG,普通文字保留在 texts。
缺项、失败、未知或过期都不报完成;美术字的 PNG 映射不代表视觉审核通过。
实验模板整包导出会拒绝待完成、未连入资源包及缺失元素/状态;单卡下载不代表整套完成。
超过 ZIP 上限时按资源卡分别下载并核对全集,不截断;超过规划容量时停止说明,不能承诺自动跨画布拆分。
- 结束后核对批次数与资源数量,将每批“预排 → 分离 → 资源”横向对应,类别纵向紧凑排列,
资源包放在全部处理卡片底部。
## 交付边界
仅请求切图时,到 PNG 与含 bbox.json、bindings.json 的资源包结束。既有示例不能当新任务完成。
用户要求继续拼 UI 时,从同一归档版本取得 Bbox、PNG 与已确认的绑定,保留文字 Label 和原稿坐标;
正式素材归档到 `assets/ui/<界面>/images/`,显式生成 meta。
组装复用同包 `../maker-ui-workflow/scripts/assemble-ui.mjs`,输入 assembly.json,输出到不存在的
新目录;脚本的 schema 与坐标契约见[组装数据说明](../maker-ui-workflow/references/workflow.md)。
这里只复用组装工具和数据契约,不执行该文档的普通模板拆图步骤。打开 UI 编辑器左右、重叠对照,
不覆盖用户手工编辑,不自动构建、提交或发布游戏。