当前位置: 首页 > article >正文

好用的Docker项目:本地部署IOPaint打造专属在线图片处理工作站

文章目录

    • 前言
    • 1.什么是IOPaint?
    • 2.本地部署IOPaint
    • 3.IOPaint简单实用
    • 4.公网远程访问本地IOPaint
    • 5.内网穿透工具安装
    • 6.配置公网地址
    • 7.使用固定公网地址远程访问
    • 总结

前言

在这个快节奏的时代,一张完美的照片往往能带来意想不到的效果。但有时候,拍到的照片总有些瑕疵或多余元素让人感到不爽:角落里的杂物、意外入镜的路人……这些小问题常常让我们头疼不已。

好消息是,今天我要向大家介绍一个超酷的AI工具——IOPaint!这款免费开源的强大软件不仅能帮你轻松解决这些问题,还能扩展图片内容,让你的照片更加完美。更重要的是,我们将使用在本地Windows系统上部署它,并结合cpolar内网穿透工具实现随时随地查看和管理你的数据中心。

无论你是摄影爱好者、设计师还是普通用户,IOPaint都能成为你的好帮手。接下来,让我们一起看看如何快速轻松地安装并使用这个神器吧!

【视频教程】

1分钟安装轻松去水印神器IOPaint与远程使用

1.什么是IOPaint?

IOPaint 是一个基于深度学习的图像处理工具,它的全称是 “Inpainting with Object Removal”(带有对象移除功能的修复)。IOPaint 的核心功能包括:

  1. 对象移除:你可以轻松地擦除照片中的任何不需要的对象或元素。无论是广告牌、路人还是其他干扰物,只需几笔就能消失无踪。
  2. 图像修补:如果你的照片上有划痕、污渍或其他损坏,IOPaint 能够智能地填补这些区域,恢复原始的视觉效果。
  3. 内容扩展:有时候你可能觉得照片中的某个部分不够大或者不够完整,IOPaint 可以帮你扩展这部分的内容,让画面更加丰富和自然。

2.本地部署IOPaint

我这里演示的是在windows系统安装和运行,运行的环境需要有node.js和Anaconda

node.js下载地址:Node.js — 在任何地方运行 JavaScript

Anaconda下载地址:Anaconda | The Operating System for AI

首先打开左下角Anaconda的终端,创建一个python环境

conda create -n iopaint python=3.12

image-20250116103403937

输入Y确定

image-20250116103528069接着激活环境

conda activate iopaint

image-20250116103552597

先从github上克隆仓库

git clone https://github.com/Sanster/IOPaint.git

image-20250116103754629

进入到项目中

cd IOPaint/web_app

安装前端项目依赖

npm install

image-20250116103819679

再编译前端项目

npm run build

image-20250116103842863

复制编译好的前端项目文件到iopaint/web_app目录

xcopy /E /I dist\ ..\iopaint\web_app\

image-20250116103900083

创建一个配置文件,填写后端IP和端口

echo VITE_BACKEND=http://127.0.0.1:8080 > .env.local

image-20250116103924361

接下来进入到上一级目录里,安装后端项目依赖

cd ..
pip install -r requirements.txt

image-20250116103940821

输入这行命令启动后端服务

python main.py start --model lama --port 8080

image-20250116103955521

重新开启一个终端,进入到项目中

cd IOPaint/web_app

启动前端开发环境

npm run dev

image-20250116104014287

现在,IOPaint已经启动成功了!打开浏览器,输入localhost:5173,就可以看到IOpaint的界面了

image-20250116104046915

3.IOPaint简单实用

打开一张需要处理的照片,直接涂抹需要删除的对象或区域。

image-20250116104129242

IOPaint会自动识别并处理,几秒钟后,你就能看到焕然一新的照片!

image-20250116104143065

4.公网远程访问本地IOPaint

目前我们在本地成功部署了IOPaint,但是如果我们想实现不在局域网下,在公网能够远程访问IOPaint的话,我们就可以使用Cpolar内网穿透来实现公网随时随地访问了!免去了复杂得本地部署过程,只需要一个公网地址直接就可以访问。

5.内网穿透工具安装

下面是安装cpolar步骤:

Cpolar官网地址: https://www.cpolar.com

点击进入cpolar官网,点击免费使用注册一个账号,并下载最新版本的Cpolar。

img

登录成功后,点击下载Cpolar到本地并安装(一路默认安装即可)本教程选择下载Windows版本。

image-20240319175308664

