Community影像github.com

xingaobio/kobutai-character

將使用者喜歡的角色圖片轉換為可動態展示的 Kobutai 小舞台角色 - 分析上傳內容、繪製多角度設定集、利用 GPT 圖片生成閒置/表演/反應 GIF,並打包成 Kobutai 擴充功能(及 Codex 寵物)可匯入的 spritesheet + pet.json。

kobutai-character 是什麼?

此技能專為將使用者喜愛的角色圖片(或描述)轉換為 Kobutai(小舞台)擴充功能可用的動態角色而設計。Kobutai 是一款瀏覽器擴充功能與桌面應用程式,能在播放音樂、影片、直播或 Podcast 時,讓一個小巧的 Q 版角色在頁面上表演。技能會先讀取並分析使用者上傳的角色圖片,根據「原創性指南」判斷角色模式(原創、自家創作、個人使用),並讓使用者確認角色卡。接著利用主機內建的圖片生成工具(如 Codex 的 image_gen 或 ChatGPT 的原生圖片生成),產出角色的多角度設定集(profile sheet)與基礎站立姿勢,再逐一生成 idle、playing、paused、appear、click 等狀態的 GIF 動畫。最後透過 Python 腳本 `make_pack.py` 將所有動畫打包成 Kobutai 可直接匯入的 spritesheet.webp 與 pet.json,同時也可產出符合 Codex 寵物框架的版本。品質驗證機制會檢查角色一致性、畫面穩定度與可辨識度,確保最終產出的角色在 Kobutai 約 120 像素的高度下依然清晰可愛。支援的使用者語言包括英文、日文與中文。

相容平台~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(小舞台)是一個瀏覽器擴充功能與桌面應用程式:當播放音樂、影片、直播或 Podcast 時,一個小巧的 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 工具)。除非使用者明確要求,否則請勿直接呼叫圖片 API 或 CLI;那條路徑需要他們的 API 金鑰。
  • ChatGPT:使用原生圖片生成。

Images 2.6(2025年11月)可以回傳動畫 GIF。每個動畫狀態都請要求產生 GIF。如果主機回傳的是靜態圖片、拒絕 GIF 輸出,或產生的 GIF 無法使用,請使用 references/prompts.md 中的網格備用方案(8 幀排列成 4 x 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 - original / own / personal,依據 references/originality.md。若為可辨識的第三方角色,預設為 original:一個受其氛圍、顏色和角色啟發的原創角色,而非複製品。
  • style - kobutai(預設的小舞台 Q 版風格,與內建角色一致;預設值)或 keep(保留上傳圖片的藝術風格,但仍維持緊湊的全身形態)。
  • scene - 角色在播放內容時做什麼(唱歌、跳舞、當 DJ、演奏樂器、舒適聆聽、觀看並反應、做筆記...)。請從 § 表演場景中選取。
  • genres / type - 建議的 Kobutai 標籤,稍後會在擴充功能的分享對話框中使用。
  • chroma - #00FF00,或者當角色含有綠色時使用 #FF00FF。

向使用者發送一條簡短的訊息,內容包含角色卡(名稱、外觀一行描述、模式、風格、場景、標籤),並請他們確認或提出修改。如果使用者回覆「繼續」或不在意,則使用預設值繼續。如果上傳的圖片中沒有明確的單一角色,請詢問是哪一個。

2. 設定集與基礎姿勢

  1. 根據 § 設定集生成 RUN/profile.png:包含正面、四分之三側面、側面與背面視圖、四種表情以及一條色票條,無文字。這是使用者的設定集;請展示給他們看。
  2. 根據 § 基礎姿勢生成 RUN/base.png,並附上 profile.png:一個放鬆的全身直立姿勢,四分之三側面視角,位於純色去背背景上。每個狀態都以此為基礎繪製。

如果角色特徵有誤(臉部、頭髮、服裝、色票),請在此處修正;後續每個步驟都會複製 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 x 1872 的 Petdex/Codex 紋理集,並以與 Kobutai 匯入器完全相同的方式進行驗證。選項:--grid playing=4x2 可為網格圖片使用其他佈局,--scale click=0.9 用於某個來源過大或過小時,--key-low/--key-high 用於難以處理的背景。

結束代碼 2 表示驗證失敗;請閱讀 out/qa/report.json,修正來源後重新執行。

如果主機無法執行 Python(例如某些 ChatGPT 設定),請將 profile.png、base.png、狀態檔案和 character.json 打包成 zip 檔案,並告知使用者在本機執行相同的指令。

5. 檢查與交付

開啟 out/qa/contact.png 和 out/qa/preview.gif 並仔細檢視。在以下情況下拒絕並修復:

  • 任何一列改變了臉部、頭髮、服裝、色票或道具
  • 角色在幀與幀之間或狀態與狀態之間突然變大或跳躍
  • 姿勢被裁切到格子邊緣,或背景殘留有顏色的邊緣或斑點
  • playing 循環在視覺上靜止不動,或 idle 動作過大
  • 在約 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 次圖片生成(設定集、基礎姿勢、idle、playing、paused、appear、click、可選的 error)加上修復。在開始第二次完整流程之前,請先告知使用者。

相關技能