跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客我的书AI学习GitHub 精选镜像AI 生图工具UI配色美学关于
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
PythonAI算法

Stable Diffusion 老照片修复实战与避坑指南

介绍如何使用 Stable Diffusion 进行老照片修复。涵盖环境安装、Inpainting 与 ControlNet 原理、模型选择、掩码绘制、Prompt 编写及参数设置。包含去霉补边角、去水印、电商图加配件三个实战案例,并提供 Python 批量处理脚本及显存优化方案。最后总结常见翻车原因及避坑清单,帮助用户低成本本地化完成图像修复任务。

云间运维发布于 2026/4/6更新于 2026/9/1077 浏览
Stable Diffusion 老照片修复实战与避坑指南

Stable Diffusion 老照片修复实战与避坑指南

先别急着扔!那几张发霉的老照片还能救

前阵子用户翻箱倒柜找出一张 1983 年的结婚照,边角霉得厉害。拍照发到群里,有人建议 AI 修复。虽然环境配置耗时,但折腾后效果显著。成本几乎为零,还顺手修复了破损细节。

如果你也有:

  • 手机拍糊的证件照
  • 游戏截图缺一块 UI
  • 电商产品图背景脏到像锅底

那就继续往下看。我会把'踩过的坑 + 可操作方案'打包给你,全程说人话。

为啥偏偏选 Stable Diffusion?免费、开源、还能本地跑

Photoshop 的「内容识别填充」虽好,但有局限:

  1. 正版要钱,盗版有风险。
  2. 复杂纹理直接糊成油画,手一抖就穿帮。

SD(Stable Diffusion)的优势: '它懂画面逻辑,而不是单纯糊一块。' 比如衣服破了个洞,它会看褶皱走向、光照方向,甚至能猜出你里面穿的是格子衬衫还是秋衣。

再直白点:

  • 开源 = 不要钱
  • 本地跑 = 隐私安全
  • 插件多 = 功能扩展性强

先整明白它靠啥吃饭:Inpainting + ControlNet + Prompt

别被黑话吓住,翻译成大白话就是:

  1. Inpainting:告诉 AI'只改这块',别全图放飞。
  2. ControlNet:给 AI 一张'骨架图',让它照猫画虎,别自由发挥。
  3. Prompt:用中文 + 英文混操,告诉 AI 要补成啥样。

三者关系: Inpainting 是手术刀,ControlNet 是 X 光,Prompt 是麻醉师,缺一个都能把病人(原图)整没了。

安装:30 分钟一条龙

1. 一键包 or 纯手动?
  • 想 30 分钟搞定:直接用 AUTOMATIC1111 WebUI 一键包,国内清华源拉代码飞快。
  • 想折腾:自己配 Python 3.10 + CUDA 11.8 + xformers,踩坑套餐。

以下教程默认你选'一键包'。

2. 具体步骤(Win 版)
# 1. 先装 Git,官网下或者 scoop install git
# 2. 找个磁盘剩余 30G+ 的地方,右键 Git Bash Here
git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui.git
cd stable-diffusion-webui
# 3. 国内选手加代理,不然模型下到地老天荒
setHF_ENDPOINT=https://hf-mirror.com
# 4. 双击 webui-user.bat,喝杯茶,脚本会自动拉依赖
# 5. 看到 http://127.0.0.1:7860 就搞定
3. 显存警告
  • 4G 显卡:加 --medvram --opt-split-attention 参数,能跑但补大图会糊。
  • 6G:流畅跑 512×512,再大得开 --lowvram。
  • 8G 以上:土豪您随意,直接 2K 图起步。

在 webui-user.bat 里改一行就行:

set COMMANDLINE_ARGS=--medvram --opt-split-attention 

模型选错 = 好锅配烂盖

SD 官方模型叫 sd_xl_base_1.0,但修图千万要用 inpainting 专用模型,否则补出来的区域跟原图色差大到像拼夕夕买家秀。

推荐三连:

  1. sd_xl_inpainting_1.0(官方)
  2. RealisticVisionV51_inpainting(真人写实)
  3. AnythingV5_inpainting(二次元)

