← 回首页
浏览器端去背景耗时基准
抠图侠的免费去背景把模型下载到访客的浏览器里跑,图片不上传本站:默认是 BiRefNet_lite,勾选「极致质量」则换成 Swin-Large 骨干的 BiRefNet 标准版,两者都固定 1024² 输入、都只走 WASM。代价是耗时完全由访客那台机器决定:WASM 能不能开多线程、CPU 快不快、图有多大,都会改变结果。所以这页不给一个数,给分布 —— 数字来自使用中的真实设备,按执行后端和设备档分开列,不是挑一台快机器测出来的宣传值。
真实设备遥测
近 90 天,共 1,274 条样本,最新一条 2026-10-22。
样本数少于 30 的组合会照常列出并标灰 —— 藏起来的话,读者就分不清「这一格没数据」和「这一格被我们挑掉了」。
| 阶段 | 后端 | 设备 | CPU 核数 | 样本 | p50 | p95 | 其中纯推理 p50 |
|---|---|---|---|---|---|---|---|
| 模型首次下载 | wasm | 桌面 | 1-3 | 1(样本不足) | 17.93 s | 17.93 s | — |
| 模型首次下载 | wasm | 桌面 | 12+ | 25(样本不足) | 17.39 s | 315.15 s | — |
| 模型首次下载 | wasm | 桌面 | 12+ | 2(样本不足) | 46.65 s | 82.13 s | — |
| 模型首次下载 | wasm | 桌面 | 4-7 | 5(样本不足) | 22.42 s | 76.81 s | — |
| 模型首次下载 | wasm | 桌面 | 4-7 | 1(样本不足) | 9.86 s | 9.86 s | — |
| 模型首次下载 | wasm | 桌面 | 8-11 | 35 | 4.84 s | 10.81 s | — |
| 模型首次下载 | wasm | 桌面 | 8-11 | 1(样本不足) | 5.76 s | 5.76 s | — |
| 模型首次下载 | wasm | 移动 | 8-11 | 1(样本不足) | 47.61 s | 47.61 s | — |
| 模型首次下载 | wasm | 移动 | 8-11 | 3(样本不足) | 5.92 s | 113.87 s | — |
| 模型首次下载 | wasm | 移动 | 8-11 | 1(样本不足) | 14.52 s | 14.52 s | — |
| 模型首次下载 | wasm-st | 桌面 | 8-11 | 1(样本不足) | 14.44 s | 14.44 s | — |
| 模型首次下载 | wasm-st | 移动 | 1-3 | 1(样本不足) | 89.97 s | 89.97 s | — |
| 模型首次下载 | wasm-st | 移动 | 8-11 | 1(样本不足) | 68.15 s | 68.15 s | — |
| 模型首次下载 | webgpu | 桌面 | 12+ | 1(样本不足) | 27.18 s | 27.18 s | — |
| 模型首次下载 | webgpu | 桌面 | 4-7 | 1(样本不足) | 23.15 s | 23.15 s | — |
| 模型首次下载 | webgpu | 桌面 | 8-11 | 1(样本不足) | 5.57 s | 5.57 s | — |
| 模型首次下载 | webgpu | 移动 | 4-7 | 1(样本不足) | 14.59 s | 14.59 s | — |
| 模型首次下载 | webgpu | 移动 | 8-11 | 3(样本不足) | 6.14 s | 14.69 s | — |
| 模型缓存命中 | wasm | 桌面 | 1-3 | 10(样本不足) | 56 ms | 147 ms | — |
| 模型缓存命中 | wasm | 桌面 | 12+ | 49 | 194 ms | 354 ms | — |
| 模型缓存命中 | wasm | 桌面 | 12+ | 195 | 141 ms | 161 ms | — |
| 模型缓存命中 | wasm | 桌面 | 4-7 | 1(样本不足) | 301 ms | 301 ms | — |
| 模型缓存命中 | wasm | 桌面 | 4-7 | 7(样本不足) | 160 ms | 1.76 s | — |
| 模型缓存命中 | wasm | 桌面 | 8-11 | 7(样本不足) | 133 ms | 231 ms | — |
| 模型缓存命中 | wasm | 桌面 | 8-11 | 41 | 23 ms | 136 ms | — |
| 模型缓存命中 | wasm | 移动 | 8-11 | 5(样本不足) | 247 ms | 626 ms | — |
| 模型缓存命中 | wasm | 移动 | 8-11 | 7(样本不足) | 84 ms | 365 ms | — |
| 模型缓存命中 | wasm-st | 移动 | 4-7 | 1(样本不足) | 30 ms | 30 ms | — |
| 模型缓存命中 | wasm-st | 移动 | 8-11 | 1(样本不足) | 387 ms | 387 ms | — |
| 模型缓存命中 | wasm-st | 移动 | 8-11 | 1(样本不足) | 294 ms | 294 ms | — |
| 模型缓存命中 | webgpu | 桌面 | 12+ | 1(样本不足) | 101 ms | 101 ms | — |
| 模型缓存命中 | webgpu | 桌面 | 4-7 | 2(样本不足) | 366 ms | 378 ms | — |
| 模型缓存命中 | webgpu | 移动 | 8-11 | 1(样本不足) | 198 ms | 198 ms | — |
| 运行时加载 | wasm | 桌面 | 1-3 | 11(样本不足) | 2.29 s | 4.19 s | — |
| 运行时加载 | wasm | 桌面 | 12+ | 49 | 6.19 s | 9.21 s | — |
| 运行时加载 | wasm | 桌面 | 12+ | 220 | 2.07 s | 3.57 s | — |
| 运行时加载 | wasm | 桌面 | 12+ | 2(样本不足) | 4.37 s | 5.35 s | — |
| 运行时加载 | wasm | 桌面 | 4-7 | 1(样本不足) | 28.83 s | 28.83 s | — |
| 运行时加载 | wasm | 桌面 | 4-7 | 12(样本不足) | 6.21 s | 10.33 s | — |
| 运行时加载 | wasm | 桌面 | 4-7 | 1(样本不足) | 6.84 s | 6.84 s | — |
| 运行时加载 | wasm | 桌面 | 8-11 | 7(样本不足) | 7.28 s | 15.97 s | — |
| 运行时加载 | wasm | 桌面 | 8-11 | 76 | 2.41 s | 6.52 s | — |
| 运行时加载 | wasm | 桌面 | 8-11 | 1(样本不足) | 1.57 s | 1.57 s | — |
| 运行时加载 | wasm | 移动 | 8-11 | 6(样本不足) | 18.96 s | 53.48 s | — |
| 运行时加载 | wasm | 移动 | 8-11 | 10(样本不足) | 1.86 s | 40.45 s | — |
| 运行时加载 | wasm | 移动 | 8-11 | 1(样本不足) | 14.75 s | 14.75 s | — |
| 运行时加载 | wasm-st | 桌面 | 8-11 | 1(样本不足) | 7.44 s | 7.44 s | — |
| 运行时加载 | wasm-st | 移动 | 1-3 | 1(样本不足) | 6.91 s | 6.91 s | — |
| 运行时加载 | wasm-st | 移动 | 4-7 | 1(样本不足) | 4.44 s | 4.44 s | — |
| 运行时加载 | wasm-st | 移动 | 8-11 | 1(样本不足) | 11.26 s | 11.26 s | — |
| 运行时加载 | wasm-st | 移动 | 8-11 | 2(样本不足) | 5.75 s | 5.85 s | — |
| 运行时加载 | webgpu | 桌面 | 12+ | 2(样本不足) | 6.90 s | 9.03 s | — |
| 运行时加载 | webgpu | 桌面 | 4-7 | 3(样本不足) | 8.54 s | 9.56 s | — |
| 运行时加载 | webgpu | 桌面 | 8-11 | 1(样本不足) | 9.27 s | 9.27 s | — |
| 运行时加载 | webgpu | 移动 | 4-7 | 1(样本不足) | 11.30 s | 11.30 s | — |
| 运行时加载 | webgpu | 移动 | 8-11 | 4(样本不足) | 13.83 s | 31.89 s | — |
| 首次抠图 | wasm | 桌面 | 1-3 | 6(样本不足) | 5.17 s | 6.39 s | 4.55 s |
| 首次抠图 | wasm | 桌面 | 12+ | 49 | 10.79 s | 16.93 s | 7.71 s |
| 首次抠图 | wasm | 桌面 | 12+ | 202 | 2.80 s | 4.00 s | 2.63 s |
| 首次抠图 | wasm | 桌面 | 12+ | 1(样本不足) | 6.11 s | 6.11 s | 5.65 s |
| 首次抠图 | wasm | 桌面 | 4-7 | 1(样本不足) | 85.83 s | 85.83 s | 75.69 s |
| 首次抠图 | wasm | 桌面 | 4-7 | 3(样本不足) | 11.29 s | 14.64 s | 9.98 s |
| 首次抠图 | wasm | 桌面 | 4-7 | 1(样本不足) | 17.70 s | 17.70 s | 14.70 s |
| 首次抠图 | wasm | 桌面 | 8-11 | 6(样本不足) | 16.47 s | 25.76 s | 11.31 s |
| 首次抠图 | wasm | 桌面 | 8-11 | 72 | 2.12 s | 10.23 s | 1.74 s |
| 首次抠图 | wasm | 移动 | 8-11 | 1(样本不足) | 21.69 s | 21.69 s | 18.33 s |
| 首次抠图 | wasm | 移动 | 8-11 | 5(样本不足) | 4.12 s | 5.41 s | 2.75 s |
| 首次抠图 | wasm-st | 移动 | 1-3 | 1(样本不足) | 18.12 s | 18.12 s | 17.34 s |
| 首次抠图 | wasm-st | 移动 | 8-11 | 2(样本不足) | 44.06 s | 44.86 s | 43.32 s |
| 首次抠图 | webgpu | 桌面 | 12+ | 2(样本不足) | 4.67 s | 7.37 s | 4.47 s |
| 首次抠图 | webgpu | 桌面 | 4-7 | 3(样本不足) | 14.27 s | 17.21 s | 12.87 s |
| 首次抠图 | webgpu | 桌面 | 8-11 | 1(样本不足) | 4.76 s | 4.76 s | 3.47 s |
| 首次抠图 | webgpu | 移动 | 8-11 | 2(样本不足) | 12.16 s | 12.30 s | 11.41 s |
| 后续抠图 | wasm | 桌面 | 12+ | 80 | 9.23 s | 15.09 s | 5.94 s |
| 后续抠图 | wasm | 桌面 | 8-11 | 3(样本不足) | 9.43 s | 9.44 s | 6.23 s |
| 后续抠图 | wasm | 桌面 | 8-11 | 1(样本不足) | 3.96 s | 3.96 s | 1.78 s |
| 后续抠图 | webgpu | 桌面 | 4-7 | 1(样本不足) | 11.58 s | 11.58 s | 9.74 s |
| 后续抠图 | webgpu | 桌面 | 8-11 | 3(样本不足) | 1.63 s | 2.00 s | 1.29 s |
基线(固定样本集实测)
基线测量待补:这一列必须是在一台写明型号的机器上真跑出来的,还没跑就先空着,不填估算值。
样本集
模型固定 768²/512² 输入,耗时随解码与前处理的像素量走、与画面内容无关;合成图把分辨率这一个变量固定住,且任何人都能用仓内脚本生成同样的字节。
自制合成图(CC0)。不含人像,不含任何第三方素材。 · scripts/benchmarks/make-samples.mjs
- s1: 640×480 (0.31 MP)
- s2: 1280×960 (1.23 MP)
- s3: 1920×1440 (2.76 MP)
- s4: 3000×2000 (6 MP)
- s5: 4032×3024 (12.19 MP)
方法与局限
- ·计时点在 src/lib/matting/birefnet-local.js 里,与真实抠图走的是同一条代码路径 —— 没有单独的「跑分模式」,测的就是用户按下按钮之后发生的事。
- ·模型首次下载 = 发起 fetch 到本地 gunzip 完成。传输的是 gzip 后的 39 MiB,本地解压成 47 MiB,因此这一格同时反映访客的网络,不是纯计算耗时。模型缓存命中 = 二次访问从 Cache API 读出来的时间。
- ·运行时加载 = ONNX Runtime 建 session 的耗时,含图优化与把权重装进内存。WebGPU 已停用——onnxruntime-web 1.27 的 WebGPU 后端在这套 int8/fp16 权重上会算错,只有 fp32 是对的而 fp32 又太大——所以现在只建 WASM session,历史数据里的 WebGPU 行是停用前的记录。
- ·首次抠图与后续抠图分开统计:第一次还要连带 WASM 堆的增长与各算子的首次预热,跟稳态不是一回事,合成一个数会同时骗到两种读者 —— 只抠一张的人以为偏快,连着抠十张的人以为偏慢。「其中纯推理」是整条流程里 session.run 那一段,剩下的是解码、前处理与合成,跟图片分辨率走。
- ·p50 / p95 对窗口内的原始样本算,不是对每日分位数再平均 —— 分位数的平均没有统计含义。
- ·样本是访客浏览器自报的,没有鉴权也没有去重:同一个人抠十张会贡献十条。这一页测的是「抠一张图要多久」的分布,不是「有多少人在用」,但读者应当知道这条局限。
- ·耗时与图片内容无关:模型固定 1024² 输入(标准档 BiRefNet_lite fp16 与「极致质量」Swin-Large int8 都是;1024 模型取不到时回退 768,低内存设备用 512),任何图都会先被缩到这个尺寸。随分辨率变化的是解码与前处理,不是推理本身。
- ·设备档在浏览器里就分好桶再上报(8 核 → 「8-11」),原始值不出浏览器。所以这张表分不出具体机型,只分得出量级。
这页的数据是怎么收的
遥测只上报耗时数字和粗分桶的设备档(桌面/移动、CPU 核数档、内存档、输入分辨率档、执行后端、模型版本)。不上报图片、图片的任何派生特征、文件名、User-Agent 原文、referrer、IP,也不带 cookie,样本里没有能指向某个人的字段。完整说明见隐私政策。
隐私政策 →读取遥测开关…
下载原始汇总
两个格式内容相同,含页面上标灰的那些行。授权 CC BY 4.0,转载请注明来源与取数日期。