今年的 AIGC 特别火,特别是 stable diffusion 相关的开源工具生态,把入门门槛降得很低,这里记录下最近第一次尝试的 LoRA 训练:
首先看下最终的效果:
![]() |
![]() |
![]() |
![]() |
LoRA 模型已经上传 C站:https://civitai.com/models/60018/realskin (Base Model 用的 ChilloutMix)
LoRA 特点
其实本身 ChilloutMix 在人物生成方面已经很好用了,但总感觉有一种失真感,特别是皮肤太过光滑完美(也可能是Prompt的问题?),所以希望训练个加噪点的 LoRA,使皮肤能更真实一点,所以给这个 LoRA 模型起名 “real_skin”,可以对比下图左右不加LoRA和加LoRA的区别:
![]() |
![]() |
训练过程
训练的工具主要是 stable-diffusion-webui 和 kohya_ss 这两个开源库,使用比较简单,傻瓜式操作,机器用的腾讯云的 GN7,跑 LoRA 足够了
训练数据的准备用了个比较取巧的办法:先用 ChilloutMix 生成一些人脸图像,然后用 Photoshop 加噪点,再进行训练,省的去找图了,本来也只是训练个类似“滤镜”的效果
Photoshop 的处理,除了加噪点,另外把人脸部分抠了下图,避免噪点影响到其他区域了
最终的训练数据就是如下一些图(已经上传C站)
分辨率用的 512×512,训练参数如下:
{
"pretrained_model_name_or_path": "/home/ubuntu/stable-diffusion-webui/models/Stable-diffusion/chilloutmix_NiPrunedFp32Fix.safetensors",
"v2": false,
"v_parameterization": false,
"logging_dir": "/home/ubuntu/train/train_lora/log",
"train_data_dir": "/home/ubuntu/train/train_lora/image",
"reg_data_dir": "",
"output_dir": "/home/ubuntu/train/train_lora/model",
"max_resolution": "512,512",
"learning_rate": "0.0001",
"lr_scheduler": "cosine",
"lr_warmup": "10",
"train_batch_size": 2,
"epoch": 2,
"save_every_n_epochs": 1,
"mixed_precision": "fp16",
"save_precision": "fp16",
"seed": "",
"num_cpu_threads_per_process": 2,
"cache_latents": true,
"caption_extension": "",
"enable_bucket": true,
"gradient_checkpointing": false,
"full_fp16": false,
"no_token_padding": false,
"stop_text_encoder_training": 0,
"xformers": true,
"save_model_as": "safetensors",
"shuffle_caption": false,
"save_state": false,
"resume": "",
"prior_loss_weight": 1.0,
"text_encoder_lr": "5e-5",
"unet_lr": "0.0001",
"network_dim": 8,
"lora_network_weights": "",
"color_aug": false,
"flip_aug": false,
"clip_skip": "1",
"gradient_accumulation_steps": 1.0,
"mem_eff_attn": false,
"output_name": "real_skin",
"model_list": "custom",
"max_token_length": "75",
"max_train_epochs": "",
"max_data_loader_n_workers": "0",
"network_alpha": 1,
"training_comment": "",
"keep_tokens": "0",
"lr_scheduler_num_cycles": "",
"lr_scheduler_power": ""
}
最终训练生成的 LoRA 模型约 9MB,上传 C 站,收工!