<video> 标签放入任何 HyperFrames 合成中,主题就会漂浮在您放在其后面的任何内容上。
CLI 附带一个在本地运行的内置 remove-background 命令 - 没有 API 密钥,没有云上传,没有绿屏。
快速入门
1
验证 ffmpeg 是否已安装
管道需要 使用
ffmpeg 和 ffprobe 进行解码+编码。大多数系统已经具备它们;如果不:Terminal
npx hyperframes doctor 确认 — 两者都应该是绿色的。2
从视频中删除背景
Terminal
~/.cache/hyperframes/background-removal/models/。后续运行将重用缓存。输出:3
将其放入合成中
输出是标准的 VP9-with-alpha WebM。 Chrome 的 使用通常的
<video> 元素本地解码 alpha 平面 - 不需要特殊的播放器:composition.html
hyperframes render 渲染合成。它是如何运作的
该管道运行四个阶段,全部在本地:onnxruntime-node 与您计算机上最可用的执行提供程序一起运行:Apple Silicon 上的 CoreML、NVIDIA 上的 CUDA、CPU。
输出使用 Chrome 的 <video> 元素需要解码 alpha 的确切 ffmpeg 标记进行编码 — -pix_fmt yuva420p 加上 alpha_mode=1 元数据标记。如果这些错误的话,alpha 平面就会被浏览器默默地丢弃。
输出格式
Terminal
分层分离:将切口和背景板一起发射
传递--background-output (别名 -b)以在剪切旁边写入第二个透明视频。相同的 RGB 源,alpha 是逆蒙版 - 周围环境不透明,主体所在透明。结果是在一次推理过程中实现干净的两层分离:
Terminal
两个编码器共享源 W/H/fps 和您的
--quality 预设,因此各层是像素对齐的。编码成本大约翻倍;分割成本不变。
孔切板与干净板——差异何时重要?
打孔板保留了原始环境并使拍摄对象区域透明。 干净的板用重建的背景填充主题区域 - 由单独的修复模型生成。将每个单独显示为黑色:
这条线是:是否有任何东西需要通过主体的轮廓(主体曾经所在的位置)可见?
如果不透明的东西总是覆盖轮廓,打孔就足够了,而且比运行修补程序便宜约 1000 倍。
两层组合模式
两层模式在功能上是 text-behind-subject 的替代品,不需要项目中的原始presenter.mp4 — 板将其替换为底层:
.webm 或 .mov 用于两个输出。它对于图像输入无效(无需进行时间配对),并且不接受 .png 板。
表现
来自 matting eval 的真实世界数字,在 4 秒 1080p 剪辑上运行 u²-net_ human_seg:
抠图是离线预处理——每个资产运行一次并重复使用输出。仅使用 CPU 速度较慢,但始终有效;如果您重复使用同一主题剪辑,请在更快的计算机上运行一次,然后将透明输出签入您的项目中。
明确选择设备
--device auto 是默认值,几乎适合每个人。该标志存在两种情况:
-
当您想让 GPU 自由用于其他工作或正在调试特定于 EP 的问题时,强制将 CPU 置于 GPU 盒上:
Terminal
-
**通过设置
HYPERFRAMES_CUDA=1并提供支持 GPU 的onnxruntime-node构建来选择加入 CUDA(捆绑构建仅是 CPU + CoreML,以便为 99% 没有 GPU 的用户保持较小的安装量):Terminal
npx hyperframes remove-background --info 查看您的计算机上检测到的提供程序以及 auto 会选择哪一个。
在合成中使用透明视频
透明 WebM 的行为与任何其他视频元素一样。您最常使用的两种模式: 主题位于背景图像上:loop 会处理它。
合成模式和陷阱
剪切 webm 是源 mp4 RGB 的 重新编码副本 - 物质管道将源解码为原始 RGB,运行分段,并使用 alpha 重新编码为 VP9。这个选择所产生的后果取决于你做出的选择。三种模式
Text-behind-subject:推荐的布局
将标题放在演示者“后面”,以便他们的轮廓遮挡文本:两条不明显的规则
1.将剪切视频包装在非定时<div> 中并对包装而不是视频进行动画处理。
该框架在任何具有 data-start/data-duration 的元素处于“活动”状态时强制使用 opacity: 1 — 这就是它控制剪辑可见性的方式。视频元素上的 CSS opacity: 0 会被框架的剪辑生命周期悄悄覆盖,因此视频元素上的不透明度补间不会执行任何操作。将视频包装在没有 data-* 属性的 <div> 中;包装器完全归您的 CSS/GSAP 所有。
2.两个视频均从 data-start="0" 开始,并从 t=0 开始同步解码。
“后期安装”切口(data-start="3.3" 以匹配切口)很诱人。不要这样做 — Chrome 在安装时会进行搜索 + 解码器预热,这可能会在剪辑时刻从基础 mp4 上降落一帧。两个视频都是从 t=0 开始安装的,并且剪切图的包装器是不透明动画的,两个解码器都以相同的方式前进并保持帧精确度。
质量预设和颜色匹配
当剪切图叠加在其自己的源 mp4 上时,编码器的 CRF 直接影响边缘处加倍的可见程度:
编码器还写入 BT.709 + 有限范围的颜色元数据,因此 Chrome 的 YUV→RGB 管道与源 mp4 相匹配。如果没有这些标签,即使在无损质量下,剪切图的渲染也会与底层 mp4 略有不同(可见红色/皮肤变化)。
u²-net_ human_seg 的用途和用途不是什么
该模型专为肖像/人体抠图而构建。它在以下情况下表现出色:- ✅ 拍摄对象是一个人,头肩或全身
- ✅ 取景相当稳定(不是广角手持拍摄)
- ✅ 背景与主体形成对比
- ❌ 非人类主体(产品、动物、物体)。该模型将返回一个大部分为空的掩模。
- ❌ 在繁忙的背景上有非常精细的头发细节。 320×320 推理分辨率意味着发尖会变得柔和——对于大多数用例来说都很好,但合成人员注意到了。
- ❌ 帧到帧的时间一致性。每帧都是独立处理的,因此带有移动主体的静态背景可以显示出微妙的边缘闪烁。对于大多数网络播放来说,这是不可见的;对于高端视觉特效来说,这可能很重要。
- ❌ 直播或实时捕捉。该管道仅限批处理。
替代方案 - 当内置命令不是正确的工具时
CLI 特意提供了一种模型** - 该模型已获得 MIT 许可,可以在任何地方运行,并为人物/肖像视频生成生产质量的输出。下面的列表列出了与 HyperFrames 自然搭配的免费开源工具。每个条目都指出了实际的问题——许可证、安装工作、硬件需求——因此您可以根据自己的情况选择合适的条目。完整的基准测试位于 matting eval 中。免费、开源 CLI 和库
这些都在本地运行,没有帐户,没有上传,没有水印。
在外部运行其中任何一个之后,使用以下命令将输出编码为与 HyperFrames 兼容的透明 WebM:
Terminal
免费桌面/GUI 工具
Web SaaS 工具(免费套餐,带字符串)
如何选择
- 人物/肖像视频、网络播放、MIT-clean → 使用内置的
hyperframes remove-background(这就是它的调整目的)。 - 非人类主体(产品、动物、物体)→
rembg和isnet-general-use。 - 最高肖像质量,尤其是头发 → 通过 Python
BiRefNet。 - 长视频,边缘闪烁可见,GPL 可以 →
RVM。 - 一次性营销剪辑,无需安装 → DaVinci Resolve(免费)用于视频,Backgroundremover.app 用于静态图像。
- 现成模型无法处理的特殊情况 → ComfyUI 具有自定义图表。
故障排除
模型下载失败或挂起
权重位于 GitHub 版本上(rembg 的v0.0.0 版本,约 168 MB)。如果您的网络阻止 GitHub 或下载中断:
Terminal
remove-background 运行将跳过下载并使用本地副本。
“需要 ffmpeg 和 ffprobe”
管道向 ffmpeg 进行解码 + 编码。在 macOS 上通过brew install ffmpeg 安装,在 Debian/Ubuntu 上通过 sudo apt install ffmpeg 安装。使用 npx hyperframes doctor 进行验证。
输出的 WebM 在浏览器中看起来完全不透明
当 WebM 使用alpha_mode=1 元数据标记编码为 yuva420p 时,Chrome 仅读取 alpha 平面。 CLI 设置两者。如果您自己重新编码输出(例如使用另一个 ffmpeg 调用),请保留这些标志:
Terminal
Terminal
frame0.png 应该是 RGBA 并且具有重要的 alpha 值。
CoreML“可用”,但推理无法启动
如果 CoreML 绑定失败,管道会自动回退到 CPU,并发出警告。如果您想完全跳过 CoreML 尝试,请强制使用 CPU:Terminal
Alpha 蒙版具有粗糙或锯齿状边缘
这通常意味着源帧与相似色调的背景形成高对比度,并且模型的 320×320 推理分辨率得以显示。两条前进道路:- 重新构图或重新拍摄,为拍摄对象提供更具对比的背景。
- 通过
rembg尝试birefnet-portrait(请参阅其他开源模型)——它在头发边缘的质量更高,但速度更慢、更重。
参考
- CLI:
hyperframes remove-background - 评估:抠图评估 — v7
- 源模型:danielgatis/rembg
- ONNX 运行时:
onnxruntime-node