ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

黑白照片上色全攻略:从AI一键到手工精修,附混合工作流

黑白照片上色全攻略:从AI一键到手工精修,附混合工作流

前几天帮家里人整理老相册,翻出一堆黑白照片,有长辈年轻时的留影,也有几十年前的全家福。免不了有人提一句:"这些照片要是能上色就好了。" 换作五六年前,这事还挺麻烦,要么找专业修复师傅手工着色,要么自己在软件里慢慢涂。但现在不一样了,从在线AI工具到本地开源模型,再到传统的手工图层着色,黑白照片上色已经有一套相当成熟的方法体系。这篇就把我这些年用过的路子、踩过的坑、以及真正稳定的工作流一次说清楚。

先给个总览:黑白照片上色本质上分三大类——在线AI一键上色,适合求快;本地模型批量上色,适合量大且要高清;纯手工图层着色,适合追求真实感、对细节有执念的情况。三类方法我下面会逐一拆解原理、步骤和坑点,最后分享一个我日常用的"AI打底加手动精修"混合流程,你可以直接照着抄。

1. 先搞明白:黑白照片上色到底在做什么

很多人以为上色是"把颜色填回去",这个理解其实不准确。黑白照片或灰度扫描件里,每个像素只保存亮度信息(0到255的灰度),红、绿、蓝三个通道是缺失的。也就是说,照片上根本不存在可以"找回来"的原始颜色,上色的本质是基于画面内容去推断颜色,再把这个推断出来的颜色赋予给画面。理解了这一点,后面所有操作都会有底气。

传统照相馆师傅的办法是手绘着色:拿一张黑白照片当底,用水彩或油彩在上面薄薄地罩一层颜色。底图的明暗关系保留住,颜色层只提供色相和饱和度。这个思路后来被完整搬进了数字后期软件里——新建一个图层,把混合模式设为"颜色",用画笔在需要的地方涂色。这就是为什么我说,理解了"颜色层和亮度层分离"这个基本原理,比记住任何软件按钮都重要。

AI自动上色的底层逻辑则是另一套:深度学习模型在数百万张彩色照片上学会了"画面语义到颜色分布"的映射。你喂给模型一张灰度图,它输出一张三通道彩色图。注意,这个输出不是恢复,而是概率性的重建。同一张黑白照片,用不同模型跑,肤色、衣服、天空的颜色可能完全不一样,因为模型在"猜"。明白这一点,你就不会被AI上色结果一锤定音,知道后面还要人工把关。

顺带说一句:上色之前,最好先把照片本身的脏点、划痕、噪点处理干净,否者颜色会跟着瑕疵走,后期再修很费劲。

2. 最快出片:在线AI上色工具怎么用

如果只是偶尔几张照片,纯粹为了发朋友圈或者家庭纪念,在线AI上色是最省事的方案。这类工具现在非常多,在搜索引擎里输入"黑白照片上色""老照片AI上色"就能找到一堆,关键在于你会不会挑。

2.1 怎么挑在线工具

我的选择标准有四条。第一,有前后对比预览,能让我在导出前确认效果。第二,支持高清导出,不少免费工具只给压缩过的小图,放大就糊。第三,有基本的隐私说明,家人照片属于私人信息,别随便传到来路不明的网站。第四,处理速度正常,一般30秒到1分钟是合理的,超过5分钟的基本是排队服务器小,直接换一家。

2.2 操作流程与翻车点

操作上大同小异:上传照片,选风格(有的工具提供"自然""复古""鲜艳"等选项),等预览,满意就导出。看起来简单,但有三个细节很多人不注意。

第一个细节是上传前先裁剪。老照片四周常有白边、黑边、甚至相册粘胶的痕迹,这些区域会影响AI的语义判断,最简单的办法是先裁掉,只保留画面主体。第二个细节是先用小尺寸试效果。大部分在线工具对文件大小有限制,而且大尺寸照片上传反而容易丢失细节。我会先传一张长边1500像素左右的试跑,看好不好再决定是否处理原图。第三个细节是脸部变形。AI在处理低分辨率老照片时偶尔会把五官画歪,或者产生"AI味"的平滑皮肤,这种情况别指望上色工具解决,得先用修复功能把脸修好再上色。