Cpolar安装成功后,在浏览器上访问http://localhost:9200,使用cpolar账号登录,登录后即可看到Cpolar web 配置界面,结下来在web 管理界面配置即可。

img

接下来配置一下IOPaint的公网地址~

6.配置公网地址

登录后,点击左侧仪表盘的隧道管理——创建隧道,

创建一个IOPaint的公网http地址隧道

  • 隧道名称:可自定义命名,注意不要与已有的隧道名称重复
  • 协议:选择http
  • 本地地址:5173(本地访问的地址)
  • 域名类型:免费选择随机域名
  • 地区:选择China VIP

image-20250116105220277

隧道创建成功后,点击左侧的状态——在线隧道列表,查看所生成的公网访问地址,有两种访问方式,一种是http和https。

image-20250116105304209

使用上面的Cpolar生成的任意一个公网地址,在手机或任意设备的浏览器进行登录访问,即可成功看到IOPaint界面。使用了Cpolar的公网域名,无需自己购买云服务器,即可到公网访问IOPaint随便编辑图片啦!

image-20250116105407965

小结

为了方便演示,我们在上边的操作过程中使用了cpolar生成的HTTP公网地址隧道,其公网地址是随机生成的。这种随机地址的优势在于建立速度快,可以立即使用。然而,它的缺点是网址是随机生成,这个地址在24小时内会发生随机变化,更适合于临时使用。如果有长期远程访问本地IOPaint服务的需求,但又不想每天重新配置公网地址,还想地址好看又好记,那我推荐大家选择使用固定的二级子域名方式来远程访问。

7.使用固定公网地址远程访问

登录cpolar官网,点击左侧的预留,选择保留二级子域名,地区选择China top,设置一个二级子域名名称,点击保留,保留成功后复制保留的二级子域名名称,这里我填写的是iopaint,大家也可以自定义喜欢的名称。

image-20250116105528997

保留成功后复制保留成功的二级子域名的名称:iopaint,返回登录Cpolar web UI管理界面,点击左侧仪表盘的隧道管理——隧道列表,找到所要配置的隧道iopaint,点击右侧的编辑:

image-20250116105756238

修改隧道信息,将保留成功的二级子域名配置到隧道中

  • 域名类型:选择二级子域名
  • Sub Domain:填写保留成功的二级子域名:iopaint
  • 地区:选择China top

点击更新(注意,点击一次更新即可,不需要重复提交)

image-20250116105819736

更新完成后,打开在线隧道列表,此时可以看到公网地址已经发生变化,地址名称也变成了固定的二级子域名名称的域名:

image-20250116105940046

最后,我们使用固定的公网https地址在任何浏览器打开访问,可以看到访问IOPaint成功了这样一个固定且永久不变的公网地址就设置好了。

image-20250116110623099

总结

通过本文的介绍和演示,相信你现在对如何在本地Windows系统上部署IOPaint有了清晰的认识,并且了解了cpolar内网穿透工具的强大功能。从此以后,无论你身处何方,都可以随时查看和管理你的数据中心,再也不用担心公网IP或云服务器的问题。


http://www.kler.cn/a/562362.html

相关文章:

  • 京东web 详情 cfe滑块分析
  • 【Elasticsearch】同一台服务器部署集群
  • 从零开始用react + tailwindcs + express + mongodb实现一个聊天程序(三) 实现注册 登录接口
  • HarmonyOS学习第7天: 文本组件点亮界面的文字魔法棒
  • 2025年第16届蓝桥杯嵌入式竞赛学习笔记(十):ADC测量电压
  • 如何实现日志采集以及存储以及问题排查
  • 面试-JVM:JVM的组成及作用
  • 三品PDM管理系统:企业产品数据管理的“智慧大脑”,如何破解安全隐私难题?
  • 微信小程序开发中CSS书写常见问题及最佳实践
  • Node.js 内置模块简介(带示例)
  • 《零基础学会!如何用 sql+Python 绘制柱状图和折线图,数据可视化一看就懂》
  • Vue 异步组件的加载策略
  • 故障诊断 | Matlab实现基于DBO-BP-Bagging多特征分类预测/故障诊断
  • 22、《Spring Boot消息队列:RabbitMQ延迟队列与死信队列深度解析》
  • AcWing 蓝桥杯集训·每日一题2025
  • Part-DB部署
  • redis检测大key
  • 【够用就好006】-PC桌面管理ECS服务器的实操步骤
  • 【C++篇】树影摇曳,旋转无声:探寻AVL树的平衡之道
  • FastAPI高级特性(二):错误处理、中间件与应用生命周期