spritesheet
从视频中提取帧生成 spritesheet 和独立透明 PNG。当用户说"制作 spritesheet"、"视频转精灵图"、"提取动画帧"、"sprite sheet"、"循环动画"时使用。
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
从视频中提取帧生成 spritesheet 和独立透明 PNG。当用户说"制作 spritesheet"、"视频转精灵图"、"提取动画帧"、"sprite sheet"、"循环动画"时使用。
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
| name | spritesheet |
| description | 从视频中提取帧生成 spritesheet 和独立透明 PNG。当用户说"制作 spritesheet"、"视频转精灵图"、"提取动画帧"、"sprite sheet"、"循环动画"时使用。 |
从视频中提取帧,去背景、对齐、输出透明 PNG 和 spritesheet 动画图,并生成可交互的播放器用于验证效果。
详细抠图与裁剪流程(每步输入/输出、算子参数、设计意图)见 references/pipeline.md。
$ARGUMENTS 非空,解析其中的参数。cd scripts && uv run spritesheet.py --video <视频路径> [选项]
| 参数 | 默认值 | 说明 |
|---|---|---|
--video | (必填*) | 视频文件路径(*--repack-dir 模式可不填) |
--frames | 8 | 提取帧数 |
--cols | 4 | spritesheet 列数 |
--bg-color | auto | 背景色: auto / green / blue / white / black |
--loop-start | None | 手动指定循环起始帧(最高优先级,需与 --loop-end 同时给) |
--loop-end | None | 手动指定循环结束帧 |
--from-frame-zero | 关闭 | 强制循环包含第 0 帧(旧 CV 帧差法,回退用) |
--output-dir | 视频同目录 | 输出目录;未指定时自动创建 [视频名]-[w]x[h]-[N]f |
--analyze | 关闭 | 诊断模式:输出 .analysis.json,不生成 spritesheet |
--txt | 关闭 | 配合 --analyze 打印 ASCII 摘要 |
--repack-dir | None | 重打包模式:指定已有输出目录重新组合帧(与视频管线互斥) |
--drop-frames | None | 重打包删除帧(1-based,如 15,16 或 15-16) |
--keep-frames | None | 重打包保留帧(1-based,如 1-14;与 --drop-frames 互斥) |
循环检测优先级(正常管线内):--loop-start/--loop-end(手动)> --from-frame-zero > 主体感知全局接缝检测(默认)。默认算法在主体 mask 内全局搜索最优循环接缝,突破旧法两个局限:① 不假设循环从第 0 帧开始(能处理行走等"首帧是静态空闲态"的动画);② MSE 只在主体区域计算(避免背景稀释造成的误差)。自动结果不可靠时,用 --analyze 查看周期候选与质心/大小趋势,再手动指定 --loop-start/--loop-end。
# 基本用法(自动检测背景色)
uv run spritesheet.py --video video.mp4
# 指定绿幕背景,16 帧
uv run spritesheet.py --video video.mp4 --bg-color green --frames 16
# 自动检测不可靠时:先诊断,再手动指定区间
uv run spritesheet.py --video video.mp4 --analyze --txt
uv run spritesheet.py --video video.mp4 --loop-start 0 --loop-end 30
# 基于已生成的帧删帧重拼(不重跑抠图)
uv run spritesheet.py --repack-dir ./xxx-420x420-16f --drop-frames 15,16
player.html 验证动画效果。frames/frame_01.png ~ frames/frame_NN.png — 裁切后的独立透明 PNG(每帧)spritesheet.png — 合并的 spritesheetmetadata.json — 播放元数据(裁切框、循环区间、视频源)player.html — 可交互的动画播放器(浏览器直接打开)<视频名>.analysis.json — 仅 --analyze 模式生成,循环分析报告(MSE 曲线、周期候选、质心轨迹、主体大小趋势)references/loop-analysis.md),再用 --loop-start/--loop-end 应用metadata.loop.method 由 cv 变为 global);主体分离失败(mask 占比过低)时会自动回退全画面法并提示生成视频时在 prompt 中指定纯色背景,推荐绿幕:
pure chroma green background #00FF00, no gradient, no shadows, uniform lighting
| 背景色 | 色值 | prompt 示例 | 抠图效果 |
|---|---|---|---|
| 🟢 绿幕(推荐) | #00FF00 | pure chroma green background #00FF00 | ✅ 最佳 |
| 🔵 蓝幕 | #0000FF | pure chroma blue background #0000FF | ✅ 好,蓝色主体冲突时改用绿幕 |
| ⚪ 白幕 | #FFFFFF | pure white background #FFFFFF | ⚠️ 高光区易混淆 |
| ⚫ 黑幕 | #000000 | pure black background #000000 | ⚠️ 暗部易丢失 |
AI 图片生成与编辑。使用统一 CLI 调用 OpenAI Images、Google Gemini 原生图片 API、火山方舟 Seedream,支持多参考图、mask、批量生成、透明背景后处理,以及 Seedream 5.0 Pro 点选/框选式连续交互编辑。当用户提到生成图片、画图、封面图、配图、AI 生图、改图、修图、参考图编辑、Gemini 生图、Seedream 或交互编辑时使用。
媒体处理工具集(基于 ffmpeg)。当用户需要视频转码、格式转换、压缩到指定大小、调整分辨率/帧率、添加 Logo 或图片水印、设置水印位置/尺寸/透明度、追加片头片尾、音频处理、视频裁剪/剪辑、合并/拼接、修复 m3u 下载损坏视频(faststart/moov atom)时使用。支持品牌视频一体化生成、目标 MB 两遍编码、H.264/H.265/AV1/VP9 批量转码、无损裁剪与合并、mp4 moov 前置修复。
为 Sorb 的 Seedance 2.0 视频生成分析图片或参考视频,编写和优化中文视频提示词、图生视频方案、运镜设计、分镜板、首帧建议、长视频分段方案与剪辑节奏。用户明确提到 Seedance 2.0、图生视频、参考视频复刻、运镜、分镜、首尾帧、视频延长或长视频规划时使用;不要为普通图片生成或与 Seedance 无关的视频任务触发。
下载视频工具。处理抖音短链、抖音作品页、微信视频号 SPH 分享链接,以及 yt-dlp 支持的网站视频下载。 触发场景: - 用户发来视频链接并要求”下载这个视频” - 用户要求下载抖音视频、图文、封面、音乐、JSON、评论 - 用户要求下载 YouTube、Bilibili、X、TikTok 等 yt-dlp 支持站点的视频 - 用户要求下载 weixin.qq.com/sph/ 格式的微信视频号分享链接 - 用户提到”yt-dlp””douyin-downloader””视频下载””抖音短链” - 用户要求获取抖音热搜榜或搜索抖音作品 - 用户要求刷新抖音 Cookie - 用户要求刷新微信视频号或腾讯元宝 Cookie
将本地图像和视频上传到 Immich 服务器,支持批量上传、管理 Album 和公开链接。网络资源下载由 video-downloader 负责;当用户提到"上传到 Immich"、"上传图片"、"备份照片"、"上传视频"、"下载视频并上传 Immich"时使用此技能。
从静态图片中提取前景元素并分离 UI 组件,支持棋盘格背景去除、绿幕/蓝幕/白幕/黑幕关键色抠图、透视校正。当用户说"提取 UI 元素"、"分离组件"、"去除背景"、"棋盘格背景"、"绿幕抠图"、"checkerboard 抠图"、"抠图"时使用。