Version 0.8.2
Jan 23, 2024 / 2024/1/23: v0.8.2
-
[Experimental] The
--fp8_base
option is added to the training scripts for LoRA etc. The base model (U-Net, and Text Encoder when training modules for Text Encoder) can be trained with fp8. PR #1057 Thanks to KohakuBlueleaf!- Please specify
--fp8_base
intrain_network.py
orsdxl_train_network.py
. - PyTorch 2.1 or later is required.
- If you use xformers with PyTorch 2.1, please see xformers repository and install the appropriate version according to your CUDA version.
- The sample image generation during training consumes a lot of memory. It is recommended to turn it off.
- Please specify
-
[Experimental] The network multiplier can be specified for each dataset in the training scripts for LoRA etc.
- This is an experimental option and may be removed or changed in the future.
- For example, if you train with state A as
1.0
and state B as-1.0
, you may be able to generate by switching between state A and B depending on the LoRA application rate. - Also, if you prepare five states and train them as
0.2
,0.4
,0.6
,0.8
, and1.0
, you may be able to generate by switching the states smoothly depending on the application rate. - Please specify
network_multiplier
in[[datasets]]
in.toml
file.
-
Some options are added to
networks/extract_lora_from_models.py
to reduce the memory usage.--load_precision
option can be used to specify the precision when loading the model. If the model is saved in fp16, you can reduce the memory usage by specifying--load_precision fp16
without losing precision.--load_original_model_to
option can be used to specify the device to load the original model.--load_tuned_model_to
option can be used to specify the device to load the derived model. The default iscpu
for both options, but you can specifycuda
etc. You can reduce the memory usage by loading one of them to GPU. This option is available only for SDXL.
-
The gradient synchronization in LoRA training with multi-GPU is improved. PR #1064 Thanks to KohakuBlueleaf!
-
The code for Intel IPEX support is improved. PR #1060 Thanks to akx!
-
Fixed a bug in multi-GPU Textual Inversion training.
-
(実験的) LoRA等の学習スクリプトで、ベースモデル(U-Net、および Text Encoder のモジュール学習時は Text Encoder も)の重みを fp8 にして学習するオプションが追加されました。 PR #1057 KohakuBlueleaf 氏に感謝します。
train_network.py
またはsdxl_train_network.py
で--fp8_base
を指定してください。- PyTorch 2.1 以降が必要です。
- PyTorch 2.1 で xformers を使用する場合は、xformers のリポジトリ を参照し、CUDA バージョンに応じて適切なバージョンをインストールしてください。
- 学習中のサンプル画像生成はメモリを大量に消費するため、オフにすることをお勧めします。
-
(実験的) LoRA 等の学習で、データセットごとに異なるネットワーク適用率を指定できるようになりました。
- 実験的オプションのため、将来的に削除または仕様変更される可能性があります。
- たとえば状態 A を
1.0
、状態 B を-1.0
として学習すると、LoRA の適用率に応じて状態 A と B を切り替えつつ生成できるかもしれません。 - また、五段階の状態を用意し、それぞれ
0.2
、0.4
、0.6
、0.8
、1.0
として学習すると、適用率でなめらかに状態を切り替えて生成できるかもしれません。 .toml
ファイルで[[datasets]]
にnetwork_multiplier
を指定してください。
-
networks/extract_lora_from_models.py
に使用メモリ量を削減するいくつかのオプションを追加しました。--load_precision
で読み込み時の精度を指定できます。モデルが fp16 で保存されている場合は--load_precision fp16
を指定して精度を変えずにメモリ量を削減できます。--load_original_model_to
で元モデルを読み込むデバイスを、--load_tuned_model_to
で派生モデルを読み込むデバイスを指定できます。デフォルトは両方ともcpu
ですがそれぞれcuda
等を指定できます。片方を GPU に読み込むことでメモリ量を削減できます。SDXL の場合のみ有効です。
-
マルチ GPU での LoRA 等の学習時に勾配の同期が改善されました。 PR #1064 KohakuBlueleaf 氏に感謝します。
-
Intel IPEX サポートのコードが改善されました。PR #1060 akx 氏に感謝します。
-
マルチ GPU での Textual Inversion 学習の不具合を修正しました。
-
.toml
example for network multiplier / ネットワーク適用率の.toml
の記述例
[general]
[[datasets]]
resolution = 512
batch_size = 8
network_multiplier = 1.0
... subset settings ...
[[datasets]]
resolution = 512
batch_size = 8
network_multiplier = -1.0
... subset settings ...