Community图像github.com

xingaobio/kobutai-character

将用户喜欢的角色图片转换为动画小舞台角色——分析上传内容、绘制多视图设定图、使用 GPT Image 生成待机/表演/反应 GIF,最后打包成 Kobutai 扩展(以及 Codex 宠物)可导入的 spritesheet + pet.json。

kobutai-character 是什么?

该技能将用户喜爱的角色图片或描述,转换为 Kobutai(小舞台)可导入的动画角色。Kobutai 是一个浏览器扩展和桌面应用,能在页面播放音乐、视频、直播或播客时,显示一个可爱的 Q 版角色进行互动表演。技能工作流程包括:上传角色图片 → 生成角色卡片 → 绘制包含正面、四分之三侧面、侧面和背面视图的设定图 + 基础姿势 → 使用 GPT Image 生成待机、表演、暂停、出现、点击等状态 GIF → 运行 make_pack.py 脚本打包成 Kobutai 扩展和 Codex 宠物可导入的 pet.json + spritesheet.webp。支持 Codex 的内置图像生成工具和 ChatGPT 的原生图像生成,遵循严格的可视化一致性检查,确保同一角色各状态的画风、颜色、比例统一。

兼容平台~Claude Code✓Codex CLI~Cursor
npx skills add https://github.com/xingaobio/kobutai-character/tree/HEAD/kobutai-character

Installed? Explore more 图像 skills: steipete/songsee, affaan-m/frontend-design, mattpocock/improve-codebase-architecture · View all 6 →

在你喜欢的 AI 中提问

打开一个已预加载此 Agent Skill 的新对话。

文档

Kobutai 角色

Kobutai(小舞台)是一个浏览器扩展和桌面应用:一个小巧的 Q 版角色会在页面上表演,同时播放音乐、视频、直播或播客。本技能将用户最喜欢的角色图片(或描述)转换为 Kobutai 可导入的角色:

上传 ─► 角色卡片 ─► 设定图 + 基础姿势 ─► 状态 GIF ─► make_pack.py ─► pet.json + spritesheet.webp

以用户的语言回复(英语、日语或中文)。保持图像提示为英文。

在需要用到以下步骤时阅读这些文件:

  • references/kobutai-contract.md —— 画面几何、哪个 GIF 对应哪个 Kobutai 状态、导入和分享规则
  • references/prompts.md —— 每个图像提示、样式块以及每个表演的动作列表
  • references/originality.md —— 如何处理第三方角色、原创角色、宠物和真人

图像生成

使用宿主内置的图像生成功能来绘制所有图片:

  • Codex:使用 $imagegen 系统技能(内置 image_gen 工具)。除非用户明确要求,否则不要调用 Image API 或 CLI;那条路径需要他们的 API 密钥。
  • ChatGPT:原生图像生成。

Images 2.6(2025年11月)可以返回动画 GIF。为每个动画状态请求一个 GIF。如果宿主返回静态图像、拒绝输出 GIF,或者 GIF 不可用,则使用 references/prompts.md 中的网格备用方案(8帧排成 4×2 的网格 PNG);make_pack.py 会进行切片。

每次生成状态时,附上 base.png(以及用户上传的图片,标注为“仅作为身份参考”)。未附上基础图片生成的状态无效:重新生成它。

进度清单

展示并更新此清单(如果宿主支持任务列表,则使用任务列表格式):

  1. 读取你的角色
  2. 绘制设定图
  3. 制作动画状态
  4. 为 Kobutai 打包
  5. 检查并交付

工作流程

1. 读取角色

查看每张上传的图片,并写入 RUN/character.json(RUN = 工作区中的 kobutai-<id>/;在 ChatGPT 中为 /mnt/data/kobutai-<id>/)。字段和示例见 references/prompts.md § 角色卡片。确定:

  • mode —— 根据 references/originality.md 的说明,可选 original / own / personal。对于可识别的第三方角色,默认值为 original:受其氛围、颜色和角色启发而创作的原创角色,而非复制品。
  • style —— kobutai(Kobutai 的室内 Q 版风格,与内置角色匹配;默认)或 keep(保留上传图片的艺术风格,但仍为紧凑全身体态)。
  • scene —— 角色在播放内容时做什么(唱歌、跳舞、打碟、演奏乐器、舒适聆听、观看并反应、做笔记……)。从 § 表演场景中选择。
  • genres / type —— 建议的 Kobutai 标签,稍后在扩展的分享对话框中用于分享。
  • chroma —— #00FF00,或当角色有绿色时使用 #FF00FF。

