简介:用自己妹妹以身试法,训练真实感人物人像Lora模型,本模型lora基于ChilloutMix大模型为底模模型训练majicMAX为底模增强, 在真实感以及写实等摄影类得大模型表现优秀
特点:面部泛化性很好、人像面部超级自然真实,且加强了面部细节皮肤质感以及纹理
创意概述:现阶段AI生图人像太工业化的脸让人乏味,缺乏特点,同质化严重,为了拒绝一眼AI脸,以及没有特色的网红脸,故训练此模型,让AI人像美的有特点,环肥燕瘦,各有千秋。
且人无完人,而我自己对真实感的理解,一颗痣,一些斑点,一些高原红,,粗糙的皮肤也何尝不是一种美呢?
生成建议:搭配真实感大模型 majicMAX系列,墨幽人造人系列,XXMIX系列,ChilloutMix或者其他写实类大模型
推荐关键词加上ray tracing,photorealistic,Detailed beautiful delicate face,finely detailed beautiful eyes and detailed face,Ray tracing,Cinematic Light,light source contrast等提高面部细节跟光影质感得prompt
建议权重(0.5-0.9)
推荐步数:35-50
VAE :vae-ft-mse-84000-ema
推荐开启高清修复
高清修复设置:
放大算法:4X-UltraSharp 重绘幅度 0.2-0.35 高清修复采样 25
建议使用ADetailer脸部优化插件 把LORA放入ADetailer 的 prompt里
以及CDTuner插件
插件语法:直接输入,或者在插件里拖动调整
<cdt:d1=2;col1=-3>
<cdt:d2=2;hrs=1>
<cdt:1>
<cdt:0;0;0;-2.3;0,2>
<cdt:0;0;0;-2.3;0;2;0;0;1>
听人劝吃饱饭,如有想法或者建议可以WX:BLUE601159
与V1.0比V2.0版本,加了些数据图,增强训练,泛化性良好,皮肤质感肌理有所增强,
(PS:炼丹是门玄学,为了弄好没少挨打,当事人不是很满意,硬着头皮继续弄)
模型拟合泛化测试图:
最后,说个题外话给大家推荐个我常用的采样器DPM++ 2M alt Karras
添加方法,用记事本打开stable-diffusion-webui/modules/sd_samplers_kdiffusion.py 在第38行添加
from tqdm.auto import trange
@torch.no_grad()
def sample_dpmpp_2m_alt(model, x, sigmas, extra_args=None, callback=None, disable=None):
"""DPM-Solver++(2M)."""
extra_args = {} if extra_args is None else extra_args
s_in = x.new_ones([x.shape[0]])
sigma_fn = lambda t: t.neg().exp()
t_fn = lambda sigma: sigma.log().neg()
old_denoised = None
for i in trange(len(sigmas) - 1, disable=disable):
denoised = model(x, sigmas[i] * s_in, **extra_args)
if callback is not None:
callback({'x': x, 'i': i, 'sigma': sigmas[i], 'sigma_hat': sigmas[i], 'denoised': denoised})
t, t_next = t_fn(sigmas[i]), t_fn(sigmas[i + 1])
h = t_next - t
if old_denoised is None or sigmas[i + 1] == 0:
x = (sigma_fn(t_next) / sigma_fn(t)) * x - (-h).expm1() * denoised
else:
h_last = t - t_fn(sigmas[i - 1])
r = h_last / h
denoised_d = (1 + 1 / (2 * r)) * denoised - (1 / (2 * r)) * old_denoised
x = (sigma_fn(t_next) / sigma_fn(t)) * x - (-h).expm1() * denoised_d
sigma_progress = i / len(sigmas)
adjustment_factor = 1 + (0.15 * (sigma_progress * sigma_progress))
old_denoised = denoised * adjustment_factor
return x
k_diffusion.sampling.sample_dpmpp_2m_alt = sample_dpmpp_2m_alt
samplers_data_k_diffusion.insert(9, sd_samplers_common.SamplerData('DPM++ 2M alt', lambda model: KDiffusionSampler('sample_dpmpp_2m_alt', model), ['k_dpmpp_2m_alt'], {}))
samplers_data_k_diffusion.insert(10, sd_samplers_common.SamplerData('DPM++ 2M alt Karras', lambda model: KDiffusionSampler('sample_dpmpp_2m_alt', model), ['k_dpmpp_2m_alt_ka'], {'scheduler': 'karras'}))
直接保存即可