概述

IOPaint 是一个免费开源的基于大模型的图片修复工具,可以进行擦除(去水印、抠图、去背景)、修复(将图片变得更清晰)、外画(扩大图片,自动生成扩大后的场景)

它是基于 python 开发,可以使用 pip 进行安装,支持 cpu、gpu 模式启动,并且提供了 webUI 界面,本地启动后在浏览器中就能进行图片操作。同时它也提供了命令行方式,可以进行批量处理多张图片

github 地址:https://github.com/Sanster/IOPaint

官网地址:https://www.iopaint.com

效果(来源于官网)

人脸清晰化

图像清晰化(像素级别增强)

去除背景

动画人物抠图

安装

本次安装 IOPaint 使用 3.10.6 版本的 python 环境

1、创建 python 虚拟环境

创建一个 IOPaint 的部署目录,然后 cmd 进入到目录中创建一个 python 的虚拟环境

python -m venv iopaint-cpu

这时候就能看到文件夹中有一个名为 iopaint-cpu 的文件夹

2、pip 安装 iopaint

# 激活虚拟环境
.\iopaint-cpu\Scripts\activate.bat

# 安装 iopaint
pip install iopaint

等待 pip 安装完成即可

3、创建基础目录结构

继续在 IOPaint 部署目录下,创建 input、output、mask、models 这几个文件夹,后面第 6 步会用到

这时候在部署目录下就有了这些文件夹

iopaint部署目录/
  |-iopaint-cpu/
  |-input/
  |-mask/
  |-models/
  |-output/

4、继续新建一个 win_config.bat 文件,并将下面内容写入

这个脚本用来启动 IOPaint 的配置服务

@echo off

set BASE_DIR=%~dp0

set PATH=C:\Windows\System32;%PATH%

@call %BASE_DIR%\iopaint-cpu\Scripts\iopaint start-web-config --config-file %BASE_DIR%\config.json

PAUSE

5、继续新建一个 win_start.bat 文件,并将下面内容写入

这个脚本用来启动 IOPaint 的 webUI 服务

@echo off

set BASE_DIR=%~dp0

set PATH=C:\Windows\System32;%PATH%

@call %BASE_DIR%\iopaint-cpu\Scripts\iopaint start --config %BASE_DIR%\config.json

PAUSE

6、启动 IOPaint 的配置生成服务

执行 .\win_config.bat ,会启动一个配置服务的 web 页面

主要是下面几个配置

  • Current Model:lama

  • Device:cpu

  • Model download directory(模型保存位置):填上面第 3 步创建的 models 文件夹的绝对路径

  • Input file or directory(批量处理时,输入的图片位置):填上面第 3 步创建的 input 文件夹的绝对路径

  • Output directory(批量处理时,输出的图片位置):填上面第 3 步创建的 output 文件夹的绝对路径

  • Mask directory(批量处理时,保存着每张输入图片对应的掩码图片):填上面第 3 步创建的 mask 文件夹的绝对路径

设置好之后按页面右上角的 "Save configurations",会自动将配置保存到部署目录的 config.json 文件中

至于页面上的其他配置和插件自己有空再慢慢研究尝试吧

保存完之后,可以把配置服务关掉了

问:为什么它会自动将配置保存到部署目录的 config.json 而不是其他文件?

答:回到上面的 win_config.bat 文件里,可以看到启动配置服务的时候加了 --config 参数,指定了启动时加载配置和最终保存配置时的文件位置

7、启动 IOPaint

执行 .\win_start.bat 即可

因为我们在配置中填写了当前模型是 lama,所以第一次启动的时候会自动下载 lama 模型,如果下载不成功,可以手动下载(它依赖的所有模型都可以手动下载!),在它打印的日志里面有 lama 的下载地址和模型保存位置,手动下载完之后将模型移动到指定位置,重启 IOPaint 即可

启动成功后,访问 http://127.0.0.1:8080 就可以愉快的去水印了!

插件

在上面第 6 步的时候,我们看到还有一个配置插件的地方,里面支持了好几个插件,想要开启就把它勾选上即可,别忘了保存(这个配置页面好像有个 bug,保存了之后刷新页面还是显示没勾选的状态)

下面简单总结下它们是干什么用的吧

  • interactive segmentation

    • 可以准确的生成对象模板,比如人物、动物等

    • 依赖模型:sam2.1_hiera_tiny,下载地址 手动下载

  • remove background

    • 可以去掉背景

    • 安装依赖库:pip install rembg onnxruntime

  • anime segmentation

    • 可以用来做动画人物抠图

    • 依赖模型:isnetis.pth,下载地址 手动下载

  • realesrgan

    • 可以让图片分辨率变大,更清晰

    • 安装依赖库:pip realesrgan

    • 依赖模型:realesr-general-x4v3.pth,下载地址 手动下载

  • GFPGAN

    • 可以让人物图像更加清晰

    • 安装依赖库:pip gfpgan

    • 依赖模型:

  • RestoreFormer

    • 用来做面部修复

    • 安装依赖库:pip realesrgan

    • 依赖模型:RestoreFormer.pth,下载地址 手动下载