2.3 在线工具的适用边界

在线工具最大的优点是快,最大的缺点是失控。你没办法告诉它"祖母的旗袍是深蓝色",也没办法微调某个区域的色相。所以我的结论是:在线工具适合快出图、看效果、做初稿,不适合对颜色有明确要求的正式修复。另外,如果照片里有明确记忆标识的物品——红领巾、军装、特定的墙漆颜色——在线工具大概率是猜不准的,这类照片不要指望一键完成。

需求场景在线AI工具本地模型手工着色
处理速度最快较快最慢
色彩准确度低中高
高清输出有限制不支持原生高清取决于底图
隐私安全依赖平台完全本地完全本地
学习成本零中高
适合人群随手纪念批量处理追求极致效果

3. 更稳更可控:本地开源模型与桌面版方案

在线工具用了一阵子之后,很多人会碰到两个瓶颈:一是分辨率限制,二是没法批量处理。这时候就该上本地方案了。所谓本地方案,就是在自己电脑上跑开源的上色模型,完全离线,隐私有保障,分辨率不受服务商限制,还能一次性处理整个文件夹。

3.1 为什么要搭本地环境

我最早被逼上本地方案,是因为帮某位朋友处理一批上世纪六十年代的合影,一共三四十张。用在线工具一张张传,先不说隐私问题,光是等预览、等导出就花了两三个小时,而且每张的分辨率都被压缩到长边2000像素以内。换成本地模型之后,我写了个循环脚本,把文件夹里所有照片依次跑一遍,CPU跑一张长边4000像素的照片大约需要几分钟,晚上挂机跑完,早上起来全部处理好了。那种幸福感,用过一次就回不去。

3.2 部署的大致步骤与参数

具体部署方式会随开源项目更新而变化,但大框架是稳定的。第一步,准备Python环境,建议用虚拟环境管理依赖。第二步,安装模型依赖的深度学习框架。第三步,下载预训练权重文件,这一般是几百MB到1GB左右。第四步,跑一个简单的调用脚本,读入灰度图,输出彩色图。

关键参数有三个值得说明。第一个是渲染分辨率,通常设为512的整数倍,长边4096是性价比不错的选择,再高提升不明显而且显存吃紧。第二个是渲染因子,控制色彩饱和度,默认值往往偏高,我习惯调到0.8左右,出来的颜色更克制、更耐看。第三个是色偏纠正选项,某些模型在特定光照下容易整体偏绿或偏蓝,需要手动切换修正算法。这些参数没有绝对标准,同一张照片多试几组就知道差别了。

3.3 老照片翻拍的特殊情况

本地方案里最容易忽略的是输入预处理。常见的问题是翻拍照片有摩尔纹,网格状的花纹会让上色模型输出斑驳的杂色。我的经验是:翻拍件先做去摩尔纹处理,扫描件则先做除尘和去网纹。另一个问题是黑白照片一般对比度偏软,上色前可以先把对比度稍微拉回来,让明暗层次更明确,模型对物体边界的判断会准确很多。输出上,建议保存为无损格式的彩色文件,后续进软件精修不会二次损失画质。

4. 想要完全可控就手工:图层叠加的经典流程

如果说AI方案是"猜",那么手工着色就是"定"。纯手工上色的每一个颜色都是你根据经验、记忆和画面逻辑放上去的,所以它最真实、最耐看,但也最费功夫。这个方法不挑软件,任何支持图层混合模式功能的后期软件都可以,手机上的修图App也有一部分支持。

4.1 图层结构与核心操作

核心理念就一句话:亮度归亮度,颜色归颜色。具体操作是:打开一张修好的黑白底图,先复制一个底图图层作为备份。然后新建一个透明图层,把它的混合模式设为"颜色",在这个图层上涂色。因为"颜色"模式只影响底图的色相和饱和度,不会破坏原本的明暗关系,所以你不管怎么涂,照片的立体感始终是安全的。这是一个极其宽容的操作方式,颜色画歪了直接用橡皮擦或者蒙版擦掉重来,底图毫发无损。

