人像质感增强滤镜(SD1.5)
图例使用的大模型分别为 majicMIX realistic,AWPortrait,MoonFilm 和 Bayonetta。
主要效果:
1.增强皮肤质感。
2.添加细节:头发、眉、眼、鼻和唇。
3.增加面部光影。
4.弱化颈部纹理。
推荐权重:0.3(0~0.5)
推荐用法:
分辨率 512*768。
推荐配合近距离特写关键词"close-up" "portrait"。
即使脸没有崩,也可以尝试开启 ADetailer 对脸部进行二次强化。
高分辨修复,推荐超分算法为 UltraSharp-4x 和 NMKD-Superscale-8x,重绘幅度 0.2。
注:不适用于二次元模型。
制作过程:
模型的基本炼制原理,使用的是B站“青龙圣者”介绍的“差异炼丹法”,内有详细步骤。
简单概述一下我理解的基本原理:
1.首先你有一个想要训练的“概念”,这个概念最好是“在不改变原有图片大部分特征的前提下,改变某一小部分特征”,比如“把眼睛变大”。这被“改变的一小部分特征”,就是“差异”,这里用字母 d 代替。
2.使用一小组图片集 X 作为原图训练集,使用一个大模型 A 训练至过拟合得到一个 LORA F(X, A)。
3.对原图集 X 进行修改,加上你的概念差异 d,得到修改后的图集 (X+d)。
4.使用修改后的图片集 (X+d) 作为原图训练集,使用与训练原图集 X 相同的参数进行训练,得到第二个 LORA F'(X+d, A)。
5.将两个 LORA 相减,即 F'(X+d, A) - F(X, A)。通常来说,你应该将得到一个与 d 相关度较高、而与 X 和 A 相关度较低的 LORA G(d, X, A)。这就是你要的丹。
一些要点:
1.由于神经网络的非线性特性,你不可能把 X 和 A 从最终结果 G 中100%完全剔除。因此,你可以先“预设”一些 LORA 的使用场景,并挑选符合你的“预设场景”的图集 X 和大模型 A。比如,你的 d 是“把眼睛变大”,但你希望专注于“真人人像”,而不是2.5D或者二次元,那么你的 X 和 A 也应当符合“真人人像”。这样可以使得 X 和 A 对 G 的影响,跟偏向于你的“预设场景”。
2.训练至过拟合,是为了减小最终结果 G(d, X, A) 中大模型 A 的相关度。换句话说,大大提高了与其他大模型的适配程度。
3.两个 LORA 使用相同参数训练,是为了使 F' 和 F 尽量相同,稳定二者相减后的结果,保证与 d 更相关。
4.如果差异 d(相比于X)过大,极端情况,可以简单理解为 F'(X+d, A) 变成了 F'(0+d, A)。那么与 F(X, A) 相减后,你得到的 LORA 将与 (d-X) 高度相关,而不是仅与 d 高度相关。话句话说,你的 d 越大,你得到的结果将与(反向)X 相关度越高。至于如何判断你的 d 是否“过大”,我的建议是“你试试就知道了”。
本 LORA:
如果你理解了“差异炼丹法”的基本原理,同时,你也有使用各种图片编辑软件“修人像”的经验,那么你就应该能明白这个 LORA 是怎么制作出来的了。
我制作“差异”步骤也很简单:
1.提取图片中人像部分,保证非人像部分不变。
2.对皮肤增加纹理和噪点。
3.对头发和五官做高频增强。
另外,很多大模型出的“真人”图,在衣服上会有很多奇怪的纹理;特别是在超分放大后,尤为明显。因此我也对衣服进行了一点点降噪处理。但我的目标着重于人本身,而不包括衣物,所以不着重提及。
关于微调:
在测试时我发现,对比原大模型,这个 LORA 出的图,颜色饱和度变低了(特别是皮肤部分),亮度变高了,对比度变低了。
经过简单思考,这其实是与我添加的“差异”相符的:
1.我对皮肤增加纹理和噪点,给原本的“彩色”皮肤增加了“黑灰白”的成分,这显然会降低黄皮肤的色彩饱和度。而皮肤在我的训练图中的占比很大,因此会拉低整张图片的饱和度。
2.对皮肤增加纹理和噪点,以及对头发和五官做高频增强,都会大量提高图像中“黑”和“白”成分的占比,因此亮度和对比度会被改变。
这样的情况是“功能”还是“bug”?我决定还是先尽量还原至原大模型的效果。
我的微调方法很简单,融合其他功能 LORA:
1.使用 YFilter_BlueOrange,增加橙色权重,恢复皮肤颜色的饱和度。
2.使用 YFilter_DynamicRange 和 YFilter_BlackWhite,调整亮度和对比度。
最后,我额外增加了一些 YFilter_DynamicRange 的 LDR 权重,提高图像的光影对比强度效果,算是给这个 LORA 添加一些“差异化效果”。
欢迎讨论。