ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

IOPaint:开源AI图片修复完整实战指南,从本地部署到批量处理

IOPaint:开源AI图片修复完整实战指南,从本地部署到批量处理 IOPaint开源AI图片修复完整实战指南从本地部署到批量处理【免费下载链接】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/IOPaintIOPaint 是一个免费开源的 AI 图片修复工具核心能力是图片修复inpainting与图片扩展outpainting用画笔圈出水印、路人、多余物体交给 AI 自动补全背景更进一步还能借助 Stable Diffusion 系列扩散模型把圈出的区域替换成你想要的内容。工具完全本地运行支持 CPU、NVIDIA 显卡和 Apple Silicon不依赖任何在线服务。 先跑起来三条命令本地部署IOPaint 通过 pip 分发安装过程很简单。下面这组命令在普通笔记本上即可执行# 安装主程序 pip3 install iopaint # 启动本地服务指定 lama 擦除模型跑在 CPU 上监听 8080 端口 iopaint start --modellama --devicecpu --port8080启动后浏览器打开http://localhost:8080就是完整的 WebUI左侧画笔涂抹出掩码标记要处理的像素区域右侧面板切换模型、调整参数修复结果自动保存到输出目录。首次启动时模型权重会自动下载如果不想用默认的缓存目录可以在命令后追加--model-dir指定存放路径。有独立显卡时先安装 CUDA 版本的 PyTorch再把启动命令里的--devicecpu改成--devicecuda扩散类模型的生成速度会有数量级差距pip3 install torch2.1.2 torchvision0.16.2 --index-url https://download.pytorch.org/whl/cu118 iopaint start --modelrunwayml/stable-diffusion-inpainting --devicecuda另外两个实用的全局参数值得认识--input可把指定文件夹挂进内置的文件管理器方便直接浏览选图--output-dir则让每张修复完的图片自动落盘到指定目录。 修复效果前后对比下面几组对比全部来自仓库内的示例图片直观感受不同场景下的实际表现。水印去除——左下角的斜排水印被完整抹掉草地纹理没有明显断裂多余物体移除——画面右侧多出的物件被消除背景衔接自然人物移除——背景中不需要的路人被去掉场景补全后主体更突出文字擦除——图中的文字内容被清除底图颜色过渡平滑漫画修复——对线稿和色块区域的破损做修补适合漫画扫描图的整理✨ 选模型的两个思路擦除类还是扩散类IOPaint 内置的模型分两大类理解这个区别基本就理解了全部用法。擦除类模型只做一件事把掩码区域按周围内容自然补全不需要提示词速度快CPU 上就能用。内置的有lama默认推荐、ldm、zits、mat、fcf、manga漫画优化版、cv2传统算法兜底、migan等。日常去水印、去杂物选lama就够。扩散类模型基于 Stable Diffusion 体系理解提示词因此能按描述生成内容用于替换物体、图片外扩outpainting、指定风格重绘。支持的模型包括runwayml/stable-diffusion-inpainting、diffusers/stable-diffusion-xl-1.0-inpainting-0.1、PowerPaint、PowerPaintV2、AnyText在图中写指定文字、BrushNet、Paint-by-Example、instruct-pix2pix、kandinsky-2-2 等也兼容任意 HuggingFace 上的 SD/SDXL 常规与 inpainting 模型。显存紧张时扩散模型有几档省内存开关可以按需叠加# --low-mem 开启注意力切片与 VAE 分块--cpu-offload 把权重卸载到内存 # --no-half 用全精度避免结果发黑发绿--cpu-textencoder 把文本编码器挪到 CPU iopaint start --modelrunwayml/stable-diffusion-inpainting --devicecuda \ --low-mem --cpu-offload 插件让掩码画得更快、图片修得更细纯手绘掩码比较费时IOPaint 提供了一组可选插件启动时加参数即可开启各自独立选择运行设备# 开启 SAM 交互式分割点击物体即可自动生成精准掩码 iopaint start --enable-interactive-seg --interactive-seg-devicecuda其余插件的用途分别是--enable-remove-bg自动抠图一键生成前景物体的掩码或去掉背景--enable-anime-seg面向二次元图片的分割比通用模型更贴合动漫线条--enable-realesrgan对修复结果做超分辨率放大--enable-gfpgan/--enable-restoreformer人脸修复用于旧照片、模糊人脸各插件还可以单独指定模型与设备例如--interactive-seg-model、--realesrgan-model跑iopaint start --help能看到全部可选项。⚙️ 批量处理图片文件夹的命令WebUI 适合逐张精修但如果是一整个文件夹的图 一整个文件夹的掩码这种任务直接用命令行批处理更省事# 对 image 目录下每张图套用同目录掩码文件夹中同名掩码结果输出到 output_dir iopaint run --modellama --devicecpu \ --image/path/to/image_folder \ --mask/path/to/mask_folder \ --outputoutput_dir两个使用要点--mask传目录时掩码文件必须与原图同名会自动缩放到原图尺寸如果--mask传的是单个掩码文件则所有图片共用这一张掩码。加--concat参数后每张原图、掩码、结果会横向拼成一张对照图方便快速抽查效果。模型权重缺失时该命令也会自动下载行为与 WebUI 启动一致。 附录参与二次开发想改前端或加新功能按前后端两条线搭环境即可。前端是 React Vite 工程位于 web_app/ 目录后端是 FastAPI 服务入口在 main.py。先克隆源码并构建前端git clone https://gitcode.com/GitHub_Trending/io/IOPaint cd IOPaint/web_app npm install npm run build cp -r dist/ ../iopaint/web_app然后在web_app/下新建.env.local文件写入后端地址VITE_BACKENDhttp://127.0.0.1:8080再执行npm run dev启动前端开发服务浏览器访问http://localhost:5173/前端改动会热更新。后端单独起一个终端pip install -r requirements.txt python3 main.py start --model lama --port 8080Python 代码修改后需要重启后端才生效模型的推理实现集中在 iopaint/model/ 目录各插件SAM、RealESRGAN、GFPGAN 等的源码在 iopaint/plugins/测试用例在 iopaint/tests/改模型逻辑前可以先读对应的测试文件了解预期行为。【免费下载链接】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),仅供参考
RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进