真实体验:用FFT NPainting LaMa修复旧照全过程记录
老照片泛黄、划痕纵横、人物模糊——这些不是岁月的勋章,而是亟待修复的遗憾。上周我收到一张1983年拍摄的家庭合影,边角卷曲、中间一道贯穿三人的墨水渍,还有几处明显霉斑。试过Photoshop内容识别填充,效果生硬;用在线AI工具,又担心隐私泄露和画质压缩。直到发现这台部署在本地服务器上的FFT NPainting LaMa图像修复系统——它不联网、不上传、不依赖云端API,所有计算都在你自己的机器里完成。更关键的是,它真的“懂”老照片:不是简单涂抹,而是理解纹理走向、光影逻辑与结构连续性。本文将全程记录我修复这张旧照的真实过程:从第一次点击上传,到最终保存高清结果,不跳步、不美化、不回避失败尝试,只呈现一个普通用户能复现的完整路径。
1. 环境准备与服务启动
1.1 一键启动WebUI服务
这台镜像已预装所有依赖(PyTorch 2.1、OpenCV 4.8、lama-cleaner核心),无需手动编译或配置CUDA环境。我直接SSH登录服务器,执行两行命令:
cd /root/cv_fft_inpainting_lama bash start_app.sh终端立刻输出清晰的状态提示:
===================================== ✓ WebUI已启动 访问地址: http://0.0.0.0:7860 本地访问: http://127.0.0.1:7860 按 Ctrl+C 停止服务 =====================================没有报错,没有等待编译,没有反复调试——这是本地化AI工具最珍贵的体验:开箱即用。
1.2 访问与界面初识
在浏览器中输入http://服务器IP:7860,一个极简但功能明确的界面弹出。没有广告、没有注册墙、没有功能开关迷宫,只有左右两大区块:
- 左侧是操作区:一块大空白画布,顶部有“上传图像”区域,下方一排图标——画笔、橡皮擦、撤销、清除;
- 右侧是结果区:实时显示修复后图像,底部滚动显示状态日志,如“执行推理...”“完成!已保存至: outputs_20240512142305.png”。
界面右上角一行小字写着:“webUI二次开发 by 科哥 | 微信:312088415”,没有商业推广,只有开发者署名——这种克制感让我对工具的可靠性多了一分信任。
2. 旧照上传与问题诊断
2.1 三种上传方式实测
我尝试了文档中提到的全部上传方式:
- 拖拽上传:直接把扫描后的PNG文件拖进左侧虚线框,0.5秒内完成加载,画布自动适配尺寸;
- 点击上传:点击区域后弹出系统文件选择器,选中文件后同样秒级响应;
- 剪贴板粘贴:用截图工具截取照片局部,Ctrl+V粘贴——也成功了,但会丢失原始分辨率,仅适合快速预览。
最终我选择拖拽上传,因为扫描图是3200×2400像素的PNG,保留了最大信息量。上传后,画布中央清晰显示这张泛黄的老照片:三人并排站立,背景是模糊的砖墙,而一道粗黑墨水渍从左上角斜贯至右下角,覆盖了父亲的肩膀和妹妹的半张脸;右下角还有两处指甲盖大小的霉斑。
2.2 问题分层:哪些该修?怎么修?
老照片修复不是“全图重绘”,而是精准干预。我对照常见场景,把问题拆解为三层:
| 问题类型 | 位置 | 特征 | 修复策略 |
|---|---|---|---|
| 结构性破坏 | 墨水渍(主) | 不透明、边缘锐利、完全遮盖底层纹理 | 需大面积标注,依赖LaMa的上下文重建能力 |
| 局部瑕疵 | 霉斑(2处) | 边缘毛糙、颜色发绿、面积小 | 小画笔精确圈出,避免误伤周围 |
| 全局退化 | 整体泛黄、轻微噪点 | 非局部、影响色调统一性 | 本工具不处理此层,需后期用Lightroom调色 |
这个判断很重要:FFT NPainting LaMa专注“局部重绘”,不负责色彩校正。想一步到位?不存在的。但它的专精,恰恰让核心任务更可靠。
3. 标注策略:画笔不是越粗越好
3.1 画笔大小的实战选择
文档说“建议根据修复区域大小调整”,但没说具体数值。我做了三次对比测试:
- 大画笔(直径80px):快速涂满墨水渍区域,但边缘溢出到父亲衣领和妹妹头发,修复后衣领变形、发丝断裂;
- 中画笔(直径40px):覆盖主干道,但墨水渍边缘有细小缺口,修复后出现“补丁感”色块;
- 小画笔(直径15px)+ 放大画布:逐毫米描边,特意让白色标注略微超出墨水渍边界2-3像素。这是关键技巧——LaMa模型需要一点“缓冲区”来自然羽化过渡。
最终采用“中+小结合”:先用中画笔铺底,再用小画笔精修边缘,尤其在人物轮廓处反复微调。整个标注过程耗时约4分钟,比预期长,但值得。
3.2 橡皮擦的救场时刻
标注完才发现:墨水渍覆盖了妹妹手腕处的一枚小手镯,而我的画笔不小心把镯子也涂白了。这时点击橡皮擦图标,调小尺寸(直径5px),轻轻擦除手镯区域——白色消失,底层灰绿色镯子重现。没有重传、没有刷新,实时生效。这种“所见即所得”的编辑反馈,极大降低了心理门槛。
4. 修复执行与效果验证
4.1 一次成功的修复
点击“ 开始修复”按钮,右侧状态栏立即变为:
初始化... 执行推理...我盯着进度条,心里默数:5秒…10秒…15秒…18秒。屏幕一闪,右侧画布更新——墨水渍消失了。不是被模糊掉,而是被“长出来”的:砖墙纹理自然延续,父亲的衬衫褶皱连贯,妹妹的发丝从墨水位置重新生长,甚至阴影角度都与原图一致。
我放大到200%查看细节:
- 砖墙区域:每一块砖的明暗过渡柔和,没有重复纹理;
- 人物衣领:布料纤维方向与未受损区域完全一致;
- 墨水渍边缘:无生硬接缝,像被时光悄悄抹平。
这不像传统算法的“复制粘贴”,而是真正的“理解后生成”。
4.2 两次失败的修复及归因
当然,过程并非一帆风顺。我记录了两次典型失败:
失败1:霉斑修复后颜色偏灰
原因:霉斑本身发绿,但标注时未考虑周边肤色。修复后系统以邻近砖墙色为主导,导致皮肤区域变灰。
解决:清除后,重新上传修复图,仅标注霉斑,并用橡皮擦小心保留周围皮肤像素——第二次修复肤色准确。失败2:大图卡死无响应
我尝试上传一张4500×3000的TIFF扫描件,点击修复后状态栏卡在“初始化...”,3分钟后仍无进展。
归因:文档明确提示“建议分辨率在2000x2000以内”。超限图像触发内存不足。
解决:用IrfanView将图缩放至1920×1440(保持长宽比),重试,12秒完成。
这些失败不是缺陷,而是工具边界的诚实提醒:它强大,但有明确适用范围。
5. 进阶技巧:分区域修复与效果叠加
5.1 分层修复工作流
墨水渍修复成功后,照片仍有两处霉斑。若直接在同一张图上继续标注,可能干扰已修复区域的纹理一致性。我采用文档推荐的“分层修复”策略:
- 点击“ 清除”按钮,清空当前画布;
- 在右侧结果区找到刚生成的文件路径:
/root/cv_fft_inpainting_lama/outputs/outputs_20240512142305.png; - 用FTP下载该图到本地,再拖拽上传回WebUI;
- 此时画布显示的是已去除墨水渍的中间成果,霉斑清晰可见;
- 用小画笔精准标注两处霉斑,点击修复——10秒后,霉斑消失,皮肤质感完好。
这种“修复→下载→重传→再修复”的循环,看似繁琐,实则是保障质量的最优路径。它让每次AI运算都聚焦于单一问题,避免多任务干扰。
5.2 边界优化:扩大标注的魔法
修复第二处霉斑时,我发现边缘有一圈极细的浅色晕染。这不是AI错误,而是标注太“紧贴”霉斑边缘所致。我回到上一步,用橡皮擦擦除原有标注,改用稍大画笔(直径20px)重新涂抹,刻意让白色覆盖霉斑外延3像素。再次修复后,晕染消失,过渡如呼吸般自然。
文档中那句“让标注超出需要修复的区域一些”——此刻才真正读懂。这不是冗余,而是给AI留出“思考余地”。
6. 输出管理与后续处理
6.1 文件保存与路径确认
修复完成后,状态栏显示:
完成!已保存至: /root/cv_fft_inpainting_lama/outputs/outputs_20240512154822.png我通过SSH进入该目录,确认文件存在且大小为4.2MB(与原图相当)。用file命令检查格式:
file /root/cv_fft_inpainting_lama/outputs/outputs_20240512154822.png # 输出:PNG image data, 3200 x 2400, 8-bit/color RGB, non-interlacedRGB格式、无损、高分辨率——所有关键要素齐备。
6.2 本地化处理闭环
拿到修复图后,我进行两步轻量后期:
- 色彩校正:用Darktable打开PNG,应用“白平衡”预设(日光),降低色温值50,消除泛黄;
- 锐化增强:添加“Unsharp Mask”模块,半径1.2、强度0.8,唤醒沉睡的细节。
最终输出JPG用于分享,但原始PNG始终保留在服务器——这是本地化AI的核心优势:你永远拥有最高质量的源文件,不受任何平台压缩或水印限制。
7. 实用性总结:它适合谁?不适合谁?
7.1 真实价值锚点
经过全程实测,我提炼出FFT NPainting LaMa的三个不可替代价值:
- 隐私零风险:所有数据不出服务器,老照片、家族影像、敏感文档均可放心处理;
- 效果可预期:对墨水渍、涂鸦、电线、路人等“非结构化遮挡物”,LaMa重建质量远超传统算法,且结果稳定可复现;
- 操作极简:无需学习PS图层、蒙版、通道,画笔+橡皮擦+一键修复,5分钟上手。
它不是万能神器,但当你面对一张承载记忆的破损照片时,它是那个愿意安静陪你一帧一帧修复时光的人。
7.2 明确的能力边界
必须坦诚说明其局限,避免误导:
- ❌不处理全局退化:泛黄、褪色、严重噪点需配合专业调色软件;
- ❌不支持超大图:>2000px图像需预缩放,否则易卡死;
- ❌不智能识别物体:无法自动框选“删除电线”,必须手动标注;
- ❌不生成新内容:不会给老照片“添加”缺失的手臂或背景,只修复已有结构。
认清边界,才能用好工具。它不是取代专业修图师,而是把修图师最耗时的“填坑”环节,交还给用户自己掌控。
获取更多AI镜像
想探索更多AI镜像和应用场景?访问 CSDN星图镜像广场,提供丰富的预置镜像,覆盖大模型推理、图像生成、视频生成、模型微调等多个领域,支持一键部署。