使用 MI-GAN、ONNX Runtime Web 和 WebGPU 在浏览器中彻底去除视频水印

Dev.to ML 2026-07-27T17:15:56.300244

在浏览器中用 MI-GAN、ONNX Runtime Web 和 WebGPU 彻底移除视频水印

水印和多余物体的移除,在模型演示里看着简单,一放进真正的视频编辑器里就复杂得多。最直接的做法是把媒体文件上传到 GPU 服务器,执行一个修补(inpainting)模型,再返回结果。这可行,但会带来上传延迟、基础设施成本以及隐私问题——尤其对于大型或未发布的视频。在我们的浏览器视频编辑器中,我们采用了不同的思路:用 ONNX Runtime Web 和 WebGPU 在本地运行 MI-GAN,这样图片和视频从头到尾都不需要离开用户的设备。
源代码:github.com/MartinDelophy/ai-video-editor
在线演示:video-editor.ai-creator.top

本文不只是讲模型推理,还会说明产品级工作所需的内容:多个修复区域、时间范围、移动水印、渐进式帧预览、修改前后对比、取消操作以及最终视频编码。请仅对你拥有或有权编辑的媒体使用物体移除工具。移除第三方内容中的所有权或署名标记可能违反许可协议或平台规则。

为什么选择浏览器本地修复?

服务端流程通常需要:
- 上传原始媒体文件
- 等待大视频传输
- 为存储和 GPU 计算付费
- 将可能敏感的素材发送到另一个系统
- 依赖稳定网络连接

浏览器本地推理把初始成本转移到下载模型上。一旦运行环境和模型文件被缓存,重复编辑的启动速度会快很多,而且原始媒体始终留在本地。

我们的实现使用了:
- MI-GAN:轻量级图像修补
- ONNX Runtime Web:浏览器端推理
- WebGPU:首选执行后端
- Web Workers:将推理任务移出 UI 线程
- Canvas / OffscreenCanvas:用于帧提取、遮罩和合成
- WebCodecs 或兼容的编码路径:用于最终视频
- Cache Storage:避免重复下载模型

完整流程

图像修复是一次推理任务,而视频修复包含时间轴,因此流程有本质区别:

源媒体
→ 用户定义修复区域和时间范围

查看原文