小白也能上手:用Stable Diffusion搞定老照片修复(附避坑指南)

小白也能上手:用Stable Diffusion搞定老照片修复(附避坑指南)

小白也能上手:用Stable Diffusion搞定老照片修复(附避坑指南)

小白也能上手:用Stable Diffusion搞定老照片修复(附避坑指南)

友情提示:本文 1.2 万字,代码 30+ 段,阅读时建议左手奶茶右手 GPU,显卡低于 8G 的童鞋先点个外卖,显存和肚子一起满上。

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

前阵子我奶翻箱倒柜找出一张 1983 年的结婚照,边角霉得跟蘑菇培养皿似的。我拍照发到群里,本来只想卖个惨,结果底下一水儿“AI 修复啊,三分钟搞定”。
我当场翻白眼:三分钟?我装环境就装了三小时!
但骂归骂,真香定律谁也逃不掉。折腾一晚上后,照片居然——能——看——了!我奶以为我偷偷拿去影楼花 500 块,其实成本 0 元,电费 0.3 元,还顺手给爷 P 了条新领带(他原本领带被虫蛀没了)。

如果你也有:

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

那就继续往下看。我会把“我踩过的坑 + 我奶都能看懂的操作”打包给你,保证不整那些“open the terminal and type…”的鸟语,全程说人话。


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

Photoshop 的「内容识别填充」不香吗?香,但:

  1. 正版要钱,盗版得先学会装系统。
  2. 复杂纹理直接糊成油画,手一抖就穿帮。

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

再直白点:

  • 开源 = 不要钱
  • 本地跑 = 不怕照片传网上被人拿去训练“网红脸”
  • 插件多到像 360 全家桶,但都能卸载,不耍流氓

先整明白它靠啥吃饭: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 版,Mac 见文末彩蛋)

# 1. 先装 Git,官网下或者 scoop install git# 2. 找个磁盘剩余 30G+ 的地方,右键 Git Bash Heregit 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 requestsimport 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):# 读取原图并转 base64withopen(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)ifnot os.path.exists(mask_path):continuewithopen(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]withopen(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 分”**这三板斧,足够让普通家庭用户、小电商、甚至影楼学徒省下一大笔银子。

下次谁再跟你说“AI 修图是智商税”,把这篇文章甩过去,并附赠一句:
“兄弟,不是工具拉胯,是你没看说明书。”

我去给显卡喂点冰可乐,你趁热把旧照片翻出来练练。
要是还翻车,群里 @ 我,一起吐槽——反正夜还长,显存还热,咱们慢慢整。

在这里插入图片描述

Read more

为每个人提供 LLMs:在 Google Colab 中运行 LLaMA-13B 模型和 LangChain

原文:towardsdatascience.com/llms-for-everyone-running-the-llama-13b-model-and-langchain-in-google-colab-68d88021cf0b https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/c1c2e1a8e6731e9a039722d2789772e2.png 由 Glib Albovsky 拍摄的照片,Unsplash 在故事的第一部分中,我们使用了一个免费的 Google Colab 实例来运行 Mistral-7B 模型,并使用 FAISS(Facebook AI Similarity Search)数据库提取信息。在这一部分,我们将更进一步,我将展示如何运行 LLaMA 2 13B 模型;我们还将测试一些额外的 LangChain 功能,如创建基于聊天的应用程序和使用代理。同样,就像第一部分一样,所有使用的组件都是基于开源项目,并且将完全免费使用。 让我们开始吧!

解密Midjourney第三方API服务:技术原理与合规边界探讨

解密Midjourney第三方API服务:技术实现与合规实践指南 在AI绘画领域,Midjourney以其卓越的图像生成能力成为行业标杆,但官方并未开放API接口。这催生了一批第三方服务商通过技术手段实现API化封装,为开发者提供集成解决方案。本文将深入解析其技术实现原理,并提供合规实践方案。 1. 第三方API的技术实现路径 第三方服务实现Midjourney API化主要依赖两种技术路线: Discord协议模拟方案 通过逆向工程分析Midjourney Bot在Discord平台上的通信协议,模拟用户操作流程: 1. 身份认证层:获取Discord用户token并维持会话状态 2. 指令转换层:将REST API请求转换为Discord消息格式 3. 消息解析层:从Bot回复中提取图片URL和生成状态 4. 结果分发层:将生成结果通过Webhook或长轮询返回客户端 典型Python实现示例: import discord from discord.ext import commands class MidjourneyClient: def __init

Nunchaku FLUX.1 CustomV3:让AI绘画变得简单又高效

Nunchaku FLUX.1 CustomV3:让AI绘画变得简单又高效 你是不是也遇到过这些情况: 想用AI画一张海报,结果调了半小时参数,生成的图不是手多一只,就是背景糊成一团; 下载了一个新模型,光是装依赖、配环境就折腾一整天,最后连界面都没打开; 看到别人发的精美插画心痒痒,可翻遍教程还是搞不清“CLIP”“LoRA”“CFG scale”到底在哪儿改、怎么调…… 别急——这次不用折腾。Nunchaku FLUX.1 CustomV3 镜像,就是为“不想研究原理,只想马上出图”的你准备的。 它不是又一个需要手动拼接节点、反复调试权重的复杂工作流,而是一套开箱即用、单卡RTX4090就能跑、改两行文字就能出高质量图的文生图方案。背后融合了 FLUX.1-dev 的强生成能力、FLUX.1-Turbo-Alpha 的响应速度,以及 Ghibsky Illustration LoRA 的细腻画风加持—

主流大模型介绍(GPT、Llama、ChatGLM、Qwen、deepseek)

主流大模型介绍(GPT、Llama、ChatGLM、Qwen、deepseek)

GPT系列模型 一、ChatGPT 的本质 * 发布者:OpenAI(2022年11月30日) * 类型:聊天机器人模型,基于自然语言处理技术 * 核心能力:理解语言、生成对话、撰写邮件/文案/代码、翻译等 * 增长数据:2个月用户破1亿,日活约1300万 二、GPT 系列模型演进对比 模型发布时间参数量核心创新主要局限GPT-12018.061.17亿引入生成式预训练 + Transformer Decoder语言模型单向;需微调才能泛化GPT-22019.0215亿多任务学习 + Zero-shot 能力无监督能力仍有限GPT-32020.051750亿Few-shot 学习 + Sparse Attention成本高、长文本不稳定、内容不可控ChatGPT2022.11基于GPT-3引入 RLHF(人类反馈强化学习)服务不稳定、可能生成错误信息 三、核心技术点回顾 1. GPT-1 * 使用单向 Transformer Decoder(