Inpaint-Web:纯浏览器端实现的开源图像处理工具

ops/2024/11/19 14:53:35/

之前在刷短视频的时候,经常看到一些情侣在景区拍照,结果被路人“抢镜”。有时男朋友会拿出手机,帮忙把那些路人“P”掉,简直是既贴心又有趣。最近我在逛 GitHub 时,发现了一个可以在浏览器端删除照片中部分内容的纯前端实现的开源项目,觉得非常酷,今天就来和大家分享一下。
42a7f4408b03ef9a87017eeba1a3e402.jpg

项目介绍

inpaint-web是一个基于 Webgpu 技术和 wasm 技术的免费开源 inpainting & image-upscaling 工具, 纯浏览器端实现。

演示地址:https://inpaintweb.lxfater.com/

github地址:https://github.com/lxfater/inpaint-web

该项目目前在github上已有5.1k star

Snipaste_2024-11-18_20-50-19.png

项目启动

我们本地使用的node版本是18.0.0,我们从github上克隆下来代码后执行

npm install
npm run start

即可启动项目,启动之后访问localhost:5173即可。
Snipaste_2024-11-18_21-00-08.png

Docker部署项目

如果我们自己想要私有化部署的话我们也可以部署到自己的服务器上。

如果作者提供的Dockerfile打包有问题的话可以使用博主的这个Dockerfile文件打包。

Dockerfile

FROM node:18 as builder
WORKDIR /usr/src/app
COPY . ./
RUN npm config set registry  https://registry.npmmirror.com
RUN npm install
EXPOSE 5173
CMD [ "npm", "run", "start" ]

使用以下命令构建镜像

docker build -t xj/inpaint-web:1.0.0 .

如果你不想构建镜像的话也可以使用我构建好的registry.cn-hangzhou.aliyuncs.com/xjpublic/inpaint-web:latest

构建完镜像之后在部署目录下创建docker-compose.yml文件

docker-compose.yml

version: '3.8'
services:inpaint:image: registry.cn-hangzhou.aliyuncs.com/xjpublic/inpaint-web:latestcontainer_name: inpaintports:- "5173:5173"restart: always

使用以下命令启动项目

docker-compose up -d 

到此,如果没有啥意外的话我们的项目就部署成功了。

使用

在浏览器中打开地址访问 192.168.10.20:5173

注意:第一次打开的时候需要连接国际互联网,需要下载一次30MB大小模型文件,修复也需要下载一个大概70M的模型文件
Snipaste_2024-11-18_21-18-37.png

下载完就可以使用了
Snipaste_2024-11-18_21-22-39.png

效果对比
1731936538969.jpg

图片高清修复比较慢,我们此处就不做介绍了。

总结

Inpaint-Web 通过 WebGPU 和 WASM 技术的结合,成功实现了一个高效、易用的纯浏览器端图像修复与放大工具。它不仅为用户提供了强大的图像处理能力,还通过开源的方式降低了技术门槛,使得更多人能够在浏览器中进行专业级的图像编辑。

尽管目前市面上已有许多 AI 图片助手能够高效完成图像处理,Inpaint-Web 仍为我们提供了一个值得选择的替代方案。


http://www.ppmy.cn/ops/135003.html

相关文章

大三学生实习面试经历(1)

最近听了一位学长的建议,不能等一切都准备好再去开始,于是就开始了简历投递,恰好简历过了某小厂的初筛,开启了线上面试,记录了一些问题: (通过面试也确实了解到了自己在某些方面确实做的还不够…

控制器ThinkPHP6

五、控制器中对数组值的返回 在做接口服务时,很多时候回使用数组作为返回值,那么数组如何返回成 json呢? 在 tp6 中返回json 很简单,直接使用 json 进行返回即可,例如: public function index(){$resarra…

跨平台WPF框架Avalonia教程 十

如何绘制图形 内容正在准备中。 图形​ Avalonia引入了一个广泛、可伸缩、灵活的图形功能集,具有以下优势: 分辨率无关和设备无关的图形。Avalonia图形系统的基本测量单位是设备无关像素,即1/96英寸,与实际屏幕分辨率无关&…

Javascript高级篇 - 异步编程保姆级教程 Promise Async Await generator

Promise 1)状态不可逆性: let p1 new Promise((resolve, reject) > {resolve(success)reject(fail) }) console.log(p1, p1)let p2 new Promise((resolve, reject) > {reject(success)resolve(fail) }) console.log(p2, p2)let p3 new Promis…

汽车资讯新动力:Spring Boot技术驱动

2相关技术 2.1 MYSQL数据库 MySQL是一个真正的多用户、多线程SQL数据库服务器。 是基于SQL的客户/服务器模式的关系数据库管理系统,它的有点有有功能强大、使用简单、管理方便、安全可靠性高、运行速度快、多线程、跨平台性、完全网络化、稳定性等,非常…

【青牛科技】D7312带 ALC 双通道前置放大器电路

概述: D7312是一块双极性集 成电路。可用于小型收录机中作前置放大电路。 主要特点: ● 含ALC电路和ALC检波电路。 ● 外接元件少。 ● 增益高,噪声低。 ● 静态电流小 ● 电源开关冲击噪音小、 反应快 ● 具有过热保护功能 ● 封装形式&…

【Python绘图】两种绘制混淆矩阵的方式 (ConfusionMatrixDisplay(), imshow()) 以及两种好看的colorbar

在机器学习领域,混淆矩阵是一个评估分类模型性能的重要工具。它不仅展示了模型预测的准确性,还揭示了模型在不同类别上的表现。本文介绍两种在Python中绘制混淆矩阵的方法:ConfusionMatrixDisplay() 和 imshow(),以及两种好看的co…

分布式cap理论学习

【分布式】CAP理论详解 一致性(Consistency) 代表数据在任何时刻,任何分布式节点,看到的都是符合预期的。有点类似于幂等,无论访问哪个节点,得到结果数据一致。 可用性(Availability) 强调的是任意时刻一定能读到数据&#xff…