大家好,这里是和你们一起探索 AI 花生。
上次为大家推荐了 9 款在线免费的 AI 工具,可以帮我们一键完成老照片修复/上色的工作。但是这些工具大多有使用次数、图像尺寸方面的限制,处理效果并不能完全让人满意。而随着 AI 绘画的普及,我们可以借助 SD Web UI 这样的开源工具,免费实现黑白照片修复、上色、高清放大等一系列操作,不仅可以没有使用上的各种限制,图像的修复、上色效果也更准确精致。
整个过程大概分为 “面部强化-破损修复-上色-高清放大” 四个步骤,如果你还不了解 SD WebUI 的用法,可以了解我的课程《零基础 AI 绘画入门指南》,这是是一门面向 AI 绘画零基础人群的系统课程,包含 Stable Diffusion WebUI 全面细致的用法教学,并提供配套资源,能帮你快速掌握这款目前最热门的 AI 绘画工具。
一、人物面部增强
修复老照片时,最重要部分就是人脸的处理,一定要完整清晰,所以我们首先要做的就是强化人物的面部特征,这一步可以使用 SD WebUI「后期处理」中的 GFPGAN 或 CodeFormer 来完成,它们是专门处理面部特征的模型,可以将模糊的人脸变得清晰。
GFPGAN 模型会完全忠于原图,适合没有破损的模糊人像。而 CodeFormer 则会有一定程度的加工,能让人物五官更完整清晰,但是也容易造成变形。所以一般推荐我两个模型搭配使用,但目前 1.9 版本的 WebUI 相关配置有 Bug,导致二者联用时会出现报错,大家可以等修复之后再尝试。
此处我使用的是 CodeFormer 模型,因为它的视觉效果会更舒适一些。权重建议在 0.2-0.5 之间调整,这样既可以保持与原图面部特征相似,也能一定程度上修复模糊和破损;权重值过高会导致五官发生明显变化。
二、破损瑕疵修复
在得到清晰的面部细节之后,我们就可以进一步对照片的破损进行修复。
在这一步需要在 Ps 中处理,利用画笔、污点修复画笔、内容识别等功能对裂痕、污点进行修复,操作很简单。在 Ps 中处理得越精细,后面在 WebUI 中的工作就会越方便,修复的效果也更好(如果你的照片破损非常严重,五官的部分也有严重损毁,那可以需要更复杂的 Ps 技巧才能处理好,相关教程 B 站上有,此处不展开细讲)。
下图是用完全用内容识别工具处理的,修复了大部分非常明显的裂痕,图像质量等到了很明显的改善。
三、上色
在 SD WebUI 中,Controlnet 的 Recolor 模型会基于黑白照片的亮度(luminance)或强度(intensity ),对画面进行上色处理,效果比很多自动上色的工具好。 具体操作如下:
① 进入文生图版块,启用 controlnet,勾选完美像素、允许预览选项;
② 选择 recolor 预处理器与控制模型,然后上传上一步修复好的模型;
③ 设置生成参数。因为是处理摄影照片,所以要选择写实类的大模型,比如 realisticVision,其他参考信息如下:
正向提示词:a woman,short curly black hair,smile,with earrings,photographic portrait
反向提示词:UnrealisticDream,BadDream,ng_deepnegative_v1_75t(均为负面提示词 embedding)
大模型:realisticVisionV30,Clip skip: 2
Steps: 25, Sampler: DPM++ 2M, Schedule type: Karras, CFG scale: 7
ControlNet 0: recolor_luminance, Model: ioclab_sd15_recolor, Weight: 1.0
如果想自己控制上色效果,可以在提示词中指定物体的颜色,比如黄色的裙子、棕色的大衣等,可以在一定程度上影响上色效果,或者在图生图的「涂鸦重绘」中,用带颜色的画笔涂抹指定区域,配合 controlnet 的 recolor 模型,引导 AI 生成对应颜色的内容。
四、高清放大
在基础的修复、上色完成后,我们就可以对处理后的照片进行高清放大。
之所以没有把放大放在第一步,一是因为如果面部太模糊,直接放大后会导致面部失真;二是因为在上色的时候,图片太大会让处理时间变长,上色效果也会下降,如果你的显存不高,还容易出现爆显存的问题。所以早期图像在 512-1024 px 之间是比较合适的。
目前在 AI 技术的加持下,想放大一张图像的方法是非常多的,之前也为大家专门推荐过图像高清放大工具,可以直接使用。而 SD WebUI 本身也是很擅长图像放大的,主要方法以下 2 种:
① 如果只是将图像放大到 2K 的水平,不追求高清细节,可以直接使用「后期处理」的放大功能。里面支持两种算法结合使用,我们可以选择 4x-UltraSharp 或 R-ESRGAN 4x+ 做为主算法,提升画面的清晰度;然后用 Lanczos 或 Nearest 做为辅助算法,保留画面原有的质感。
② 如果是要图像放大到 4K 水平,可以使用 Tiled Diffusion 搭配 Controlnet Tile 模型处理,具体操作如下:
1)进入图生图版块,大模型、提示词、生成参数等设置都可以与前面文本图里的保持一致;
2)上传需要放大的图像,填写图像尺寸,重绘幅度推荐 0.3-0.5 之间,过高会导致画面细节变形;
3)启用 tiled diffusion 插件 ,放大算法选 4x-UltraSharp 或 R-ESRGAN 4x+;选择放大倍数,一般是 2-4 倍。
4)直接启用 controlnet,选择 tile 模型,勾选完美像素模式,然后点击生成,等待图像放大。
5)如果你在使用此方法放大图像时,出现了 out of memory 爆显存的情况,可以再启用 Tile VAE 选项,可以有效降低显存的占用率。
与后期处理放大相比,Tiled 放大法会对整个画面进行重绘,让原本模糊的细节也变得清晰锐利。所以即使同样是放大 2 倍,Tile 处理后的图像会更高清逼真。
五、相关技巧
以上就是一个最基础的黑白照片修复、上色、高清方法工作流,处理顺序并不是定死的,重点是让大家明白不同的功能带来的不同效果。实际操作中,我们可以结合实际情况修改调整顺序。
SD WebUI 目前并不能独立完成所有修图任务,所以一定要结合 Ps 等其他图像处理工具灵活处理。除了修复破损,Ps 的调色以及蒙版功能也非常有帮助。
比如你的照片中人物很多,一次性修复效果不佳,就可以分别截取人脸,单独用 AI 修复好之后再用 Ps 合成到一起;或者上色的过程中,不同物体间容易串色,就可以一次只指定一个颜色,生成多张图像,然后再用 Ps 合成在一起,这样效率反而比抽卡高,效果也会更精致。
文章内用到的图像、模型文件都可以在文末的云盘内下载,非常推荐 SD WebUI 新手用来练习。喜欢本期内容的话记得点赞、收藏评论三连支持一波,我会有更动力为大家推荐新的干货内容~