该训练参数是我实践而来最“偷懒”的训练参数,而非“最佳”训练参数,在效果尚可的前提下尽可能降低成本,以下是参数使用方式。
SD15(模型训练)
model_train_type = "sd-lora"
pretrained_model_name_or_path = "填写SDXL/Pony大模型地址"
vae = "填写模型VAE模型地址(非必要)"
v2 = false
train_data_dir = "填写训练数据集路径"
reg_data_dir = "填写验证集路径(非必要但推荐)"
prior_loss_weight = 1
resolution = "1024,1024"
enable_bucket = true
min_bucket_reso = 256
max_bucket_reso = 1024
bucket_reso_steps = 64
bucket_no_upscale = true
output_name = "填写模型名称"
output_dir = "./output"
save_model_as = "safetensors"
save_precision = "fp16"
save_every_n_epochs = 1
save_state = false
max_train_epochs = 1
train_batch_size = 1
gradient_checkpointing = false
network_train_unet_only = false
network_train_text_encoder_only = false
learning_rate = 1
unet_lr = 1
text_encoder_lr = 1
lr_scheduler = "constant"
lr_warmup_steps = 0
optimizer_type = "Prodigy"
network_module = "networks.lora"
network_dim = 32
network_alpha = 16
log_with = "tensorboard"
logging_dir = "./logs"
caption_extension = ".txt"
shuffle_caption = true
keep_tokens = 0
max_token_length = 255
noise_offset = 0.1
seed = 1337
clip_skip = 2
mixed_precision = "bf16"
full_fp16 = false
xformers = true
sdpa = true
lowram = false
cache_latents = true
cache_latents_to_disk = true
persistent_data_loader_workers = true
optimizer_args = [
"decouple=True",
"weight_decay=0.01",
"use_bias_correction=True",
"d_coef=2.0"
]
SDXL-Pony(模型训练)
model_train_type = "sdxl-lora"
pretrained_model_name_or_path = "填写SDXL/Pony大模型地址"
vae = "填写模型VAE模型地址(非必要)"
train_data_dir = "填写训练数据集路径"
reg_data_dir = "填写验证集路径(非必要但推荐)"
prior_loss_weight = 1
resolution = "1024,1024"
enable_bucket = true
min_bucket_reso = 256
max_bucket_reso = 1024
bucket_reso_steps = 64
bucket_no_upscale = true
output_name = "填写模型名称"
output_dir = "./output"
save_model_as = "safetensors"
save_precision = "fp16"
save_every_n_epochs = 1
save_state = false
max_train_epochs = 1
train_batch_size = 1
gradient_checkpointing = false
network_train_unet_only = false
network_train_text_encoder_only = false
learning_rate = 1
unet_lr = 1
text_encoder_lr = 1
lr_scheduler = "constant"
lr_warmup_steps = 0
optimizer_type = "Prodigy"
network_module = "networks.lora"
network_dim = 32
network_alpha = 16
log_with = "tensorboard"
logging_dir = "./logs"
caption_extension = ".txt"
shuffle_caption = true
keep_tokens = 0
max_token_length = 255
noise_offset = 0.1
seed = 1337
mixed_precision = "bf16"
full_fp16 = false
xformers = true
sdpa = true
lowram = false
cache_latents = true
cache_latents_to_disk = true
persistent_data_loader_workers = true
optimizer_args = [
"decouple=True",
"weight_decay=0.01",
"use_bias_correction=True",
"d_coef=2.0"
]
使用须知
1.使用模版,把任何中文地方进行修改,跑完整一轮的学习率测试。
2.点开Tensorboard面板,找到最新的训练日志,记下lr/d*lr/textencoder、lr/d*lr/unet(有时候会没有)最右侧的Value值,这个就是神童优化器计算出的最佳学习率。
3.返回LoRA训练的专家模式,将Value值填写进learning_rate、unet_lr,text_encoder_lr改回默认的1e-5,lr_scheduler改回cosine_with_restarts,optimizer_type改回AdamW8bit,max_train_epochs改回10,mixed_precision改为fp16,打开full_fp16。
4.开始训练即可。
ps:该参数适合训练概念(人物、服装、道具等),如果需要训练画风请将network_dim修改为128、network_alpha修改为64。