进阶玩法是用多个图层分区域管理:建一个图层组放皮肤的颜色,一个组放衣服,一个组放背景。这样后续想调整某一块颜色,不用全局返工,只需改对应图层的不透明度或者色相饱和度。

4.2 皮肤色到底怎么调才对

皮肤色是整个手工上色里最容易翻车的地方。我刚学的时候,直接拿一个肤色色块往脸上填,结果整个脸像蜡像一样,又平又假。后来才明白,皮肤色不是一个颜色,而是一个范围,而且会随光照和皮肤下的血管透色变化。正确做法是选一个基础肤色作为起点,在RGB模式下大致是R200、G150、B120这个量级,然后用低流量画笔(流量设置在10%到20%之间)反复涂抹,利用笔刷的叠加强度画出脸颊、额头、眼周、嘴唇的不同深浅。嘴唇可以稍微压深一点,颧骨位置的饱和度略高,额头偏亮而饱和度稍低,这样皮肤才有生气。

4.3 不同材质的颜色倾向

衣服、木质、金属、天空的上色逻辑不完全一样。丝绸这类光泽面料,高光区要缀一点点冷色或纯白提亮,暗部则是深沉的饱和色;粗糙的棉麻布没有明显高光,颜色过渡要更均匀;木质家具直接用低饱和度的棕褐色打底,再用加深减淡工具做纹理起伏;天空则是典型的亮度越高越冷、接近地平线偏暖灰的结构,千万不要一整片涂同一个蓝。这些规律没有软件参数可以一步到位,靠的是你对"物体在光线下的颜色变化"的观察积累。

4.4 效率技巧:蒙版和选区

纯手工上色慢,但可以用辅助手段提速。一个常用的技巧是先做选区再填充颜色:用快速选择工具把皮肤区域选出来,填充基础肤色,然后再用画笔在选区内精确刻画阴影和细节。选区帮你框住了边界,画笔不会涂到背景上去,效率直接翻倍。另一个技巧是夸张过渡局部颜色:把图层填充度调到100%,画完发现颜色太浓,只需要把图层整体不透明度降到30%到50%,立刻变成自然的淡彩效果,这个方法在天空和背景上特别管用。

5. 最容易翻车的几个地方:肤色、材质、背景

不管是AI上色还是手工上色,有几类问题出现的频率极高。把这些坑提前列出来,能省掉大量返工时间。

5.1 肤色发灰、发红、发荧光

肤色问题是头号翻车现场。AI模型跑出来的皮肤常常偏平滑、偏红润,甚至带一点"塑料感";手工涂色则容易把肤色涂成均匀的蜡黄或偏紫。原因都是一样的:皮肤色饱和度失控。解决方案有两个方向,一是整体降饱和,把肤色层的不透明度调低,让原本的黑白灰结构多露出来一些;二是微调色相,亚洲肤色总体偏黄红,但黄和红的比例必须控制在很窄的区间内,一旦红色占比过高就显脏,黄色占比过高就显病态。我的经验公式是,饱和度数值控制在15%到25%之间,看起来很"灰",组合起来反而自然。

5.2 材质感流失

材质感流失的表现是:上完色之后物体变成一个平面色块,完全看不出来是棉还是皮。根本原因在于,颜色层把底图的明暗细节盖住了。解决思路是给高光和阴影单独加一层"柔光"混合模式的透明层,用淡黄提亮受光面,用淡紫或淡蓝压暗背光面。这样物体表面就有了冷暖对比,材质感立刻回来。这个方法在衣领、袖口、金属器皿上效果显著。

5.3 背景灰雾与层次重建

