AI一键人像精修
概述
用户上传人像照片,AI 直接执行 Python 脚本完成修图,全程不需要 Photoshop。
基于10年影楼级精修经验,将专业修图流程转化为算法实现:
- 自动曝光校正(直方图拉伸 + gamma校正)
- 白平衡(灰世界算法)
- 频率分离磨皮(保留毛孔纹理,平滑肤色不均)
- 肤色统一(去泛红、去黄、偏红润)
- 影楼级色调配方(4种风格预设)
- 质感锐化(高反差保留 + 柔光混合)
- 暗角氛围增强
v4.0 核心升级:
- 风格预览选择:用户上传照片后,先生成4种风格拼成的预览网格图(每格带编号标签),用户挑编号或名称,再执行完整修图
- 高清放大:支持2倍/4倍放大(LANCZOS + USM细节重建),修图前先放大
适用场景:婚纱照、个人写真、家庭合影、情侣照、儿童摄影
不适用场景:风景照、产品图、纯文字图片、非人像照片
依赖:Python 3 + Pillow + NumPy(无需Photoshop)
触发时机
应触发
- 用户上传人像照片并要求"修图""精修""美化""调色""磨皮"
- 用户说"帮我修这张照片""让这张照片更好看"
- 用户询问能否帮修婚纱照、人像照
- 用户上传照片后询问"能修好看点吗"
不应触发
- 用户只需要裁剪、压缩、格式转换
- 用户上传的是非人像照片
- 用户明确要求用Photoshop手动修图
使用方法
核心流程(v4.0:先预览挑选,再修图)
当用户上传照片并要求修图时,按以下步骤执行:
第1步:生成风格预览(让用户挑选)
将用户上传的照片保存到本地后,执行:
python scripts/auto_retouch.py \
--input "照片路径.jpg" \
--preview \
--preview-output "预览图路径_preview.jpg"
脚本会生成一张 2x2 预览网格图,包含4种风格的效果预览,每格左上角有编号和名称:
| 编号 | 风格 | 代号 | 效果特征 |
|---|---|---|---|
| 1 | 清新冷调 | cool |
背景通透,肤色暖润,冷暖对比 |
| 2 | 唯美暖调 | warm |
整体温暖,肤色红润,高光金黄 |
| 3 | 复古胶片 | vintage |
低饱和,暗部偏青,高光偏黄 |
| 4 | 自然通透 | natural |
微调,提通透感,保持原色调 |
把预览网格图展示给用户,让用户自己挑选风格(说编号或名称)。
第2步:询问高清需求(可选)
问用户是否需要放大(照片不够清晰/要打印时):
- 不需要:跳过
- 2倍/4倍:修图时加 --upscale 2 或 --upscale 4
第3步:执行完整修图(用户选定后)
python scripts/auto_retouch.py \
--input "照片路径.jpg" \
--output "输出路径_retouched.jpg" \
--style cool \
--intensity medium \
--upscale 2
参数说明:
- --style:cool / warm / vintage / natural(按用户挑选的传)
- --intensity:light / medium / strong(默认 medium)
- --upscale:2 或 4(可选,先高清放大再修图;不传则原尺寸修)
- --skin-smooth:0-100,手动指定磨皮强度(覆盖intensity默认值)
- --sharpen:0-100,手动指定锐化强度(覆盖intensity默认值)
第4步:返回结果
脚本执行完成后:
1. 展示修图后的照片
2. 同时生成 _comparison.jpg 对比图(左原图右修图),一并展示
3. 如用了 --upscale,会额外生成 _up2x.jpg(放大的中间高清图)
4. 告知用户使用的风格和强度参数
5. 如用户不满意,可换风格或调强度重新处理(重跑第1-3步即可)
高级用法
只调磨皮不调色
python scripts/auto_retouch.py -i input.jpg -o output.jpg --style natural --skin-smooth 50
最强磨皮(皮肤问题多)
python scripts/auto_retouch.py -i input.jpg -o output.jpg --intensity strong --skin-smooth 90
自然风格(适合证件照)
python scripts/auto_retouch.py -i input.jpg -o output.jpg --style natural --intensity light
高清放大(2倍/4倍,适合打印和发大图)
python scripts/auto_retouch.py -i input.jpg -o output.jpg --style cool --upscale 2
python scripts/auto_retouch.py -i input.jpg -o output.jpg --style warm --upscale 4
单独放大不修图
python scripts/auto_retouch.py -i input.jpg --upscale 2 --output up.jpg --style natural --intensity light
技术原理(供AI理解调参方向)
频率分离磨皮
- 低频层(肤色、光影)→ 高斯模糊提取 → 对皮肤区域额外平滑
- 高频层(毛孔、纹理)→ 原图减去低频 → 完整保留
- 重组:处理后的低频 + 原始高频 = 磨皮但保留质感
调参方向:
- blur_radius 越大,磨皮范围越广(特写照片用10-12,全身用6-8)
- smooth_strength 越高,皮肤越平滑但可能失真(建议不超过0.8)
肤色检测
使用RGB阈值法检测皮肤区域:
- R > 95, G > 40, B > 20
- R > G, R > B
- |R - G| > 15
局限:强逆光、严重偏色场景可能检测不准,此时白平衡会先纠正。
色调配方
通过分离暗部和高光区域,分别施加色彩偏移:
- 暗部 = 亮度 < 80 的区域
- 高光 = 亮度 > 180 的区域
- 中间调不受影响,保持自然过渡
避坑指南
| 问题 | 原因 | 解决方案 |
|---|---|---|
| 磨皮过度像塑料 | smooth_strength 过高 | 降到 0.4-0.6,或用 light 强度 |
| 肤色检测不准 | 严重偏色或逆光 | 白平衡会先纠正,若仍不准换 natural 风格 |
| 色调太重 | 风格化太强 | 换 natural 风格,或降低 intensity |
| 锐化过度有噪点 | sharpen 太高 | 降到 0.15-0.20 |
| 图片处理慢 | 图片太大 | 脚本自动限制长边3000px,无需手动缩放 |
| 暗角太明显 | vignette 过强 | 用 light 强度(暗角0.08) |
版本记录
| 版本 | 日期 | 更新内容 |
|---|---|---|
| 1.0 | 2026-08-12 | 初始版本,PS操作指南 |
| 2.0 | 2026-08-12 | 补全参数表、参考文档 |
| 3.0 | 2026-08-13 | 重大转向:从PS指南改为AI直接处理脚本,无需Photoshop,普通用户可用 |
| 4.0 | 2026-08-13 | 新增:风格预览选择(4风格网格图,用户挑选后再修图);高清放大(2x/4x,LANCZOS+USM细节重建) |