Skip to content

Commit 97a2fc2

Browse files
committed
Merge PR Nerogar#1481 (always enable mixed-precision / autocasting) into preview
2 parents 3fc99bd + bcc7d5d commit 97a2fc2

15 files changed

Lines changed: 72 additions & 220 deletions

modules/modelSetup/BaseChromaSetup.py

Lines changed: 2 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,6 @@
1717
)
1818
from modules.util.config.TrainConfig import TrainConfig
1919
from modules.util.dtype_util import create_autocast_context, disable_fp16_autocast_context
20-
from modules.util.enum.TrainingMethod import TrainingMethod
2120
from modules.util.quantization_util import quantize_layers
2221
from modules.util.torch_util import torch_gc
2322
from modules.util.TrainProgress import TrainProgress
@@ -56,24 +55,14 @@ def setup_optimizations(
5655
model.text_encoder_offload_conductor = \
5756
enable_checkpointing_for_t5_encoder_layers(model.text_encoder, config)
5857

59-
model.autocast_context, model.train_dtype = create_autocast_context(self.train_device, config.train_dtype, [
60-
config.weight_dtypes().transformer,
61-
config.weight_dtypes().text_encoder,
62-
config.weight_dtypes().vae,
63-
config.weight_dtypes().lora if config.training_method == TrainingMethod.LORA else None,
64-
config.weight_dtypes().embedding if config.train_any_embedding() else None,
65-
], config.enable_autocast_cache)
58+
model.autocast_context, model.train_dtype = create_autocast_context(
59+
self.train_device, config.train_dtype, config.enable_autocast_cache)
6660

6761
model.text_encoder_autocast_context, model.text_encoder_train_dtype = \
6862
disable_fp16_autocast_context(
6963
self.train_device,
7064
config.train_dtype,
7165
config.fallback_train_dtype,
72-
[
73-
config.weight_dtypes().text_encoder,
74-
config.weight_dtypes().lora if config.training_method == TrainingMethod.LORA else None,
75-
config.weight_dtypes().embedding if config.train_any_embedding() else None,
76-
],
7766
config.enable_autocast_cache,
7867
)
7968

modules/modelSetup/BaseErnieSetup.py

Lines changed: 2 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@
1212
from modules.util.checkpointing_util import enable_checkpointing_for_ernie_transformer
1313
from modules.util.config.TrainConfig import TrainConfig
1414
from modules.util.dtype_util import create_autocast_context, disable_fp16_autocast_context
15-
from modules.util.enum.TrainingMethod import TrainingMethod
1615
from modules.util.quantization_util import quantize_layers
1716
from modules.util.torch_util import torch_gc
1817
from modules.util.TrainProgress import TrainProgress
@@ -46,22 +45,14 @@ def setup_optimizations(
4645
model.transformer_offload_conductor = \
4746
enable_checkpointing_for_ernie_transformer(model.transformer, config)
4847

49-
model.autocast_context, model.train_dtype = create_autocast_context(self.train_device, config.train_dtype, [
50-
config.weight_dtypes().transformer,
51-
config.weight_dtypes().text_encoder,
52-
config.weight_dtypes().vae,
53-
config.weight_dtypes().lora if config.training_method == TrainingMethod.LORA else None,
54-
], config.enable_autocast_cache)
48+
model.autocast_context, model.train_dtype = create_autocast_context(
49+
self.train_device, config.train_dtype, config.enable_autocast_cache)
5550

5651
model.text_encoder_autocast_context, model.text_encoder_train_dtype = \
5752
disable_fp16_autocast_context(
5853
self.train_device,
5954
config.train_dtype,
6055
config.fallback_train_dtype,
61-
[
62-
config.weight_dtypes().text_encoder,
63-
config.weight_dtypes().lora if config.training_method == TrainingMethod.LORA else None,
64-
],
6556
config.enable_autocast_cache,
6657
)
6758

modules/modelSetup/BaseFlux2Setup.py

Lines changed: 2 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,6 @@
1717
)
1818
from modules.util.config.TrainConfig import TrainConfig
1919
from modules.util.dtype_util import create_autocast_context, disable_fp16_autocast_context
20-
from modules.util.enum.TrainingMethod import TrainingMethod
2120
from modules.util.quantization_util import quantize_layers
2221
from modules.util.torch_util import torch_gc
2322
from modules.util.TrainProgress import TrainProgress
@@ -56,22 +55,14 @@ def setup_optimizations(
5655
model.text_encoder_offload_conductor = \
5756
enable_checkpointing_for_qwen3_encoder_layers(model.text_encoder, config)
5857

59-
model.autocast_context, model.train_dtype = create_autocast_context(self.train_device, config.train_dtype, [
60-
config.weight_dtypes().transformer,
61-
config.weight_dtypes().text_encoder,
62-
config.weight_dtypes().vae,
63-
config.weight_dtypes().lora if config.training_method == TrainingMethod.LORA else None,
64-
], config.enable_autocast_cache)
58+
model.autocast_context, model.train_dtype = create_autocast_context(
59+
self.train_device, config.train_dtype, config.enable_autocast_cache)
6560

6661
model.text_encoder_autocast_context, model.text_encoder_train_dtype = \
6762
disable_fp16_autocast_context(
6863
self.train_device,
6964
config.train_dtype,
7065
config.fallback_train_dtype,
71-
[
72-
config.weight_dtypes().text_encoder,
73-
config.weight_dtypes().lora if config.training_method == TrainingMethod.LORA else None,
74-
],
7566
config.enable_autocast_cache,
7667
)
7768

modules/modelSetup/BaseFluxSetup.py

Lines changed: 2 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,6 @@
1818
)
1919
from modules.util.config.TrainConfig import TrainConfig
2020
from modules.util.dtype_util import create_autocast_context, disable_fp16_autocast_context
21-
from modules.util.enum.TrainingMethod import TrainingMethod
2221
from modules.util.quantization_util import quantize_layers
2322
from modules.util.torch_util import torch_gc
2423
from modules.util.TrainProgress import TrainProgress
@@ -58,25 +57,14 @@ def setup_optimizations(
5857
model.text_encoder_2_offload_conductor = \
5958
enable_checkpointing_for_t5_encoder_layers(model.text_encoder_2, config)
6059

61-
model.autocast_context, model.train_dtype = create_autocast_context(self.train_device, config.train_dtype, [
62-
config.weight_dtypes().transformer,
63-
config.weight_dtypes().text_encoder,
64-
config.weight_dtypes().text_encoder_2,
65-
config.weight_dtypes().vae,
66-
config.weight_dtypes().lora if config.training_method == TrainingMethod.LORA else None,
67-
config.weight_dtypes().embedding if config.train_any_embedding() else None,
68-
], config.enable_autocast_cache)
60+
model.autocast_context, model.train_dtype = create_autocast_context(
61+
self.train_device, config.train_dtype, config.enable_autocast_cache)
6962

7063
model.text_encoder_2_autocast_context, model.text_encoder_2_train_dtype = \
7164
disable_fp16_autocast_context(
7265
self.train_device,
7366
config.train_dtype,
7467
config.fallback_train_dtype,
75-
[
76-
config.weight_dtypes().text_encoder_2,
77-
config.weight_dtypes().lora if config.training_method == TrainingMethod.LORA else None,
78-
config.weight_dtypes().embedding if config.train_any_embedding() else None,
79-
],
8068
config.enable_autocast_cache,
8169
)
8270

modules/modelSetup/BaseHiDreamSetup.py

Lines changed: 2 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,6 @@
1818
)
1919
from modules.util.config.TrainConfig import TrainConfig
2020
from modules.util.dtype_util import create_autocast_context, disable_fp16_autocast_context
21-
from modules.util.enum.TrainingMethod import TrainingMethod
2221
from modules.util.quantization_util import quantize_layers
2322
from modules.util.torch_util import torch_gc
2423
from modules.util.TrainProgress import TrainProgress
@@ -63,27 +62,14 @@ def setup_optimizations(
6362
model.text_encoder_4_offload_conductor = \
6463
enable_checkpointing_for_llama_encoder_layers(model.text_encoder_4, config)
6564

66-
model.autocast_context, model.train_dtype = create_autocast_context(self.train_device, config.train_dtype, [
67-
config.weight_dtypes().transformer,
68-
config.weight_dtypes().text_encoder,
69-
config.weight_dtypes().text_encoder_2,
70-
config.weight_dtypes().text_encoder_3,
71-
config.weight_dtypes().text_encoder_4,
72-
config.weight_dtypes().vae,
73-
config.weight_dtypes().lora if config.training_method == TrainingMethod.LORA else None,
74-
config.weight_dtypes().embedding if config.train_any_embedding() else None,
75-
], config.enable_autocast_cache)
65+
model.autocast_context, model.train_dtype = create_autocast_context(
66+
self.train_device, config.train_dtype, config.enable_autocast_cache)
7667

7768
model.text_encoder_3_autocast_context, model.text_encoder_3_train_dtype = \
7869
disable_fp16_autocast_context(
7970
self.train_device,
8071
config.train_dtype,
8172
config.fallback_train_dtype,
82-
[
83-
config.weight_dtypes().text_encoder_3,
84-
config.weight_dtypes().lora if config.training_method == TrainingMethod.LORA else None,
85-
config.weight_dtypes().embedding if config.train_any_embedding() else None,
86-
],
8773
config.enable_autocast_cache,
8874
)
8975

@@ -92,11 +78,6 @@ def setup_optimizations(
9278
self.train_device,
9379
config.train_dtype,
9480
config.fallback_train_dtype,
95-
[
96-
config.weight_dtypes().transformer,
97-
config.weight_dtypes().lora if config.training_method == TrainingMethod.LORA else None,
98-
config.weight_dtypes().embedding if config.train_any_embedding() else None,
99-
],
10081
config.enable_autocast_cache,
10182
)
10283

modules/modelSetup/BaseHunyuanVideoSetup.py

Lines changed: 2 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,6 @@
1818
)
1919
from modules.util.config.TrainConfig import TrainConfig
2020
from modules.util.dtype_util import create_autocast_context, disable_fp16_autocast_context
21-
from modules.util.enum.TrainingMethod import TrainingMethod
2221
from modules.util.quantization_util import quantize_layers
2322
from modules.util.torch_util import torch_gc
2423
from modules.util.TrainProgress import TrainProgress
@@ -58,25 +57,14 @@ def setup_optimizations(
5857
if model.text_encoder_2 is not None:
5958
enable_checkpointing_for_clip_encoder_layers(model.text_encoder_2, config)
6059

61-
model.autocast_context, model.train_dtype = create_autocast_context(self.train_device, config.train_dtype, [
62-
config.weight_dtypes().transformer,
63-
config.weight_dtypes().text_encoder,
64-
config.weight_dtypes().text_encoder_2,
65-
config.weight_dtypes().vae,
66-
config.weight_dtypes().lora if config.training_method == TrainingMethod.LORA else None,
67-
config.weight_dtypes().embedding if config.train_any_embedding() else None,
68-
], config.enable_autocast_cache)
60+
model.autocast_context, model.train_dtype = create_autocast_context(
61+
self.train_device, config.train_dtype, config.enable_autocast_cache)
6962

7063
model.transformer_autocast_context, model.transformer_train_dtype = \
7164
disable_fp16_autocast_context(
7265
self.train_device,
7366
config.train_dtype,
7467
config.fallback_train_dtype,
75-
[
76-
config.weight_dtypes().transformer,
77-
config.weight_dtypes().lora if config.training_method == TrainingMethod.LORA else None,
78-
config.weight_dtypes().embedding if config.train_any_embedding() else None,
79-
],
8068
config.enable_autocast_cache,
8169
)
8270

modules/modelSetup/BasePixArtAlphaSetup.py

Lines changed: 2 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,6 @@
1717
)
1818
from modules.util.config.TrainConfig import TrainConfig
1919
from modules.util.dtype_util import create_autocast_context, disable_fp16_autocast_context
20-
from modules.util.enum.TrainingMethod import TrainingMethod
2120
from modules.util.quantization_util import quantize_layers
2221
from modules.util.torch_util import torch_gc
2322
from modules.util.TrainProgress import TrainProgress
@@ -58,23 +57,13 @@ def setup_optimizations(
5857
model.text_encoder_offload_conductor = \
5958
enable_checkpointing_for_t5_encoder_layers(model.text_encoder, config)
6059

61-
model.autocast_context, model.train_dtype = create_autocast_context(self.train_device, config.train_dtype, [
62-
config.weight_dtypes().transformer,
63-
config.weight_dtypes().text_encoder,
64-
config.weight_dtypes().vae,
65-
config.weight_dtypes().lora if config.training_method == TrainingMethod.LORA else None,
66-
config.weight_dtypes().embedding if config.train_any_embedding() else None,
67-
], config.enable_autocast_cache)
60+
model.autocast_context, model.train_dtype = create_autocast_context(
61+
self.train_device, config.train_dtype, config.enable_autocast_cache)
6862

6963
model.text_encoder_autocast_context, model.text_encoder_train_dtype = disable_fp16_autocast_context(
7064
self.train_device,
7165
config.train_dtype,
7266
config.fallback_train_dtype,
73-
[
74-
config.weight_dtypes().text_encoder,
75-
config.weight_dtypes().lora if config.training_method == TrainingMethod.LORA else None,
76-
config.weight_dtypes().embedding if config.train_any_embedding() else None,
77-
],
7867
config.enable_autocast_cache,
7968
)
8069

modules/modelSetup/BaseQwenSetup.py

Lines changed: 2 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,6 @@
1515
)
1616
from modules.util.config.TrainConfig import TrainConfig
1717
from modules.util.dtype_util import create_autocast_context, disable_fp16_autocast_context
18-
from modules.util.enum.TrainingMethod import TrainingMethod
1918
from modules.util.quantization_util import quantize_layers
2019
from modules.util.torch_util import torch_gc
2120
from modules.util.TrainProgress import TrainProgress
@@ -53,22 +52,14 @@ def setup_optimizations(
5352
model.text_encoder_offload_conductor = \
5453
enable_checkpointing_for_qwen25vl_encoder_layers(model.text_encoder, config)
5554

56-
model.autocast_context, model.train_dtype = create_autocast_context(self.train_device, config.train_dtype, [
57-
config.weight_dtypes().transformer,
58-
config.weight_dtypes().text_encoder,
59-
config.weight_dtypes().vae,
60-
config.weight_dtypes().lora if config.training_method == TrainingMethod.LORA else None,
61-
], config.enable_autocast_cache)
55+
model.autocast_context, model.train_dtype = create_autocast_context(
56+
self.train_device, config.train_dtype, config.enable_autocast_cache)
6257

6358
model.text_encoder_autocast_context, model.text_encoder_train_dtype = \
6459
disable_fp16_autocast_context(
6560
self.train_device,
6661
config.train_dtype,
6762
config.fallback_train_dtype,
68-
[
69-
config.weight_dtypes().text_encoder,
70-
config.weight_dtypes().lora if config.training_method == TrainingMethod.LORA else None,
71-
],
7263
config.enable_autocast_cache,
7364
)
7465

modules/modelSetup/BaseSanaSetup.py

Lines changed: 2 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,6 @@
1717
)
1818
from modules.util.config.TrainConfig import TrainConfig
1919
from modules.util.dtype_util import create_autocast_context, disable_fp16_autocast_context
20-
from modules.util.enum.TrainingMethod import TrainingMethod
2120
from modules.util.quantization_util import quantize_layers
2221
from modules.util.torch_util import torch_gc
2322
from modules.util.TrainProgress import TrainProgress
@@ -59,33 +58,20 @@ def setup_optimizations(
5958
model.text_encoder_offload_conductor = \
6059
enable_checkpointing_for_gemma_layers(model.text_encoder, config)
6160

62-
model.autocast_context, model.train_dtype = create_autocast_context(self.train_device, config.train_dtype, [
63-
config.weight_dtypes().transformer,
64-
config.weight_dtypes().text_encoder,
65-
config.weight_dtypes().vae,
66-
config.weight_dtypes().lora if config.training_method == TrainingMethod.LORA else None,
67-
config.weight_dtypes().embedding if config.train_any_embedding() else None,
68-
], config.enable_autocast_cache)
61+
model.autocast_context, model.train_dtype = create_autocast_context(
62+
self.train_device, config.train_dtype, config.enable_autocast_cache)
6963

7064
model.text_encoder_autocast_context, model.text_encoder_train_dtype = disable_fp16_autocast_context(
7165
self.train_device,
7266
config.train_dtype,
7367
config.fallback_train_dtype,
74-
[
75-
config.weight_dtypes().text_encoder,
76-
config.weight_dtypes().lora if config.training_method == TrainingMethod.LORA else None,
77-
config.weight_dtypes().embedding if config.train_any_embedding() else None,
78-
],
7968
config.enable_autocast_cache,
8069
)
8170

8271
model.vae_autocast_context, model.vae_train_dtype = disable_fp16_autocast_context(
8372
self.train_device,
8473
config.train_dtype,
8574
config.fallback_train_dtype,
86-
[
87-
config.weight_dtypes().vae,
88-
],
8975
config.enable_autocast_cache,
9076
)
9177

modules/modelSetup/BaseStableDiffusion3Setup.py

Lines changed: 2 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,6 @@
1818
)
1919
from modules.util.config.TrainConfig import TrainConfig
2020
from modules.util.dtype_util import create_autocast_context, disable_fp16_autocast_context
21-
from modules.util.enum.TrainingMethod import TrainingMethod
2221
from modules.util.quantization_util import quantize_layers
2322
from modules.util.torch_util import torch_gc
2423
from modules.util.TrainProgress import TrainProgress
@@ -59,26 +58,14 @@ def setup_optimizations(
5958
model.text_encoder_3_offload_conductor = \
6059
enable_checkpointing_for_t5_encoder_layers(model.text_encoder_3, config)
6160

62-
model.autocast_context, model.train_dtype = create_autocast_context(self.train_device, config.train_dtype, [
63-
config.weight_dtypes().transformer,
64-
config.weight_dtypes().text_encoder,
65-
config.weight_dtypes().text_encoder_2,
66-
config.weight_dtypes().text_encoder_3,
67-
config.weight_dtypes().vae,
68-
config.weight_dtypes().lora if config.training_method == TrainingMethod.LORA else None,
69-
config.weight_dtypes().embedding if config.train_any_embedding() else None,
70-
], config.enable_autocast_cache)
61+
model.autocast_context, model.train_dtype = create_autocast_context(
62+
self.train_device, config.train_dtype, config.enable_autocast_cache)
7163

7264
model.text_encoder_3_autocast_context, model.text_encoder_3_train_dtype = \
7365
disable_fp16_autocast_context(
7466
self.train_device,
7567
config.train_dtype,
7668
config.fallback_train_dtype,
77-
[
78-
config.weight_dtypes().text_encoder_3,
79-
config.weight_dtypes().lora if config.training_method == TrainingMethod.LORA else None,
80-
config.weight_dtypes().embedding if config.train_any_embedding() else None,
81-
],
8269
config.enable_autocast_cache,
8370
)
8471

0 commit comments

Comments
 (0)