工作原理

这个网站上的每个工具,都是一个普通网页加一个在浏览器里运行的开源神经网络。本页讲清楚三件事:打开工具之后发生了什么,在真实硬件上有多快,以及你怎么自己确认文件没被上传。

打开一个工具之后

  1. 加载页面。纯静态的 HTML、CSS、JavaScript,没有服务端代码,也不用登录。
  2. 下载模型,只下一次。页面从 models.swordfishsoft.org 拉取模型权重(ONNX 文件,按工具不同约 5 MB 到 600 MB)。进度条显示的是实际收到的字节数。浏览器会把文件存进自己的 Cache Storage。
  3. 选择运行方式。浏览器支持 WebGPU、且这个工具在 WebGPU 上验证过时,模型跑在显卡上;否则通过 WebAssembly 单线程跑在 CPU 上。工具界面会显示当前用的是哪一种。
  4. 在本地读取文件。你拖进来的图片、录音或文档,由浏览器直接从磁盘读进页面内存。模型在后台线程(Web Worker)里运行,所以页面不会卡住。
  5. 在页面里生成结果。你下载的 PNG、音频或文字都是在浏览器里生成,作为本地下载保存的,不经过任何服务器。

再次打开时,模型直接从浏览器缓存读取,不走网络,工具通常一到三秒就能用。

自己验证

不必只听我们说。在 Chrome、Edge 或 Firefox 里:

  1. 打开一个工具,等模型加载完。
  2. 打开开发者工具(F12,Mac 上按 ⌥ ⌘ I),切到 Network(网络)标签页,点清空按钮把列表清掉。
  3. 处理一个文件。
  4. 看列表:没有任何请求带着你的文件,请求体里没有你的数据,也没有体积接近你那个文件的发送。

更彻底的办法:模型加载完之后关掉 Wi-Fi 或拔掉网线,在同一个标签页里再处理一个文件。照样能用,因为处理过程根本不需要网络。

WebGPU 与 WebAssembly:实测速度

每个工具上线前都要过同一套测试:在自动化 Chrome 里用它的内置样例分别跑 WebGPU 和 WebAssembly(CPU)两条路径,既看耗时,也检查输出对不对。下表是这些测试的处理耗时,机器是 Apple M2 Max,模型已加载完。CPU 一栏是 2026-09-25 按下文的改动重测的,是单线程数字:

工具样例输入WebGPUCPU(WASM)下载体积
语音转文字30 秒播客片段2.0 秒12.9 秒291 / 206 MB
文字转语音207 个字符 → 13 秒语音1.3 秒19.2 秒326 / 305 MB
图片去背景1024 × 683 照片1.2 秒5.3 秒98 / 192 MB
照片去物体1024 × 683 照片0.34 秒11.2 秒107 / 62 MB
深度图1280 × 855 照片0.28 秒5.5 秒99 / 27 MB
图片 4 倍放大512 × 384 → 2048 × 15361.0 秒11.8 秒5 MB
图片去模糊1024 × 768 照片2.0 秒39.3 秒275 MB
人声分离20 秒歌曲2.1 秒74.2 秒67 MB
图片文字识别小票,20 行0.42 秒3.0 秒17 MB
文本脱敏209 词客服邮件0.32 秒2.8 秒596 MB
老照片上色923 × 737 照片—5.8 秒135 MB
证件照制作960 × 1150 人像 → 600 × 6000.19 秒1.5 秒26 / 13 MB
图片转描述 / 提示词1024 × 635 照片 → 三段文字6.8 秒14.1 秒194 / 251 MB
AI 音乐检测3 分钟歌曲(MP3)—0.48 秒15 KB

下载体积写了两个数的,表示 WebGPU 和 CPU 两条路径用的是不同版本的模型:适合显卡的精度未必最适合 CPU,所以每条路径各用我们实测效果更好的那一版。慢一些的笔记本会比表里的数字慢,手机更慢。首页标了「建议桌面端」的工具,模型太大,手机上不一定跑得动。

为什么上色没有 WebGPU 那一栏

有些模型在一种引擎上正常,换一种就不行。我们用的上色模型在当前浏览器的 WebGPU 上启动不了,所以它被声明为只走 CPU,从不尝试显卡。我们还遇到过在 WebGPU 上一声不响地输出纯黑图、完全不报错的模型。这就是为什么每个工具都要检查输出,而不只是测速度;也是为什么有些工具会在运行中自己检查输出,发现不对就换更稳妥的设置重试。

为什么慢在第一次加载

处理本身只要几秒,页面上最大的下载是模型。家用网络下 100 MB 的模型要几秒到半分钟。之后就被缓存了,所以每个浏览器只等这一次。想回收磁盘空间,在浏览器设置里清除 swordfishsoft.org 的网站数据,缓存的模型就会被删掉。

为什么 CPU 路径只用一个线程

WebAssembly 要把计算分到多个 CPU 核心上,页面必须处于「跨源隔离」状态,网站靠两个 HTTP 头(Cross-Origin-Opener-Policy 和 Cross-Origin-Embedder-Policy)开启它。但这两个头同时会挡住页面里嵌入的其他网站的框架,其中就包括广告框架,而广告是这些工具能保持免费的来源。我们选择了广告:从 2026 年 9 月 25 日起,页面不再发送这两个头。WebGPU 路径不受影响;CPU 路径改为单线程,在我们的测试机上比原来慢了大约三倍,上表已经是新的数字。

哪些东西确实会离开你的浏览器

为了说全,确实会发生的网络请求有这些:

这些请求里都没有你的文件、你在工具里输入的文字,也没有处理结果。