老照片的背景经常是模糊一片,上色时如果整片涂一个颜色,空间感就消失了。处理背景的正确姿势是分远近:远处的东西因为大气透视,颜色偏蓝灰、饱和度低、对比度弱;近处的东西饱和度稍高、对比度稍强。即便人物背后的景物已经完全看不清,也要人为赋加这个层次梯度,画面才会"透气",不会憋成一团。

5.4 头发边缘的白边与光晕

上色完成后,经常能在头发和背景的交界处看到一圈白边,俗称"光晕"。这多半是原始照片在扫描时产生的边缘溢出,AI上色时会把边缘误判为浅色区域。修正办法很简单:在"颜色"图层上,用较深的发色沿着发际线向内涂一圈,把白边压住。如果白边在底图上就已经存在,那就需要先在底图上小心翼翼地克隆修补后再上色,否则颜色层再处理也是治标不治本。

6. 混合流程:AI打底加手动精修,我的日常工作流

讲完三种方法的原理和坑点,说说我平时真正在用的流程。我不会全自动交给AI,也不会从头到尾纯手工,而是把两者结合起来,效率和可控性都拉满。

6.1 为什么选择混合而不是二选一

纯AI的问题在于不可控,纯手工的问题在于成本高。拿一张合影来说,一张照片里可能有七八个人,皮肤、衣服、背景全手工做下来,两三个小时起步。而AI打底在几分钟内就能给出一个"大方向基本正确"的颜色方案,虽然细节上有瑕疵,但可以省掉大量从零开始的劳动。我要做的就是在AI的底子上修正那些明显的问题,把它从"大概对"推到"基本准"。这套流程处理一张照片,通常十几分钟到二十分钟,质量远高于纯AI,速度远快于纯手工,是目前平衡点最好的方案。

6.2 五步工作流清单

第一步,预处理。扫描或翻拍照片,裁边、去脏点、去划痕、修脸。这一步决定了后续所有环节的质量,底图不行后面白搭。第二步,AI粗上色。用本地模型跑一遍,输出基础彩色图。第三步,人工校色。用"颜色"混合模式的图层面板逐项修正:肤色饱和度、衣物色相、背景层次。这是整个流程里最关键的一步,前面讲的所有坑都在这时候集中处理。第四步,统一调色。用曲线和色彩平衡调整整体氛围,顺便压暗或提亮局部,让画面色调和谐。第五步,质感和输出。给过于平滑的皮肤区域加上轻微噪点纹理,然后锐化轮廓,最后保存成无损格式存档。

6.3 不同类型照片的参数参考

实际使用中,不同照片类型对应的参数调校方向很不一样。我整理了一份参考表,新手可以直接套用起步。

照片类型AI上色策略人工重点修正项调色倾向
单人肖像默认色彩模式肤色微调、头发压深整体柔和,对比度适中
多人合影先识别脸部再上色逐个校肤色,衣服统一提亮暗部,避免群像脏乱感
全身街景注重天空层次建筑材质、植被色彩空气感优先,远景偏灰蓝
证件照风格皮肤优先修复肤色干净、背景纯净低饱和,规避AI塑料感

6.4 几件值得长期积累的事

这套流程跑熟之后,有几件小事会省下大量时间。一是给经常处理的亲人老照片建立颜色档案,比如外婆的衬衫是什么蓝,外公的围巾是什么格子,下次再处理同一批照片直接调用。二是学会看直方图和取样器,校色时用吸管工具提取色彩信息,比肉眼看屏幕准得多。三是对原图分辨率保持敬畏,上色不会凭空增加细节,底图本身糊的话,任何颜色方案都救不回来,所以在条件允许时优先找原始底片重新扫描,而不是修一张多年前压缩过的小图。

我自己现在处理老照片,已经不是单纯追求"颜色好看",而是尽量回到当年那个时刻的光线、气氛和情绪。技术手段只是一个入口。如果你手里也有压箱底的黑白照片,建议先拿一张比较清晰的人物照按这个流程试一遍,线上工具也好、本地模型也好、手工图层也好,跑通一次之后,你就完全理解这件事是怎么回事了。经验没法替代,但方法可以照搬,试过就知道,其实真没那么难。

RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进