File size: 11,258 Bytes
f889344
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
# Copy this file and name it config.toml
# Edit the values to suit your needs

[settings]
use_shell = false # Use shell furing process run of sd-scripts oython code. Most secure is false but some systems may require it to be true to properly run sd-scripts.

# Default folders location
[model]
models_dir = "./models"                    # Pretrained model name or path
output_name = "new model"                  # Trained model output name
train_data_dir = "./data"                  # Image folder (containing training images subfolders) / Image folder (containing training images)
dataset_config = "./test.toml"             # Dataset config file (Optional. Select the toml configuration file to use for the dataset)
training_comment = "Some training comment" # Training comment
save_model_as = "safetensors"              # Save model as (ckpt, safetensors, diffusers, diffusers_safetensors)
save_precision = "bf16"                    # Save model precision (fp16, bf16, float)

[folders]
output_dir = "./outputs"    # Output directory for trained model
reg_data_dir = "./data/reg" # Regularisation directory
logging_dir = "./logs"      # Logging directory

[configuration]
config_dir = "./presets" # Load/Save Config file

[accelerate_launch]
dynamo_backend = "no"             # Dynamo backend
dynamo_mode = "default"           # Dynamo mode
dynamo_use_dynamic = false        # Dynamo use dynamic
dynamo_use_fullgraph = false      # Dynamo use fullgraph
extra_accelerate_launch_args = "" # Extra accelerate launch args
gpu_ids = ""                      # GPU IDs
main_process_port = 0             # Main process port
mixed_precision = "fp16"          # Mixed precision (fp16, bf16, fp8)
multi_gpu = false                 # Multi GPU
num_cpu_threads_per_process = 2   # Number of CPU threads per process
num_machines = 1                  # Number of machines
num_processes = 1                 # Number of processes

[basic]
cache_latents = true           # Cache latents
cache_latents_to_disk = false  # Cache latents to disk
caption_extension = ".txt"     # Caption extension
enable_bucket = true           # Enable bucket
epoch = 1                      # Epoch
learning_rate = 0.0001         # Learning rate
learning_rate_te = 0.0001      # Learning rate text encoder
learning_rate_te1 = 0.0001     # Learning rate text encoder 1
learning_rate_te2 = 0.0001     # Learning rate text encoder 2
lr_scheduler = "cosine"        # LR Scheduler
lr_scheduler_args = ""         # LR Scheduler args
lr_warmup = 0                  # LR Warmup (% of total steps)
lr_scheduler_num_cycles = 1    # LR Scheduler num cycles
lr_scheduler_power = 1.0       # LR Scheduler power
max_bucket_reso = 2048         # Max bucket resolution
max_grad_norm = 1.0            # Max grad norm
max_resolution = "512,512"     # Max resolution
max_train_steps = 0            # Max train steps
max_train_epochs = 0           # Max train epochs
min_bucket_reso = 256          # Min bucket resolution
optimizer = "AdamW8bit"        # Optimizer (AdamW, AdamW8bit, Adafactor, DAdaptation, DAdaptAdaGrad, DAdaptAdam, DAdaptAdan, DAdaptAdanIP, DAdaptAdamPreprint, DAdaptLion, DAdaptSGD, Lion, Lion8bit, PagedAdam
optimizer_args = ""            # Optimizer args
save_every_n_epochs = 1        # Save every n epochs
save_every_n_steps = 1         # Save every n steps
seed = 1234                    # Seed
stop_text_encoder_training = 0 # Stop text encoder training (% of total steps)
train_batch_size = 1           # Train batch size