下载完扔 models/Stable-diffusion 文件夹,重启 WebUI,左上角模型下拉框就能切。

掩码:别手抖,边缘羽化 5 像素保平安

掩码 = 告诉 AI 哪块要重绘。

  • 画太硬:接缝明显,像贴狗皮膏药。
  • 画太软:AI 把隔壁好皮肤也掀了。

最佳实践:

  1. WebUI 里点「Inpaint」→ 用笔刷把破损区涂满。
  2. 右上角 Mask blur 给 5~8 像素,让边缘羽化。
  3. 只勾「Inpaint masked」→ 只动涂黑的地方,保平安。

懒人加速: 用 Photoshop 魔棒选区 → 羽化 5px → 填充黑色 → 存成 png 蒙版 → WebUI 里「Upload mask」一步到位。

Prompt 到底怎么写?抄模板改关键词就行

别一上来就「a lovely girl with beautiful eyes」——老照片里是我爷,不是二次元老婆!

通用模板:

same style, vintage photograph, 1980s, male, short hair, wearing white shirt, solid color background, high resolution, natural color, no watermark 

负向模板(告诉 AI 别干啥):

lowres, blurry, extra limbs, cartoon, anime, watermark, text, frame, duplicate, glitch 

口诀:

  • 先写「same style」锁定画风,再补对象、年代、服装、背景。
  • 负向一定要加「text、watermark」,否则 AI 给你生成一串假中文,像鬼画符。

参数面板:别乱动,这 4 个够用

参数建议值说明
Sampling methodDPM++ 2M Karras速度快、质量高
Steps30~40步数再高压感提升有限
CFG Scale7~9数字越大 AI 越听 prompt,过高会卡死
Denoising strength0.3~0.60.3 轻微修复,0.6 大开大合,>0.7 原图基本没了

实战 1:老照片去霉 + 补边角

原图 512×768,边角缺一块,霉斑像地图。

Step 1 高清化(可选但强烈建议)

用 SwinIR_4x 先超分到 2048×3072,再修,细节多一堆。 WebUI 里点「Extras」→ 选 SwinIR → Scale 4 → 10 秒搞定。

Step 2 画掩码

把霉斑 + 缺角一起涂了,Mask blur 6。

Step 3 写 Prompt
same style, vintage photograph, 1980s, young man, short black hair, wearing dark suit, collar shirt, plain background, film grain, natural color Negative: lowres, blurry, extra limbs, cartoon, text, watermark 
Step 4 参数
  • Model: RealisticVisionV51_inpainting
  • Denoising: 0.4
  • Size: 1024×1536(锁定比例)
Step 5 出图

第一次出来领口颜色偏蓝,把 Prompt 里加「olive green tie」再跑 2 次,完事儿。

对比图(文字描述,省流): 霉斑全消,缺角脑补出西装下摆,连底片颗粒都给你还原,用户直接泪目。

实战 2:手机截图去水印

场景:群里甩来一张攻略图,右下角大大水印挡字。

核心思路

水印大多在纯色/渐变区,AI 补纹理压力小,但千万别带文字! SD 对文字是智障,补出来永远是「伪中文」,像「木又 氵去」这种。

操作
  1. Photoshop 里矩形选区 → 羽化 3px → 填充黑。
  2. Prompt 只写背景:
plain gray gradient background, smooth, same color, no text 
  1. Denoising 0.35,低强度防止把旁边字也抹了。
结果

水印没了,背景颜色过渡自然,不放大 200% 根本看不出。

实战 3:电商产品图'无中生有'加配件

背景:客户发来耳机图,少一只耳塞套,平台审核不过。

骚操作
  1. 用「Content-Aware」先补个大概形状,降低 AI 脑补难度。
  2. ControlNet 开 Canny,把耳机边缘锁死,防止 AI 多画一条线。
  3. Prompt:
white silicone earbud tip, matte texture, same lighting, clean background 
  1. Denoising 0.45,重绘 3 次选最稳那张。
客户反馈

'这比重新拍省事多了,下次还找你。' 我:其实我就点了三次鼠标,咖啡都没凉。

