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

之前在刷短视频的时候,经常看到一些情侣在景区拍照,结果被路人“抢镜”。有时男朋友会拿出手机,帮忙把那些路人“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.rhkb.cn/news/474510.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

IDEA2023 SpringBoot整合Web开发(二)

一、SpringBoot介绍 由Pivotal团队提供的全新框架,其设计目的是用来简化Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。SpringBoot提供了一种新的编程范式,可以更加快速便捷…

技术速递|Microsoft.Extensions.VectorData 预览版简介

作者:Luis Quintanilla - 项目经理 排版:Alan Wang 我们很高兴推出 Microsoft.Extensions.VectorData.Abstractions 库,该库现已提供预览版。 正如 Microsoft.Extensions.AI 库为使用 AI 服务提供了一个统一层一样,此包为 .NET 生…

React解决保存less文件后会自动生成css文件的方法

背景:在项目中使用了less,用的是vscode中esay less插件,但在每次保存.less文件时,都会在对应的同级文件夹内生成一个.css文件,如何避免这样的情况呢? 解决办法:在同级目录下的.vscode文件夹&…

初级数据结构——栈与队列的互相实现

目录 前言一、用栈实现队列操作:c代码模版经典例题 二、用队列实现栈操作:c代码模版经典例题 三、总结四、结语 前言 通过我之前的作品已经初步理解了栈和队列的数据结构,这期我们来学习如何实现这两个数据结构的互相转换。在计算机科学中&a…

Qt的一个基本用户登录界面编写|| 从0搭建QT的信号与槽的应用案例 ||Qt样式表的应用

目录 1.新建1个qt项目,基类选中QWidget 2.ui文件布局 3.头文件 3.1 explicit的作用 具体解释 示例 4.cpp源文件 5.信号与槽的应用 6.qt实现效果 7.qt样式表的应用 1.新建1个qt项目,基类选中QWidget 2.ui文件布局 3.头文件 #ifndef WIDADMINLO…

【Apache Paimon】-- 2 -- 核心特性 (0.9.0)

目录 1、实时更新 1.1、实时大批量更新 1.2、支持定义合并引擎 1.3、支持定义更新日志生成器 2、海量数据追加处理 2.1、append table 2.2、快速查询 3、数据湖功能(类比:hudi、iceberg、delta) 3.1、支持 ACID 事务 3.2、支持 Time…

webpack配置

4-3vue-loader测试_哔哩哔哩_bilibili 一.新建文件夹vue_todo,vscode打开 二.ctrl打开终端,输入npm init -y,快速生成一个默认的package.json文件 之后左边出现项目初始化文件package.json 三.接下来需要webpack完成打包,所以安装…

5.STM32之通信接口《精讲》之USART通信---实验串口接收程序

根据上节,我们一已经完成了串口发送程序的代码,并且深入的解析探索了串口的原理,接下来,Whappy小编将带领大家进入串口接收程序的探索与实验,并将结合上一节串口发送一起来完成串口的发送和接收实验。 上来两张图 上图…

leetcode 扫描线专题 06-leetcode.836 rectangle-overlap 力扣.836 矩形重叠

题目 矩形以列表 [x1, y1, x2, y2] 的形式表示,其中 (x1, y1) 为左下角的坐标,(x2, y2) 是右上角的坐标。 矩形的上下边平行于 x 轴,左右边平行于 y 轴。 如果相交的面积为 正 ,则称两矩形重叠。 需要明确的是,只在…

ASP.NET MVC宠物商城系统

该系统采用B/S架构,使用C#编程语言进行开发,以ASP.NET MVC框架为基础,以Visual Studio 2019为开发工具,数据库采用SQL Server进行保存数据。系统主要功能包括登录注册、宠物展示、个人中心、我的订单、购物车、用户管理、宠物类别…

最优化方法_罚函数法例题

1 外点罚函数 算法1 外点罚函数法 给定初点,初始罚因子,放大系数,允许误差,置k1。以为初始点,求解无约束问题得最优解。如果,则停止计算,为约束问题的近似最优解;否 则,增大罚因子,令…

python调用MySql保姆级教程(包会的)

目录 一、下载MySql 二、安装MySql 三、验证MySql是否OK 1、MySQL控制台验证 2、命令提示符cmd窗口验证 四、Python调用MySql 4.1 安装pysql 4.2 使用pysql 4.2.1、连接数据库服务器并且创建数据库和表 4.2.2 、将人脸识别考勤系统识别到的数据自动填入到数据库的表单中…

【鸿蒙生态崛起,开发者有哪些机遇与挑战?】HarmonyOS NEXT 引领数字化未来

文章目录 前言一、HarmonyOS NEXT 特点与升级二、全面突破操作系统核心技术三、鸿蒙生态全面守护用户隐私四、鸿蒙生态的崛起与开发者机遇五、全新鸿蒙生态引领数字化未来小结 前言 鸿蒙系统不断发展,有与安卓、iOS 形成三足鼎立之势,且其在智能手机、智…

ssh无法连接Ubuntu

试了多次ssh都无法连接,明明可以上网 网卡、防火墙、端口都没有问题,就是连接不上 结果是这个版本Ubuntu镜像默认没有安装ssh服务 安装SSH服务:apt-get install openssh-server 开启SSH服务:/etc/init.d/ssh start 就可以连接…

基于Java Springboot外卖平台系统

一、作品包含 源码数据库设计文档万字PPT全套环境和工具资源部署教程 二、项目技术 前端技术:Html、Css、Js、Vue、Element-ui 数据库:MySQL 后端技术:Java、Spring Boot、MyBatis 三、运行环境 开发工具:IDEA/eclipse 数…

vue2动态导出多级表头表格

需求:导出多级表格,如下,每个人名对应的是不同的城市金钱和年龄,日期占俩行,需要根据数据进行动态展示 1.效果 2.关键代码讲解 2.1数据源 2.2所需插件 npm install xlsx 2.3关键代码 创建name组和date组&#xff0c…

散户持股增厚工具:智能T0算法交易

最近市场很多都说牛市,但是大多数朋友怎么来的又怎么吐出去了。这会儿我们用T0的智能算法交易又可以增厚我们的持仓收益。简单来说,就是基于用户原有的股票持仓,针对同一标的,配合智能T0算法,每天全自动操作&#xff0…

独立开发:一人公司模式下副业产品的全流程

在数字经济的浪潮下,越来越多的开发者选择成为自由职业者或创立一人公司,通过副业产品开发实现个人价值与经济收益的双重提升。本文将围绕一人公司模式下副业产品的设计、开发、运营及变现落地全流程,提供一套实战指南,帮助有志于…

SD模型微调之Textual Inversion和Embedding fine-tuning

​ 🌺系列文章推荐🌺 扩散模型系列文章正在持续的更新,更新节奏如下,先更新SD模型讲解,再更新相关的微调方法文章,敬请期待!!!(本文及其之前的文章均已更新&a…

【Vue笔记】基于vue3 + element-plus + el-dialog封装一个自定义的dialog弹出窗口组件

这篇文章,介绍一下如何使用vue3+element-plus中的el-dialog组件,自己封装一个通用的弹出窗口组件。运行效果如下所示: 目录 1.1、父子组件通信 1.2、自定义VDialog组件(【v-model】模式) 1.2.1、编写VDialog组件代码 1.2.2、使用VDialog组件 1.2.3、运行效果 1.3、自…