v0.3.1
版本发布时间: 2023-01-21 11:17:48
kohya-ss/sd-scripts最新发布版本:v0.8.7(2024-04-07 20:09:15)
Updates at 19 Jan. 2023, 2023/1/19
-
Fix a part of LoRA modules are not trained when
gradient_checkpointing
is enabled. -
Add
--save_last_n_epochs_state
option. You can specify how many state folders to keep, apart from how many models to keep. Thanks to shirayu! -
Fix Text Encoder training stops at
max_train_steps
even ifmax_train_epochs
is set in `train_db.py``. -
Added script to check LoRA weights. You can check weights by
python networks\check_lora_weights.py <model file>
. If some modules are not trained, the value is0.0
like following.-
lora_te_text_model_encoder_layers_11_*
is not trained withclip_skip=2
, so0.0
is okay for these modules.
-
-
一部のLoRAモジュールが
gradient_checkpointing
を有効にすると学習されない不具合を修正しました。ご不便をおかけしました。 -
--save_last_n_epochs_state
オプションを追加しました。モデルの保存数とは別に、stateフォルダの保存数を指定できます。shirayu氏に感謝します。 -
train_db.py
で、max_train_epochs
を指定していても、max_train_steps
のステップでText Encoderの学習が停止してしまう不具合を修正しました。 -
LoRAの重みをチェックするスクリプトを追加してあります。
python networks\check_lora_weights.py <model file>
のように実行してください。学習していない重みがあると、値が 下のように0.0
になります。-
lora_te_text_model_encoder_layers_11_
で始まる部分はclip_skip=2
の場合は学習されないため、0.0
で正常です。
-
-
example result of
check_lora_weights.py
, Text Encoder and a part of U-Net are not trained:
number of LoRA-up modules: 264
lora_te_text_model_encoder_layers_0_mlp_fc1.lora_up.weight,0.0
lora_te_text_model_encoder_layers_0_mlp_fc2.lora_up.weight,0.0
lora_te_text_model_encoder_layers_0_self_attn_k_proj.lora_up.weight,0.0
:
lora_unet_down_blocks_2_attentions_1_transformer_blocks_0_ff_net_0_proj.lora_up.weight,0.0
lora_unet_down_blocks_2_attentions_1_transformer_blocks_0_ff_net_2.lora_up.weight,0.0
lora_unet_mid_block_attentions_0_proj_in.lora_up.weight,0.003503334941342473
lora_unet_mid_block_attentions_0_proj_out.lora_up.weight,0.004308608360588551
:
- all modules are trained:
number of LoRA-up modules: 264
lora_te_text_model_encoder_layers_0_mlp_fc1.lora_up.weight,0.0028684409335255623
lora_te_text_model_encoder_layers_0_mlp_fc2.lora_up.weight,0.0029794853180646896
lora_te_text_model_encoder_layers_0_self_attn_k_proj.lora_up.weight,0.002507600700482726
lora_te_text_model_encoder_layers_0_self_attn_out_proj.lora_up.weight,0.002639499492943287
:
Updates at 15 Jan. 2023, 2023/1/15
- Added
--max_train_epochs
and--max_data_loader_n_workers
option for each training script. - If you specify the number of training epochs with
--max_train_epochs
, the number of steps is calculated from the number of epochs automatically. - You can set the number of workers for DataLoader with
--max_data_loader_n_workers
, default is 8. The lower number may reduce the main memory usage and the time between epochs, but may cause slower dataloading (training). -
--max_train_epochs
と--max_data_loader_n_workers
のオプションが学習スクリプトに追加されました。 -
--max_train_epochs
で学習したいエポック数を指定すると、必要なステップ数が自動的に計算され設定されます。 -
--max_data_loader_n_workers
で DataLoader の worker 数が指定できます(デフォルトは8)。値を小さくするとメインメモリの使用量が減り、エポック間の待ち時間も短くなるようです。ただしデータ読み込み(学習時間)は長くなる可能性があります。