[advanced]
adaptive_noise_scale = 0                  # Adaptive noise scale
additional_parameters = ""                # Additional parameters
bucket_no_upscale = true                  # Don't upscale bucket resolution
bucket_reso_steps = 64                    # Bucket resolution steps
caption_dropout_every_n_epochs = 0        # Caption dropout every n epochs
caption_dropout_rate = 0                  # Caption dropout rate
color_aug = false                         # Color augmentation
clip_skip = 1                             # Clip skip
debiased_estimation_loss = false          # Debiased estimation loss
flip_aug = false                          # Flip augmentation
fp8_base = false                          # FP8 base training (experimental)
full_bf16 = false                         # Full bf16 training (experimental)
full_fp16 = false                         # Full fp16 training (experimental)
gradient_accumulation_steps = 1           # Gradient accumulation steps
gradient_checkpointing = false            # Gradient checkpointing
huber_c = 0.1                             # The huber loss parameter. Only used if one of the huber loss modes (huber or smooth l1) is selected with loss_type
huber_schedule = "snr"                    # The type of loss to use and whether it's scheduled based on the timestep
ip_noise_gamma = 0                        # IP noise gamma
ip_noise_gamma_random_strength = false    # IP noise gamma random strength (true, false)
keep_tokens = 0                           # Keep tokens
log_tracker_config_dir = "./logs"         # Log tracker configs directory
log_tracker_name = ""                     # Log tracker name
loss_type = "l2"                          # Loss type (l2, huber, smooth_l1)
masked_loss = false                       # Masked loss
max_data_loader_n_workers = 0             # Max data loader n workers (string)
max_timestep = 1000                       # Max timestep
max_token_length = 150                    # Max token length ("75", "150", "225")
mem_eff_attn = false                      # Memory efficient attention
min_snr_gamma = 0                         # Min SNR gamma
min_timestep = 0                          # Min timestep
multires_noise_iterations = 0             # Multires noise iterations
multires_noise_discount = 0               # Multires noise discount
no_token_padding = false                  # Disable token padding
noise_offset = 0                          # Noise offset
noise_offset_random_strength = false      # Noise offset random strength (true, false)
noise_offset_type = "Original"            # Noise offset type ("Original", "Multires")
persistent_data_loader_workers = false    # Persistent data loader workers
prior_loss_weight = 1.0                   # Prior loss weight
random_crop = false                       # Random crop
save_every_n_steps = 0                    # Save every n steps
save_last_n_steps = 0                     # Save last n steps
save_last_n_steps_state = 0               # Save last n steps state
save_state = false                        # Save state
save_state_on_train_end = false           # Save state on train end
scale_v_pred_loss_like_noise_pred = false # Scale v pred loss like noise pred
shuffle_caption = false                   # Shuffle captions
state_dir = "./outputs"                   # Resume from saved training state
log_with = ""                             # Logger to use ["wandb", "tensorboard", "all", ""]
vae_batch_size = 0                        # VAE batch size
vae_dir = "./models/vae"                  # VAEs folder path
v_pred_like_loss = 0                      # V pred like loss weight
wandb_api_key = ""                        # Wandb api key
wandb_run_name = ""                       # Wandb run name
weighted_captions = false                 # Weighted captions
xformers = "xformers"                     # CrossAttention (none, sdp, xformers)

# This next section can be used to set default values for the Dataset Preparation section
# The "Destination training direcroty" field will be equal to "train_data_dir" as specified above
[dataset_preparation]
class_prompt = "class"                                  # Class prompt
images_folder = "/some/folder/where/images/are"         # Training images directory
instance_prompt = "instance"                            # Instance prompt
reg_images_folder = "/some/folder/where/reg/images/are" # Regularisation images directory
reg_images_repeat = 1                                   # Regularisation images repeat
util_regularization_images_repeat_input = 1             # Regularisation images repeat input
util_training_images_repeat_input = 40                  # Training images repeat input

[huggingface]
async_upload = false              # Async upload
huggingface_path_in_repo = ""     # Huggingface path in repo
huggingface_repo_id = ""          # Huggingface repo id
huggingface_repo_type = ""        # Huggingface repo type
huggingface_repo_visibility = ""  # Huggingface repo visibility
huggingface_token = ""            # Huggingface token
resume_from_huggingface = ""      # Resume from huggingface (ex: {repo_id}/{path_in_repo}:{revision}:{repo_type})
save_state_to_huggingface = false # Save state to huggingface

[samples]
sample_every_n_steps = 0   # Sample every n steps
sample_every_n_epochs = 0  # Sample every n epochs
sample_prompts = ""        # Sample prompts
sample_sampler = "euler_a" # Sampler to use for image sampling

[sdxl]
sdxl_cache_text_encoder_outputs = false # Cache text encoder outputs
sdxl_no_half_vae = true                 # No half VAE

[wd14_caption]
always_first_tags = ""                        # comma-separated list of tags to always put at the beginning, e.g. 1girl,1boy
append_tags = false                           # Append TAGs
batch_size = 8                                # Batch size
caption_extension = ".txt"                    # Extension for caption file (e.g., .caption, .txt)
caption_separator = ", "                      # Caption Separator
character_tag_expand = false                  # Expand tag tail parenthesis to another tag for character tags. `chara_name_(series)` becomes `chara_name, series`
character_threshold = 0.35                    # Character threshold
debug = false                                 # Debug mode
force_download = false                        # Force model re-download when switching to onnx
frequency_tags = false                        # Frequency tags
general_threshold = 0.35                      # General threshold
max_data_loader_n_workers = 2                 # Max dataloader workers
onnx = true                                   # ONNX
recursive = false                             # Recursive
remove_underscore = false                     # Remove underscore
repo_id = "SmilingWolf/wd-convnext-tagger-v3" # Repo id for wd14 tagger on Hugging Face
tag_replacement = ""                          # Tag replacement in the format of `source1,target1;source2,target2; ...`. Escape `,` and `;` with `\`. e.g. `tag1,tag2;tag3,tag4`
thresh = 0.36                                 # Threshold
train_data_dir = ""                           # Image folder to caption (containing the images to caption)
undesired_tags = ""                           # comma-separated list of tags to remove, e.g. 1girl,1boy
use_rating_tags = false                       # Use rating tags
use_rating_tags_as_last_tag = false           # Use rating tags as last tagging tags

[metadata]
metadata_title = ""       # Title for model metadata (default is output_name)
metadata_author = ""      # Author name for model metadata
metadata_description = "" # Description for model metadata
metadata_license = ""     # License for model metadata
metadata_tags = ""        # Tags for model metadata