diffusers 0.30.3__py3-none-any.whl → 0.32.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- diffusers/__init__.py +97 -4
- diffusers/callbacks.py +56 -3
- diffusers/configuration_utils.py +13 -1
- diffusers/image_processor.py +282 -71
- diffusers/loaders/__init__.py +24 -3
- diffusers/loaders/ip_adapter.py +543 -16
- diffusers/loaders/lora_base.py +138 -125
- diffusers/loaders/lora_conversion_utils.py +647 -0
- diffusers/loaders/lora_pipeline.py +2216 -230
- diffusers/loaders/peft.py +380 -0
- diffusers/loaders/single_file_model.py +71 -4
- diffusers/loaders/single_file_utils.py +597 -10
- diffusers/loaders/textual_inversion.py +5 -3
- diffusers/loaders/transformer_flux.py +181 -0
- diffusers/loaders/transformer_sd3.py +89 -0
- diffusers/loaders/unet.py +56 -12
- diffusers/models/__init__.py +49 -12
- diffusers/models/activations.py +22 -9
- diffusers/models/adapter.py +53 -53
- diffusers/models/attention.py +98 -13
- diffusers/models/attention_flax.py +1 -1
- diffusers/models/attention_processor.py +2160 -346
- diffusers/models/autoencoders/__init__.py +5 -0
- diffusers/models/autoencoders/autoencoder_dc.py +620 -0
- diffusers/models/autoencoders/autoencoder_kl.py +73 -12
- diffusers/models/autoencoders/autoencoder_kl_allegro.py +1149 -0
- diffusers/models/autoencoders/autoencoder_kl_cogvideox.py +213 -105
- diffusers/models/autoencoders/autoencoder_kl_hunyuan_video.py +1176 -0
- diffusers/models/autoencoders/autoencoder_kl_ltx.py +1338 -0
- diffusers/models/autoencoders/autoencoder_kl_mochi.py +1166 -0
- diffusers/models/autoencoders/autoencoder_kl_temporal_decoder.py +3 -10
- diffusers/models/autoencoders/autoencoder_tiny.py +4 -2
- diffusers/models/autoencoders/vae.py +18 -5
- diffusers/models/controlnet.py +47 -802
- diffusers/models/controlnet_flux.py +70 -0
- diffusers/models/controlnet_sd3.py +26 -376
- diffusers/models/controlnet_sparsectrl.py +46 -719
- diffusers/models/controlnets/__init__.py +23 -0
- diffusers/models/controlnets/controlnet.py +872 -0
- diffusers/models/{controlnet_flax.py → controlnets/controlnet_flax.py} +5 -5
- diffusers/models/controlnets/controlnet_flux.py +536 -0
- diffusers/models/{controlnet_hunyuan.py → controlnets/controlnet_hunyuan.py} +7 -7
- diffusers/models/controlnets/controlnet_sd3.py +489 -0
- diffusers/models/controlnets/controlnet_sparsectrl.py +788 -0
- diffusers/models/controlnets/controlnet_union.py +832 -0
- diffusers/models/{controlnet_xs.py → controlnets/controlnet_xs.py} +14 -13
- diffusers/models/controlnets/multicontrolnet.py +183 -0
- diffusers/models/embeddings.py +996 -92
- diffusers/models/embeddings_flax.py +23 -9
- diffusers/models/model_loading_utils.py +264 -14
- diffusers/models/modeling_flax_utils.py +1 -1
- diffusers/models/modeling_utils.py +334 -51
- diffusers/models/normalization.py +157 -13
- diffusers/models/transformers/__init__.py +6 -0
- diffusers/models/transformers/auraflow_transformer_2d.py +3 -2
- diffusers/models/transformers/cogvideox_transformer_3d.py +69 -13
- diffusers/models/transformers/dit_transformer_2d.py +1 -1
- diffusers/models/transformers/latte_transformer_3d.py +4 -4
- diffusers/models/transformers/pixart_transformer_2d.py +10 -2
- diffusers/models/transformers/sana_transformer.py +488 -0
- diffusers/models/transformers/stable_audio_transformer.py +1 -1
- diffusers/models/transformers/transformer_2d.py +1 -1
- diffusers/models/transformers/transformer_allegro.py +422 -0
- diffusers/models/transformers/transformer_cogview3plus.py +386 -0
- diffusers/models/transformers/transformer_flux.py +189 -51
- diffusers/models/transformers/transformer_hunyuan_video.py +789 -0
- diffusers/models/transformers/transformer_ltx.py +469 -0
- diffusers/models/transformers/transformer_mochi.py +499 -0
- diffusers/models/transformers/transformer_sd3.py +112 -18
- diffusers/models/transformers/transformer_temporal.py +1 -1
- diffusers/models/unets/unet_1d_blocks.py +1 -1
- diffusers/models/unets/unet_2d.py +8 -1
- diffusers/models/unets/unet_2d_blocks.py +88 -21
- diffusers/models/unets/unet_2d_condition.py +9 -9
- diffusers/models/unets/unet_3d_blocks.py +9 -7
- diffusers/models/unets/unet_motion_model.py +46 -68
- diffusers/models/unets/unet_spatio_temporal_condition.py +23 -0
- diffusers/models/unets/unet_stable_cascade.py +2 -2
- diffusers/models/unets/uvit_2d.py +1 -1
- diffusers/models/upsampling.py +14 -6
- diffusers/pipelines/__init__.py +69 -6
- diffusers/pipelines/allegro/__init__.py +48 -0
- diffusers/pipelines/allegro/pipeline_allegro.py +938 -0
- diffusers/pipelines/allegro/pipeline_output.py +23 -0
- diffusers/pipelines/animatediff/__init__.py +2 -0
- diffusers/pipelines/animatediff/pipeline_animatediff.py +45 -21
- diffusers/pipelines/animatediff/pipeline_animatediff_controlnet.py +52 -22
- diffusers/pipelines/animatediff/pipeline_animatediff_sdxl.py +18 -4
- diffusers/pipelines/animatediff/pipeline_animatediff_sparsectrl.py +3 -1
- diffusers/pipelines/animatediff/pipeline_animatediff_video2video.py +104 -72
- diffusers/pipelines/animatediff/pipeline_animatediff_video2video_controlnet.py +1341 -0
- diffusers/pipelines/audioldm2/modeling_audioldm2.py +3 -3
- diffusers/pipelines/aura_flow/pipeline_aura_flow.py +2 -9
- diffusers/pipelines/auto_pipeline.py +88 -10
- diffusers/pipelines/blip_diffusion/modeling_blip2.py +1 -1
- diffusers/pipelines/cogvideo/__init__.py +2 -0
- diffusers/pipelines/cogvideo/pipeline_cogvideox.py +80 -39
- diffusers/pipelines/cogvideo/pipeline_cogvideox_fun_control.py +825 -0
- diffusers/pipelines/cogvideo/pipeline_cogvideox_image2video.py +108 -50
- diffusers/pipelines/cogvideo/pipeline_cogvideox_video2video.py +89 -50
- diffusers/pipelines/cogview3/__init__.py +47 -0
- diffusers/pipelines/cogview3/pipeline_cogview3plus.py +674 -0
- diffusers/pipelines/cogview3/pipeline_output.py +21 -0
- diffusers/pipelines/controlnet/__init__.py +86 -80
- diffusers/pipelines/controlnet/multicontrolnet.py +7 -178
- diffusers/pipelines/controlnet/pipeline_controlnet.py +20 -3
- diffusers/pipelines/controlnet/pipeline_controlnet_img2img.py +9 -2
- diffusers/pipelines/controlnet/pipeline_controlnet_inpaint.py +9 -2
- diffusers/pipelines/controlnet/pipeline_controlnet_inpaint_sd_xl.py +37 -15
- diffusers/pipelines/controlnet/pipeline_controlnet_sd_xl.py +12 -4
- diffusers/pipelines/controlnet/pipeline_controlnet_sd_xl_img2img.py +9 -4
- diffusers/pipelines/controlnet/pipeline_controlnet_union_inpaint_sd_xl.py +1790 -0
- diffusers/pipelines/controlnet/pipeline_controlnet_union_sd_xl.py +1501 -0
- diffusers/pipelines/controlnet/pipeline_controlnet_union_sd_xl_img2img.py +1627 -0
- diffusers/pipelines/controlnet_hunyuandit/pipeline_hunyuandit_controlnet.py +22 -4
- diffusers/pipelines/controlnet_sd3/__init__.py +4 -0
- diffusers/pipelines/controlnet_sd3/pipeline_stable_diffusion_3_controlnet.py +56 -20
- diffusers/pipelines/controlnet_sd3/pipeline_stable_diffusion_3_controlnet_inpainting.py +1153 -0
- diffusers/pipelines/ddpm/pipeline_ddpm.py +2 -2
- diffusers/pipelines/deepfloyd_if/pipeline_output.py +6 -5
- diffusers/pipelines/deprecated/alt_diffusion/pipeline_alt_diffusion.py +16 -4
- diffusers/pipelines/deprecated/alt_diffusion/pipeline_alt_diffusion_img2img.py +1 -1
- diffusers/pipelines/deprecated/versatile_diffusion/modeling_text_unet.py +32 -9
- diffusers/pipelines/flux/__init__.py +23 -1
- diffusers/pipelines/flux/modeling_flux.py +47 -0
- diffusers/pipelines/flux/pipeline_flux.py +256 -48
- diffusers/pipelines/flux/pipeline_flux_control.py +889 -0
- diffusers/pipelines/flux/pipeline_flux_control_img2img.py +945 -0
- diffusers/pipelines/flux/pipeline_flux_control_inpaint.py +1141 -0
- diffusers/pipelines/flux/pipeline_flux_controlnet.py +1006 -0
- diffusers/pipelines/flux/pipeline_flux_controlnet_image_to_image.py +998 -0
- diffusers/pipelines/flux/pipeline_flux_controlnet_inpainting.py +1204 -0
- diffusers/pipelines/flux/pipeline_flux_fill.py +969 -0
- diffusers/pipelines/flux/pipeline_flux_img2img.py +856 -0
- diffusers/pipelines/flux/pipeline_flux_inpaint.py +1022 -0
- diffusers/pipelines/flux/pipeline_flux_prior_redux.py +492 -0
- diffusers/pipelines/flux/pipeline_output.py +16 -0
- diffusers/pipelines/free_noise_utils.py +365 -5
- diffusers/pipelines/hunyuan_video/__init__.py +48 -0
- diffusers/pipelines/hunyuan_video/pipeline_hunyuan_video.py +687 -0
- diffusers/pipelines/hunyuan_video/pipeline_output.py +20 -0
- diffusers/pipelines/hunyuandit/pipeline_hunyuandit.py +20 -4
- diffusers/pipelines/kandinsky/pipeline_kandinsky_combined.py +9 -9
- diffusers/pipelines/kandinsky2_2/pipeline_kandinsky2_2_combined.py +2 -2
- diffusers/pipelines/kolors/pipeline_kolors.py +1 -1
- diffusers/pipelines/kolors/pipeline_kolors_img2img.py +14 -11
- diffusers/pipelines/kolors/text_encoder.py +2 -2
- diffusers/pipelines/kolors/tokenizer.py +4 -0
- diffusers/pipelines/latent_consistency_models/pipeline_latent_consistency_img2img.py +1 -1
- diffusers/pipelines/latent_consistency_models/pipeline_latent_consistency_text2img.py +1 -1
- diffusers/pipelines/latent_diffusion/pipeline_latent_diffusion.py +1 -1
- diffusers/pipelines/latte/pipeline_latte.py +2 -2
- diffusers/pipelines/ledits_pp/pipeline_leditspp_stable_diffusion.py +15 -3
- diffusers/pipelines/ledits_pp/pipeline_leditspp_stable_diffusion_xl.py +15 -3
- diffusers/pipelines/ltx/__init__.py +50 -0
- diffusers/pipelines/ltx/pipeline_ltx.py +789 -0
- diffusers/pipelines/ltx/pipeline_ltx_image2video.py +885 -0
- diffusers/pipelines/ltx/pipeline_output.py +20 -0
- diffusers/pipelines/lumina/pipeline_lumina.py +3 -10
- diffusers/pipelines/mochi/__init__.py +48 -0
- diffusers/pipelines/mochi/pipeline_mochi.py +748 -0
- diffusers/pipelines/mochi/pipeline_output.py +20 -0
- diffusers/pipelines/pag/__init__.py +13 -0
- diffusers/pipelines/pag/pag_utils.py +8 -2
- diffusers/pipelines/pag/pipeline_pag_controlnet_sd.py +2 -3
- diffusers/pipelines/pag/pipeline_pag_controlnet_sd_inpaint.py +1543 -0
- diffusers/pipelines/pag/pipeline_pag_controlnet_sd_xl.py +3 -5
- diffusers/pipelines/pag/pipeline_pag_controlnet_sd_xl_img2img.py +1683 -0
- diffusers/pipelines/pag/pipeline_pag_hunyuandit.py +22 -6
- diffusers/pipelines/pag/pipeline_pag_kolors.py +1 -1
- diffusers/pipelines/pag/pipeline_pag_pixart_sigma.py +7 -14
- diffusers/pipelines/pag/pipeline_pag_sana.py +886 -0
- diffusers/pipelines/pag/pipeline_pag_sd.py +18 -6
- diffusers/pipelines/pag/pipeline_pag_sd_3.py +18 -9
- diffusers/pipelines/pag/pipeline_pag_sd_3_img2img.py +1058 -0
- diffusers/pipelines/pag/pipeline_pag_sd_animatediff.py +5 -1
- diffusers/pipelines/pag/pipeline_pag_sd_img2img.py +1094 -0
- diffusers/pipelines/pag/pipeline_pag_sd_inpaint.py +1356 -0
- diffusers/pipelines/pag/pipeline_pag_sd_xl.py +18 -6
- diffusers/pipelines/pag/pipeline_pag_sd_xl_img2img.py +31 -16
- diffusers/pipelines/pag/pipeline_pag_sd_xl_inpaint.py +42 -19
- diffusers/pipelines/pia/pipeline_pia.py +2 -0
- diffusers/pipelines/pipeline_flax_utils.py +1 -1
- diffusers/pipelines/pipeline_loading_utils.py +250 -31
- diffusers/pipelines/pipeline_utils.py +158 -186
- diffusers/pipelines/pixart_alpha/pipeline_pixart_alpha.py +7 -14
- diffusers/pipelines/pixart_alpha/pipeline_pixart_sigma.py +7 -14
- diffusers/pipelines/sana/__init__.py +47 -0
- diffusers/pipelines/sana/pipeline_output.py +21 -0
- diffusers/pipelines/sana/pipeline_sana.py +884 -0
- diffusers/pipelines/stable_audio/pipeline_stable_audio.py +12 -1
- diffusers/pipelines/stable_cascade/pipeline_stable_cascade.py +35 -3
- diffusers/pipelines/stable_cascade/pipeline_stable_cascade_prior.py +2 -2
- diffusers/pipelines/stable_diffusion/pipeline_stable_diffusion.py +46 -9
- diffusers/pipelines/stable_diffusion/pipeline_stable_diffusion_img2img.py +1 -1
- diffusers/pipelines/stable_diffusion/pipeline_stable_diffusion_inpaint.py +1 -1
- diffusers/pipelines/stable_diffusion/pipeline_stable_diffusion_latent_upscale.py +241 -81
- diffusers/pipelines/stable_diffusion_3/pipeline_stable_diffusion_3.py +228 -23
- diffusers/pipelines/stable_diffusion_3/pipeline_stable_diffusion_3_img2img.py +82 -13
- diffusers/pipelines/stable_diffusion_3/pipeline_stable_diffusion_3_inpaint.py +60 -11
- diffusers/pipelines/stable_diffusion_gligen/pipeline_stable_diffusion_gligen_text_image.py +11 -1
- diffusers/pipelines/stable_diffusion_k_diffusion/pipeline_stable_diffusion_k_diffusion.py +1 -1
- diffusers/pipelines/stable_diffusion_ldm3d/pipeline_stable_diffusion_ldm3d.py +16 -4
- diffusers/pipelines/stable_diffusion_panorama/pipeline_stable_diffusion_panorama.py +16 -4
- diffusers/pipelines/stable_diffusion_xl/pipeline_stable_diffusion_xl.py +16 -12
- diffusers/pipelines/stable_diffusion_xl/pipeline_stable_diffusion_xl_img2img.py +29 -22
- diffusers/pipelines/stable_diffusion_xl/pipeline_stable_diffusion_xl_inpaint.py +29 -22
- diffusers/pipelines/stable_video_diffusion/pipeline_stable_video_diffusion.py +1 -1
- diffusers/pipelines/t2i_adapter/pipeline_stable_diffusion_adapter.py +1 -1
- diffusers/pipelines/t2i_adapter/pipeline_stable_diffusion_xl_adapter.py +16 -4
- diffusers/pipelines/text_to_video_synthesis/pipeline_text_to_video_zero_sdxl.py +15 -3
- diffusers/pipelines/unidiffuser/modeling_uvit.py +2 -2
- diffusers/pipelines/wuerstchen/modeling_wuerstchen_prior.py +1 -1
- diffusers/quantizers/__init__.py +16 -0
- diffusers/quantizers/auto.py +139 -0
- diffusers/quantizers/base.py +233 -0
- diffusers/quantizers/bitsandbytes/__init__.py +2 -0
- diffusers/quantizers/bitsandbytes/bnb_quantizer.py +561 -0
- diffusers/quantizers/bitsandbytes/utils.py +306 -0
- diffusers/quantizers/gguf/__init__.py +1 -0
- diffusers/quantizers/gguf/gguf_quantizer.py +159 -0
- diffusers/quantizers/gguf/utils.py +456 -0
- diffusers/quantizers/quantization_config.py +669 -0
- diffusers/quantizers/torchao/__init__.py +15 -0
- diffusers/quantizers/torchao/torchao_quantizer.py +285 -0
- diffusers/schedulers/scheduling_ddim.py +4 -1
- diffusers/schedulers/scheduling_ddim_cogvideox.py +4 -1
- diffusers/schedulers/scheduling_ddim_parallel.py +4 -1
- diffusers/schedulers/scheduling_ddpm.py +6 -7
- diffusers/schedulers/scheduling_ddpm_parallel.py +6 -7
- diffusers/schedulers/scheduling_deis_multistep.py +102 -6
- diffusers/schedulers/scheduling_dpmsolver_multistep.py +113 -6
- diffusers/schedulers/scheduling_dpmsolver_multistep_inverse.py +111 -5
- diffusers/schedulers/scheduling_dpmsolver_sde.py +125 -10
- diffusers/schedulers/scheduling_dpmsolver_singlestep.py +126 -7
- diffusers/schedulers/scheduling_edm_euler.py +8 -6
- diffusers/schedulers/scheduling_euler_ancestral_discrete.py +4 -1
- diffusers/schedulers/scheduling_euler_discrete.py +92 -7
- diffusers/schedulers/scheduling_flow_match_euler_discrete.py +153 -6
- diffusers/schedulers/scheduling_flow_match_heun_discrete.py +4 -5
- diffusers/schedulers/scheduling_heun_discrete.py +114 -8
- diffusers/schedulers/scheduling_k_dpm_2_ancestral_discrete.py +116 -11
- diffusers/schedulers/scheduling_k_dpm_2_discrete.py +110 -8
- diffusers/schedulers/scheduling_lcm.py +2 -6
- diffusers/schedulers/scheduling_lms_discrete.py +76 -1
- diffusers/schedulers/scheduling_repaint.py +1 -1
- diffusers/schedulers/scheduling_sasolver.py +102 -6
- diffusers/schedulers/scheduling_tcd.py +2 -6
- diffusers/schedulers/scheduling_unclip.py +4 -1
- diffusers/schedulers/scheduling_unipc_multistep.py +127 -5
- diffusers/training_utils.py +63 -19
- diffusers/utils/__init__.py +7 -1
- diffusers/utils/constants.py +1 -0
- diffusers/utils/dummy_pt_objects.py +240 -0
- diffusers/utils/dummy_torch_and_transformers_objects.py +435 -0
- diffusers/utils/dynamic_modules_utils.py +3 -3
- diffusers/utils/hub_utils.py +44 -40
- diffusers/utils/import_utils.py +98 -8
- diffusers/utils/loading_utils.py +28 -4
- diffusers/utils/peft_utils.py +6 -3
- diffusers/utils/testing_utils.py +115 -1
- diffusers/utils/torch_utils.py +3 -0
- {diffusers-0.30.3.dist-info → diffusers-0.32.0.dist-info}/METADATA +73 -72
- {diffusers-0.30.3.dist-info → diffusers-0.32.0.dist-info}/RECORD +268 -193
- {diffusers-0.30.3.dist-info → diffusers-0.32.0.dist-info}/WHEEL +1 -1
- {diffusers-0.30.3.dist-info → diffusers-0.32.0.dist-info}/LICENSE +0 -0
- {diffusers-0.30.3.dist-info → diffusers-0.32.0.dist-info}/entry_points.txt +0 -0
- {diffusers-0.30.3.dist-info → diffusers-0.32.0.dist-info}/top_level.txt +0 -0
diffusers/__init__.py
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
__version__ = "0.
|
1
|
+
__version__ = "0.32.0"
|
2
2
|
|
3
3
|
from typing import TYPE_CHECKING
|
4
4
|
|
@@ -31,6 +31,7 @@ _import_structure = {
|
|
31
31
|
"loaders": ["FromOriginalModelMixin"],
|
32
32
|
"models": [],
|
33
33
|
"pipelines": [],
|
34
|
+
"quantizers.quantization_config": ["BitsAndBytesConfig", "GGUFQuantizationConfig", "TorchAoConfig"],
|
34
35
|
"schedulers": [],
|
35
36
|
"utils": [
|
36
37
|
"OptionalDependencyNotAvailable",
|
@@ -76,31 +77,46 @@ except OptionalDependencyNotAvailable:
|
|
76
77
|
else:
|
77
78
|
_import_structure["models"].extend(
|
78
79
|
[
|
80
|
+
"AllegroTransformer3DModel",
|
79
81
|
"AsymmetricAutoencoderKL",
|
80
82
|
"AuraFlowTransformer2DModel",
|
83
|
+
"AutoencoderDC",
|
81
84
|
"AutoencoderKL",
|
85
|
+
"AutoencoderKLAllegro",
|
82
86
|
"AutoencoderKLCogVideoX",
|
87
|
+
"AutoencoderKLHunyuanVideo",
|
88
|
+
"AutoencoderKLLTXVideo",
|
89
|
+
"AutoencoderKLMochi",
|
83
90
|
"AutoencoderKLTemporalDecoder",
|
84
91
|
"AutoencoderOobleck",
|
85
92
|
"AutoencoderTiny",
|
86
93
|
"CogVideoXTransformer3DModel",
|
94
|
+
"CogView3PlusTransformer2DModel",
|
87
95
|
"ConsistencyDecoderVAE",
|
88
96
|
"ControlNetModel",
|
97
|
+
"ControlNetUnionModel",
|
89
98
|
"ControlNetXSAdapter",
|
90
99
|
"DiTTransformer2DModel",
|
100
|
+
"FluxControlNetModel",
|
101
|
+
"FluxMultiControlNetModel",
|
91
102
|
"FluxTransformer2DModel",
|
92
103
|
"HunyuanDiT2DControlNetModel",
|
93
104
|
"HunyuanDiT2DModel",
|
94
105
|
"HunyuanDiT2DMultiControlNetModel",
|
106
|
+
"HunyuanVideoTransformer3DModel",
|
95
107
|
"I2VGenXLUNet",
|
96
108
|
"Kandinsky3UNet",
|
97
109
|
"LatteTransformer3DModel",
|
110
|
+
"LTXVideoTransformer3DModel",
|
98
111
|
"LuminaNextDiT2DModel",
|
112
|
+
"MochiTransformer3DModel",
|
99
113
|
"ModelMixin",
|
100
114
|
"MotionAdapter",
|
101
115
|
"MultiAdapter",
|
116
|
+
"MultiControlNetModel",
|
102
117
|
"PixArtTransformer2DModel",
|
103
118
|
"PriorTransformer",
|
119
|
+
"SanaTransformer2DModel",
|
104
120
|
"SD3ControlNetModel",
|
105
121
|
"SD3MultiControlNetModel",
|
106
122
|
"SD3Transformer2DModel",
|
@@ -121,7 +137,6 @@ else:
|
|
121
137
|
"VQModel",
|
122
138
|
]
|
123
139
|
)
|
124
|
-
|
125
140
|
_import_structure["optimization"] = [
|
126
141
|
"get_constant_schedule",
|
127
142
|
"get_constant_schedule_with_warmup",
|
@@ -153,6 +168,7 @@ else:
|
|
153
168
|
"StableDiffusionMixin",
|
154
169
|
]
|
155
170
|
)
|
171
|
+
_import_structure["quantizers"] = ["DiffusersQuantizer"]
|
156
172
|
_import_structure["schedulers"].extend(
|
157
173
|
[
|
158
174
|
"AmusedScheduler",
|
@@ -233,6 +249,7 @@ except OptionalDependencyNotAvailable:
|
|
233
249
|
else:
|
234
250
|
_import_structure["pipelines"].extend(
|
235
251
|
[
|
252
|
+
"AllegroPipeline",
|
236
253
|
"AltDiffusionImg2ImgPipeline",
|
237
254
|
"AltDiffusionPipeline",
|
238
255
|
"AmusedImg2ImgPipeline",
|
@@ -243,6 +260,7 @@ else:
|
|
243
260
|
"AnimateDiffPipeline",
|
244
261
|
"AnimateDiffSDXLPipeline",
|
245
262
|
"AnimateDiffSparseControlNetPipeline",
|
263
|
+
"AnimateDiffVideoToVideoControlNetPipeline",
|
246
264
|
"AnimateDiffVideoToVideoPipeline",
|
247
265
|
"AudioLDM2Pipeline",
|
248
266
|
"AudioLDM2ProjectionModel",
|
@@ -252,14 +270,27 @@ else:
|
|
252
270
|
"BlipDiffusionControlNetPipeline",
|
253
271
|
"BlipDiffusionPipeline",
|
254
272
|
"CLIPImageProjection",
|
273
|
+
"CogVideoXFunControlPipeline",
|
255
274
|
"CogVideoXImageToVideoPipeline",
|
256
275
|
"CogVideoXPipeline",
|
257
276
|
"CogVideoXVideoToVideoPipeline",
|
277
|
+
"CogView3PlusPipeline",
|
258
278
|
"CycleDiffusionPipeline",
|
279
|
+
"FluxControlImg2ImgPipeline",
|
280
|
+
"FluxControlInpaintPipeline",
|
281
|
+
"FluxControlNetImg2ImgPipeline",
|
282
|
+
"FluxControlNetInpaintPipeline",
|
283
|
+
"FluxControlNetPipeline",
|
284
|
+
"FluxControlPipeline",
|
285
|
+
"FluxFillPipeline",
|
286
|
+
"FluxImg2ImgPipeline",
|
287
|
+
"FluxInpaintPipeline",
|
259
288
|
"FluxPipeline",
|
289
|
+
"FluxPriorReduxPipeline",
|
260
290
|
"HunyuanDiTControlNetPipeline",
|
261
291
|
"HunyuanDiTPAGPipeline",
|
262
292
|
"HunyuanDiTPipeline",
|
293
|
+
"HunyuanVideoPipeline",
|
263
294
|
"I2VGenXLPipeline",
|
264
295
|
"IFImg2ImgPipeline",
|
265
296
|
"IFImg2ImgSuperResolutionPipeline",
|
@@ -293,15 +324,21 @@ else:
|
|
293
324
|
"LDMTextToImagePipeline",
|
294
325
|
"LEditsPPPipelineStableDiffusion",
|
295
326
|
"LEditsPPPipelineStableDiffusionXL",
|
327
|
+
"LTXImageToVideoPipeline",
|
328
|
+
"LTXPipeline",
|
296
329
|
"LuminaText2ImgPipeline",
|
297
330
|
"MarigoldDepthPipeline",
|
298
331
|
"MarigoldNormalsPipeline",
|
332
|
+
"MochiPipeline",
|
299
333
|
"MusicLDMPipeline",
|
300
334
|
"PaintByExamplePipeline",
|
301
335
|
"PIAPipeline",
|
302
336
|
"PixArtAlphaPipeline",
|
303
337
|
"PixArtSigmaPAGPipeline",
|
304
338
|
"PixArtSigmaPipeline",
|
339
|
+
"ReduxImageEncoder",
|
340
|
+
"SanaPAGPipeline",
|
341
|
+
"SanaPipeline",
|
305
342
|
"SemanticStableDiffusionPipeline",
|
306
343
|
"ShapEImg2ImgPipeline",
|
307
344
|
"ShapEPipeline",
|
@@ -310,15 +347,19 @@ else:
|
|
310
347
|
"StableCascadeCombinedPipeline",
|
311
348
|
"StableCascadeDecoderPipeline",
|
312
349
|
"StableCascadePriorPipeline",
|
350
|
+
"StableDiffusion3ControlNetInpaintingPipeline",
|
313
351
|
"StableDiffusion3ControlNetPipeline",
|
314
352
|
"StableDiffusion3Img2ImgPipeline",
|
315
353
|
"StableDiffusion3InpaintPipeline",
|
354
|
+
"StableDiffusion3PAGImg2ImgPipeline",
|
355
|
+
"StableDiffusion3PAGImg2ImgPipeline",
|
316
356
|
"StableDiffusion3PAGPipeline",
|
317
357
|
"StableDiffusion3Pipeline",
|
318
358
|
"StableDiffusionAdapterPipeline",
|
319
359
|
"StableDiffusionAttendAndExcitePipeline",
|
320
360
|
"StableDiffusionControlNetImg2ImgPipeline",
|
321
361
|
"StableDiffusionControlNetInpaintPipeline",
|
362
|
+
"StableDiffusionControlNetPAGInpaintPipeline",
|
322
363
|
"StableDiffusionControlNetPAGPipeline",
|
323
364
|
"StableDiffusionControlNetPipeline",
|
324
365
|
"StableDiffusionControlNetXSPipeline",
|
@@ -334,6 +375,8 @@ else:
|
|
334
375
|
"StableDiffusionLatentUpscalePipeline",
|
335
376
|
"StableDiffusionLDM3DPipeline",
|
336
377
|
"StableDiffusionModelEditingPipeline",
|
378
|
+
"StableDiffusionPAGImg2ImgPipeline",
|
379
|
+
"StableDiffusionPAGInpaintPipeline",
|
337
380
|
"StableDiffusionPAGPipeline",
|
338
381
|
"StableDiffusionPanoramaPipeline",
|
339
382
|
"StableDiffusionParadigmsPipeline",
|
@@ -345,8 +388,12 @@ else:
|
|
345
388
|
"StableDiffusionXLAdapterPipeline",
|
346
389
|
"StableDiffusionXLControlNetImg2ImgPipeline",
|
347
390
|
"StableDiffusionXLControlNetInpaintPipeline",
|
391
|
+
"StableDiffusionXLControlNetPAGImg2ImgPipeline",
|
348
392
|
"StableDiffusionXLControlNetPAGPipeline",
|
349
393
|
"StableDiffusionXLControlNetPipeline",
|
394
|
+
"StableDiffusionXLControlNetUnionImg2ImgPipeline",
|
395
|
+
"StableDiffusionXLControlNetUnionInpaintPipeline",
|
396
|
+
"StableDiffusionXLControlNetUnionPipeline",
|
350
397
|
"StableDiffusionXLControlNetXSPipeline",
|
351
398
|
"StableDiffusionXLImg2ImgPipeline",
|
352
399
|
"StableDiffusionXLInpaintPipeline",
|
@@ -465,7 +512,7 @@ except OptionalDependencyNotAvailable:
|
|
465
512
|
|
466
513
|
|
467
514
|
else:
|
468
|
-
_import_structure["models.controlnet_flax"] = ["FlaxControlNetModel"]
|
515
|
+
_import_structure["models.controlnets.controlnet_flax"] = ["FlaxControlNetModel"]
|
469
516
|
_import_structure["models.modeling_flax_utils"] = ["FlaxModelMixin"]
|
470
517
|
_import_structure["models.unets.unet_2d_condition_flax"] = ["FlaxUNet2DConditionModel"]
|
471
518
|
_import_structure["models.vae_flax"] = ["FlaxAutoencoderKL"]
|
@@ -523,6 +570,7 @@ else:
|
|
523
570
|
|
524
571
|
if TYPE_CHECKING or DIFFUSERS_SLOW_IMPORT:
|
525
572
|
from .configuration_utils import ConfigMixin
|
573
|
+
from .quantizers.quantization_config import BitsAndBytesConfig, GGUFQuantizationConfig, TorchAoConfig
|
526
574
|
|
527
575
|
try:
|
528
576
|
if not is_onnx_available():
|
@@ -539,31 +587,46 @@ if TYPE_CHECKING or DIFFUSERS_SLOW_IMPORT:
|
|
539
587
|
from .utils.dummy_pt_objects import * # noqa F403
|
540
588
|
else:
|
541
589
|
from .models import (
|
590
|
+
AllegroTransformer3DModel,
|
542
591
|
AsymmetricAutoencoderKL,
|
543
592
|
AuraFlowTransformer2DModel,
|
593
|
+
AutoencoderDC,
|
544
594
|
AutoencoderKL,
|
595
|
+
AutoencoderKLAllegro,
|
545
596
|
AutoencoderKLCogVideoX,
|
597
|
+
AutoencoderKLHunyuanVideo,
|
598
|
+
AutoencoderKLLTXVideo,
|
599
|
+
AutoencoderKLMochi,
|
546
600
|
AutoencoderKLTemporalDecoder,
|
547
601
|
AutoencoderOobleck,
|
548
602
|
AutoencoderTiny,
|
549
603
|
CogVideoXTransformer3DModel,
|
604
|
+
CogView3PlusTransformer2DModel,
|
550
605
|
ConsistencyDecoderVAE,
|
551
606
|
ControlNetModel,
|
607
|
+
ControlNetUnionModel,
|
552
608
|
ControlNetXSAdapter,
|
553
609
|
DiTTransformer2DModel,
|
610
|
+
FluxControlNetModel,
|
611
|
+
FluxMultiControlNetModel,
|
554
612
|
FluxTransformer2DModel,
|
555
613
|
HunyuanDiT2DControlNetModel,
|
556
614
|
HunyuanDiT2DModel,
|
557
615
|
HunyuanDiT2DMultiControlNetModel,
|
616
|
+
HunyuanVideoTransformer3DModel,
|
558
617
|
I2VGenXLUNet,
|
559
618
|
Kandinsky3UNet,
|
560
619
|
LatteTransformer3DModel,
|
620
|
+
LTXVideoTransformer3DModel,
|
561
621
|
LuminaNextDiT2DModel,
|
622
|
+
MochiTransformer3DModel,
|
562
623
|
ModelMixin,
|
563
624
|
MotionAdapter,
|
564
625
|
MultiAdapter,
|
626
|
+
MultiControlNetModel,
|
565
627
|
PixArtTransformer2DModel,
|
566
628
|
PriorTransformer,
|
629
|
+
SanaTransformer2DModel,
|
567
630
|
SD3ControlNetModel,
|
568
631
|
SD3MultiControlNetModel,
|
569
632
|
SD3Transformer2DModel,
|
@@ -614,6 +677,7 @@ if TYPE_CHECKING or DIFFUSERS_SLOW_IMPORT:
|
|
614
677
|
ScoreSdeVePipeline,
|
615
678
|
StableDiffusionMixin,
|
616
679
|
)
|
680
|
+
from .quantizers import DiffusersQuantizer
|
617
681
|
from .schedulers import (
|
618
682
|
AmusedScheduler,
|
619
683
|
CMStochasticIterativeScheduler,
|
@@ -676,6 +740,7 @@ if TYPE_CHECKING or DIFFUSERS_SLOW_IMPORT:
|
|
676
740
|
from .utils.dummy_torch_and_transformers_objects import * # noqa F403
|
677
741
|
else:
|
678
742
|
from .pipelines import (
|
743
|
+
AllegroPipeline,
|
679
744
|
AltDiffusionImg2ImgPipeline,
|
680
745
|
AltDiffusionPipeline,
|
681
746
|
AmusedImg2ImgPipeline,
|
@@ -686,6 +751,7 @@ if TYPE_CHECKING or DIFFUSERS_SLOW_IMPORT:
|
|
686
751
|
AnimateDiffPipeline,
|
687
752
|
AnimateDiffSDXLPipeline,
|
688
753
|
AnimateDiffSparseControlNetPipeline,
|
754
|
+
AnimateDiffVideoToVideoControlNetPipeline,
|
689
755
|
AnimateDiffVideoToVideoPipeline,
|
690
756
|
AudioLDM2Pipeline,
|
691
757
|
AudioLDM2ProjectionModel,
|
@@ -693,14 +759,27 @@ if TYPE_CHECKING or DIFFUSERS_SLOW_IMPORT:
|
|
693
759
|
AudioLDMPipeline,
|
694
760
|
AuraFlowPipeline,
|
695
761
|
CLIPImageProjection,
|
762
|
+
CogVideoXFunControlPipeline,
|
696
763
|
CogVideoXImageToVideoPipeline,
|
697
764
|
CogVideoXPipeline,
|
698
765
|
CogVideoXVideoToVideoPipeline,
|
766
|
+
CogView3PlusPipeline,
|
699
767
|
CycleDiffusionPipeline,
|
768
|
+
FluxControlImg2ImgPipeline,
|
769
|
+
FluxControlInpaintPipeline,
|
770
|
+
FluxControlNetImg2ImgPipeline,
|
771
|
+
FluxControlNetInpaintPipeline,
|
772
|
+
FluxControlNetPipeline,
|
773
|
+
FluxControlPipeline,
|
774
|
+
FluxFillPipeline,
|
775
|
+
FluxImg2ImgPipeline,
|
776
|
+
FluxInpaintPipeline,
|
700
777
|
FluxPipeline,
|
778
|
+
FluxPriorReduxPipeline,
|
701
779
|
HunyuanDiTControlNetPipeline,
|
702
780
|
HunyuanDiTPAGPipeline,
|
703
781
|
HunyuanDiTPipeline,
|
782
|
+
HunyuanVideoPipeline,
|
704
783
|
I2VGenXLPipeline,
|
705
784
|
IFImg2ImgPipeline,
|
706
785
|
IFImg2ImgSuperResolutionPipeline,
|
@@ -734,15 +813,21 @@ if TYPE_CHECKING or DIFFUSERS_SLOW_IMPORT:
|
|
734
813
|
LDMTextToImagePipeline,
|
735
814
|
LEditsPPPipelineStableDiffusion,
|
736
815
|
LEditsPPPipelineStableDiffusionXL,
|
816
|
+
LTXImageToVideoPipeline,
|
817
|
+
LTXPipeline,
|
737
818
|
LuminaText2ImgPipeline,
|
738
819
|
MarigoldDepthPipeline,
|
739
820
|
MarigoldNormalsPipeline,
|
821
|
+
MochiPipeline,
|
740
822
|
MusicLDMPipeline,
|
741
823
|
PaintByExamplePipeline,
|
742
824
|
PIAPipeline,
|
743
825
|
PixArtAlphaPipeline,
|
744
826
|
PixArtSigmaPAGPipeline,
|
745
827
|
PixArtSigmaPipeline,
|
828
|
+
ReduxImageEncoder,
|
829
|
+
SanaPAGPipeline,
|
830
|
+
SanaPipeline,
|
746
831
|
SemanticStableDiffusionPipeline,
|
747
832
|
ShapEImg2ImgPipeline,
|
748
833
|
ShapEPipeline,
|
@@ -754,12 +839,14 @@ if TYPE_CHECKING or DIFFUSERS_SLOW_IMPORT:
|
|
754
839
|
StableDiffusion3ControlNetPipeline,
|
755
840
|
StableDiffusion3Img2ImgPipeline,
|
756
841
|
StableDiffusion3InpaintPipeline,
|
842
|
+
StableDiffusion3PAGImg2ImgPipeline,
|
757
843
|
StableDiffusion3PAGPipeline,
|
758
844
|
StableDiffusion3Pipeline,
|
759
845
|
StableDiffusionAdapterPipeline,
|
760
846
|
StableDiffusionAttendAndExcitePipeline,
|
761
847
|
StableDiffusionControlNetImg2ImgPipeline,
|
762
848
|
StableDiffusionControlNetInpaintPipeline,
|
849
|
+
StableDiffusionControlNetPAGInpaintPipeline,
|
763
850
|
StableDiffusionControlNetPAGPipeline,
|
764
851
|
StableDiffusionControlNetPipeline,
|
765
852
|
StableDiffusionControlNetXSPipeline,
|
@@ -775,6 +862,8 @@ if TYPE_CHECKING or DIFFUSERS_SLOW_IMPORT:
|
|
775
862
|
StableDiffusionLatentUpscalePipeline,
|
776
863
|
StableDiffusionLDM3DPipeline,
|
777
864
|
StableDiffusionModelEditingPipeline,
|
865
|
+
StableDiffusionPAGImg2ImgPipeline,
|
866
|
+
StableDiffusionPAGInpaintPipeline,
|
778
867
|
StableDiffusionPAGPipeline,
|
779
868
|
StableDiffusionPanoramaPipeline,
|
780
869
|
StableDiffusionParadigmsPipeline,
|
@@ -786,8 +875,12 @@ if TYPE_CHECKING or DIFFUSERS_SLOW_IMPORT:
|
|
786
875
|
StableDiffusionXLAdapterPipeline,
|
787
876
|
StableDiffusionXLControlNetImg2ImgPipeline,
|
788
877
|
StableDiffusionXLControlNetInpaintPipeline,
|
878
|
+
StableDiffusionXLControlNetPAGImg2ImgPipeline,
|
789
879
|
StableDiffusionXLControlNetPAGPipeline,
|
790
880
|
StableDiffusionXLControlNetPipeline,
|
881
|
+
StableDiffusionXLControlNetUnionImg2ImgPipeline,
|
882
|
+
StableDiffusionXLControlNetUnionInpaintPipeline,
|
883
|
+
StableDiffusionXLControlNetUnionPipeline,
|
791
884
|
StableDiffusionXLControlNetXSPipeline,
|
792
885
|
StableDiffusionXLImg2ImgPipeline,
|
793
886
|
StableDiffusionXLInpaintPipeline,
|
@@ -870,7 +963,7 @@ if TYPE_CHECKING or DIFFUSERS_SLOW_IMPORT:
|
|
870
963
|
except OptionalDependencyNotAvailable:
|
871
964
|
from .utils.dummy_flax_objects import * # noqa F403
|
872
965
|
else:
|
873
|
-
from .models.controlnet_flax import FlaxControlNetModel
|
966
|
+
from .models.controlnets.controlnet_flax import FlaxControlNetModel
|
874
967
|
from .models.modeling_flax_utils import FlaxModelMixin
|
875
968
|
from .models.unets.unet_2d_condition_flax import FlaxUNet2DConditionModel
|
876
969
|
from .models.vae_flax import FlaxAutoencoderKL
|
diffusers/callbacks.py
CHANGED
@@ -97,13 +97,17 @@ class SDCFGCutoffCallback(PipelineCallback):
|
|
97
97
|
|
98
98
|
class SDXLCFGCutoffCallback(PipelineCallback):
|
99
99
|
"""
|
100
|
-
Callback function for Stable Diffusion XL Pipelines. After certain number of steps (set by
|
101
|
-
`cutoff_step_index`), this callback will disable the CFG.
|
100
|
+
Callback function for the base Stable Diffusion XL Pipelines. After certain number of steps (set by
|
101
|
+
`cutoff_step_ratio` or `cutoff_step_index`), this callback will disable the CFG.
|
102
102
|
|
103
103
|
Note: This callback mutates the pipeline by changing the `_guidance_scale` attribute to 0.0 after the cutoff step.
|
104
104
|
"""
|
105
105
|
|
106
|
-
tensor_inputs = [
|
106
|
+
tensor_inputs = [
|
107
|
+
"prompt_embeds",
|
108
|
+
"add_text_embeds",
|
109
|
+
"add_time_ids",
|
110
|
+
]
|
107
111
|
|
108
112
|
def callback_fn(self, pipeline, step_index, timestep, callback_kwargs) -> Dict[str, Any]:
|
109
113
|
cutoff_step_ratio = self.config.cutoff_step_ratio
|
@@ -129,6 +133,55 @@ class SDXLCFGCutoffCallback(PipelineCallback):
|
|
129
133
|
callback_kwargs[self.tensor_inputs[0]] = prompt_embeds
|
130
134
|
callback_kwargs[self.tensor_inputs[1]] = add_text_embeds
|
131
135
|
callback_kwargs[self.tensor_inputs[2]] = add_time_ids
|
136
|
+
|
137
|
+
return callback_kwargs
|
138
|
+
|
139
|
+
|
140
|
+
class SDXLControlnetCFGCutoffCallback(PipelineCallback):
|
141
|
+
"""
|
142
|
+
Callback function for the Controlnet Stable Diffusion XL Pipelines. After certain number of steps (set by
|
143
|
+
`cutoff_step_ratio` or `cutoff_step_index`), this callback will disable the CFG.
|
144
|
+
|
145
|
+
Note: This callback mutates the pipeline by changing the `_guidance_scale` attribute to 0.0 after the cutoff step.
|
146
|
+
"""
|
147
|
+
|
148
|
+
tensor_inputs = [
|
149
|
+
"prompt_embeds",
|
150
|
+
"add_text_embeds",
|
151
|
+
"add_time_ids",
|
152
|
+
"image",
|
153
|
+
]
|
154
|
+
|
155
|
+
def callback_fn(self, pipeline, step_index, timestep, callback_kwargs) -> Dict[str, Any]:
|
156
|
+
cutoff_step_ratio = self.config.cutoff_step_ratio
|
157
|
+
cutoff_step_index = self.config.cutoff_step_index
|
158
|
+
|
159
|
+
# Use cutoff_step_index if it's not None, otherwise use cutoff_step_ratio
|
160
|
+
cutoff_step = (
|
161
|
+
cutoff_step_index if cutoff_step_index is not None else int(pipeline.num_timesteps * cutoff_step_ratio)
|
162
|
+
)
|
163
|
+
|
164
|
+
if step_index == cutoff_step:
|
165
|
+
prompt_embeds = callback_kwargs[self.tensor_inputs[0]]
|
166
|
+
prompt_embeds = prompt_embeds[-1:] # "-1" denotes the embeddings for conditional text tokens.
|
167
|
+
|
168
|
+
add_text_embeds = callback_kwargs[self.tensor_inputs[1]]
|
169
|
+
add_text_embeds = add_text_embeds[-1:] # "-1" denotes the embeddings for conditional pooled text tokens
|
170
|
+
|
171
|
+
add_time_ids = callback_kwargs[self.tensor_inputs[2]]
|
172
|
+
add_time_ids = add_time_ids[-1:] # "-1" denotes the embeddings for conditional added time vector
|
173
|
+
|
174
|
+
# For Controlnet
|
175
|
+
image = callback_kwargs[self.tensor_inputs[3]]
|
176
|
+
image = image[-1:]
|
177
|
+
|
178
|
+
pipeline._guidance_scale = 0.0
|
179
|
+
|
180
|
+
callback_kwargs[self.tensor_inputs[0]] = prompt_embeds
|
181
|
+
callback_kwargs[self.tensor_inputs[1]] = add_text_embeds
|
182
|
+
callback_kwargs[self.tensor_inputs[2]] = add_time_ids
|
183
|
+
callback_kwargs[self.tensor_inputs[3]] = image
|
184
|
+
|
132
185
|
return callback_kwargs
|
133
186
|
|
134
187
|
|
diffusers/configuration_utils.py
CHANGED
@@ -170,7 +170,7 @@ class ConfigMixin:
|
|
170
170
|
|
171
171
|
if push_to_hub:
|
172
172
|
commit_message = kwargs.pop("commit_message", None)
|
173
|
-
private = kwargs.pop("private",
|
173
|
+
private = kwargs.pop("private", None)
|
174
174
|
create_pr = kwargs.pop("create_pr", False)
|
175
175
|
token = kwargs.pop("token", None)
|
176
176
|
repo_id = kwargs.pop("repo_id", save_directory.split(os.path.sep)[-1])
|
@@ -510,6 +510,9 @@ class ConfigMixin:
|
|
510
510
|
# remove private attributes
|
511
511
|
config_dict = {k: v for k, v in config_dict.items() if not k.startswith("_")}
|
512
512
|
|
513
|
+
# remove quantization_config
|
514
|
+
config_dict = {k: v for k, v in config_dict.items() if k != "quantization_config"}
|
515
|
+
|
513
516
|
# 3. Create keyword arguments that will be passed to __init__ from expected keyword arguments
|
514
517
|
init_dict = {}
|
515
518
|
for key in expected_keys:
|
@@ -586,10 +589,19 @@ class ConfigMixin:
|
|
586
589
|
value = value.as_posix()
|
587
590
|
return value
|
588
591
|
|
592
|
+
if "quantization_config" in config_dict:
|
593
|
+
config_dict["quantization_config"] = (
|
594
|
+
config_dict.quantization_config.to_dict()
|
595
|
+
if not isinstance(config_dict.quantization_config, dict)
|
596
|
+
else config_dict.quantization_config
|
597
|
+
)
|
598
|
+
|
589
599
|
config_dict = {k: to_json_saveable(v) for k, v in config_dict.items()}
|
590
600
|
# Don't save "_ignore_files" or "_use_default_values"
|
591
601
|
config_dict.pop("_ignore_files", None)
|
592
602
|
config_dict.pop("_use_default_values", None)
|
603
|
+
# pop the `_pre_quantization_dtype` as torch.dtypes are not serializable.
|
604
|
+
_ = config_dict.pop("_pre_quantization_dtype", None)
|
593
605
|
|
594
606
|
return json.dumps(config_dict, indent=2, sort_keys=True) + "\n"
|
595
607
|
|