Koutuxia
← Back home

Browser-side background removal benchmarks

Koutuxia's free background removal downloads the model into the visitor's browser and runs it there, so images are not uploaded to our server: BiRefNet_lite by default, or the full BiRefNet with a Swin-Large backbone when “Maximum quality” is ticked — both use a fixed 1024² input and both run on WASM only. The trade-off is that speed is decided entirely by that machine: whether WASM can use several threads, how fast the CPU is, and how large the image is all change the result. So this page gives a distribution rather than a single number — measured on devices in actual use and split by execution backend and device class, not a marketing figure from one fast machine.

Telemetry from real devices

Last 90 days, 1,287 samples, most recent 2026-10-23.

Combinations with fewer than 30 samples are still listed, greyed out — hiding them would leave readers unable to tell "no data here" from "we dropped this one".

PhaseBackendDeviceCPU coresSamplesp50p95of which inference p50
Model first downloadwasmDesktop1-31(too few samples)17.93 s17.93 s—
Model first downloadwasmDesktop12+25(too few samples)17.39 s315.15 s—
Model first downloadwasmDesktop12+2(too few samples)46.65 s82.13 s—
Model first downloadwasmDesktop4-75(too few samples)22.42 s76.81 s—
Model first downloadwasmDesktop4-71(too few samples)9.86 s9.86 s—
Model first downloadwasmDesktop8-11354.84 s10.81 s—
Model first downloadwasmDesktop8-111(too few samples)5.76 s5.76 s—
Model first downloadwasmMobile8-111(too few samples)47.61 s47.61 s—
Model first downloadwasmMobile8-113(too few samples)5.92 s113.87 s—
Model first downloadwasmMobile8-111(too few samples)14.52 s14.52 s—
Model first downloadwasm-stDesktop8-111(too few samples)14.44 s14.44 s—
Model first downloadwasm-stMobile1-31(too few samples)89.97 s89.97 s—
Model first downloadwasm-stMobile8-111(too few samples)68.15 s68.15 s—
Model first downloadwebgpuDesktop12+1(too few samples)27.18 s27.18 s—
Model first downloadwebgpuDesktop4-71(too few samples)23.15 s23.15 s—
Model first downloadwebgpuDesktop8-111(too few samples)5.57 s5.57 s—
Model first downloadwebgpuMobile4-71(too few samples)14.59 s14.59 s—
Model first downloadwebgpuMobile8-113(too few samples)6.14 s14.69 s—
Model cache hitwasmDesktop1-310(too few samples)56 ms147 ms—
Model cache hitwasmDesktop12+51182 ms354 ms—
Model cache hitwasmDesktop12+195141 ms161 ms—
Model cache hitwasmDesktop4-71(too few samples)301 ms301 ms—
Model cache hitwasmDesktop4-77(too few samples)160 ms1.76 s—
Model cache hitwasmDesktop8-1110(too few samples)86 ms231 ms—
Model cache hitwasmDesktop8-114123 ms136 ms—
Model cache hitwasmMobile8-115(too few samples)247 ms626 ms—
Model cache hitwasmMobile8-117(too few samples)84 ms365 ms—
Model cache hitwasm-stMobile4-71(too few samples)30 ms30 ms—
Model cache hitwasm-stMobile8-111(too few samples)387 ms387 ms—
Model cache hitwasm-stMobile8-111(too few samples)294 ms294 ms—
Model cache hitwebgpuDesktop12+1(too few samples)101 ms101 ms—
Model cache hitwebgpuDesktop4-72(too few samples)366 ms378 ms—
Model cache hitwebgpuMobile8-111(too few samples)198 ms198 ms—
Runtime loadwasmDesktop1-311(too few samples)2.29 s4.19 s—
Runtime loadwasmDesktop12+516.19 s10.97 s—
Runtime loadwasmDesktop12+2202.07 s3.57 s—
Runtime loadwasmDesktop12+2(too few samples)4.37 s5.35 s—
Runtime loadwasmDesktop4-71(too few samples)28.83 s28.83 s—
Runtime loadwasmDesktop4-712(too few samples)6.21 s10.33 s—
Runtime loadwasmDesktop4-71(too few samples)6.84 s6.84 s—
Runtime loadwasmDesktop8-1110(too few samples)7.28 s15.61 s—
Runtime loadwasmDesktop8-11762.41 s6.52 s—
Runtime loadwasmDesktop8-111(too few samples)1.57 s1.57 s—
Runtime loadwasmMobile8-116(too few samples)18.96 s53.48 s—
Runtime loadwasmMobile8-1110(too few samples)1.86 s40.45 s—
Runtime loadwasmMobile8-111(too few samples)14.75 s14.75 s—
Runtime loadwasm-stDesktop8-111(too few samples)7.44 s7.44 s—
Runtime loadwasm-stMobile1-31(too few samples)6.91 s6.91 s—
Runtime loadwasm-stMobile4-71(too few samples)4.44 s4.44 s—
Runtime loadwasm-stMobile8-111(too few samples)11.26 s11.26 s—
Runtime loadwasm-stMobile8-112(too few samples)5.75 s5.85 s—
Runtime loadwebgpuDesktop12+2(too few samples)6.90 s9.03 s—
Runtime loadwebgpuDesktop4-73(too few samples)8.54 s9.56 s—
Runtime loadwebgpuDesktop8-111(too few samples)9.27 s9.27 s—
Runtime loadwebgpuMobile4-71(too few samples)11.30 s11.30 s—
Runtime loadwebgpuMobile8-114(too few samples)13.83 s31.89 s—
First cutoutwasmDesktop1-36(too few samples)5.17 s6.39 s4.55 s
First cutoutwasmDesktop12+4910.79 s16.93 s7.71 s
First cutoutwasmDesktop12+2022.80 s4.00 s2.63 s
First cutoutwasmDesktop12+1(too few samples)6.11 s6.11 s5.65 s
First cutoutwasmDesktop4-71(too few samples)85.83 s85.83 s75.69 s
First cutoutwasmDesktop4-73(too few samples)11.29 s14.64 s9.98 s
First cutoutwasmDesktop4-71(too few samples)17.70 s17.70 s14.70 s
First cutoutwasmDesktop8-119(too few samples)12.04 s24.65 s7.68 s
First cutoutwasmDesktop8-11722.12 s10.23 s1.74 s
First cutoutwasmMobile8-111(too few samples)21.69 s21.69 s18.33 s
First cutoutwasmMobile8-115(too few samples)4.12 s5.41 s2.75 s
First cutoutwasm-stMobile1-31(too few samples)18.12 s18.12 s17.34 s
First cutoutwasm-stMobile8-112(too few samples)44.06 s44.86 s43.32 s
First cutoutwebgpuDesktop12+2(too few samples)4.67 s7.37 s4.47 s
First cutoutwebgpuDesktop4-73(too few samples)14.27 s17.21 s12.87 s
First cutoutwebgpuDesktop8-111(too few samples)4.76 s4.76 s3.47 s
First cutoutwebgpuMobile8-112(too few samples)12.16 s12.30 s11.41 s
Later cutoutswasmDesktop12+809.23 s15.09 s5.94 s
Later cutoutswasmDesktop8-113(too few samples)9.43 s9.44 s6.23 s
Later cutoutswasmDesktop8-111(too few samples)3.96 s3.96 s1.78 s
Later cutoutswebgpuDesktop4-71(too few samples)11.58 s11.58 s9.74 s
Later cutoutswebgpuDesktop8-113(too few samples)1.63 s2.00 s1.29 s

Baseline (fixed sample set, measured)

Baseline measurement pending: this column has to come from a real run on a named machine, so until that run happens it stays empty rather than holding an estimate.

Sample set

模型固定 768²/512² 输入,耗时随解码与前处理的像素量走、与画面内容无关;合成图把分辨率这一个变量固定住,且任何人都能用仓内脚本生成同样的字节。

自制合成图(CC0)。不含人像,不含任何第三方素材。 · scripts/benchmarks/make-samples.mjs

Method and limits

How this page's data is collected

Telemetry sends timing numbers and coarse device buckets only: desktop or mobile, a CPU-core bucket, a memory bucket, an input-resolution bucket, the execution backend, and the model version. It does not send images, any feature derived from an image, filenames, the raw User-Agent, the referrer, or an IP address, and it carries no cookies — there is no field in a sample that points at a person. The privacy policy has the full description.

Privacy policy →Reading telemetry setting…

Download the raw summary

Both formats carry the same content, including the greyed-out rows. Licensed CC BY 4.0; please cite the source and the date you pulled it.

JSONCSV

Try it yourself →