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.
Files changed (268) hide show
  1. diffusers/__init__.py +97 -4
  2. diffusers/callbacks.py +56 -3
  3. diffusers/configuration_utils.py +13 -1
  4. diffusers/image_processor.py +282 -71
  5. diffusers/loaders/__init__.py +24 -3
  6. diffusers/loaders/ip_adapter.py +543 -16
  7. diffusers/loaders/lora_base.py +138 -125
  8. diffusers/loaders/lora_conversion_utils.py +647 -0
  9. diffusers/loaders/lora_pipeline.py +2216 -230
  10. diffusers/loaders/peft.py +380 -0
  11. diffusers/loaders/single_file_model.py +71 -4
  12. diffusers/loaders/single_file_utils.py +597 -10
  13. diffusers/loaders/textual_inversion.py +5 -3
  14. diffusers/loaders/transformer_flux.py +181 -0
  15. diffusers/loaders/transformer_sd3.py +89 -0
  16. diffusers/loaders/unet.py +56 -12
  17. diffusers/models/__init__.py +49 -12
  18. diffusers/models/activations.py +22 -9
  19. diffusers/models/adapter.py +53 -53
  20. diffusers/models/attention.py +98 -13
  21. diffusers/models/attention_flax.py +1 -1
  22. diffusers/models/attention_processor.py +2160 -346
  23. diffusers/models/autoencoders/__init__.py +5 -0
  24. diffusers/models/autoencoders/autoencoder_dc.py +620 -0
  25. diffusers/models/autoencoders/autoencoder_kl.py +73 -12
  26. diffusers/models/autoencoders/autoencoder_kl_allegro.py +1149 -0
  27. diffusers/models/autoencoders/autoencoder_kl_cogvideox.py +213 -105
  28. diffusers/models/autoencoders/autoencoder_kl_hunyuan_video.py +1176 -0
  29. diffusers/models/autoencoders/autoencoder_kl_ltx.py +1338 -0
  30. diffusers/models/autoencoders/autoencoder_kl_mochi.py +1166 -0
  31. diffusers/models/autoencoders/autoencoder_kl_temporal_decoder.py +3 -10
  32. diffusers/models/autoencoders/autoencoder_tiny.py +4 -2
  33. diffusers/models/autoencoders/vae.py +18 -5
  34. diffusers/models/controlnet.py +47 -802
  35. diffusers/models/controlnet_flux.py +70 -0
  36. diffusers/models/controlnet_sd3.py +26 -376
  37. diffusers/models/controlnet_sparsectrl.py +46 -719
  38. diffusers/models/controlnets/__init__.py +23 -0
  39. diffusers/models/controlnets/controlnet.py +872 -0
  40. diffusers/models/{controlnet_flax.py → controlnets/controlnet_flax.py} +5 -5
  41. diffusers/models/controlnets/controlnet_flux.py +536 -0
  42. diffusers/models/{controlnet_hunyuan.py → controlnets/controlnet_hunyuan.py} +7 -7
  43. diffusers/models/controlnets/controlnet_sd3.py +489 -0
  44. diffusers/models/controlnets/controlnet_sparsectrl.py +788 -0
  45. diffusers/models/controlnets/controlnet_union.py +832 -0
  46. diffusers/models/{controlnet_xs.py → controlnets/controlnet_xs.py} +14 -13
  47. diffusers/models/controlnets/multicontrolnet.py +183 -0
  48. diffusers/models/embeddings.py +996 -92
  49. diffusers/models/embeddings_flax.py +23 -9
  50. diffusers/models/model_loading_utils.py +264 -14
  51. diffusers/models/modeling_flax_utils.py +1 -1
  52. diffusers/models/modeling_utils.py +334 -51
  53. diffusers/models/normalization.py +157 -13
  54. diffusers/models/transformers/__init__.py +6 -0
  55. diffusers/models/transformers/auraflow_transformer_2d.py +3 -2
  56. diffusers/models/transformers/cogvideox_transformer_3d.py +69 -13
  57. diffusers/models/transformers/dit_transformer_2d.py +1 -1
  58. diffusers/models/transformers/latte_transformer_3d.py +4 -4
  59. diffusers/models/transformers/pixart_transformer_2d.py +10 -2
  60. diffusers/models/transformers/sana_transformer.py +488 -0
  61. diffusers/models/transformers/stable_audio_transformer.py +1 -1
  62. diffusers/models/transformers/transformer_2d.py +1 -1
  63. diffusers/models/transformers/transformer_allegro.py +422 -0
  64. diffusers/models/transformers/transformer_cogview3plus.py +386 -0
  65. diffusers/models/transformers/transformer_flux.py +189 -51
  66. diffusers/models/transformers/transformer_hunyuan_video.py +789 -0
  67. diffusers/models/transformers/transformer_ltx.py +469 -0
  68. diffusers/models/transformers/transformer_mochi.py +499 -0
  69. diffusers/models/transformers/transformer_sd3.py +112 -18
  70. diffusers/models/transformers/transformer_temporal.py +1 -1
  71. diffusers/models/unets/unet_1d_blocks.py +1 -1
  72. diffusers/models/unets/unet_2d.py +8 -1
  73. diffusers/models/unets/unet_2d_blocks.py +88 -21
  74. diffusers/models/unets/unet_2d_condition.py +9 -9
  75. diffusers/models/unets/unet_3d_blocks.py +9 -7
  76. diffusers/models/unets/unet_motion_model.py +46 -68
  77. diffusers/models/unets/unet_spatio_temporal_condition.py +23 -0
  78. diffusers/models/unets/unet_stable_cascade.py +2 -2
  79. diffusers/models/unets/uvit_2d.py +1 -1
  80. diffusers/models/upsampling.py +14 -6
  81. diffusers/pipelines/__init__.py +69 -6
  82. diffusers/pipelines/allegro/__init__.py +48 -0
  83. diffusers/pipelines/allegro/pipeline_allegro.py +938 -0
  84. diffusers/pipelines/allegro/pipeline_output.py +23 -0
  85. diffusers/pipelines/animatediff/__init__.py +2 -0
  86. diffusers/pipelines/animatediff/pipeline_animatediff.py +45 -21
  87. diffusers/pipelines/animatediff/pipeline_animatediff_controlnet.py +52 -22
  88. diffusers/pipelines/animatediff/pipeline_animatediff_sdxl.py +18 -4
  89. diffusers/pipelines/animatediff/pipeline_animatediff_sparsectrl.py +3 -1
  90. diffusers/pipelines/animatediff/pipeline_animatediff_video2video.py +104 -72
  91. diffusers/pipelines/animatediff/pipeline_animatediff_video2video_controlnet.py +1341 -0
  92. diffusers/pipelines/audioldm2/modeling_audioldm2.py +3 -3
  93. diffusers/pipelines/aura_flow/pipeline_aura_flow.py +2 -9
  94. diffusers/pipelines/auto_pipeline.py +88 -10
  95. diffusers/pipelines/blip_diffusion/modeling_blip2.py +1 -1
  96. diffusers/pipelines/cogvideo/__init__.py +2 -0
  97. diffusers/pipelines/cogvideo/pipeline_cogvideox.py +80 -39
  98. diffusers/pipelines/cogvideo/pipeline_cogvideox_fun_control.py +825 -0
  99. diffusers/pipelines/cogvideo/pipeline_cogvideox_image2video.py +108 -50
  100. diffusers/pipelines/cogvideo/pipeline_cogvideox_video2video.py +89 -50
  101. diffusers/pipelines/cogview3/__init__.py +47 -0
  102. diffusers/pipelines/cogview3/pipeline_cogview3plus.py +674 -0
  103. diffusers/pipelines/cogview3/pipeline_output.py +21 -0
  104. diffusers/pipelines/controlnet/__init__.py +86 -80
  105. diffusers/pipelines/controlnet/multicontrolnet.py +7 -178
  106. diffusers/pipelines/controlnet/pipeline_controlnet.py +20 -3
  107. diffusers/pipelines/controlnet/pipeline_controlnet_img2img.py +9 -2
  108. diffusers/pipelines/controlnet/pipeline_controlnet_inpaint.py +9 -2
  109. diffusers/pipelines/controlnet/pipeline_controlnet_inpaint_sd_xl.py +37 -15
  110. diffusers/pipelines/controlnet/pipeline_controlnet_sd_xl.py +12 -4
  111. diffusers/pipelines/controlnet/pipeline_controlnet_sd_xl_img2img.py +9 -4
  112. diffusers/pipelines/controlnet/pipeline_controlnet_union_inpaint_sd_xl.py +1790 -0
  113. diffusers/pipelines/controlnet/pipeline_controlnet_union_sd_xl.py +1501 -0
  114. diffusers/pipelines/controlnet/pipeline_controlnet_union_sd_xl_img2img.py +1627 -0
  115. diffusers/pipelines/controlnet_hunyuandit/pipeline_hunyuandit_controlnet.py +22 -4
  116. diffusers/pipelines/controlnet_sd3/__init__.py +4 -0
  117. diffusers/pipelines/controlnet_sd3/pipeline_stable_diffusion_3_controlnet.py +56 -20
  118. diffusers/pipelines/controlnet_sd3/pipeline_stable_diffusion_3_controlnet_inpainting.py +1153 -0
  119. diffusers/pipelines/ddpm/pipeline_ddpm.py +2 -2
  120. diffusers/pipelines/deepfloyd_if/pipeline_output.py +6 -5
  121. diffusers/pipelines/deprecated/alt_diffusion/pipeline_alt_diffusion.py +16 -4
  122. diffusers/pipelines/deprecated/alt_diffusion/pipeline_alt_diffusion_img2img.py +1 -1
  123. diffusers/pipelines/deprecated/versatile_diffusion/modeling_text_unet.py +32 -9
  124. diffusers/pipelines/flux/__init__.py +23 -1
  125. diffusers/pipelines/flux/modeling_flux.py +47 -0
  126. diffusers/pipelines/flux/pipeline_flux.py +256 -48
  127. diffusers/pipelines/flux/pipeline_flux_control.py +889 -0
  128. diffusers/pipelines/flux/pipeline_flux_control_img2img.py +945 -0
  129. diffusers/pipelines/flux/pipeline_flux_control_inpaint.py +1141 -0
  130. diffusers/pipelines/flux/pipeline_flux_controlnet.py +1006 -0
  131. diffusers/pipelines/flux/pipeline_flux_controlnet_image_to_image.py +998 -0
  132. diffusers/pipelines/flux/pipeline_flux_controlnet_inpainting.py +1204 -0
  133. diffusers/pipelines/flux/pipeline_flux_fill.py +969 -0
  134. diffusers/pipelines/flux/pipeline_flux_img2img.py +856 -0
  135. diffusers/pipelines/flux/pipeline_flux_inpaint.py +1022 -0
  136. diffusers/pipelines/flux/pipeline_flux_prior_redux.py +492 -0
  137. diffusers/pipelines/flux/pipeline_output.py +16 -0
  138. diffusers/pipelines/free_noise_utils.py +365 -5
  139. diffusers/pipelines/hunyuan_video/__init__.py +48 -0
  140. diffusers/pipelines/hunyuan_video/pipeline_hunyuan_video.py +687 -0
  141. diffusers/pipelines/hunyuan_video/pipeline_output.py +20 -0
  142. diffusers/pipelines/hunyuandit/pipeline_hunyuandit.py +20 -4
  143. diffusers/pipelines/kandinsky/pipeline_kandinsky_combined.py +9 -9
  144. diffusers/pipelines/kandinsky2_2/pipeline_kandinsky2_2_combined.py +2 -2
  145. diffusers/pipelines/kolors/pipeline_kolors.py +1 -1
  146. diffusers/pipelines/kolors/pipeline_kolors_img2img.py +14 -11
  147. diffusers/pipelines/kolors/text_encoder.py +2 -2
  148. diffusers/pipelines/kolors/tokenizer.py +4 -0
  149. diffusers/pipelines/latent_consistency_models/pipeline_latent_consistency_img2img.py +1 -1
  150. diffusers/pipelines/latent_consistency_models/pipeline_latent_consistency_text2img.py +1 -1
  151. diffusers/pipelines/latent_diffusion/pipeline_latent_diffusion.py +1 -1
  152. diffusers/pipelines/latte/pipeline_latte.py +2 -2
  153. diffusers/pipelines/ledits_pp/pipeline_leditspp_stable_diffusion.py +15 -3
  154. diffusers/pipelines/ledits_pp/pipeline_leditspp_stable_diffusion_xl.py +15 -3
  155. diffusers/pipelines/ltx/__init__.py +50 -0
  156. diffusers/pipelines/ltx/pipeline_ltx.py +789 -0
  157. diffusers/pipelines/ltx/pipeline_ltx_image2video.py +885 -0
  158. diffusers/pipelines/ltx/pipeline_output.py +20 -0
  159. diffusers/pipelines/lumina/pipeline_lumina.py +3 -10
  160. diffusers/pipelines/mochi/__init__.py +48 -0
  161. diffusers/pipelines/mochi/pipeline_mochi.py +748 -0
  162. diffusers/pipelines/mochi/pipeline_output.py +20 -0
  163. diffusers/pipelines/pag/__init__.py +13 -0
  164. diffusers/pipelines/pag/pag_utils.py +8 -2
  165. diffusers/pipelines/pag/pipeline_pag_controlnet_sd.py +2 -3
  166. diffusers/pipelines/pag/pipeline_pag_controlnet_sd_inpaint.py +1543 -0
  167. diffusers/pipelines/pag/pipeline_pag_controlnet_sd_xl.py +3 -5
  168. diffusers/pipelines/pag/pipeline_pag_controlnet_sd_xl_img2img.py +1683 -0
  169. diffusers/pipelines/pag/pipeline_pag_hunyuandit.py +22 -6
  170. diffusers/pipelines/pag/pipeline_pag_kolors.py +1 -1
  171. diffusers/pipelines/pag/pipeline_pag_pixart_sigma.py +7 -14
  172. diffusers/pipelines/pag/pipeline_pag_sana.py +886 -0
  173. diffusers/pipelines/pag/pipeline_pag_sd.py +18 -6
  174. diffusers/pipelines/pag/pipeline_pag_sd_3.py +18 -9
  175. diffusers/pipelines/pag/pipeline_pag_sd_3_img2img.py +1058 -0
  176. diffusers/pipelines/pag/pipeline_pag_sd_animatediff.py +5 -1
  177. diffusers/pipelines/pag/pipeline_pag_sd_img2img.py +1094 -0
  178. diffusers/pipelines/pag/pipeline_pag_sd_inpaint.py +1356 -0
  179. diffusers/pipelines/pag/pipeline_pag_sd_xl.py +18 -6
  180. diffusers/pipelines/pag/pipeline_pag_sd_xl_img2img.py +31 -16
  181. diffusers/pipelines/pag/pipeline_pag_sd_xl_inpaint.py +42 -19
  182. diffusers/pipelines/pia/pipeline_pia.py +2 -0
  183. diffusers/pipelines/pipeline_flax_utils.py +1 -1
  184. diffusers/pipelines/pipeline_loading_utils.py +250 -31
  185. diffusers/pipelines/pipeline_utils.py +158 -186
  186. diffusers/pipelines/pixart_alpha/pipeline_pixart_alpha.py +7 -14
  187. diffusers/pipelines/pixart_alpha/pipeline_pixart_sigma.py +7 -14
  188. diffusers/pipelines/sana/__init__.py +47 -0
  189. diffusers/pipelines/sana/pipeline_output.py +21 -0
  190. diffusers/pipelines/sana/pipeline_sana.py +884 -0
  191. diffusers/pipelines/stable_audio/pipeline_stable_audio.py +12 -1
  192. diffusers/pipelines/stable_cascade/pipeline_stable_cascade.py +35 -3
  193. diffusers/pipelines/stable_cascade/pipeline_stable_cascade_prior.py +2 -2
  194. diffusers/pipelines/stable_diffusion/pipeline_stable_diffusion.py +46 -9
  195. diffusers/pipelines/stable_diffusion/pipeline_stable_diffusion_img2img.py +1 -1
  196. diffusers/pipelines/stable_diffusion/pipeline_stable_diffusion_inpaint.py +1 -1
  197. diffusers/pipelines/stable_diffusion/pipeline_stable_diffusion_latent_upscale.py +241 -81
  198. diffusers/pipelines/stable_diffusion_3/pipeline_stable_diffusion_3.py +228 -23
  199. diffusers/pipelines/stable_diffusion_3/pipeline_stable_diffusion_3_img2img.py +82 -13
  200. diffusers/pipelines/stable_diffusion_3/pipeline_stable_diffusion_3_inpaint.py +60 -11
  201. diffusers/pipelines/stable_diffusion_gligen/pipeline_stable_diffusion_gligen_text_image.py +11 -1
  202. diffusers/pipelines/stable_diffusion_k_diffusion/pipeline_stable_diffusion_k_diffusion.py +1 -1
  203. diffusers/pipelines/stable_diffusion_ldm3d/pipeline_stable_diffusion_ldm3d.py +16 -4
  204. diffusers/pipelines/stable_diffusion_panorama/pipeline_stable_diffusion_panorama.py +16 -4
  205. diffusers/pipelines/stable_diffusion_xl/pipeline_stable_diffusion_xl.py +16 -12
  206. diffusers/pipelines/stable_diffusion_xl/pipeline_stable_diffusion_xl_img2img.py +29 -22
  207. diffusers/pipelines/stable_diffusion_xl/pipeline_stable_diffusion_xl_inpaint.py +29 -22
  208. diffusers/pipelines/stable_video_diffusion/pipeline_stable_video_diffusion.py +1 -1
  209. diffusers/pipelines/t2i_adapter/pipeline_stable_diffusion_adapter.py +1 -1
  210. diffusers/pipelines/t2i_adapter/pipeline_stable_diffusion_xl_adapter.py +16 -4
  211. diffusers/pipelines/text_to_video_synthesis/pipeline_text_to_video_zero_sdxl.py +15 -3
  212. diffusers/pipelines/unidiffuser/modeling_uvit.py +2 -2
  213. diffusers/pipelines/wuerstchen/modeling_wuerstchen_prior.py +1 -1
  214. diffusers/quantizers/__init__.py +16 -0
  215. diffusers/quantizers/auto.py +139 -0
  216. diffusers/quantizers/base.py +233 -0
  217. diffusers/quantizers/bitsandbytes/__init__.py +2 -0
  218. diffusers/quantizers/bitsandbytes/bnb_quantizer.py +561 -0
  219. diffusers/quantizers/bitsandbytes/utils.py +306 -0
  220. diffusers/quantizers/gguf/__init__.py +1 -0
  221. diffusers/quantizers/gguf/gguf_quantizer.py +159 -0
  222. diffusers/quantizers/gguf/utils.py +456 -0
  223. diffusers/quantizers/quantization_config.py +669 -0
  224. diffusers/quantizers/torchao/__init__.py +15 -0
  225. diffusers/quantizers/torchao/torchao_quantizer.py +285 -0
  226. diffusers/schedulers/scheduling_ddim.py +4 -1
  227. diffusers/schedulers/scheduling_ddim_cogvideox.py +4 -1
  228. diffusers/schedulers/scheduling_ddim_parallel.py +4 -1
  229. diffusers/schedulers/scheduling_ddpm.py +6 -7
  230. diffusers/schedulers/scheduling_ddpm_parallel.py +6 -7
  231. diffusers/schedulers/scheduling_deis_multistep.py +102 -6
  232. diffusers/schedulers/scheduling_dpmsolver_multistep.py +113 -6
  233. diffusers/schedulers/scheduling_dpmsolver_multistep_inverse.py +111 -5
  234. diffusers/schedulers/scheduling_dpmsolver_sde.py +125 -10
  235. diffusers/schedulers/scheduling_dpmsolver_singlestep.py +126 -7
  236. diffusers/schedulers/scheduling_edm_euler.py +8 -6
  237. diffusers/schedulers/scheduling_euler_ancestral_discrete.py +4 -1
  238. diffusers/schedulers/scheduling_euler_discrete.py +92 -7
  239. diffusers/schedulers/scheduling_flow_match_euler_discrete.py +153 -6
  240. diffusers/schedulers/scheduling_flow_match_heun_discrete.py +4 -5
  241. diffusers/schedulers/scheduling_heun_discrete.py +114 -8
  242. diffusers/schedulers/scheduling_k_dpm_2_ancestral_discrete.py +116 -11
  243. diffusers/schedulers/scheduling_k_dpm_2_discrete.py +110 -8
  244. diffusers/schedulers/scheduling_lcm.py +2 -6
  245. diffusers/schedulers/scheduling_lms_discrete.py +76 -1
  246. diffusers/schedulers/scheduling_repaint.py +1 -1
  247. diffusers/schedulers/scheduling_sasolver.py +102 -6
  248. diffusers/schedulers/scheduling_tcd.py +2 -6
  249. diffusers/schedulers/scheduling_unclip.py +4 -1
  250. diffusers/schedulers/scheduling_unipc_multistep.py +127 -5
  251. diffusers/training_utils.py +63 -19
  252. diffusers/utils/__init__.py +7 -1
  253. diffusers/utils/constants.py +1 -0
  254. diffusers/utils/dummy_pt_objects.py +240 -0
  255. diffusers/utils/dummy_torch_and_transformers_objects.py +435 -0
  256. diffusers/utils/dynamic_modules_utils.py +3 -3
  257. diffusers/utils/hub_utils.py +44 -40
  258. diffusers/utils/import_utils.py +98 -8
  259. diffusers/utils/loading_utils.py +28 -4
  260. diffusers/utils/peft_utils.py +6 -3
  261. diffusers/utils/testing_utils.py +115 -1
  262. diffusers/utils/torch_utils.py +3 -0
  263. {diffusers-0.30.3.dist-info → diffusers-0.32.0.dist-info}/METADATA +73 -72
  264. {diffusers-0.30.3.dist-info → diffusers-0.32.0.dist-info}/RECORD +268 -193
  265. {diffusers-0.30.3.dist-info → diffusers-0.32.0.dist-info}/WHEEL +1 -1
  266. {diffusers-0.30.3.dist-info → diffusers-0.32.0.dist-info}/LICENSE +0 -0
  267. {diffusers-0.30.3.dist-info → diffusers-0.32.0.dist-info}/entry_points.txt +0 -0
  268. {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.30.3"
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 `cutoff_step_ratio` or
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 = ["prompt_embeds", "add_text_embeds", "add_time_ids"]
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
 
@@ -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", False)
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