目前,基于扩散模型的内容生成技术给图像生成领域带来了革命性的变革,从NovelAI到Midjourney,从StableDiffusion开源到WebUI、ControlNet,无论是AIGC相关的公司愈演愈烈,还是新的论文和技术层出不穷,不禁让我们感叹“生命短暂,学海无涯”,同时,也让我们看到当下无数机会与挑战的大爆发!面对这些新的机会,人像美颜这个垂域又将如何发展?这里,我将使用AIGC相关技术,来对人像照片美颜的方式和方法做一些尝试与解决方案的研究。
我将以WebUI为例,进行人像美颜效果的尝试。
环境安装
WebUI安装,这里不再累赘,网络资源已经泛滥;
ControlNet安装:
WebUI-ControlNet:https://github.com/Mikubill/sd-webui-controlnet
①打开WebUI,点击Extensions--Install from URL,然后输入Controlnet的git链接,点击install即可。安装界面如下:
安装完成之后,会在stable-diffusion-webui/extensions/路径下新增sd-webui-controlnet文件夹。
②从https://huggingface.co/webui/ControlNet-modules-safetensors/tree/main 下载相关模型并放置到如下路径下:stable-diffusion-webui/extensions/sd-webui-controlnet/models
重启WebUI即可完成整个安装。
解决方案介绍
我们用AIGC相关技术实现美颜效果,有两种途径:一种是直接使用AIGC生成固定人物的美颜照片,另一种是修改用户的照片实现美颜效果;
目前鉴于AIGC的可控性不强,我们很难达到非常完美的任意用户照片的美颜效果生成,因此,这里我们挖掘如何修改用户的照片实现美颜效果,也就是使用AIGC的方式来进行P图美颜。
初步方案:
使用img2img模式,结合controlnet保留用户形象内容不变,生成磨皮美颜效果,然后,使用皮肤分割+五官解析技术,将原图和效果图进行alpha融合,最终实现美颜效果。
这个方案中的难点:如何有效保留用户原图信息,如何使用有效的磨皮美颜prompt达到美颜效果;
具体实现
1.StableDiffusion大模型选择
美颜效果主要表现为皮肤白皙,没有褶皱,斑点,雀斑,法令纹,眼角纹,痣等等,为了达到这类效果,我们首先要选择合适的SD模型,这里我们选择ChilloutMix模型,具体下载地址:
C站地址:ChilloutMix | Stable Diffusion Checkpoint | Civitai
huggingface地址:swl-models/chilloutmix at main (huggingface.co)
这个模型的效果举例如下:
2.有了大模型之后,我们以WebUI为例,进行分析,打开WebUI,由于我们要进行修图,所以,我们需要选择img2img模式,在该模式下选择ChilloutMix大模型。我们选择一张测试图,如下图:
导入WebUI后,如图所示。
3.叠加两个Controlnet控制,分别为canny边缘控制、depth深度信息控制,参数设置分别如下(选用canny和depth的原因是我们需要通过边缘和深度信息尽可能的保留用户原图信息):
4.img2img参数设置
这里提供美颜专用的prompt:
positive:masterpiece,best quality,high res, (photorealistic:1.4),(red face blush:1.2),red lips,extremely detailed
negative:(worst quality:2), (low quality:2), (normal quality:2), lowres, normal quality,(skin spots:2), acne,acne marks,mole (skin blemishes:2), (age spot:2), watermark,signature water mark
主要描述说明:
face blush:腮红
red lips:红色唇彩
skin spots:皮肤斑点
acne:雀斑
age spot:老年斑
skin blemishes:皮肤瑕疵
mole:痣
对于Prompt描述,我们可以自行研究,这里给的主要是磨皮和简单的唇彩腮红效果,实际上可以定义各种人脸效果,包括肤色调节,美白,妆容等等,这也就是AIGC做人像美颜的优越性体现。除了这些参数之外,其他参数设置:
5.基于上述参数设置,点击运行,效果图如下:
原图 AIGC生成效果
通过修改描述词,微调效果如下:
上述效果我们仔细看会发现,其实与原图还是有一些差别的,这些差别在某些情况下会导致不像用户,为此,我们做到这里并没有结束,我们需要挑选我们想要的美颜区域,叠加到用户原图之上,以此来保证用户ID相似性。
6.我们使用皮肤分割技术+五官解析技术,将效果图中的皮肤区域+嘴唇+眉毛区域融合到原图,得到最终效果图:
最终效果图
这个效果我们可以发现,很好的保留了用户的眼睛区域,以及其他非皮肤区域,整体看下来遵循用户原图场景内容,这个也是关键点,我们要做的是照片精修,而不是照片重构和生成,对于影楼以及专业修图人员来讲,用户还是希望是自己的照片的。
对于皮肤分割和五官解析,这里给出美图AI开放平台的技术链接(查找五官分割/皮肤分割):
美图AI开放平台 (meitu.com)
上述就是AIGC来做人像精修美颜的一种解决方案,其中有一些地方还是可以改进的,比如prompt工程,再比如人脸区域的canny边缘(如果有更加精确的边缘算法,我们实际上是不需要后续的五官分割再融合算法的),这里只大概介绍了一下方法思路,算是抛砖引玉吧!