Skip to content

Instantly share code, notes, and snippets.

@hinablue
Last active October 20, 2024 05:56
Show Gist options
  • Save hinablue/8423119c1e9a1c701e2d2813305982bd to your computer and use it in GitHub Desktop.
Save hinablue/8423119c1e9a1c701e2d2813305982bd to your computer and use it in GitHub Desktop.
Flux.1 Dev Lora training by Kohya with multiple resolutions

多解析度訓練

!!以上訓練參數會使用 16GB+ 以上的 VRAM,請自行斟酌使用!!


在 Kohya 使用多解析度訓練,在 datasets 的配置上可以採用以下規則:

解析度 說明
[1024, 1024] 訓練內容可以是全部的訓練子集
[768x 768] 剔除 訓練目標偏小的訓練子集
[512, 512] 僅保留 訓練目標最大的訓練子集

同時,每一個 datasets 都可以配置不同的 batch_size 以及訓練集圖片的重複次數 num_repeats

訓練集圖片重複次數的邏輯跟以往訓練的數據平衡概念差不多。

而執行的 batch_size 可以在最小解析度中開高一點(使用 2 ~ 4),對於小圖面內容的穩定性可以增加。

[general]
bucket_reso_steps = 32
bucket_no_upscale = true
min_bucket_reso = 256
max_bucket_reso = 2048
enable_bucket = true
color_aug = false
flip_aug = false
random_crop = false
shuffle_caption = false
caption_separator = ","
enable_wildcard = false
caption_extension = ".txt"
caption_dropout_rate = 0.0
caption_tag_dropout_rate = 0.0
[[datasets]]
batch_size = 1
resolution = [1024, 1024]
network_multiplier = 1.0
keep_tokens = 1
[[datasets.subsets]]
image_dir = "/training_image/4_close-up"
num_repeats = 4
is_reg = false
class_tokens = "girl close-up"
[[datasets.subsets]]
image_dir = "/training_image/protrait"
num_repeats = 1
is_reg = false
class_tokens = "girl protrait"
[[datasets.subsets]]
image_dir = "/training_image/full-body"
num_repeats = 3
is_reg = false
class_tokens = "girl full-body"
[[datasets]]
batch_size = 2
resolution = [768, 768]
network_multiplier = 1.0
keep_tokens = 1
[[datasets.subsets]]
image_dir = "/training_image/close-up"
num_repeats = 4
is_reg = false
class_tokens = "girl close-up"
[[datasets.subsets]]
image_dir = "/training_image/protrait"
num_repeats = 1
is_reg = false
class_tokens = "girl protrait"
[[datasets]]
batch_size = 4
resolution = [512,512]
network_multiplier = 1.0
keep_tokens = 1
[[datasets.subsets]]
image_dir = "/training_image/close-up"
num_repeats = 8
is_reg = false
class_tokens = "girl close-up"
{
"LoRA_type": "Flux1",
"LyCORIS_preset": "full",
"adaptive_noise_scale": 0,
"additional_parameters": "--log_prefix=flux --network_train_unet_only",
"ae": "/data/models/vae/ae.safetensors",
"apply_t5_attn_mask": false,
"async_upload": false,
"block_alphas": "",
"block_dims": "",
"block_lr_zero_threshold": "",
"bucket_no_upscale": true,
"bucket_reso_steps": 32,
"bypass_mode": false,
"cache_latents": true,
"cache_latents_to_disk": true,
"caption_dropout_every_n_epochs": 0,
"caption_dropout_rate": 0,
"caption_extension": ".txt",
"clip_l": "/data/models/clip/clip_l.safetensors",
"clip_skip": 1,
"color_aug": false,
"constrain": 0,
"conv_alpha": 1,
"conv_block_alphas": "",
"conv_block_dims": "",
"conv_dim": 1,
"dataset_config": "/data/Train/datasets_config.toml",
"debiased_estimation_loss": false,
"decompose_both": false,
"dim_from_weights": false,
"discrete_flow_shift": 3.1582,
"dora_wd": false,
"down_lr_weight": "",
"dynamo_backend": "eager",
"dynamo_mode": "default",
"dynamo_use_dynamic": false,
"dynamo_use_fullgraph": false,
"enable_bucket": true,
"epoch": 8,
"extra_accelerate_launch_args": "",
"factor": -1,
"flip_aug": false,
"flux1_cache_text_encoder_outputs": true,
"flux1_cache_text_encoder_outputs_to_disk": true,
"flux1_checkbox": true,
"fp8_base": true,
"full_bf16": false,
"full_fp16": false,
"gpu_ids": "",
"gradient_accumulation_steps": 1,
"gradient_checkpointing": true,
"guidance_scale": 1,
"highvram": true,
"huber_c": 0.1,
"huber_schedule": "snr",
"huggingface_path_in_repo": "",
"huggingface_repo_id": "",
"huggingface_repo_type": "",
"huggingface_repo_visibility": "",
"huggingface_token": "",
"ip_noise_gamma": 0,
"ip_noise_gamma_random_strength": false,
"keep_tokens": 1,
"learning_rate": 5e-05,
"log_config": false,
"log_tracker_config": "",
"log_tracker_name": "",
"log_with": "",
"logging_dir": "/data/Train/log",
"loraplus_lr_ratio": 0,
"loraplus_text_encoder_lr_ratio": 0,
"loraplus_unet_lr_ratio": 0,
"loss_type": "l2",
"lowvram": false,
"lr_scheduler": "constant_with_warmup",
"lr_scheduler_args": "",
"lr_scheduler_num_cycles": 1,
"lr_scheduler_power": 1,
"lr_scheduler_type": "",
"lr_warmup": 5,
"main_process_port": 0,
"masked_loss": false,
"max_bucket_reso": 2048,
"max_data_loader_n_workers": 8,
"max_grad_norm": 1,
"max_resolution": "1024,1024",
"max_timestep": 1000,
"max_token_length": 225,
"max_train_epochs": 0,
"max_train_steps": 4000,
"mem_eff_attn": false,
"mem_eff_save": false,
"metadata_author": "",
"metadata_description": "",
"metadata_license": "",
"metadata_tags": "",
"metadata_title": "",
"mid_lr_weight": "",
"min_bucket_reso": 256,
"min_snr_gamma": 5,
"min_timestep": 0,
"mixed_precision": "bf16",
"model_list": "custom",
"model_prediction_type": "raw",
"module_dropout": 0,
"multi_gpu": false,
"multires_noise_discount": 0.3,
"multires_noise_iterations": 0,
"network_alpha": 16,
"network_dim": 8,
"network_dropout": 0,
"network_weights": "",
"noise_offset": 0.03,
"noise_offset_random_strength": false,
"noise_offset_type": "Original",
"num_cpu_threads_per_process": 2,
"num_machines": 1,
"num_processes": 1,
"optimizer": "AdamW8bit",
"optimizer_args": "weight_decay=0.01 betas=0.9,0.999,0.9999 eps=0.000001",
"output_dir": "/data/Train/output",
"output_name": "kohya_flux_miltiple_resolution",
"persistent_data_loader_workers": true,
"pretrained_model_name_or_path": "/data/models/flux1-dev.safetensors",
"prior_loss_weight": 1,
"random_crop": false,
"rank_dropout": 0,
"rank_dropout_scale": false,
"reg_data_dir": "",
"rescaled": false,
"resume": "",
"resume_from_huggingface": "",
"sample_every_n_epochs": 0,
"sample_every_n_steps": 0,
"sample_prompts": "",
"sample_sampler": "euler_a",
"save_every_n_epochs": 1,
"save_every_n_steps": 0,
"save_last_n_steps": 0,
"save_last_n_steps_state": 0,
"save_model_as": "safetensors",
"save_precision": "fp16",
"save_state": false,
"save_state_on_train_end": true,
"save_state_to_huggingface": false,
"scale_v_pred_loss_like_noise_pred": false,
"scale_weight_norms": 0,
"sdxl": false,
"sdxl_cache_text_encoder_outputs": false,
"sdxl_no_half_vae": false,
"seed": 17415,
"shuffle_caption": false,
"split_mode": false,
"split_qkv": false,
"stop_text_encoder_training_pct": 0,
"t5xxl": "/data/models/clip/t5xxl_fp8_e4m3fn.safetensors",
"t5xxl_max_token_length": 512,
"text_encoder_lr": 5e-05,
"timestep_sampling": "shift",
"train_batch_size": 1,
"train_blocks": "single",
"train_data_dir": "",
"train_norm": false,
"train_on_input": true,
"training_comment": "",
"unet_lr": 1e-04,
"unit": 1,
"up_lr_weight": "",
"use_cp": false,
"use_scalar": false,
"use_tucker": false,
"v2": false,
"v_parameterization": false,
"v_pred_like_loss": 0,
"vae": "",
"vae_batch_size": 0,
"wandb_api_key": "",
"wandb_run_name": "",
"weighted_captions": false,
"xformers": "sdpa"
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment