banner
约 2,400 字
8 分钟

Cloudflare 免费部署的图片工具二更:新增 AI 抠图功能

摘要

这个本地图片工具又更新了,这次加了 AI 抠图。丢一张图进去,一键去掉背景,输出透明 PNG,或者换成白底、红底、蓝底。全程在你自己的浏览器里算完,图片不上传。本文讲清抠图怎么用、遮罩 512 的分辨率上限意味着什么、哪些图能抠好哪些别指望,以及那个绕不开的代价——首次使用要下载本地模型。


date created: 星期五, 九月 25日 2026, 10:25:00 上午 date modified: 星期五, 九月 25日 2026, 10:38:42 上午

图片工具AI抠图封面.png

前言

上一篇《Cloudflare 免费部署的图片工具已更新:新增 AI 图片放大功能》发出去之后,这个项目又往前走了一步:AI 抠图 也加上了。图片拖进去,一键把背景去掉,输出带透明通道的 PNG,或者直接换成白底、红底、蓝底。

和压缩、放大一样,抠图也是在你自己的浏览器里算完的 —— 图片不上传、不出本机,也不消耗任何云端额度。这三件事(隐私、免费、不限量)能同时成立,靠的就是"全部在你设备上跑"这一个前提。

这篇讲四件事:抠图怎么用、它凭什么能本地跑、什么图能抠好什么图别指望、以及部署时要比上一篇多注意什么。

这次更新了什么

界面没变,还是顶栏那排胶囊标签,现在从两个变成了三个:

blog image

工具

网址

干什么

图片压缩

/

压缩、格式转换(AVIF / WebP / JPEG / PNG / JPEG XL),可批量

AI 放大

/upscale/

把图片放大 2~4 倍,AI 重建细节

AI 抠图

/cutout/

识别主体、去掉背景,输出透明 PNG 或换底色

三个工具共用同一套页面外壳,点标签是瞬间切换,不用整页跳转;同时各自保留独立网址,可以分别收藏、分别投放到不同平台。

AI 抠图怎么用

1. 第一次打开,先等它下载模型

打开 /cutout/,拖入一张图,点「一键抠图」。第一次会多一步:下载约 94 MB 的模型权重,进度条上会走「下载模型权重 → 初始化推理引擎 → 识别主体 → 合成中」四个阶段。

CitePix_2026-09-24_18-14-26.png

这一步只发生一次。下完之后权重会存进浏览器的缓存,以后再打开是秒开的 —— 除非你换了浏览器,或者手动清了缓存。

这里有个坑要提前说:如果你的设备没有 WebGPU,模型体积会从 94 MB 变成 192 MB,界面顶部会用黄条明确提示你,处理速度也会慢不少。原因在下一节讲。总之建议用桌面版 Chrome 或 Edge 打开。

2. 选模型、选边缘

右侧就两组参数,都不复杂。

模型有两个:

  • BiRefNet Lite —— 默认推荐,就是上面说的 94 MB 那个版本,发丝、毛绒这类细节也能抠得比较干净,绝大多数图片够用。

  • BiRefNet —— 完整版,只有设备不支持 WebGPU 时才会用到,效果和 Lite 基本一样,但文件大得多、速度慢不少。

注意这两个不是"画质高低"的关系,而是"能不能用"的关系,正常情况你不需要手动切。

CitePix_2026-09-24_18-15-05.png

边缘处理两档,「锐利」会把半透明的过渡带压窄,看起来更干净;「柔和」保留原本的羽化感,适合头发、毛绒这类需要自然过渡的主体。同一张图如果边缘显得发虚,切到「锐利」通常就对了。

3. 结果怎么看,底色怎么换

处理完之后有三个页签:

  • 比较 —— 中间一条可拖动的分割线,左边原图右边结果,直接对着看。

  • 结果 —— 只看抠好的图,透明区域显示为棋盘格。

  • 原版 —— 只看原图。

还有个很顺手的小操作:按住空格键会临时露一下原图,松开就回去。检查头发边缘抠得准不准的时候特别好用。

CitePix_2026-09-24_18-15-20.png

底色有四个色块:透明、白、红、蓝。换底色是即时重合成的,不会重新跑一遍模型 —— 所以你可以四种都点一遍挑一个,秒出结果,不用等。

最后点「下载 PNG」保存,文件名会自动带上后缀,比如 xxx-cutout.png、xxx-cutout-red.png,换了底色不会覆盖前一张。

顺带提一句:目前放大和抠图都是单张处理的,一次只能来一张。这两个任务本来就是重计算,而且需要你逐张确认效果,批量反而没意义。要批量还是去压缩页,那边一次拖进去上百张都没问题。

它是怎么做到「本地抠图」的

先说清楚它到底在干什么。

抠图用的模型是 BiRefNet(Bilateral Reference Network),是一个显著性分割模型。你给它一张图,它输出一张同样尺寸的灰度遮罩:每个像素一个 0 到 1 之间的数,越接近 1 越像前景,越接近 0 越像背景。然后程序拿这张遮罩去裁原图 —— 遮罩值多少,那个像素就保留多少不透明度。所以它不是"描边抠图",而是逐像素判断,头发丝这种半透明区域也能保留下来。

