<video> 标签放入任何 HyperFrames 合成中,主题就会漂浮在您放在其后面的任何内容上。
CLI 附带一个在本地运行的内置 remove-background 命令 - 没有 API 密钥,没有云上传,没有绿屏。
快速入门
验证 ffmpeg 是否已安装
管道需要 使用
ffmpeg 和 ffprobe 进行解码+编码。大多数系统已经具备它们;如果不:Terminal
npx hyperframes doctor 确认 — 两者都应该是绿色的。从视频中删除背景
Terminal
~/.cache/hyperframes/background-removal/models/。后续运行将重用缓存。输出:它是如何运作的
该管道运行四个阶段,全部在本地:onnxruntime-node 与您计算机上最可用的执行提供程序一起运行:Apple Silicon 上的 CoreML、NVIDIA 上的 CUDA、CPU。
输出使用 Chrome 的 <video> 元素需要解码 alpha 的确切 ffmpeg 标记进行编码 — -pix_fmt yuva420p 加上 alpha_mode=1 元数据标记。如果这些错误的话,alpha 平面就会被浏览器默默地丢弃。
输出格式
| 扩大 | 编解码器 | 何时使用 | 尺寸(4s @ 1080p) |
|---|---|---|---|
.webm(默认) | VP9 与阿尔法 | 放入 <video> 进行 HTML5 原生透明播放 | 〜1MB |
.mov | 带 Alpha 的 ProRes 4444 | 在 Premiere / Resolve / Final Cut 中进行往返编辑 | 〜50MB |
.png | 带阿尔法的PNG | 单图剪切(仅当输入也是单图时) | 各不相同 |
Terminal
分层分离:将切口和背景板一起发射
传递--background-output (别名 -b)以在剪切旁边写入第二个透明视频。相同的 RGB 源,alpha 是逆蒙版 - 周围环境不透明,主体所在透明。结果是在一次推理过程中实现干净的两层分离:
Terminal
| 输出 | 阿尔法 | 使用它作为 |
|---|---|---|
subject.webm | 遮罩 — 主体不透明 | 前景层(堆栈顶部) |
plate.webm | 255 − mask — 主题区域透明 | 背景层;在此和 subject.webm 之间放置任何你想要的东西在拍摄对象的轮廓下方** |
--quality 预设,因此各层是像素对齐的。编码成本大约翻倍;分割成本不变。
孔切板与干净板——差异何时重要?
打孔板保留了原始环境并使拍摄对象区域透明。 干净的板用重建的背景填充主题区域 - 由单独的修复模型生成。将每个单独显示为黑色:| 孔板切割(此命令) | 洁净板(修补) | |
|---|---|---|
| 主题区域 | 透明剪影 | 重建背景像素 |
| 你独自看到的 | 一个人形的洞 | 一个空房间 |
| 成本 | 一次推理过程,一次额外的 ffmpeg 编码 | 第二个模型(LaMa、ProPainter、E2FGVI) |
| 工具 | remove-background --background-output | 在此 CLI 之外 |
| 使用案例 | 你需要什么 |
|---|---|
| 文本/图形位于切口和板之间*(上面的示例) | 打孔 — 图形填充孔。 |
| 将主题合成到不相关的场景上 | 两者都不。只需使用 subject.webm 即可;盘子是无关紧要的。 |
| 将“无人的房间”作为真实的背景 | 干净的板 — 打孔板会显示出透明的空隙。 |
| 用不同的主题替换此人(重新定位) | 干净的板 - 新的主题需要其下方的真实像素。 |
| 视觉特效动态观察/“从这个镜头中删除额外的内容” | 干净的板 - 规范的修复用例。 |
两层组合模式
两层模式在功能上是 text-behind-subject 的替代品,不需要项目中的原始presenter.mp4 — 板将其替换为底层:
.webm 或 .mov 用于两个输出。它对于图像输入无效(无需进行时间配对),并且不接受 .png 板。
表现
来自 matting eval 的真实世界数字,在 4 秒 1080p 剪辑上运行 u²-net_ human_seg:| 平台 | 提供者 | 毫秒/帧 | 30 秒剪辑 |
|---|---|---|---|
| 苹果芯片(M2 Pro / M3 / M4) | 核心机器学习 | ~263 | 约 2 分钟 |
| NVIDIA GPU(T4、A10、RTX) | CUDA | ~80–150 | ~30–60 秒 |
| Linux x86 | 中央处理器 | ~1100 | 约 16 分钟 |
| macOS 英特尔 | 中央处理器 | ~900 | 约 13 分钟 |
明确选择设备
--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。这个选择所产生的后果取决于你做出的选择。三种模式
| 图案 | 剪纸后面 | 结果 |
|---|---|---|
| 剪切不同的场景 (最常见) | 静态图像、渐变、动画背景或不相关的素材 | 干净的。剪纸是主题的唯一来源——没有重影,没有边缘光晕。使用任何 --quality。 |
| 在其自己的源 mp4 上剪切 (主题后面的文本,带覆盖的头部说话) | 生成剪切图的相同 mp4 | 同一个人的两个 RGB 源。默认情况下 --quality balanced (crf 18),加倍几乎不可见;在 --quality fast (crf 30) 处,您会看到轮廓上有轻微的颜色偏移/软边缘。使用 --quality best (crf 12) 进行英雄射击。 |
| 同一主题的不同镜头的剪切 | 同一个人的另一个镜头 | 看起来就像两个重叠的人。避免——重新拍摄或重新切断源。 |
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 直接影响边缘处加倍的可见程度:--quality | 病例报告表 | 文件大小(12s @ 1080p) | 何时使用 |
|---|---|---|---|
fast | 30 | 〜2MB | 剪切图位于不相关的背景上,文件大小很重要 |
balanced (默认) | 18 | 〜6MB | 推荐用于主题后面的文本和覆盖在源上的任何图案 |
best | 12 | 〜12MB | 英雄镜头、大师镜头或您将在下游重新编码的任何内容 |
u²-net_ human_seg 的用途和用途不是什么
该模型专为肖像/人体抠图而构建。它在以下情况下表现出色:- ✅ 拍摄对象是一个人,头肩或全身
- ✅ 取景相当稳定(不是广角手持拍摄)
- ✅ 背景与主体形成对比
- ❌ 非人类主体(产品、动物、物体)。该模型将返回一个大部分为空的掩模。
- ❌ 在繁忙的背景上有非常精细的头发细节。 320×320 推理分辨率意味着发尖会变得柔和——对于大多数用例来说都很好,但合成人员注意到了。
- ❌ 帧到帧的时间一致性。每帧都是独立处理的,因此带有移动主体的静态背景可以显示出微妙的边缘闪烁。对于大多数网络播放来说,这是不可见的;对于高端视觉特效来说,这可能很重要。
- ❌ 直播或实时捕捉。该管道仅限批处理。
替代方案 - 当内置命令不是正确的工具时
CLI 特意提供了一种模型** - 该模型已获得 MIT 许可,可以在任何地方运行,并为人物/肖像视频生成生产质量的输出。下面的列表列出了与 HyperFrames 自然搭配的免费开源工具。每个条目都指出了实际的问题——许可证、安装工作、硬件需求——因此您可以根据自己的情况选择合适的条目。完整的基准测试位于 matting eval 中。免费、开源 CLI 和库
这些都在本地运行,没有帐户,没有上传,没有水印。| 工具 | 何时使用它 | 抓住 |
|---|---|---|
rembg(Python,麻省理工学院) | 您需要不同的主题类型 - isnet-general-use 用于对象/动物/产品,birefnet-portrait 用于头发的质量上限,silueta 用于约 40 MB 的微小占用空间。与我们的默认型号相同的系列,更多种类。 | 需要 Python + pip install rembg。某些捆绑模型 (birefnet-*) 需要 ~4 GB RAM 并且仅支持 CPU |
| BiRefNet(PyTorch,麻省理工学院) | 提供最高保真度的肖像遮罩 — 头发边缘明显比 u²-net 更好 | 重(约 4 GB 推理 RAM),CPU 速度慢,在评估时在 Apple CoreML 上损坏 |
| 强大的视频抠图 (RVM) (PyTorch, GPL-3.0) | 唯一广泛使用的内置时间一致性的模型 - 移动主体上没有边缘闪烁。当您安装长的说话头夹并且框架到框架的稳定性很重要时,这是最佳选择 | GPL-3.0 许可证与大多数商业/专有代码库不兼容。使用前请阅读您的存储库的许可证 |
| 背景去除器(Python,麻省理工学院) | u²-net 的简单 pip install 包装器;如果您想要 Python API 而不是我们的 Node CLI,那就太好了 | 与我们的产品系列相同,没有质量差异 - 选择适合您的堆栈的产品 |
| ComfyUI(开源,GPL-3.0 核心) | 自定义工作流程:链接分割模型 + alpha 细化 + 时间平滑。处理棘手案件的正确工具(多个主题、相似背景下的头发、体育镜头) | 涉及设置(Python、模型、节点图)。值得重复专业工作 |
Terminal
免费桌面/GUI 工具
| 工具 | 何时使用它 | 抓住 |
|---|---|---|
| 达芬奇决心 — 魔法面具 | 您已经在 Resolve 中进行编辑,想要一个带有手动细化功能的基于画笔的 UI,并且需要将 Alpha 往返到更大的编辑中 | macOS / Windows / Linux 桌面安装。免费套餐包括 Magic Mask;付费 Studio 版本在某些功能上解锁了更高的分辨率 |
| Backgroundremover.app(网络) | 一次性图片剪切,无需注册,无水印 | 仅单个图像,而不是视频。托管免费层,但底层工具是相同的 rembg 模型系列 |
| PhotoRoom 背景去除器(网络) | 快速的一次性图像、精美的 UI、无需注册 | 仅单张图像,电子商务调整模型 |
Web SaaS 工具(免费套餐,带字符串)
| 工具 | 何时使用它 | 抓住 |
|---|---|---|
| unscreen.com | 快速一次性视频,无需安装,拖放 | 免费套餐带有水印并限制在短片中(~10 秒预览)。付费删除了两者。由remove.bg背后的团队运行 |
| RunwayML — 绿屏 | 精美的用户界面,具有画笔细化和时间感知跟踪功能;最接近专业轮转的 SaaS | 存在免费套餐,但有信用限制;认真使用就是订阅 |
| Kapwing — 背景去除剂 | 基于浏览器,与视频编辑器集成 | 免费套餐带有水印;付费删除它 |
如何选择
- 人物/肖像视频、网络播放、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