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

news/2025/2/26 13:14:06

文章目录

    • 前言
    • 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.niftyadmin.cn/n/5868742.html

相关文章

【探寻C++之旅】第六章:STL

请君浏览 前言1. STL简介2. auto和范围for2.1 auto关键字2.2 范围for 3. string类3.1 string类对象的常见构造3.2 string类对象的容量操作3.3 string类对象的访问及遍历操作3.4 string类对象的修改操作3.4 string类非成员函数3.6 vs下string的结构 4. vector4.1 vector的构造4.…

Python 3.11 69 个内置函数(完整版)

一、数学与数值运算(12个) 函数 说明 示例 abs(x) 绝对值 abs(-5)→ 5 divmod(a, b) 返回(a//b, a%b) divmod(7,3)→ (2,1) max(iterable) 最大值 max([1,2,3])→ 3 min(iterable) 最小值 min([1,2,3])→ 1 pow(a, b) a^b(等…

10道Redis常见面试题速通

引言 本系列聚焦频率最高的面试题,用最简洁的文字表达中心思想,速通面试 1、Redis持久化数据和缓存怎么做扩容? 如果Redis被当做缓存使用,使用一致性哈希实现动态扩容缩容。如果Redis被当做一个持久化存储使用,必须使…

MFC笔记:本专栏课件

专栏导航 上一篇:在VS2019里面,调整代码字体大小 回到目录 下一篇:无 本节前言 在之前的讲解里面,我讲解了 Visual Studio 软件的一些个基础操作步骤。从本节开始,我们进入预备章。 本节内容,属于是 …

谈谈 ES 6.8 到 7.10 的功能变迁(4)- 聚合功能篇

这一篇我们继续了解 ES 7.10 相较于 ES 6.8 新增的聚合方法。 Rare Terms 聚合 功能说明 用于聚合查询出字段中的稀有项。ES 常见的统计方法是使用 term 查询的正向排序,但是在大数据量和高基数的数据分布场景下会出现 unbounded 错误。Rare 聚合弥补了这个场景的…

东信营销科技巨额补贴仍由盈转亏:毛利率大幅下滑,现金流告急

《港湾商业观察》施子夫 近期,东信营销科技有限公司(以下简称,东信营销科技)递表港交所,联席保荐机构为海通国际和中银国际。 东信营销科技的国内运营主体为深圳市东信时代信息技术有限公司。尽管期内收入规模有所提…

Centos主机基础设置和网络网卡设置,安装ansible、docker(修改ip、uuid、主机名、关闭防火墙selinux和networkmanager)

克隆主机 启动主机 查看ip地址 修改ip地址和UUID更换UUID uuidgen生成UUID 修改ip地址 sed -i ‘/IPADDR/cIPADDR10.1.1.10’ /etc/sysconfig/network-scripts/ifcfg-ens33 也可以直接将58替换成10 sed -i ‘/IPADDR/s/58/10/’ /etc/sysconfig/network-scripts/ifcfg-en…

基于YOLO11深度学习的苹果叶片病害检测识别系统【python源码+Pyqt5界面+数据集+训练代码】

《------往期经典推荐------》 一、AI应用软件开发实战专栏【链接】 项目名称项目名称1.【人脸识别与管理系统开发】2.【车牌识别与自动收费管理系统开发】3.【手势识别系统开发】4.【人脸面部活体检测系统开发】5.【图片风格快速迁移软件开发】6.【人脸表表情识别系统】7.【…