向用户发送一条简短消息,包含角色卡片(名称、外观一行概括、模式、风格、场景、标签),并请他们确认或更改任何内容。如果他们回复“开始”或不在乎,则使用默认值继续。如果上传的图片没有明确的主要角色,请询问是哪一个。

2. 设定图和基础姿势

  1. 使用 § 设定图画布生成 RUN/profile.png:正面、四分之三侧面、侧面和背面视图,四种表情和一个调色板条,不能有文字。这是用户的模型设定图;展示给他们看。
  2. 使用 § 基础姿势生成 RUN/base.png,并附上 profile.png:一个放松的全身体站立姿势,四分之三侧面视角,使用纯色背景(即 chroma 颜色)。每个状态都从这张图绘制。

如果身份特征(面部、头发、服装、调色板)有误,在此处修正;后续每一步都将复制 base.png。

3. 动画状态

生成到 RUN/states/ 目录中,每个文件一个任务,每次都要附上 base.png:

文件Kobutai 用途必需
idle.gif待机状态,无内容播放是
playing.gif内容播放时的表演循环(最重要)是
paused.png一张静态“等待你”姿势(Kobutai 仅保留一帧)推荐
appear.gif入场动画,角色被召唤时播放一次推荐
click.gif被戳时的反应,播放一次推荐
error.gif困惑/伤心循环可选
walk.gif, review.gif仅当该包同时也用作 Codex 宠物时使用可选

使用 § 状态 GIF 并结合所选场景的动作列表。顺序:先做 idle 和 playing,检查它们,然后再做其余的。每个文件生成后快速检查:相同的角色、大约 8 帧、单色背景、整个身体在画面内、脚在一条底线上、无文字、无浮动特效。若某个状态不合格,单独使用 § 修复提示重新生成;不要因为一个坏状态就重启整个流程。

从 ChatGPT 或 $CODEX_HOME/generated_images/ 下载的 GIF/PNG 必须复制到 RUN/states/ 中,并且文件名必须完全一致。

4. 打包

python3 <skill_dir>/scripts/make_pack.py RUN                 # Kobutai(每行最多 8 帧)
python3 <skill_dir>/scripts/make_pack.py RUN --target codex  # 精确的 Codex 宠物帧数

需要 Pillow + numpy(pip install pillow numpy,可选 scipy)。脚本会抠除背景(或保留真正的透明度)、删除重复帧、统一各 GIF 的缩放比例、对齐脚底、生成 1536×1872 的 Petdex/Codex 画布,并按照 Kobutai 导入器的方式进行精确验证。选项:--grid playing=4x2 用于使用另一种布局生成网格图像,--scale click=0.9 用于某个源过大或过小时,--key-low/--key-high 用于处理顽固背景。

退出码为 2 表示验证失败;请阅读 out/qa/report.json,修复源文件后重新运行。

如果宿主无法运行 Python(某些 ChatGPT 环境),请以 zip 形式交付 profile.png、base.png、状态文件和 character.json,并告诉用户在本地运行相同的命令。

5. 检查并交付

打开 out/qa/contact.png 和 out/qa/preview.gif 查看。遇到以下情况时拒绝并修复:

  • 任意一行改变了面部、头发、服装、调色板或道具
  • 角色在帧与帧或状态之间大小突变或水平跳动
  • 姿势被单元格边缘裁剪,或背景残留有颜色的边缘或斑点
  • 表演循环看起来是静态的,或者待机状态动作幅度过大
  • 在约 120 像素高(Kobutai 显示的大小)时角色不再可识别

然后交付:

  1. kobutai-<id>.zip,包含 <id>/pet.json + <id>/spritesheet.webp
  2. profile.png 和 preview.gif,供用户查看和分享
  3. 如何使用(来自 references/kobutai-contract.md § 导入): Kobutai → 导入 → 同时选择 pet.json 和 spritesheet.webp。可选:将该文件夹复制到 ~/.codex/pets/<id>/,以便同时也用作 Codex 宠物。
  4. 仅对于 original 和 own 模式:他们可以在扩展中提交到每周社区库(我的导入角色 → 分享给所有人,CC BY 4.0 许可,需要提供署名),使用角色卡片中的流派。对于 personal 模式,直接说明仅供个人使用。

保留 RUN/(卡片、设定图、基础图、状态文件),以便后续的“加快舞蹈速度”或“重做点击”等操作只需要重新生成一个状态。

成本

一次完整的运行大约需要 8 次图像生成(设定图、基础图、待机、表演、暂停、出现、点击、可选错误)以及可能的修复。在开始第二次完整运行之前告知用户。

相关技能