news 2026/9/26 2:54:48

浏览器里修图:WebGPU 图像修复工具 inpaint-web 上手记

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
浏览器里修图:WebGPU 图像修复工具 inpaint-web 上手记

浏览器里修图:WebGPU 图像修复工具 inpaint-web 上手记

【免费下载链接】inpaint-webA free and open-source inpainting & image-upscaling tool powered by webgpu and wasm on the browser。| 基于 Webgpu 技术和 wasm 技术的免费开源 inpainting & image-upscaling 工具, 纯浏览器端实现。项目地址: https://gitcode.com/GitHub_Trending/in/inpaint-web

inpaint-web 是一款纯浏览器端运行的 WebGPU 图像修复工具,定位很直接:把照片里不想要的部分涂掉,模型自动补全;另外还支持 4 倍超分辨率放大。整个过程不装任何软件,图片也完全不离开本机。我把它拉到本地折腾了一遍,体验比预期要好。

打开就能用:一条命令起本地图像修复服务

不需要任何环境配置,克隆下来跑两条命令就行:

git clone https://gitcode.com/GitHub_Trending/in/inpaint-web cd inpaint-web && npm install && npm run start

浏览器访问它输出的地址。界面非常克制:中间一块画布用来预览图片,旁边一排按钮管画笔大小、原图对比、撤销、4 倍放大和下载,旁边还有几张 示例图片目录 里的图可以直接试。

整个界面就是一块画布加几个按钮,用过修图软件的人零学习成本

第一次运行有一件事要有心理准备:页面会从境外存储下载两个 ONNX 模型文件(修复模型约 30MB,放大模型约 70MB),需要能稳定连出去的网络。下过一次之后会缓存在本地 IndexedDB 里,下次打开不再重复下载。

涂一笔,把照片里的人抹掉

🖌️ 我随手挑了一张示例图:一双鞋的产品图。把画笔调到合适的大小,直接在不想要的东西上涂抹,鼠标跟着一个圆形光标,涂多涂少一目了然。涂完等几秒,进度条走完,涂抹区域就按周围纹理补全了,东西干净地消失。

public/examples/ 里的示例图,挑个面积小的跑,几秒出结果

不满意就点「撤销」重来,历史是按次记录的,涂错一笔不会前功尽弃;「原图」按钮可以在当前结果和原图之间切换,方便检查边缘过渡。这套撤销历史是容易被忽略、但实际每次都会用到的细节。

点一下 4 倍放大,把小图变大图

第二个功能是超分放大:点「4 倍放大」后进度条一块一块地走(后面会解释为什么是一块一块的)。完成后输出的图宽高各放大 4 倍,边缘明显更锐,拿来放大老照片或者需要撑大的产品图,基本够用。

左为超分结果,右为原图,边缘清晰度肉眼可见

为什么它能跑在浏览器里

看源码会发现,不神秘,主要是两件事。

第一件是硬件能力自动检测。页面加载时会先检查navigator.gpu能不能申请到适配器:能,就把模型计算交给 WebGPU,让 GPU 并行处理成千上万个像素,像把一堆卡片分给很多人同时整理,而不是一个人排队一张张翻;不能,就自动退回 WASM 路径,并且浏览器支持 SIMD 和共享内存多线程的话就一并打开,跑在 CPU 上——比 GPU 慢,但能用,不会直接罢工。

第二件是预处理和分块。图片进模型前,由 opencv-ts(OpenCV 的 WASM 版)做通道重排、遮罩二值化这些脏活。修复模型可以整图一次跑完,放大模型则不同:它把图切成 64×64 的小块逐块推理再拼回,块与块之间留 6 像素重叠来避免拼缝。这么做的好处是大图也不会把内存撑爆,坏处是进度只能一块一块地报。

适合谁,不适合谁

适合:偶尔需要去水印、去路人、去杂物,或者想把小图放大的场景。不用打开重型修图软件,也不用把图片上传到任何在线服务,本地隐私这块是实打实的安心。

不适合:一次处理几百张图的批处理需求(目前没有队列功能);超大图片反复多轮放大(内存压力明显);以及不支持 WebGPU 的旧浏览器——会回落到 CPU,速度就完全是另一个量级了。

⚠️ 再提醒一次:首次使用的模型文件来自境外存储,网络连不出的话会卡在这一步。

仓库地址就是上面那条 clone 命令里的。如果跑出问题或者有功能想法,欢迎直接去 Issue 里反馈。

【免费下载链接】inpaint-webA free and open-source inpainting & image-upscaling tool powered by webgpu and wasm on the browser。| 基于 Webgpu 技术和 wasm 技术的免费开源 inpainting & image-upscaling 工具, 纯浏览器端实现。项目地址: https://gitcode.com/GitHub_Trending/in/inpaint-web

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/26 2:53:42

SQL Server数据库实验实战:约束、触发器与游标避坑指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/26 2:52:36

SoLab AI逆向工作台实战:DEX/SO/Flutter分析一体化

做安卓逆向的朋友应该都有过这样的经历:桌面上堆着七八个工具,Jadx看DEX、IDA看SO、Frida做动态验证、Apktool拆包重打包,每个工具都有自己的操作习惯和依赖环境,项目一多光是在工具之间来回切换就消耗掉大半精力。我第一次接触So…

作者头像 李华
网站建设 2026/9/26 2:51:34

oh-my-claudecode 配 TaoToken:Claude Code 专属编程助手 settings.json 骨架

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/26 2:49:39

二维码扫进来不知道用户从哪来:小程序场景值与渠道参数追踪实战

二维码扫进来不知道用户从哪来:小程序场景值与渠道参数追踪实战适用读者:做过带参二维码投放、被运营追着问「这批扫码用户到底从哪个渠道来的」的小程序开发者;正在设计渠道归因表的后端;以及所有被 scene 参数坑过的同行。TL;DR…

作者头像 李华
网站建设 2026/9/26 2:49:28

换了 Mac 之后,我最舍不得的居然是这个截图工具?

各位伙伴们,大家中秋节快乐,我是中秋节还加班的顾北!最近这两天不是刚换了 MacBook 嘛,所以这段时间一直在倒腾各种 Mac 上的提效工具。前几天也给大家分享了几个我自己觉得还不错的:刘海工具:Atoll给 Dock…

作者头像 李华
网站建设 2026/9/26 2:49:10

群晖硬盘兼容性怎么解锁:一步支持第三方硬盘

群晖硬盘兼容性怎么解锁:一步支持第三方硬盘 【免费下载链接】Synology_HDD_db Add your HDD, SSD and NVMe drives to your Synologys compatible drive database and a lot more 项目地址: https://gitcode.com/GitHub_Trending/sy/Synology_HDD_db 痛点&a…

作者头像 李华