水印猫实用指南

浏览器运行 ONNX 修复模型:WebGPU 数据链路拆解

浏览器 AI 修复不只是调用一次模型。它要完成模型缓存、图像裁剪、RGBA 与张量转换、WebGPU 推理、结果合成和视频逐帧调度。

模型先下载并建立本地缓存

ONNX 文件通常比普通网页资源大。可靠的实现会校验文件、把下载成功的版本存入缓存,缓存不可用时再从原始地址重新下载。

只裁剪必要上下文

模型输入不必覆盖整帧。围绕水印选区增加适量上下文,可以降低显存占用,但裁剪太紧会缺少纹理参考。

像素需要转换为模型张量

浏览器画布常用 RGBA 排列,模型可能要求 NCHW 浮点数据。通道顺序、归一化、输出范围,任何一项出错都会造成偏色或异常纹理。

逐帧推理还要管理资源

视频任务需要复用推理会话,及时释放中间张量,并响应取消信号。处理完成后将修复区域合回原帧,再交给编码流程。

运行 WebGPU 模型前的环境检查

  1. 确认 Chrome 或 Edge 已启用硬件加速
  2. 首次使用预留模型下载时间
  3. 观察长视频处理时的显存与稳定性

读完后常见问题

WebGPU 和 WebGL 有什么区别?
WebGPU 提供更现代的通用计算接口,更适合执行张量运算,但设备支持要求也更高。
为什么第一次运行更慢?
通常需要下载并校验模型,后续可从本地缓存读取。
整帧输入一定效果更好吗?
适量上下文通常更有效率,整帧输入会显著增加计算量,却未必改善局部修复结果。