关于 scenario-chatgpt-pet-update
用于修改现有 ChatGPT 或 Codex 宠物精灵图,同时保留原文件和身份信息。它可定向重做动画行、清理与重新对齐帧,也能更改外观;依赖配套创建技能的脚本和图纸规范。
主要功能
- 01检查图纸并预览动画
- 02重新生成指定动画行
- 03清理并重新对齐现有帧
- 04更改整张图纸中的宠物外观
- 05验证并打包更新后的宠物
适用场景
- 01只修复有问题的动画行,不重做其他行
- 02清除杂点或将帧对齐到统一地面线
- 03添加新外观或将 v1 图纸升级为 v2
- 04保留宠物 ID 并准备更新后的宠物包
MCP 相关
该技能使用 `scenario` 技能处理 Scenario 连接和范围;README 未说明 MCP 服务端或客户端功能。
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ scenario-labs/ skills --skill scenario-chatgpt-pet-update安装后在 Claude Code 中输入/scenario-chatgpt-pet-update确认已加载。
附带文件README.md
详细介绍
场景 ChatGPT 宠物:更新
概述
现有宠物就是它的精灵图集:用户从 ChatGPT 下载的 PNG 或 WebP 文件、Codex 宠物文件夹(pet.json 加上其中指定的图集),或之前制作的图集的 Scenario 资源 ID。该文件就是这里宠物的身份;无需查找宠物记录。更新不会覆盖原文件:结果会是运行目录旁的一个新包,除非用户更改 ID 和名称,否则会保留原 ID 和名称。
此技能会运行脚本,并遵循 scenario-chatgpt-pet-create 的图集规范;必须先安装该技能。请从用户的工作目录中,按路径运行该技能 scripts/ 文件夹里的每个脚本,并在生成某一行或编写方向判断结果前阅读规范:
pet_frames.py、
pet_prepare.py、
pet_build.py、
pet_check.py、
pet_preview.py、
pet_package.py,以及
规范。生成过程遵循该技能的循环和模型顺序(model_openai-gpt-image-2-5-sunburst,然后是
model_google-gemini-nano-banana-2-1,只有两者都受阻时才用 recommend);连接和范围:scenario 技能。如果此处提到的同级技能不在可用技能中,请让用户安装它(npx skills add scenario-labs/skills --skill <name>);无人值守时,根据工具架构继续操作,并标记这一缺失。
快速参考
先阅读图集,再选择能完成任务的最小改动。下表中的每一行都在 pet_prepare.py init --from-split(示例中的第 3 步)创建的运行中执行:该运行会记录原始图集,而构建、检查和打包都需要它。无人值守时,由你根据请求判断是否批准,并将判断记录在运行中;不会安装任何内容。
| 用户想要 | 操作 | 生成次数 |
|---|---|---|
| 查看或检查宠物 | pet_check.py、pet_preview.py contact 和 gif | 0 |
| 重命名或添加新描述 | init、pet_check.py <sheet> --run RUN,然后运行 pet_package.py make RUN --sheet <sheet> --name ... | 0 |
| 清除残留像素、透明区域下的颜色 | pet_build.py RUN --clean | 0 |
| 某一行的帧上下或左右跳动 | pet_build.py RUN --reregister <row>:将现有帧重新放置到同一条地面线和锚点上 | 0 |
| 重做一个或几个状态 | init --only <rows>(也可以是外观行),生成这些行,然后运行 pet_build.py RUN:其他每一行都保持逐字节不变 | 每行一次 |
| 为 v1 图集添加外观方向 | init --version 2 --only look:先生成四个基本方向,再生成第 9 和第 10 行 | 3 |
| 新外观(服装、颜色、配饰) | init --change "<the change>":编辑身份信息、审批,然后重新生成每一行 | 1 + 每行一次 |
split 会拒绝任何尺寸不是 1536x1872 或 1536x2288 的图像:其他图像属于新宠物,请使用 scenario-chatgpt-pet-create 并以该图像为参考来制作。
示例:修复 Pepper 僵硬的跑步动画,再为下个季节换上红围巾
- 获取精灵图。 用户指定
~/.codex/pets/pepper/:读取pet.json(id、displayName、description、spritesheetPath),并将精灵图复制到工作文件夹。从资源 ID 获取时:使用asset_download,设置format: "png",然后运行curl -L。 - 读取精灵图。
pet_frames.py split pepper.png --out work/split会打印版本、与宠物形成对比的背景 色键,以及pixel_grid(当精灵图是具有开/关 alpha 的像素画时设置;更新会保留该网格和调色板)。pet_check.py pepper.png --json-out work/before.json会测量精灵图:每行相对于待机动画的高度、 跳跃抬升幅度、观察动作各行的偏移。pet_preview.py contact和pet_preview.py gif会显示当前 宠物。如果请求含糊不清,请结合检查结果询问具体要修改什么。 - 重做跑步动画。
pet_prepare.py init --name Pepper --id pepper --description "<from pet.json>" --from-split work/split --only running-right,running-left --out work/run(表格中的每一行都以这样的init --from-split开始;--only指定要生成的行)。match风格会保留 精灵图的外观;每个任务的references包含references/base.png(放大并带有色键的待机帧)和references/rows/<row>.png(当前行)。每个任务对应一次model_run:通过upload_asset上传其references,并作为数组传入referenceImages;原样使用其prompt,并为模型使用其sizes; 在 Sunburst 上设置background: "opaque",且先用dry_run报价;将结果下载到任务的output。 如果旧行的动作或方向有问题(比如跳跃时完全没有抬升、跑步时两侧动作没有交替、头部转向错误), 请在init中添加--no-current-row,不要将旧动作条作为参考,因为模型会照着参考内容生成;并使用pet_prepare.py note work/run --jobs <row> --text "..."描述具体改动。重做观察动作行时,仍须参考保留 的另一半扫视动作。接着运行pet_frames.py extract work/run --job running-right,查看报告和预览,然后使用--mirror-left镜像生成 左侧动作,或用相同方式生成running-left。 - 重新构建。
pet_build.py work/run --mirror-left。以原始精灵图作为底图(由init记录)时,只会 更改重建的行,并将其缩放到与现有待机行相同的高度、地面线和锚点;边缘清理也只会处理这些行。pet_check.py work/run/final/spritesheet.webp --run work/run必须打印ok: true;保留的观察动作行只会 提示尚未审核,而重做的观察动作行需要在qa/direction-semantics.json中提供新的判定结果(格式见 contract),否则检查会失败。 - 展示并打包。
pet_preview.py gif work/run/final/spritesheet.webp --out-dir work/run/previews,展示pet.gif,按照 创建技能的做法,将精灵图和两个 GIF 上传到一个集合中,然后运行pet_package.py make work/run --id pepper。运行pet_package.py install work/run --force前请先征求 用户同意;该命令会在替换已安装的 Pepper 前,将其备份到本次运行目录中。 - 稍后添加围巾。 新外观会改变每一帧,因此这是一次以旧宠物为基础的新生成:
init --name Pepper --id pepper --description "<from pet.json>" --from-split work/split --change "add a red knitted scarf" --out work/scarf会基于身份图像添加一个编辑任务。批准编辑后的底图,然后按照scenario-chatgpt-pet-create在行步骤中的做法运行所有行(v2 精灵图还包括观察动作行,并需提供新的 方向判定结果)。旧精灵图仍决定宠物的大小,因此新宠物不会变大或变小。
从 v1 升级到 v2(init --version 2 --only look)时,按照创建技能中的说明运行 look-cardinals、
look-9 和 look-10,并填写方向判定结果;构建时会保留第 0–8 行,并添加两个观察动作行。
常见错误
- 覆盖用户文件或已安装的 pet:请在副本上操作;只有在用户同意后,才使用
--force替换已安装的 Codex pet(该选项会先备份)。 - 因为一行有问题就重新生成整个 pet:只重做该行;构建过程会逐字节复制其他行。
- 将整张表格作为参考图发给图像模型:模型会将其识别为由小帧组成的网格,并照着网格复制。请使用
references/base.png和split生成的行图。 - 为了修复构建过程可以处理的问题而重新生成:残留像素、透明区域下的颜色以及偏移的行,都可以通过
--clean和--reregister免费修复。 - 没有原始表格就重新构建:新行将无法确定尺寸;
init --from-split会记录表格,以便构建过程保留 pet 的尺寸。 - 重命名时更改 pet 的 id:Codex 通过文件夹查找 pet,因此请保留 id,只更改
displayName。 - 将 v2 结果交给要在 ChatGPT 网页版上传的人:请提供
package/spritesheet-v1.png。