Communitygithub.com

動態貼圖製作器

將一張靜態參考圖像與動作提示詞,轉換為經過驗證且帶有透明背景的動態貼圖。

動態貼圖製作器 是什麼?

這是一個 AI 代理技能,能將單張靜態參考圖像和自然語言動作提示詞,自動化地轉換成短篇幅、具透明背景的動態貼圖(WebP 格式)。此技能會自行處理身份鎖定(identity lock)、動作規劃、影格時序、驗證計畫與匯出設定等所有細節,無需使用者介入常規生產決策。支援人物、寵物、吉祥物、插畫、物體與標誌等多種主體。技能會將所有腳本與參考檔案路徑解析至包含 `SKILL.md` 的目錄,並要求使用 Python 3.10 以上版本及 `requirements.txt` 中列出的依賴套件。最終產出包含標準目錄結構、驗證報告與可選的平台匯出(如 WhatsApp、Telegram、Signal 等)。此技能遵循 [Agent Skills](https://agentskills.io/specification) 標準,可在支援該標準的主機上執行,並內建完整的決策與復原規則,確保產出品質。

相容平台✓Claude Code✓Codex CLI~Cursor
npx skills add wufei-png/animated-sticker-maker

在你喜歡的 AI 中提問

開啟一個已預先載入此 Agent Skill 的新對話。

說明文件

動態貼圖製作器 是做什麼的?

將一張參考圖像與一個動作提示詞,轉換成一段簡短且帶有透明背景的動態貼圖。身份鎖定、動作規劃、影格時序、驗證計畫與匯出設定皆由系統內部自行推導,無需使用者填寫例行生產選項。

所有腳本與參考檔案的路徑,均解析至包含此 SKILL.md 的目錄。

輸入與邊界

僅需以下輸入:

  1. reference_image:一張包含清晰主體的靜態圖像。
  2. prompt:以自然語言描述預期的表情、動作、文字、循環方式或目標平台。

支援人物、寵物、吉祥物、插畫、物體與標誌。若圖像中有多個可能的主體,且提示詞未明確指定,則在生成前詢問一次。請勿承諾穩定的多主體動作、場景動畫或攝影機運動。

每次調用僅產生一張貼圖。若為多張貼圖系列,請將共同的身份規格、包裝順序、發布命名與品牌資產保留在專屬專案中,再針對每張貼圖分別調用此技能。請勿將專案層級的包裝編排轉變為通用的技能功能。

這是一個遵循 Agent Skills 標準的套件,適用於支援此標準的主機;請勿維護另一套主機特定的指令格式。主機必須提供能保留主體身份的、基於參考條件的點陣圖生成或編輯能力。請使用主機原生能力,若無可用能力,則在生成前以明確的能力提示訊息終止流程。agents/openai.yaml 為選用的 OpenAI 使用者介面與調用中繼資料,不屬於工作流程合約的一部分。

使用 Python 3.10 或更新版本,以及 requirements.txt 中列出的套件來執行確定性處理。請勿將 OpenCV 設為必要依賴。

預設輸出

除非提示詞明確覆寫,否則建立以下目錄結構:

output/<名稱>/
├── sticker.webp
├── source/
│   ├── frames/
│   │   ├── 000.png
│   │   └── ...
│   ├── rendered-frames/      # 選用:經過驗證的高影格率軌道
│   ├── reference.json        # 基本檔名、雜湊值與圖像中繼資料
│   └── motion.json
├── validation/
│   ├── contact-sheet.png
│   └── report.json
└── exports/                  # 僅在要求特定平台或額外格式時產生
    └── <平台>/

使用工作區本地端的 output/<名稱>/,除非使用者指定其他本地端目的地。<名稱> 應根據主體與主要語義重點,推導出一個簡短且符合檔案系統安全規範的英文代稱。若該名稱已存在,則依序使用 -2、-3 等;預設情況下不覆蓋現有套件。當使用者提供明確的發布名稱或公開名稱時,請優先採用。

對於連續色調、插畫或生成的點陣圖來源,使用 1024×1024 RGBA 格式。對於原生像素藝術或其他嚴格的低解析度網格,請保留邏輯來源畫布,並將 motion.resampling 設為 nearest;請勿強迫其通過非整數倍的 1024×1024 重新繪製。使用 4 至 8 個獨特影格、每個影格獨立設定時長、總時長約 1.2 至 2.0 秒,並在語義最清晰的影格停留 400 至 700 毫秒。預設啟用循環播放。除非要求或目標平台需要,否則不建立 preview.gif。

工作流程

1. 標準化請求

  • 確認已提供一張參考圖像與一個動作提示詞。從中提取主體、一個語義重點、確切文字、循環意圖與任何指定的目標平台。
  • 若主體不明確,則詢問一次。若缺少參考圖像、提示詞或必要的主機能力,則在生成前以明確的阻斷訊息終止流程。
  • 若未指定平台,則產生平台中立的套件。指定的平台僅是套件通過驗證後的選用匯出分支。
  • 在建立檔案前,根據上述衝突規則選定輸出代稱。

2. 鎖定身份與規劃動作

閱讀 references/motion-plan.md。以原始尺寸與小圖示尺寸檢查參考圖像,將可識別的特徵分類為固定、可變或可移除,並在產出最終影格前寫入 motion.json。

鎖定一個主要語義重點、一組少量的錨定姿勢、確定性轉場、確切文字圖層、影格時長與循環行為。僅生成無法透過確定性變換安全獲得的內容。審慎選擇 motion.resampling:對於連續色調或插畫點陣圖使用 lanczos,對於原生像素藝術或其他嚴格的邏輯網格則使用 nearest。

僅在身份鎖定明確、且每個要求的語義元素都有規劃的影格或確定性圖層時,才完成此階段。

3. 產出錨點與乾淨的 RGBA 素材

在生成前,請閱讀主機的點陣圖生成或編輯說明。每次請求新的錨點時,務必包含原始參考圖像,要求主體在透明背景或平坦的高距離工作色上保持孤立,並盡可能生成最少數量的錨點。

立即根據身份鎖定檢查每個錨點。在建立時間維度影格前,拒絕身份偏移的錨點。若被拒絕的完整錨點包含可用的局部表情或道具,僅將其嫁接至已批准的、身份穩定的基底上;並在動作計畫中記錄組件來源、提取規則與已批准的基底。切勿將被拒絕的完整圖像重新標記為已批准。

保留既有的乾淨 Alpha 通道。否則請閱讀 references/transparency.md,選擇一種遠離主體色板的工作色,並執行 scripts/chroma_key.py。當提示詞或平台需要獨立控制陰影時,請將陰影分離處理。

僅在每個全影格錨點皆可使用、每個嫁接組件都有明確的確定性角色、且每個素材都沒有不透明背景、顏色溢出、明亮邊緣、被裁切的凸出部分或與畫布邊緣接觸時,才完成此階段。

4. 組合創作動畫

為每個獨特的創作影格建立一張 RGBA PNG。除非要求的動作涉及變形,否則保留原始長寬比。以確定性圖層呈現確切文字,並賦予每個影格一個目的。優先考慮預備動作、主要動作、一個清晰的語義停頓以及短暫的恢復,而非均勻時間分佈的動作。

當一個伴隨物體按壓、坐在、攜帶或接觸主體時,請根據其下方足跡處的局部輪廓進行對齊。當表面為曲面、帶有凹槽或已變形時,請勿使用主體的整體邊界框邊緣作為接觸平面。

僅在序列無需依賴檔名或解釋即可理解、且循環中沒有意外的跳動、閃爍或位置重置時,才完成此階段。

5. 打包並執行技術驗證

執行:

python <技能目錄>/scripts/package_sticker.py \
  --frames-dir <工作影格目錄> \
  --motion <motion.json> \
  --reference-image <參考圖像路徑> \
  --output <output/名稱>

當來源畫布與 1024x1024 不同時,請傳入 --expected-size <寬度x高度>。僅在使用者希望嵌入原始參考圖像時使用 --include-reference;否則請僅綁定其基本檔名、雜湊值、尺寸、模式、格式與位元組大小,而不複製檔案。僅在提示詞明確覆寫預設值時,才使用非標準的時序或影格數量標誌。當技術驗證失敗時,請勿繼續進行平台匯出。

閱讀 references/validation.md 以了解報告約定與確定性檢查規則。保持套件的事務性(atomic),將打包後的 source/motion.json 視為自足的真相來源,保留工件指紋,並將 technical_validation(技術驗證)與 visual_validation(視覺驗證)分離。

若 motion.render 存在,則將其明確的有序影格視為一個可選的、獨立驗證的渲染軌道。預設使用創作的關鍵影格;切勿在未告知的情況下建立或選取渲染軌道。請閱讀動作與平台參考文件以了解其時序、資源與匯出規則。

僅在以下所有條件成立時才完成此階段:WebP、標準化來源檔、參考中繼資料、動作計畫、接觸表、主要技術報告以及所有適用的渲染軌道報告都已存在,且所有適用的技術檢查均已通過。

每次成功的重新打包都會建立一份新的報告,其中視覺驗證狀態為待處理。每次重新打包後都需重新執行視覺驗證;切勿在變更過的工件上保留先前的視覺通過記錄。

6. 檢查、記錄並選擇性匯出

閱讀 references/validation.md 與 references/review-page.md。在檢查或分享前,立即生成一份全新的審查頁面:

python <技能目錄>/scripts/generate_review.py <驗證報告.json> \
  --reference-image <原始參考圖像路徑> \
  --language <en|zh>

當套件已包含綁定的參考圖像時,省略 --reference-image。若對話語言為中文,請選擇 zh;否則選擇 en。檢查實際編碼後的審查目標、語義停頓標記、在棋盤格/亮色/暗色背景上的 Alpha 通道、實際尺寸與放大 50×50 的檢視,以及影格曝光表。創作影格或渲染影格僅作為比對證據;解碼後的 WebP/GIF 才是套件或匯出頁面的最終控制標準。

使用 scripts/record_visual_validation.py 記錄結果。報告必須保留其確切的工件指紋,且僅在技術驗證與視覺驗證皆通過時,deliverable_ready 才為真。若最終狀態需顯示在共用的審查頁面上,請在記錄後重新生成該頁面。審查頁面為可拋棄的衍生 HTML,不屬於證據或可交付成果。

若要求匯出至特定平台,請閱讀 references/platform-exports.md,驗證當前的官方限制,並僅從已驗證的套件中匯出至 exports/<平台>/ 目錄下。預設使用創作的關鍵影格;僅在該渲染軌道能顯著改善要求的輸出時,才明確選取已宣告的渲染軌道。每個被要求的匯出都需要其自身的技術與視覺驗證。

在交付前,對即將交付的確切套件、渲染軌道與匯出報告執行 scripts/doctor.py。Doctor 為唯讀操作;當適用的視覺驗證尚在等待中時,狀態為 incomplete 是預期現象。閱讀 references/doctor.md 以了解目標選取與 JSON 輸出規則。

決策與復原規則

  • 對於例行性的時序、位置、比例、工作色閾值、壓縮與輸出代稱等細節,請勿打斷使用者,自行決定。
  • 若因安全且可逆的問題導致技術或視覺失敗,可進行一次專注的自動修正,且僅使用那些安全的調整。重新打包、重新生成審查頁面並重新檢查;每次重新打包都會重置視覺驗證狀態。
  • 若修正後仍然失敗,或修正方案會改變身份、意義、錨點生成或明確的公開輸出,則應停止並詢問使用者。切勿以視覺判斷覆蓋失敗的技術關卡。
  • 若使用者參與,請分享最新的審查頁面並在對話中收集回饋。使用者無需執行 Python 或提交表單。

交付交接

使用當前對話語言,並始終報告以下欄位:

  • status:ready、incomplete 或 blocked;
  • 套件路徑與主要驗證報告路徑;
  • 渲染軌道報告路徑(若存在);
  • 審查頁面路徑(若有生成);
  • 每個被要求的匯出及其報告路徑;
  • 針對每個確切交付報告的 Doctor 結果;
  • 未解決的注意事項、待處理的視覺檢查、外部參考需求或平台特定限制。

除非其確切報告中的 technical_validation、visual_validation 與 deliverable_ready 皆為真,且 Doctor 對交付邊界報告為 healthy,否則切勿將工件標記為就緒。請勿將審查頁面 HTML 呈現為套件工件、驗證證據或可交付成果。

升級規則

僅在一個缺失的選擇會改變預期主體、要求的意義或不可逆的公開輸出時,才詢問使用者。對於不明確的主要主體,詢問一次;當必要的輸入或主機能力不可用時,以明確的訊息終止流程。在受限的復原規則範圍內,自動進行安全的專案層級調整。

相關技能