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

免费开源AI修图工具IOPaint:三步抹掉照片中的路人、水印和文字

免费开源AI修图工具IOPaint:三步抹掉照片中的路人、水印和文字

【免费下载链接】IOPaintImage inpainting tool powered by SOTA AI Model. Remove any unwanted object, defect, people from your pictures or erase and replace(powered by stable diffusion) any thing on your pictures.项目地址: https://gitcode.com/GitHub_Trending/io/IOPaint

上周朋友发来一张聚会合照,八个人站得整整齐齐,唯独背景里闯进一个端着奶茶的陌生人。他苦笑着说:"要是能把这哥们P掉就好了。"放在以前,这活儿得求人开Photoshop,现在我用一个叫 IOPaint 的免费开源AI修图工具,60秒就处理完了,而且完全看不出痕迹。

这篇文章带你从零开始,用三步完成"装好工具→抹掉路人→批量清文字水印"的完整实战。全程不需要任何修图基础,所有操作在浏览器里点鼠标就能完成。

那张合照里,站着一个多余的陌生人

先直观感受一下AI修图的威力。下面这两张图,左图是原图,右图是 IOPaint 用 LaMa 模型处理后的结果:

背景里那位女士被干净利落地移除了,墙面、地面、光线都保持了自然过渡,几乎看不出处理痕迹。这就是 IOPaint 最核心的能力——图片修复(Image Inpainting)。

为什么AI抹掉的区域能"无痕"复原

简单来说,IOPaint 不是把涂抹区域"涂掉",而是让AI模型根据涂抹区域周围的像素,推断出这里"原本应该长什么样"。

想象你在玩拼图:中间缺了一块,你看着四周的图案纹理,就能大致猜出缺的那块长什么样。AI修图也是这个逻辑,只不过它的"猜测"精度远高于人类——它会分析墙面的纹理走向、光线的明暗变化,甚至远处的透视关系,然后生成一个与周边像素高度一致的补丁。

模型层面对应的是 LaMa、MAT、ZITS 等专门为消除设计的SOTA模型,其中 LaMa 以速度快、效果好、内存占用低著称,也是我们接下来的默认选择。想研究实现细节的话,可以从源码目录的 iopaint/model/lama.py 看起。

第一步:10分钟装好免费开源的AI修图工具

IOPaint 完全免费、开源,支持本地部署,你的图片不会上传到任何服务器,隐私有保障。安装只需要两条命令:

pip3 install iopaint
iopaint start --model=lama --device=cpu --port=8080

第一条命令安装本体,第二条命令用 LaMa 模型启动服务。等待模型自动下载完成后,在浏览器打开 http://localhost:8080 就能看到修图界面了。

如果你有NVIDIA显卡想用GPU加速,可以先安装对应版本的PyTorch:

pip3 install torch==2.1.2 torchvision==0.16.2 --index-url https://download.pytorch.org/whl/cu118

第二步:画笔一抹,路人当场消失

服务启动后,整个修图流程只有四步:

  1. 上传需要处理的图片
  2. 用画笔工具涂抹掉想移除的区域
  3. 选择模型,点击处理
  4. 下载修复后的图片

先看一个移除多余物体的例子。左图是挂满纸灯笼的庆典场地,右图是 IOPaint 移除部分灯笼后的效果:

涂抹时有两个小技巧可以记一下 💡:一是尽量精确框住目标,不用涂得太大;二是对复杂背景,可以把物体边缘也轻轻带一笔,让AI有更充分的参考信息。处理完成后,把鼠标移到图上就能对比前后效果,满意就一键保存。

第三步:批量清理水印与文字,一条命令搞定

除了在网页上手动画笔,IOPaint 还支持纯命令行的批量处理,特别适合批量清理商品图水印、批量去掉截图文字。

先看一组水印清理效果——画面上的图库水印被完全清除,图片恢复原始状态:

批量处理只需要一条命令 👉:

iopaint run --model=lama --device=cpu \ --image=/path/to/image_folder \ --mask=/path/to/mask_folder \ --output=output_dir

其中--image是存放原图的文件夹,--mask是对应的蒙版文件夹(蒙版用来标记要清除的区域),--output是结果输出目录。准备好蒙版后,几百张图片也可以一口气处理完。

文字去除同样在行,游戏海报上的标题文字可以被完美移除:

想"换"掉物体?扩散模型帮你画新的

上面用的 LaMa 属于"消除类"模型——它只让被涂抹的区域融入背景,不会生成新内容。如果你想做更有创意的操作,比如把照片里的旧沙发"替换"成新沙发、把小猫涂掉后"生成"一只小狗,就需要切换到扩散模型(Diffusion Model)。

IOPaint 内置了对 Stable Diffusion 系列模型的支持,启动时换一个模型名即可:

iopaint start --model=runwayml/stable-diffusion-inpainting --device=cpu

支持的扩散模型相当丰富:PowerPaint 支持物体替换与扩图(把图片向外扩展生成新画面)、AnyText 专门处理文字生成与擦除、Paint-by-Example 可以根据你给的示例图片生成新物体。启动后可以在网页界面直接切换模型,扩散模型通常需要写提示词(prompt),比如想生成一只狗,就在输入框里写上 "a dog"。

