Sprite Video Lab 是一个在本机运行的网页工具,用来把视频、GIF、单张图片或图片序列整理成可预览、可筛选、可缩放和可导出的 2D Sprite 资源。
项目优先服务 Windows 工作流。基础处理由 Python、Pillow、ffmpeg 和原生 HTML/CSS/JavaScript 完成;BiRefNet、EZ-CorridorKey 和 Real-ESRGAN 均为可选能力。
Chroma 支持绿幕、蓝幕、白底、灰底等受控纯色背景,可自动取色,也可从画面或色板添加最多 12 个背景色样。CorridorKey 与 CorridorKey(蓝幕) 是两个独立入口,分别使用对应的绿幕或蓝幕模型。历史变更记录见 CHANGELOG.md。
主要流程分为三步:
输入:
输出:
Frames:透明 PNG 序列,并附带记录最终顺序和逐帧时长的 frames.json。Spritesheet:固定网格图集及对应的坐标、尺寸和时长 JSON。透明 MOV:用于保留完整 Alpha 的视频输出。GIF:用于快速预览,不适合保存高质量半透明边缘。应用只生成本次明确选择的格式。导出完成后会直接打开对应文件夹。
| 处理方式 | 适合素材 | 模型与下载行为 |
|---|---|---|
Chroma | 绿幕、蓝幕、白底、灰底及其他纯色背景 | 不需要模型,不会触发模型下载 |
Luma | 黑底或白底的火焰、闪电、粒子、发光 VFX | 不需要模型,不会触发模型下载 |
BiRefNet | 真实背景、AI 生成背景或非纯色背景 | 首次选择时检查 HR-matting;缺失时先询问,确认后才下载 |
CorridorKey | 标准绿幕,需要重建边缘颜色或清理绿色溢色 | 只检查并下载绿幕 CorridorKey checkpoint |
CorridorKey(蓝幕) | 标准蓝幕,需要重建边缘颜色或清理蓝色溢色 | 只检查并下载蓝幕 CorridorKey checkpoint |
不抠图 | 已有透明素材,或只需要截帧、后处理、缩放和导出 | 不需要模型,不会触发模型下载 |
CorridorKey 的粗遮罩来源可以选择:
Chroma:复用当前 Chroma 取色方式、全部色样和容差,速度更快。BiRefNet:同时需要 BiRefNet HR-matting 和当前幕布颜色对应的 CorridorKey 模型。选择任何需要模型的方式时,应用先调用本地状态检查。只有模型缺失且用户确认安装后,才会进入下载接口;取消后会恢复之前的处理方式。实际推理只读取本地缓存,不会在处理过程中静默联网补模型。
AI 运行环境、缓存位置和许可证说明见 AI_MATTING.md。
Chroma 支持自动取背景色和手动多色样:
Chroma。手动模式最多保存 12 个唯一色样,允许删除单个色样或全部清空。即时预览在浏览器本地计算,不会重置当前缩放、平移或页面位置。
![]()
![]()
如果输入帧存在透明像素,Chroma 会把新计算的 Alpha 与输入 Alpha 相乘:
输出 Alpha = 输入 Alpha × Chroma Alpha
因此 Chroma 仍能继续扣除画面中剩余的蓝幕或绿幕对象,但不能把输入中已经透明的区域重新变成不透明黑底。完全不透明的普通幕布素材仍使用原来的 Chroma 行为。
绿幕选择 CorridorKey,蓝幕选择 CorridorKey(蓝幕)。两个入口会分别保存并传递正确的幕布颜色,也只检查对应 checkpoint。
推荐流程:
Chroma 中调好自动或手动取色、全部背景色样和容差。Chroma。如果 Chroma 粗遮罩无法稳定覆盖复杂主体,可以将粗遮罩来源改为 BiRefNet,但这会额外需要 BiRefNet 模型。
“去水印”是一个可选的逐帧后处理:
它不会调用在线服务,也不会上传素材。
在“帧检查与导出”区域点击“缩放处理”后,可以为当前选中帧生成多个独立版本:
100%:保持原画布尺寸;启用 Real-ESRGAN 时先放大 4 倍再缩回原尺寸。1/2:输出宽高均为原尺寸的 1/2。1/4:输出宽高均为原尺寸的 1/4。1/8:输出宽高均为原尺寸的 1/8。缩放算法:
硬:nearest-neighbor,适合需要硬边缘的像素或 Sprite 动画。软:BOX,适合更柔和的抗锯齿结果。未处理原版始终保留。每个处理版本都有独立导出入口;更新缩放处理时,只补算新增帧或新增尺寸,未变化的结果会复用缓存。
![]()
“先做平滑处理”会在抠图前用 Real-ESRGAN anime x4 放大每帧,再通过 Lanczos 缩回原尺寸,然后进入抠图。它不会改变最终画布尺寸,但会显著增加处理时间。缺少 Real-ESRGAN Windows 便携包时,也只有勾选该功能并确认后才会安装。
推荐让本地编码 Agent 按 AGENT_INSTALL.md 完成依赖检查、安装、启动和验证,避免覆盖已有工作目录或模型缓存。
要求:
在 PowerShell 中执行:
py -3 -m venv .venv
.\.venv\Scripts\python.exe -m pip install --upgrade pip
.\.venv\Scripts\python.exe -m pip install -r requirements.txt
确保 ffmpeg 和 ffprobe 已在 PATH,或者把它们所在目录写入 SPRITE_VIDEO_LAB_FFMPEG_DIR。然后启动:
$env:SPRITE_VIDEO_LAB_PYTHON = (Resolve-Path .\.venv\Scripts\python.exe).Path
.\start_sprite_video_lab.bat
也可以直接运行:
.\.venv\Scripts\python.exe server.py --serve --host 127.0.0.1 --port 8894
默认地址:
http://127.0.0.1:8894/
实验性线稿清理页:
http://127.0.0.1:8894/app/line-cleaner-experiment.html
只有确定需要 BiRefNet 或 CorridorKey 时才运行:
setup_ai_runtime.bat
该脚本安装 AI Python 依赖并准备固定 revision 的 EZ-CorridorKey 源码,但不会预下载 BiRefNet、绿幕 CorridorKey 或蓝幕 CorridorKey 权重。之后首次在页面中选择具体 AI 模式时,应用仍会先征求确认,并且只下载当前选择所需的权重。
便携版包含 Python、ffmpeg、AI 依赖和 CorridorKey 支持代码,但不包含任何 AI 模型权重。解压后运行:
start_sprite_video_lab_portable.bat
| 变量 | 用途 |
|---|---|
SPRITE_VIDEO_LAB_HOST | 服务地址,默认 127.0.0.1 |
SPRITE_VIDEO_LAB_PORT | 服务端口,默认 8894 |
SPRITE_VIDEO_LAB_WORK_DIR | 上传、任务、缓存和导出等运行时文件目录 |
SPRITE_VIDEO_LAB_FFMPEG_DIR | 包含 ffmpeg.exe 和 ffprobe.exe 的目录 |
SPRITE_VIDEO_LAB_FFMPEG_ACCEL | ffmpeg 加速方式:auto、cpu、cuda、qsv、d3d11va、dxva2 |
SPRITE_VIDEO_LAB_AI_MODEL_CACHE | Hugging Face / BiRefNet 模型缓存目录 |
SPRITE_VIDEO_LAB_CORRIDORKEY_ROOT | EZ-CorridorKey 源码和 checkpoint 根目录 |
SPRITE_VIDEO_LAB_PYTHON | 启动器使用的 Python 可执行文件 |
SPRITE_VIDEO_LAB_REALESRGAN_BIN | realesrgan-ncnn-vulkan.exe 的路径 |
SPRITE_VIDEO_LAB_REALESRGAN_MODEL_DIR | Real-ESRGAN .param 与 .bin 模型目录 |
app/ 前端 UI、浏览器逻辑和实验页面
docs/ README 截图
tests/test_ai_matte_sizing.py 后端与处理流水线回归测试
server.py 本地 HTTP 服务和媒体处理流水线
requirements.txt 基础运行依赖
requirements-ai.txt 可选 AI 依赖
start_sprite_video_lab.bat Windows 普通启动器
start_sprite_video_lab_portable.bat Windows 便携版启动器
setup_ai_runtime.bat 可选 AI 环境安装脚本
build_portable_bundle.ps1 便携版打包脚本
AGENT_INSTALL.md Agent 安装与验证说明
AI_MATTING.md AI 模型、缓存和许可证说明
CHANGELOG.md 版本变更记录
work/ 默认运行时目录,已被 Git 忽略
node --check app/app.js
python -m py_compile server.py
python -m unittest tests.test_ai_matte_sizing
git diff --check
work/、上传素材、生成帧、模型缓存、虚拟环境或测试媒体提交到 Git。local_files_only=True,不会在处理时静默下载缺失文件。Sprite Video Lab 是一个在本机运行的网页工具,用来把视频、GIF、单张图片或图片序列整理成可预览、可筛选、可缩放和可导出的 2D Sprite 资源。
项目优先服务 Windows 工作流。基础处理由 Python、Pillow、ffmpeg 和原生 HTML/CSS/JavaScript 完成;BiRefNet、EZ-CorridorKey 和 Real-ESRGAN 均为可选能力。
Chroma 支持绿幕、蓝幕、白底、灰底等受控纯色背景,可自动取色,也可从画面或色板添加最多 12 个背景色样。CorridorKey 与 CorridorKey(蓝幕) 是两个独立入口,分别使用对应的绿幕或蓝幕模型。历史变更记录见 CHANGELOG.md。
主要流程分为三步:
输入:
输出:
Frames:透明 PNG 序列,并附带记录最终顺序和逐帧时长的 frames.json。Spritesheet:固定网格图集及对应的坐标、尺寸和时长 JSON。透明 MOV:用于保留完整 Alpha 的视频输出。GIF:用于快速预览,不适合保存高质量半透明边缘。应用只生成本次明确选择的格式。导出完成后会直接打开对应文件夹。
| 处理方式 | 适合素材 | 模型与下载行为 |
|---|---|---|
Chroma | 绿幕、蓝幕、白底、灰底及其他纯色背景 | 不需要模型,不会触发模型下载 |
Luma | 黑底或白底的火焰、闪电、粒子、发光 VFX | 不需要模型,不会触发模型下载 |
BiRefNet | 真实背景、AI 生成背景或非纯色背景 | 首次选择时检查 HR-matting;缺失时先询问,确认后才下载 |
CorridorKey | 标准绿幕,需要重建边缘颜色或清理绿色溢色 | 只检查并下载绿幕 CorridorKey checkpoint |
CorridorKey(蓝幕) | 标准蓝幕,需要重建边缘颜色或清理蓝色溢色 | 只检查并下载蓝幕 CorridorKey checkpoint |
不抠图 | 已有透明素材,或只需要截帧、后处理、缩放和导出 | 不需要模型,不会触发模型下载 |
CorridorKey 的粗遮罩来源可以选择:
Chroma:复用当前 Chroma 取色方式、全部色样和容差,速度更快。BiRefNet:同时需要 BiRefNet HR-matting 和当前幕布颜色对应的 CorridorKey 模型。选择任何需要模型的方式时,应用先调用本地状态检查。只有模型缺失且用户确认安装后,才会进入下载接口;取消后会恢复之前的处理方式。实际推理只读取本地缓存,不会在处理过程中静默联网补模型。
AI 运行环境、缓存位置和许可证说明见 AI_MATTING.md。
Chroma 支持自动取背景色和手动多色样:
Chroma。手动模式最多保存 12 个唯一色样,允许删除单个色样或全部清空。即时预览在浏览器本地计算,不会重置当前缩放、平移或页面位置。
![]()
![]()
如果输入帧存在透明像素,Chroma 会把新计算的 Alpha 与输入 Alpha 相乘:
输出 Alpha = 输入 Alpha × Chroma Alpha
因此 Chroma 仍能继续扣除画面中剩余的蓝幕或绿幕对象,但不能把输入中已经透明的区域重新变成不透明黑底。完全不透明的普通幕布素材仍使用原来的 Chroma 行为。
绿幕选择 CorridorKey,蓝幕选择 CorridorKey(蓝幕)。两个入口会分别保存并传递正确的幕布颜色,也只检查对应 checkpoint。
推荐流程:
Chroma 中调好自动或手动取色、全部背景色样和容差。Chroma。如果 Chroma 粗遮罩无法稳定覆盖复杂主体,可以将粗遮罩来源改为 BiRefNet,但这会额外需要 BiRefNet 模型。
“去水印”是一个可选的逐帧后处理:
它不会调用在线服务,也不会上传素材。
在“帧检查与导出”区域点击“缩放处理”后,可以为当前选中帧生成多个独立版本:
100%:保持原画布尺寸;启用 Real-ESRGAN 时先放大 4 倍再缩回原尺寸。1/2:输出宽高均为原尺寸的 1/2。1/4:输出宽高均为原尺寸的 1/4。1/8:输出宽高均为原尺寸的 1/8。缩放算法:
硬:nearest-neighbor,适合需要硬边缘的像素或 Sprite 动画。软:BOX,适合更柔和的抗锯齿结果。未处理原版始终保留。每个处理版本都有独立导出入口;更新缩放处理时,只补算新增帧或新增尺寸,未变化的结果会复用缓存。
![]()
“先做平滑处理”会在抠图前用 Real-ESRGAN anime x4 放大每帧,再通过 Lanczos 缩回原尺寸,然后进入抠图。它不会改变最终画布尺寸,但会显著增加处理时间。缺少 Real-ESRGAN Windows 便携包时,也只有勾选该功能并确认后才会安装。
推荐让本地编码 Agent 按 AGENT_INSTALL.md 完成依赖检查、安装、启动和验证,避免覆盖已有工作目录或模型缓存。
要求:
在 PowerShell 中执行:
py -3 -m venv .venv
.\.venv\Scripts\python.exe -m pip install --upgrade pip
.\.venv\Scripts\python.exe -m pip install -r requirements.txt
确保 ffmpeg 和 ffprobe 已在 PATH,或者把它们所在目录写入 SPRITE_VIDEO_LAB_FFMPEG_DIR。然后启动:
$env:SPRITE_VIDEO_LAB_PYTHON = (Resolve-Path .\.venv\Scripts\python.exe).Path
.\start_sprite_video_lab.bat
也可以直接运行:
.\.venv\Scripts\python.exe server.py --serve --host 127.0.0.1 --port 8894
默认地址:
http://127.0.0.1:8894/
实验性线稿清理页:
http://127.0.0.1:8894/app/line-cleaner-experiment.html
只有确定需要 BiRefNet 或 CorridorKey 时才运行:
setup_ai_runtime.bat
该脚本安装 AI Python 依赖并准备固定 revision 的 EZ-CorridorKey 源码,但不会预下载 BiRefNet、绿幕 CorridorKey 或蓝幕 CorridorKey 权重。之后首次在页面中选择具体 AI 模式时,应用仍会先征求确认,并且只下载当前选择所需的权重。
便携版包含 Python、ffmpeg、AI 依赖和 CorridorKey 支持代码,但不包含任何 AI 模型权重。解压后运行:
start_sprite_video_lab_portable.bat
| 变量 | 用途 |
|---|---|
SPRITE_VIDEO_LAB_HOST | 服务地址,默认 127.0.0.1 |
SPRITE_VIDEO_LAB_PORT | 服务端口,默认 8894 |
SPRITE_VIDEO_LAB_WORK_DIR | 上传、任务、缓存和导出等运行时文件目录 |
SPRITE_VIDEO_LAB_FFMPEG_DIR | 包含 ffmpeg.exe 和 ffprobe.exe 的目录 |
SPRITE_VIDEO_LAB_FFMPEG_ACCEL | ffmpeg 加速方式:auto、cpu、cuda、qsv、d3d11va、dxva2 |
SPRITE_VIDEO_LAB_AI_MODEL_CACHE | Hugging Face / BiRefNet 模型缓存目录 |
SPRITE_VIDEO_LAB_CORRIDORKEY_ROOT | EZ-CorridorKey 源码和 checkpoint 根目录 |
SPRITE_VIDEO_LAB_PYTHON | 启动器使用的 Python 可执行文件 |
SPRITE_VIDEO_LAB_REALESRGAN_BIN | realesrgan-ncnn-vulkan.exe 的路径 |
SPRITE_VIDEO_LAB_REALESRGAN_MODEL_DIR | Real-ESRGAN .param 与 .bin 模型目录 |
app/ 前端 UI、浏览器逻辑和实验页面
docs/ README 截图
tests/test_ai_matte_sizing.py 后端与处理流水线回归测试
server.py 本地 HTTP 服务和媒体处理流水线
requirements.txt 基础运行依赖
requirements-ai.txt 可选 AI 依赖
start_sprite_video_lab.bat Windows 普通启动器
start_sprite_video_lab_portable.bat Windows 便携版启动器
setup_ai_runtime.bat 可选 AI 环境安装脚本
build_portable_bundle.ps1 便携版打包脚本
AGENT_INSTALL.md Agent 安装与验证说明
AI_MATTING.md AI 模型、缓存和许可证说明
CHANGELOG.md 版本变更记录
work/ 默认运行时目录,已被 Git 忽略
node --check app/app.js
python -m py_compile server.py
python -m unittest tests.test_ai_matte_sizing
git diff --check
work/、上传素材、生成帧、模型缓存、虚拟环境或测试媒体提交到 Git。local_files_only=True,不会在处理时静默下载缺失文件。