模型的输入尺寸是固定的 512×512,而且是整图一次推理(不像放大那样要切瓦片)。这带来一个你要知道的代价:

**遮罩的分辨率上限就是 512×512。**源图比这大的话,程序会先把图缩到 512 送进去,拿到遮罩之后再放大回原图尺寸去裁。所以边缘精度受遮罩分辨率限制,而不是模型能力限制 —— 结果面板下方那条附注"遮罩按 512px 计算,放大到 1024px"说的就是这件事。这也是为什么主体占画面比例大一些、边缘更规整的图,抠出来更干净。

推理跑在哪?优先 WebGPU(跑在显卡上),建不起来就自动降到 WASM(跑在 CPU 上),多线程不行再降到单线程,不会直接失败。页面底部会显示当前实际用的后端。这就是前面那个"94 MB 还是 192 MB"的由来 —— fp16 和 fp32 是两套独立的权重文件,从 WebGPU 掉到 WASM 时得重新下一份,这是没法避免的。

还有一件事值得说:换算、合成这些都是在浏览器里做的,图片从头到尾没离开过这台设备。

哪些图效果好,哪些别指望

这节是我觉得最该看的,因为抠图的翻车点比放大集中得多。

效果好:单人半身像、证件照、商品图(主体明确、和背景有一定对比度)、宠物特写。这几类主体显著、边缘清楚,是 BiRefNet 的主场。

别指望它:

  • 一张图里有多个对象 —— 它只会抠最突出的那一个,不会给你抠出一堆散件。

  • 纯风景、没有明确前景 —— 可能直接判定为「没有主体」并给你提示,而不是甩一张几乎全透明的图给你。这个设计我觉得挺厚道。

  • 主体太小、或和背景颜色太接近 —— 效果会明显打折。

  • 超过 40 MB 的图 —— 直接拒收,换张小点的。

还有个"抠空了"的兜底:程序会统计结果里前景像素的占比,如果保留比例低于千分之二,就认为这次抠图没意义,直接报「没有找到明显的主体」,而不是让你下载一张全透明的废图。

遇到这些情况,换一张前景更清晰的图,通常比调参数更有效。

原来的压缩和放大(没变)

这两个工具一点没动。压缩还是拖进去、选格式(AVIF / WebP / JPEG / PNG / JPEG XL)和质量、实时出结果、支持批量:

blog image

放大还是 2~4 倍、瓦片推理、可拖动分割线对比。详细用法分别看前两篇,这里不重复。三个工具现在的能力边界可以这么记:

工具

一次几张

有像素/体积上限吗

要下模型吗

压缩

上百张

无

不用

AI 放大

单张

输出上限 6400 万像素

约 4.9 MB

AI 抠图

单张

输入上限 40 MB

约 94 MB(无 WebGPU 则 192 MB)

部署(和上一篇完全一样)

已经 fork 并部署过的读者,不用重来一遍:打开你自己那个仓库页面,点 Sync fork → Update branch,把最新代码同步过来就行。Cloudflare 检测到新提交会自动重新构建,几分钟后就是最新版本。

从头部署的话,流程一步没变,照抄上一篇:

① fork 到自己的仓库

项目地址:https://github.com/haihaipypy/image-tools

② Cloudflare 导入这个仓库

blog image

③ 填构建命令和输出目录

构建命令填 npm run build,输出目录填 dist。

blog image

④ 添加自定义域名

blog image

两个注意事项和上一篇一样,再抄一遍:

  • 建议加一个环境变量 NODE_VERSION = 22。项目用的构建工具对 Node 版本有要求(^20.19.0 || >=22.12.0),构建镜像自带的版本不一定满足,加这个变量最省事。

  • 别删项目里的 _headers 文件。放大和抠图都要靠它给页面加上两个跨域隔离响应头,才能跑起多线程推理;少了这两个头,没有 WebGPU 的机器会掉到单线程,慢好几倍。Cloudflare 会自动读取这个文件,你什么都不用改。

抠图的权重不随仓库提交(94 MB 到 452 MB 实在塞不进任何静态托管),它是运行时从 HuggingFace 按固定版本号现拉的,所以部署时你什么都不用额外准备。网址也是可换的,代码里把版本钉死了,保证今天跑通的模型明天还是同一个。

结尾

线上地址还是 https://img.1day.vip/ ,现在压缩、放大、抠图三个都在,各自有独立网址:

**最后重点说一句:为了做到全程本地运行、图片不上传,首次使用需要下载本地模型。**压缩不用模型,打开就能用;放大要下约 4.9 MB;抠图要下约 94 MB(没有 WebGPU 的设备是 192 MB)。下载一次、永久缓存,之后秒开,换浏览器或清缓存才会重下。

这笔账我觉得很划算:用一次性的下载,换图片永远不出本机、换不限量的免费使用。处理私人照片、证件照、带敏感信息的截图,或者干脆断网干活,都很踏实。

项目开源(MIT),压缩部分基于 image-tools,抠图模型是 BiRefNet(MIT)。有问题,或者想加别的模型,评论区说一声。

END