装上这些插件,修图能力直接翻倍

IOPaint 的插件系统让它的能力远不止"修复"两个字,启动服务时加上对应参数即可启用:

插件用途启动参数
交互式分割用Segment Anything精确框选物体--enable-interactive-seg
背景移除一键抠出主体,生成透明PNG--enable-remove-bg
人脸修复用GFPGAN/RestoreFormer修复模糊人脸--enable-gfpgan
超分辨率用RealESRGAN提升图片清晰度--enable-realesrgan

例如同时启动分割和背景移除插件:

iopaint start --model=lama --enable-interactive-seg --enable-remove-bg

插件和修复功能可以组合使用:先用交互式分割精确选中要移除的人物,再交给修复模型处理,比手动涂抹精确得多。

低配电脑也能跑:内存优化三板斧

没有独立显卡、只有CPU的电脑也不用担心,IOPaint 提供了几个省内存的实用参数 ⚡:

iopaint start --model=lama --low-mem --cpu-offload
  • --low-mem:开启注意力切片和VAE分块,显著降低内存占用
  • --cpu-offload:把模型权重放在内存按需加载,大幅减少显存占用
  • --device=mps:Apple Silicon 用户可在 Mac 上开启GPU加速

如果你的扩散模型生成结果总是发黑或发绿,可以加--no-half使用完整精度。模型默认下载到缓存目录,也可以用--model-dir指定存放位置,方便离线复用。

现在就去试试你的第一张AI修图

从安装到完成第一张图,整个过程不到10分钟,完全免费、本地运行、无需联网上传图片。无论你是想清掉照片里的路人、批量去水印,还是想用SD模型做创意替换,IOPaint 都能给你专业级的效果。

动手试试吧 🚀:打开终端,执行pip3 install iopaintiopaint start --model=lama --device=cpu --port=8080,然后随便挑一张带瑕疵的照片,体验一下"画笔一抹,烦恼消失"的乐趣。想从源码开始折腾的话,也可以 clone 完整仓库:git clone https://gitcode.com/GitHub_Trending/io/IOPaint

【免费下载链接】IOPaintImage inpainting tool powered by SOTA AI Model. Remove any unwanted object, defect, people from your pictures or erase and replace(powered by stable diffusion) any thing on your pictures.项目地址: https://gitcode.com/GitHub_Trending/io/IOPaint

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

http://www.cnnetsun.cn/news/4105485.html

相关文章:

  • STA静态时序检查笔记整理
  • BenchmarkTools.jl 可视化:用 BenchmarkPlots 让性能结果一目了然
  • Kindle漫画转换工具KCC完整指南:6个步骤让整卷漫画在电子墨水屏上完美呈现
  • 《YOLO系列模型的多模态项目》配置使用教程(必看内容)
  • Python数据可视化科技图表绘制系列教程(四)
  • 单片机毕业设计-基于 STM32 单片机的心率血氧体温监测报警系统设计 基于 STM32 的便携式人体体征采集与跌倒检测设备开发(023703)
  • AZ-400管道风格对比:YAML管道vs经典管道、托管代理vs自托管代理,到底怎么选?
  • 5步搭建DNF私服完整指南:Docker容器化部署地下城与勇士服务器实战
  • LTX-2.5 Python API编程实战:用ltx-pipelines构建你的自定义视频生成应用
  • 如何读懂 BenchmarkTools.jl 基准测试报告?Trial 结果完整解读
  • BOSL贝塞尔曲线进阶实战:自由曲面、旋转体与沿路径挤出技巧
  • AI论文软件哪个最好?2026亲测
  • ai免费写论文实用吗?实测3款AI写作辅助软件,结果有高有低!
  • APKMirror 客户端怎么用?5 分钟掌握安卓应用安全下载的完整流程
  • 用 shadcn-svelte 搭建 Svelte 项目 UI:5 步从初始化到交付
  • 2019款帕杰罗:从硬派越野到全场景生活伙伴的进化之路
  • OpenCore Legacy Patcher实战指南:让老Mac免费吃上最新macOS的完整攻略
  • Linux 罗技设备驱动配置 3 步走:用 LogiOps 开源驱动唤醒你的 MX Master
  • OpenLane-V2 展望:无图驾驶时代的数据与基准新机遇
  • 桌面图标堆成山?用 NoFences 给桌面分区,找文件快 3 倍
  • Rekognition 误判客户年龄差20岁?我用AWS深度学习课程重学图像分析
  • SoundCloud音乐下载终极指南:scdl一条命令搞定单曲、歌单与收藏归档
  • 深入 grunt-wiredep 源码:依赖注入顺序究竟如何确定?
  • 抖音批量下载工具保姆级教程:去水印、保画质、博主主页一键搬空,从安装到进阶一篇搞定
  • Qwen3.8-27B-ABLITERATED-GGUF多模态实战指南:让本地模型读懂图片与视频
  • STM32简单的串口Bootloader入门
  • FastOCR:基于OpenVINO的免费离线智能表格识别工具实测
  • 挑选靠谱微信投票小程序,重点看这几项核心能力
  • hcache实战教程:10个必会命令参数玩转页缓存分析
  • 如何为 vim-dogrun 贡献代码?从提交 PR 到通过 CI 的完整流程