fft npainting lama一键部署教程:5分钟快速启动WebUI
1. 教程简介与学习目标
本教程旨在帮助开发者和AI爱好者快速部署并使用基于fft npainting lama的图像修复系统。通过本文,您将掌握:
- 如何在本地或服务器环境中一键部署 WebUI 服务
- 图像重绘、修复与物品移除的核心操作流程
- 常见问题排查与性能优化建议
该系统由“科哥”进行二次开发,集成了先进的 FFT(Fast Fourier Transform)与 LaMa(Large Mask Inpainting)技术,支持高精度图像内容修复,适用于去水印、去文字、物体移除、瑕疵修复等场景。
前置知识要求:
- 基础 Linux 操作命令
- Python 环境基础理解
- 浏览器基本操作能力
2. 环境准备与一键部署
2.1 系统环境要求
| 项目 | 推荐配置 |
|---|---|
| 操作系统 | Ubuntu 20.04 / 22.04 LTS |
| CPU | Intel i5 或以上(推荐多核) |
| 内存 | ≥8GB RAM(≥16GB 更佳) |
| 显卡 | NVIDIA GPU(CUDA 支持,显存 ≥4GB) |
| 存储空间 | ≥10GB 可用空间 |
| Python 版本 | 3.8 - 3.10 |
注意:若无 GPU,可使用 CPU 推理,但处理速度显著下降。
2.2 一键部署步骤
步骤 1:克隆项目代码
git clone https://github.com/kege/cv_fft_inpainting_lama.git cd cv_fft_inpainting_lama步骤 2:安装依赖项
pip install -r requirements.txt常见依赖包括:
- torch >= 1.13
- torchvision
- gradio
- opencv-python
- numpy
- pillow
步骤 3:启动 WebUI 服务
执行内置脚本一键启动:
bash start_app.sh成功启动后终端输出如下提示:
===================================== ✓ WebUI已启动 访问地址: http://0.0.0.0:7860 本地访问: http://127.0.0.1:7860 按 Ctrl+C 停止服务 =====================================此时服务已在后台运行,等待浏览器连接。
3. WebUI 使用详解
3.1 主界面布局说明
系统采用双栏式设计,左侧为编辑区,右侧为结果展示区:
┌─────────────────────────────────────────────────────┐ │ 🎨 图像修复系统 │ │ webUI二次开发 by 科哥 | 微信:312088415 │ ├──────────────────────┬──────────────────────────────┤ │ │ │ │ 🎨 图像编辑区 │ 📷 修复结果 │ │ │ │ │ [图像上传/编辑] │ [修复后图像显示] │ │ │ │ │ [🚀 开始修复] │ 📊 处理状态 │ │ [🔄 清除] │ [状态信息显示] │ └──────────────────────┴──────────────────────────────┘功能模块划分:
- 图像上传区域:支持拖拽、点击上传、剪贴板粘贴
- 画笔工具组:用于标注需修复的 mask 区域
- 操作按钮:开始修复、清除画布
- 状态反馈区:实时显示推理进度与保存路径
3.2 标注与修复完整流程
第一步:上传原始图像
支持格式:.png,.jpg,.jpeg,.webp
三种上传方式:
- 点击上传:点击虚线框选择文件
- 拖拽上传:直接将图片拖入编辑区
- 粘贴上传:复制图像后在界面中按下
Ctrl+V
推荐使用 PNG 格式以保留透明通道和色彩精度。
第二步:绘制修复区域(Mask)
使用画笔工具标记需要修复的部分:
选择画笔工具
- 默认激活,图标为 ✏️
- 若误切至橡皮擦,点击切换回画笔
调整画笔大小
- 滑动 “Brush Size” 控件
- 小图建议 20–50px,大图可设为 100–200px
涂抹待修复区域
- 在图像上用白色线条覆盖目标对象(如水印、人物、文字)
- 白色区域即为模型填充范围
精细调整
- 使用橡皮擦工具(Eraser)删除多余标注
- 可配合缩放功能进行边缘微调
关键提示:确保完全覆盖目标区域,遗漏部分不会被修复。
第三步:执行图像修复
点击"🚀 开始修复"按钮,系统进入以下阶段:
- 初始化:加载预训练模型权重
- 前处理:对输入图像与 mask 进行归一化
- 推理阶段:LaMa 模型结合 FFT 特征提取完成上下文感知填充
- 后处理:自动羽化边缘、颜色校正、BGR→RGB 转换
- 输出保存:生成结果并写入输出目录
处理时间参考:
- <500px:约 5 秒
- 500–1500px:10–20 秒
1500px:20–60 秒(取决于硬件)
第四步:查看与下载结果
修复完成后,右侧显示最终图像,并在状态栏提示:
完成!已保存至: /root/cv_fft_inpainting_lama/outputs/outputs_20260105142312.png输出路径默认为:
/root/cv_fft_inpainting_lama/outputs/文件命名规则:outputs_YYYYMMDDHHMMSS.png
可通过 FTP、SCP 或本地文件管理器导出结果。
4. 高级功能与使用技巧
4.1 分区域多次修复策略
对于复杂图像(如多人物、大面积遮挡),推荐分步修复:
# 示例逻辑(非实际代码) for region in target_regions: mask = create_mask(image, region) result = inpaint_model(image, mask) image = result # 更新原图继续下一轮操作建议:
- 先移除主要干扰物
- 下载中间结果
- 重新上传,修复细节区域
此方法可避免模型因过大缺失区域而产生伪影。
4.2 边缘融合优化技巧
若修复边界出现明显接缝:
- 扩大标注范围:让 mask 超出目标边缘 5–10 像素
- 利用自动羽化机制:系统会对边缘做渐变过渡处理
- 后期轻微模糊:可用外部工具轻微高斯模糊衔接处
4.3 批量处理建议(适用于脚本扩展)
虽然当前 WebUI 不支持批量上传,但可通过修改app.py实现自动化批处理:
from PIL import Image import os def batch_inpaint(input_dir, output_dir): for filename in os.listdir(input_dir): if filename.lower().endswith(('.png', '.jpg', '.jpeg')): img_path = os.path.join(input_dir, filename) mask_path = os.path.join(input_dir, 'mask', filename) # 对应 mask 文件 result = model.inpaint(img_path, mask_path) result.save(os.path.join(output_dir, f"out_{filename}"))适合集成到 CI/CD 或数据清洗流水线中。
5. 常见应用场景实战
5.1 场景一:去除图片水印
适用类型:版权标识、LOGO、半透明浮水印
操作要点:
- 完全覆盖水印区域
- 对于模糊水印,适当扩大标注面积
- 若一次未清干净,可重复修复 1–2 次
成功率:95% 以上(背景纹理丰富时效果更佳)
5.2 场景二:移除不需要的物体
典型用例:路人、车辆、电线杆、家具
优势分析:
- LaMa 模型擅长从周围语义推断合理内容
- FFT 提供频域先验,增强结构连续性
技巧:
- 复杂背景优于纯色背景(提供更多上下文)
- 避免修复靠近图像边界的物体(缺乏邻域信息)
5.3 场景三:人像面部瑕疵修复
适用问题:痘印、斑点、皱纹、眼镜反光
注意事项:
- 使用小画笔精确涂抹
- 避免过度涂抹导致五官变形
- 可结合 Photoshop 做后续润色
本模型不改变整体风格,仅做局部重建,适合真实感修复。
5.4 场景四:清除图像中的文字
挑战点:字符间距不规则、字体多样
解决方案:
- 分段标注,逐行清除
- 对长文本建议拆分为多个区块
- 若残留笔画,重复修复一次即可消除
不适用于文档扫描件 OCR 替代,仅用于视觉清理。
6. 常见问题与解决方案
| 问题现象 | 可能原因 | 解决方案 |
|---|---|---|
| 无法打开 WebUI 页面 | 服务未启动或端口被占用 | 检查ps aux | grep app.py和lsof -ti:7860 |
| 上传图像无响应 | 浏览器兼容性问题 | 更换 Chrome/Firefox,禁用插件 |
| 修复失败,提示“无效 mask” | 未正确绘制标注 | 确保使用画笔工具涂抹出白色区域 |
| 输出图像偏色 | 输入为 BGR 格式 | 系统已自动转换,更新版本可解决 |
| 处理时间过长 | 图像分辨率过高 | 建议压缩至 2000px 以内再上传 |
| 找不到输出文件 | 路径权限不足 | 检查/outputs/目录读写权限 |
快捷键汇总
| 快捷键 | 功能 |
|---|---|
| Ctrl + V | 粘贴剪贴板图像 |
| Ctrl + Z | 撤销上一步操作(部分浏览器支持) |
| 鼠标滚轮 | 缩放画布(视浏览器支持情况) |
7. 性能优化与二次开发建议
7.1 推理加速建议
- 启用 GPU 加速:确保 PyTorch 正确识别 CUDA
python -c "import torch; print(torch.cuda.is_available())" - 降低图像分辨率:预处理阶段 resize 到合适尺寸
- 关闭冗余日志:在
config.yaml中设置log_level: WARNING
7.2 二次开发接口说明
项目结构概览:
cv_fft_inpainting_lama/ ├── app.py # Gradio 主入口 ├── core/ # 核心算法模块 │ ├── fft_inpaint.py # FFT 增强修复逻辑 │ └── lama_model.py # LaMa 模型封装 ├── models/ # 预训练权重存放 ├── outputs/ # 输出目录 ├── start_app.sh # 启动脚本 └── requirements.txt # 依赖列表扩展方向建议:
- 添加 API 接口(Flask/FastAPI)
- 集成 S3/OSS 存储上传
- 增加用户认证层
- 支持视频帧序列修复
8. 总结
本文详细介绍了fft npainting lama图像修复系统的一键部署流程与WebUI 使用全指南。通过结合 FFT 频域分析与 LaMa 强大的上下文生成能力,该系统能够高效实现:
- 图像内容重绘
- 物品智能移除
- 水印与文字清除
- 瑕疵修复与美化
其特点在于:
- 部署简单:一行命令即可启动
- 操作直观:图形化界面,无需编程基础
- 效果稳定:在多种真实场景中表现优异
- 开源可改:便于企业定制与二次开发
无论是设计师、摄影师还是 AI 工程师,都能从中获得实用价值。
获取更多AI镜像
想探索更多AI镜像和应用场景?访问 CSDN星图镜像广场,提供丰富的预置镜像,覆盖大模型推理、图像生成、视频生成、模型微调等多个领域,支持一键部署。