翻车现场:多长一只手怎么办?

症状:AI 把肩膀补成第三条胳膊,还是反关节。

排错三板斧:

  1. 看显存:低于 4G 时把图缩到 512×512 再重绘,显存爆了就放飞。
  2. 看模型:通用模型手画得烂,换回 inpainting 专用。
  3. 看掩码:是不是把隔壁手臂也涂进去了?局部重绘别贪心。

进阶:用 latent couple 插件,把'手'单独切块写 Prompt:

hand, five fingers, natural proportion 

再合并,基本稳。

批量脚本:Python 一键跑 100 张

婚礼跟拍 1000 张图,张张边角霉?手点会抽筋。

# pip install requests
import requests
import base64
import os

URL = "http://127.0.0.1:7860"
INPUT_DIR = "d:/old_photos"
MASK_DIR = "d:/masks"
SAVE_DIR = "d:/fixed"

os.makedirs(SAVE_DIR, exist_ok=True)

for img_name in os.listdir(INPUT_DIR):
    # 读取原图并转 base64
    with open(os.path.join(INPUT_DIR, img_name), "rb") as f:
        img_b64 = base64.b64encode(f.read()).decode()
    
    # 读取掩码
    mask_path = os.path.join(MASK_DIR, img_name)
    if not os.path.exists(mask_path):
        continue
    with open(mask_path, "rb") as f:
        mask_b64 = base64.b64encode(f.read()).decode()
    
    payload = {
        "init_images": [img_b64],
        "mask": mask_b64,
        "inpainting_fill": 1,
        "inpaint_full_res": True,
        "prompt": "same style, vintage photograph, natural color, film grain",
        "negative_prompt": "lowres, blurry, text, watermark",
        "steps": 35,
        "cfg_scale": 7,
        "denoising_strength": 0.4,
        "width": 1024,
        "height": 1536,
        "sampler_index": "DPM++ 2M Karras"
    }
    
    response = requests.post(f"{URL}/sdapi/v1/img2img", json=payload).json()
    result_b64 = response["images"][0].split(",", 1)[0]
    
    with open(os.path.join(SAVE_DIR, img_name), "wb") as f:
        f.write(base64.b64decode(result_b64))
    print(f"✅ {img_name} 完成")

跑起来后去休息一会儿,回来 100 张齐活,再挑 5 张翻车手工二次微调,效率×10。

显存省着花:–medvram 还不够?

  • 开 xformers:在 webui-user.bat 再加一句 --xformers,显存立减 20%。
  • 关高清预览:Settings → Live previews → None,省 500M。
  • 用 sd-webui-compressed-textual-inversion 插件,把 Embedding 压成 8bit,再省 300M。

实测 6G 卡跑 1024×1024 不闪退,就是生成时间从 30s 涨到 50s,能接受。

终极避坑清单(背下来能救命)

  1. 原图先备份!SD 出图直接覆盖,手滑哭都来不及。
  2. 别在原图尺寸>2000 时直接 inpaint,先缩 50%,再重绘,完事回 Photoshop 拼回去,显存稳稳的。
  3. Prompt 里写「film grain」却忘加「same style」,AI 直接给你磨皮成塑料人。
  4. 多人合影只修一个人?用 Regional Prompter 切块,不然 AI 把隔壁二舅也整容。
  5. 文字、对称花纹、手指——目前 SD 的智障三区,能手工就别全指望 AI。

总结

Stable Diffusion 不是万能膏药,但**'免费 + 本地 + 效果 80 分'**这三板斧,足够让普通家庭用户、小电商、甚至影楼学徒省下一大笔银子。

下次谁再跟你说

目录

  1. Stable Diffusion 老照片修复实战与避坑指南
  2. 先别急着扔!那几张发霉的老照片还能救
  3. 为啥偏偏选 Stable Diffusion?免费、开源、还能本地跑
  4. 先整明白它靠啥吃饭:Inpainting + ControlNet + Prompt
  5. 安装:30 分钟一条龙
  6. 1. 一键包 or 纯手动?
  7. 2. 具体步骤(Win 版)
  8. 1. 先装 Git,官网下或者 scoop install git
  9. 2. 找个磁盘剩余 30G+ 的地方,右键 Git Bash Here
  10. 3. 国内选手加代理,不然模型下到地老天荒
  11. 4. 双击 webui-user.bat,喝杯茶,脚本会自动拉依赖
  12. 5. 看到 http://127.0.0.1:7860 就搞定
  13. 3. 显存警告
  14. 模型选错 = 好锅配烂盖
  15. 掩码:别手抖,边缘羽化 5 像素保平安
  16. Prompt 到底怎么写?抄模板改关键词就行
  17. 参数面板:别乱动,这 4 个够用
  18. 实战 1:老照片去霉 + 补边角
  19. Step 1 高清化(可选但强烈建议)
  20. Step 2 画掩码
  21. Step 3 写 Prompt
  22. Step 4 参数
  23. Step 5 出图
  24. 实战 2:手机截图去水印
  25. 核心思路
  26. 操作
  27. 结果
  28. 实战 3:电商产品图“无中生有”加配件
  29. 骚操作
  30. 客户反馈
  31. 翻车现场:多长一只手怎么办?
  32. 批量脚本:Python 一键跑 100 张
  33. pip install requests
  34. 显存省着花:–medvram 还不够?
  35. 终极避坑清单(背下来能救命)
  36. 总结

更多推荐文章

查看全部
  • PyTorch-2.x-Universal 镜像搭建 AI 绘画开发环境指南
  • 企业级网络建设与调试配置方案(华为设备)
  • Linux 系统部署 OpenClaw 并接入 QQ 机器人
  • AIGC 技术全景解析:大语言模型、扩散模型与多模态应用指南
  • Cursor Agent Skills 实战:打造专属前端 AI 助手
  • OpenClaw 本地部署教程:环境配置、插件开发与问题排查
  • 算法必刷 100 题:寻找数组中心下标与除自身以外乘积
  • HarmonyOS TaskPool 多线程开发实战与避坑指南
  • OpenRouter 接入与模型聚合实用指南
  • Unity VR 高分辨率全景视频播放性能优化方案
  • ToDesk、顺网云与海马云:DeepSeek 大模型云端部署实测对比
  • Windows 系统安装 Neo4j 图数据库教程
  • OpenClaw 智能体框架环境搭建与 WebUI 远程访问配置
  • IntelliJ IDEA AI 工具与插件全解析
  • EasyOCR Python 开源 OCR 工具使用指南
  • Copilot Plan Mode 配合多模型路由实战:复杂项目开发
  • Photoshop 集成 ComfyUI AI 绘画功能指南
  • 大厂 AI 产品经理招聘里真正看重什么
  • VS Code + GitHub Copilot 避坑指南:从安装配置到最佳实践
  • .NET 集成 GoView 低代码可视化大屏实战指南

相关免费在线工具

  • 加密/解密文本

    使用加密算法(如AES、TripleDES、Rabbit或RC4)加密和解密文本明文。 在线工具,加密/解密文本在线工具,online

  • RSA密钥对生成器

    生成新的随机RSA私钥和公钥pem证书。 在线工具,RSA密钥对生成器在线工具,online

  • Mermaid 预览与可视化编辑

    基于 Mermaid.js 实时预览流程图、时序图等图表,支持源码编辑与即时渲染。 在线工具,Mermaid 预览与可视化编辑在线工具,online

  • 随机西班牙地址生成器

    随机生成西班牙地址(支持马德里、加泰罗尼亚、安达卢西亚、瓦伦西亚筛选),支持数量快捷选择、显示全部与下载。 在线工具,随机西班牙地址生成器在线工具,online

  • Gemini 图片去水印

    基于开源反向 Alpha 混合算法去除 Gemini/Nano Banana 图片水印,支持批量处理与下载。 在线工具,Gemini 图片去水印在线工具,online

  • curl 转代码

    解析常见 curl 参数并生成 fetch、axios、PHP curl 或 Python requests 示例代码。 在线工具,curl 转代码在线工具,online