diffusers 0.32.1__py3-none-any.whl → 0.33.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 (389) hide show
  1. diffusers/__init__.py +186 -3
  2. diffusers/configuration_utils.py +40 -12
  3. diffusers/dependency_versions_table.py +9 -2
  4. diffusers/hooks/__init__.py +9 -0
  5. diffusers/hooks/faster_cache.py +653 -0
  6. diffusers/hooks/group_offloading.py +793 -0
  7. diffusers/hooks/hooks.py +236 -0
  8. diffusers/hooks/layerwise_casting.py +245 -0
  9. diffusers/hooks/pyramid_attention_broadcast.py +311 -0
  10. diffusers/loaders/__init__.py +6 -0
  11. diffusers/loaders/ip_adapter.py +38 -30
  12. diffusers/loaders/lora_base.py +198 -28
  13. diffusers/loaders/lora_conversion_utils.py +679 -44
  14. diffusers/loaders/lora_pipeline.py +1963 -801
  15. diffusers/loaders/peft.py +169 -84
  16. diffusers/loaders/single_file.py +17 -2
  17. diffusers/loaders/single_file_model.py +53 -5
  18. diffusers/loaders/single_file_utils.py +653 -75
  19. diffusers/loaders/textual_inversion.py +9 -9
  20. diffusers/loaders/transformer_flux.py +8 -9
  21. diffusers/loaders/transformer_sd3.py +120 -39
  22. diffusers/loaders/unet.py +22 -32
  23. diffusers/models/__init__.py +22 -0
  24. diffusers/models/activations.py +9 -9
  25. diffusers/models/attention.py +0 -1
  26. diffusers/models/attention_processor.py +163 -25
  27. diffusers/models/auto_model.py +169 -0
  28. diffusers/models/autoencoders/__init__.py +2 -0
  29. diffusers/models/autoencoders/autoencoder_asym_kl.py +2 -0
  30. diffusers/models/autoencoders/autoencoder_dc.py +106 -4
  31. diffusers/models/autoencoders/autoencoder_kl.py +0 -4
  32. diffusers/models/autoencoders/autoencoder_kl_allegro.py +5 -23
  33. diffusers/models/autoencoders/autoencoder_kl_cogvideox.py +17 -55
  34. diffusers/models/autoencoders/autoencoder_kl_hunyuan_video.py +17 -97
  35. diffusers/models/autoencoders/autoencoder_kl_ltx.py +326 -107
  36. diffusers/models/autoencoders/autoencoder_kl_magvit.py +1094 -0
  37. diffusers/models/autoencoders/autoencoder_kl_mochi.py +21 -56
  38. diffusers/models/autoencoders/autoencoder_kl_temporal_decoder.py +11 -42
  39. diffusers/models/autoencoders/autoencoder_kl_wan.py +855 -0
  40. diffusers/models/autoencoders/autoencoder_oobleck.py +1 -0
  41. diffusers/models/autoencoders/autoencoder_tiny.py +0 -4
  42. diffusers/models/autoencoders/consistency_decoder_vae.py +3 -1
  43. diffusers/models/autoencoders/vae.py +31 -141
  44. diffusers/models/autoencoders/vq_model.py +3 -0
  45. diffusers/models/cache_utils.py +108 -0
  46. diffusers/models/controlnets/__init__.py +1 -0
  47. diffusers/models/controlnets/controlnet.py +3 -8
  48. diffusers/models/controlnets/controlnet_flux.py +14 -42
  49. diffusers/models/controlnets/controlnet_sd3.py +58 -34
  50. diffusers/models/controlnets/controlnet_sparsectrl.py +4 -7
  51. diffusers/models/controlnets/controlnet_union.py +27 -18
  52. diffusers/models/controlnets/controlnet_xs.py +7 -46
  53. diffusers/models/controlnets/multicontrolnet_union.py +196 -0
  54. diffusers/models/embeddings.py +18 -7
  55. diffusers/models/model_loading_utils.py +122 -80
  56. diffusers/models/modeling_flax_pytorch_utils.py +1 -1
  57. diffusers/models/modeling_flax_utils.py +1 -1
  58. diffusers/models/modeling_pytorch_flax_utils.py +1 -1
  59. diffusers/models/modeling_utils.py +617 -272
  60. diffusers/models/normalization.py +67 -14
  61. diffusers/models/resnet.py +1 -1
  62. diffusers/models/transformers/__init__.py +6 -0
  63. diffusers/models/transformers/auraflow_transformer_2d.py +9 -35
  64. diffusers/models/transformers/cogvideox_transformer_3d.py +13 -24
  65. diffusers/models/transformers/consisid_transformer_3d.py +789 -0
  66. diffusers/models/transformers/dit_transformer_2d.py +5 -19
  67. diffusers/models/transformers/hunyuan_transformer_2d.py +4 -3
  68. diffusers/models/transformers/latte_transformer_3d.py +20 -15
  69. diffusers/models/transformers/lumina_nextdit2d.py +3 -1
  70. diffusers/models/transformers/pixart_transformer_2d.py +4 -19
  71. diffusers/models/transformers/prior_transformer.py +5 -1
  72. diffusers/models/transformers/sana_transformer.py +144 -40
  73. diffusers/models/transformers/stable_audio_transformer.py +5 -20
  74. diffusers/models/transformers/transformer_2d.py +7 -22
  75. diffusers/models/transformers/transformer_allegro.py +9 -17
  76. diffusers/models/transformers/transformer_cogview3plus.py +6 -17
  77. diffusers/models/transformers/transformer_cogview4.py +462 -0
  78. diffusers/models/transformers/transformer_easyanimate.py +527 -0
  79. diffusers/models/transformers/transformer_flux.py +68 -110
  80. diffusers/models/transformers/transformer_hunyuan_video.py +409 -49
  81. diffusers/models/transformers/transformer_ltx.py +53 -35
  82. diffusers/models/transformers/transformer_lumina2.py +548 -0
  83. diffusers/models/transformers/transformer_mochi.py +6 -17
  84. diffusers/models/transformers/transformer_omnigen.py +469 -0
  85. diffusers/models/transformers/transformer_sd3.py +56 -86
  86. diffusers/models/transformers/transformer_temporal.py +5 -11
  87. diffusers/models/transformers/transformer_wan.py +469 -0
  88. diffusers/models/unets/unet_1d.py +3 -1
  89. diffusers/models/unets/unet_2d.py +21 -20
  90. diffusers/models/unets/unet_2d_blocks.py +19 -243
  91. diffusers/models/unets/unet_2d_condition.py +4 -6
  92. diffusers/models/unets/unet_3d_blocks.py +14 -127
  93. diffusers/models/unets/unet_3d_condition.py +8 -12
  94. diffusers/models/unets/unet_i2vgen_xl.py +5 -13
  95. diffusers/models/unets/unet_kandinsky3.py +0 -4
  96. diffusers/models/unets/unet_motion_model.py +20 -114
  97. diffusers/models/unets/unet_spatio_temporal_condition.py +7 -8
  98. diffusers/models/unets/unet_stable_cascade.py +8 -35
  99. diffusers/models/unets/uvit_2d.py +1 -4
  100. diffusers/optimization.py +2 -2
  101. diffusers/pipelines/__init__.py +57 -8
  102. diffusers/pipelines/allegro/pipeline_allegro.py +22 -2
  103. diffusers/pipelines/amused/pipeline_amused.py +15 -2
  104. diffusers/pipelines/amused/pipeline_amused_img2img.py +15 -2
  105. diffusers/pipelines/amused/pipeline_amused_inpaint.py +15 -2
  106. diffusers/pipelines/animatediff/pipeline_animatediff.py +15 -2
  107. diffusers/pipelines/animatediff/pipeline_animatediff_controlnet.py +15 -3
  108. diffusers/pipelines/animatediff/pipeline_animatediff_sdxl.py +24 -4
  109. diffusers/pipelines/animatediff/pipeline_animatediff_sparsectrl.py +15 -2
  110. diffusers/pipelines/animatediff/pipeline_animatediff_video2video.py +16 -4
  111. diffusers/pipelines/animatediff/pipeline_animatediff_video2video_controlnet.py +16 -4
  112. diffusers/pipelines/audioldm/pipeline_audioldm.py +13 -2
  113. diffusers/pipelines/audioldm2/modeling_audioldm2.py +13 -68
  114. diffusers/pipelines/audioldm2/pipeline_audioldm2.py +39 -9
  115. diffusers/pipelines/aura_flow/pipeline_aura_flow.py +63 -7
  116. diffusers/pipelines/auto_pipeline.py +35 -14
  117. diffusers/pipelines/blip_diffusion/blip_image_processing.py +1 -1
  118. diffusers/pipelines/blip_diffusion/modeling_blip2.py +5 -8
  119. diffusers/pipelines/blip_diffusion/pipeline_blip_diffusion.py +12 -0
  120. diffusers/pipelines/cogvideo/pipeline_cogvideox.py +22 -6
  121. diffusers/pipelines/cogvideo/pipeline_cogvideox_fun_control.py +22 -6
  122. diffusers/pipelines/cogvideo/pipeline_cogvideox_image2video.py +22 -5
  123. diffusers/pipelines/cogvideo/pipeline_cogvideox_video2video.py +22 -6
  124. diffusers/pipelines/cogview3/pipeline_cogview3plus.py +12 -4
  125. diffusers/pipelines/cogview4/__init__.py +49 -0
  126. diffusers/pipelines/cogview4/pipeline_cogview4.py +684 -0
  127. diffusers/pipelines/cogview4/pipeline_cogview4_control.py +732 -0
  128. diffusers/pipelines/cogview4/pipeline_output.py +21 -0
  129. diffusers/pipelines/consisid/__init__.py +49 -0
  130. diffusers/pipelines/consisid/consisid_utils.py +357 -0
  131. diffusers/pipelines/consisid/pipeline_consisid.py +974 -0
  132. diffusers/pipelines/consisid/pipeline_output.py +20 -0
  133. diffusers/pipelines/consistency_models/pipeline_consistency_models.py +11 -0
  134. diffusers/pipelines/controlnet/pipeline_controlnet.py +6 -5
  135. diffusers/pipelines/controlnet/pipeline_controlnet_blip_diffusion.py +13 -0
  136. diffusers/pipelines/controlnet/pipeline_controlnet_img2img.py +17 -5
  137. diffusers/pipelines/controlnet/pipeline_controlnet_inpaint.py +31 -12
  138. diffusers/pipelines/controlnet/pipeline_controlnet_inpaint_sd_xl.py +26 -7
  139. diffusers/pipelines/controlnet/pipeline_controlnet_sd_xl.py +20 -3
  140. diffusers/pipelines/controlnet/pipeline_controlnet_sd_xl_img2img.py +22 -3
  141. diffusers/pipelines/controlnet/pipeline_controlnet_union_inpaint_sd_xl.py +26 -25
  142. diffusers/pipelines/controlnet/pipeline_controlnet_union_sd_xl.py +224 -109
  143. diffusers/pipelines/controlnet/pipeline_controlnet_union_sd_xl_img2img.py +25 -29
  144. diffusers/pipelines/controlnet/pipeline_flax_controlnet.py +7 -4
  145. diffusers/pipelines/controlnet_hunyuandit/pipeline_hunyuandit_controlnet.py +3 -5
  146. diffusers/pipelines/controlnet_sd3/pipeline_stable_diffusion_3_controlnet.py +121 -10
  147. diffusers/pipelines/controlnet_sd3/pipeline_stable_diffusion_3_controlnet_inpainting.py +122 -11
  148. diffusers/pipelines/controlnet_xs/pipeline_controlnet_xs.py +12 -1
  149. diffusers/pipelines/controlnet_xs/pipeline_controlnet_xs_sd_xl.py +20 -3
  150. diffusers/pipelines/dance_diffusion/pipeline_dance_diffusion.py +14 -2
  151. diffusers/pipelines/ddim/pipeline_ddim.py +14 -1
  152. diffusers/pipelines/ddpm/pipeline_ddpm.py +15 -1
  153. diffusers/pipelines/deepfloyd_if/pipeline_if.py +12 -0
  154. diffusers/pipelines/deepfloyd_if/pipeline_if_img2img.py +12 -0
  155. diffusers/pipelines/deepfloyd_if/pipeline_if_img2img_superresolution.py +14 -1
  156. diffusers/pipelines/deepfloyd_if/pipeline_if_inpainting.py +12 -0
  157. diffusers/pipelines/deepfloyd_if/pipeline_if_inpainting_superresolution.py +14 -1
  158. diffusers/pipelines/deepfloyd_if/pipeline_if_superresolution.py +14 -1
  159. diffusers/pipelines/deprecated/alt_diffusion/pipeline_alt_diffusion.py +11 -7
  160. diffusers/pipelines/deprecated/alt_diffusion/pipeline_alt_diffusion_img2img.py +11 -7
  161. diffusers/pipelines/deprecated/repaint/pipeline_repaint.py +1 -1
  162. diffusers/pipelines/deprecated/stable_diffusion_variants/pipeline_cycle_diffusion.py +10 -6
  163. diffusers/pipelines/deprecated/stable_diffusion_variants/pipeline_onnx_stable_diffusion_inpaint_legacy.py +2 -2
  164. diffusers/pipelines/deprecated/stable_diffusion_variants/pipeline_stable_diffusion_inpaint_legacy.py +11 -7
  165. diffusers/pipelines/deprecated/stable_diffusion_variants/pipeline_stable_diffusion_model_editing.py +1 -1
  166. diffusers/pipelines/deprecated/stable_diffusion_variants/pipeline_stable_diffusion_paradigms.py +1 -1
  167. diffusers/pipelines/deprecated/stable_diffusion_variants/pipeline_stable_diffusion_pix2pix_zero.py +1 -1
  168. diffusers/pipelines/deprecated/versatile_diffusion/modeling_text_unet.py +10 -105
  169. diffusers/pipelines/deprecated/versatile_diffusion/pipeline_versatile_diffusion.py +1 -1
  170. diffusers/pipelines/deprecated/versatile_diffusion/pipeline_versatile_diffusion_dual_guided.py +1 -1
  171. diffusers/pipelines/deprecated/versatile_diffusion/pipeline_versatile_diffusion_image_variation.py +1 -1
  172. diffusers/pipelines/deprecated/versatile_diffusion/pipeline_versatile_diffusion_text_to_image.py +1 -1
  173. diffusers/pipelines/dit/pipeline_dit.py +15 -2
  174. diffusers/pipelines/easyanimate/__init__.py +52 -0
  175. diffusers/pipelines/easyanimate/pipeline_easyanimate.py +770 -0
  176. diffusers/pipelines/easyanimate/pipeline_easyanimate_control.py +994 -0
  177. diffusers/pipelines/easyanimate/pipeline_easyanimate_inpaint.py +1234 -0
  178. diffusers/pipelines/easyanimate/pipeline_output.py +20 -0
  179. diffusers/pipelines/flux/pipeline_flux.py +53 -21
  180. diffusers/pipelines/flux/pipeline_flux_control.py +9 -12
  181. diffusers/pipelines/flux/pipeline_flux_control_img2img.py +6 -10
  182. diffusers/pipelines/flux/pipeline_flux_control_inpaint.py +8 -10
  183. diffusers/pipelines/flux/pipeline_flux_controlnet.py +185 -13
  184. diffusers/pipelines/flux/pipeline_flux_controlnet_image_to_image.py +8 -10
  185. diffusers/pipelines/flux/pipeline_flux_controlnet_inpainting.py +16 -16
  186. diffusers/pipelines/flux/pipeline_flux_fill.py +107 -39
  187. diffusers/pipelines/flux/pipeline_flux_img2img.py +193 -15
  188. diffusers/pipelines/flux/pipeline_flux_inpaint.py +199 -19
  189. diffusers/pipelines/free_noise_utils.py +3 -3
  190. diffusers/pipelines/hunyuan_video/__init__.py +4 -0
  191. diffusers/pipelines/hunyuan_video/pipeline_hunyuan_skyreels_image2video.py +804 -0
  192. diffusers/pipelines/hunyuan_video/pipeline_hunyuan_video.py +90 -23
  193. diffusers/pipelines/hunyuan_video/pipeline_hunyuan_video_image2video.py +924 -0
  194. diffusers/pipelines/hunyuandit/pipeline_hunyuandit.py +3 -5
  195. diffusers/pipelines/i2vgen_xl/pipeline_i2vgen_xl.py +13 -1
  196. diffusers/pipelines/kandinsky/pipeline_kandinsky.py +12 -0
  197. diffusers/pipelines/kandinsky/pipeline_kandinsky_combined.py +1 -1
  198. diffusers/pipelines/kandinsky/pipeline_kandinsky_img2img.py +12 -0
  199. diffusers/pipelines/kandinsky/pipeline_kandinsky_inpaint.py +13 -1
  200. diffusers/pipelines/kandinsky/pipeline_kandinsky_prior.py +12 -0
  201. diffusers/pipelines/kandinsky2_2/pipeline_kandinsky2_2.py +12 -1
  202. diffusers/pipelines/kandinsky2_2/pipeline_kandinsky2_2_controlnet.py +13 -0
  203. diffusers/pipelines/kandinsky2_2/pipeline_kandinsky2_2_controlnet_img2img.py +12 -0
  204. diffusers/pipelines/kandinsky2_2/pipeline_kandinsky2_2_img2img.py +12 -1
  205. diffusers/pipelines/kandinsky2_2/pipeline_kandinsky2_2_inpainting.py +12 -1
  206. diffusers/pipelines/kandinsky2_2/pipeline_kandinsky2_2_prior.py +12 -0
  207. diffusers/pipelines/kandinsky2_2/pipeline_kandinsky2_2_prior_emb2emb.py +12 -0
  208. diffusers/pipelines/kandinsky3/pipeline_kandinsky3.py +12 -0
  209. diffusers/pipelines/kandinsky3/pipeline_kandinsky3_img2img.py +12 -0
  210. diffusers/pipelines/kolors/pipeline_kolors.py +10 -8
  211. diffusers/pipelines/kolors/pipeline_kolors_img2img.py +6 -4
  212. diffusers/pipelines/kolors/text_encoder.py +7 -34
  213. diffusers/pipelines/latent_consistency_models/pipeline_latent_consistency_img2img.py +12 -1
  214. diffusers/pipelines/latent_consistency_models/pipeline_latent_consistency_text2img.py +13 -1
  215. diffusers/pipelines/latent_diffusion/pipeline_latent_diffusion.py +14 -13
  216. diffusers/pipelines/latent_diffusion/pipeline_latent_diffusion_superresolution.py +12 -1
  217. diffusers/pipelines/latte/pipeline_latte.py +36 -7
  218. diffusers/pipelines/ledits_pp/pipeline_leditspp_stable_diffusion.py +67 -13
  219. diffusers/pipelines/ledits_pp/pipeline_leditspp_stable_diffusion_xl.py +60 -15
  220. diffusers/pipelines/ltx/__init__.py +2 -0
  221. diffusers/pipelines/ltx/pipeline_ltx.py +25 -13
  222. diffusers/pipelines/ltx/pipeline_ltx_condition.py +1194 -0
  223. diffusers/pipelines/ltx/pipeline_ltx_image2video.py +31 -17
  224. diffusers/pipelines/lumina/__init__.py +2 -2
  225. diffusers/pipelines/lumina/pipeline_lumina.py +83 -20
  226. diffusers/pipelines/lumina2/__init__.py +48 -0
  227. diffusers/pipelines/lumina2/pipeline_lumina2.py +790 -0
  228. diffusers/pipelines/marigold/__init__.py +2 -0
  229. diffusers/pipelines/marigold/marigold_image_processing.py +127 -14
  230. diffusers/pipelines/marigold/pipeline_marigold_depth.py +31 -16
  231. diffusers/pipelines/marigold/pipeline_marigold_intrinsics.py +721 -0
  232. diffusers/pipelines/marigold/pipeline_marigold_normals.py +31 -16
  233. diffusers/pipelines/mochi/pipeline_mochi.py +14 -18
  234. diffusers/pipelines/musicldm/pipeline_musicldm.py +16 -1
  235. diffusers/pipelines/omnigen/__init__.py +50 -0
  236. diffusers/pipelines/omnigen/pipeline_omnigen.py +512 -0
  237. diffusers/pipelines/omnigen/processor_omnigen.py +327 -0
  238. diffusers/pipelines/onnx_utils.py +5 -3
  239. diffusers/pipelines/pag/pag_utils.py +1 -1
  240. diffusers/pipelines/pag/pipeline_pag_controlnet_sd.py +12 -1
  241. diffusers/pipelines/pag/pipeline_pag_controlnet_sd_inpaint.py +15 -4
  242. diffusers/pipelines/pag/pipeline_pag_controlnet_sd_xl.py +20 -3
  243. diffusers/pipelines/pag/pipeline_pag_controlnet_sd_xl_img2img.py +20 -3
  244. diffusers/pipelines/pag/pipeline_pag_hunyuandit.py +1 -3
  245. diffusers/pipelines/pag/pipeline_pag_kolors.py +6 -4
  246. diffusers/pipelines/pag/pipeline_pag_pixart_sigma.py +16 -3
  247. diffusers/pipelines/pag/pipeline_pag_sana.py +65 -8
  248. diffusers/pipelines/pag/pipeline_pag_sd.py +23 -7
  249. diffusers/pipelines/pag/pipeline_pag_sd_3.py +3 -5
  250. diffusers/pipelines/pag/pipeline_pag_sd_3_img2img.py +3 -5
  251. diffusers/pipelines/pag/pipeline_pag_sd_animatediff.py +13 -1
  252. diffusers/pipelines/pag/pipeline_pag_sd_img2img.py +23 -7
  253. diffusers/pipelines/pag/pipeline_pag_sd_inpaint.py +26 -10
  254. diffusers/pipelines/pag/pipeline_pag_sd_xl.py +12 -4
  255. diffusers/pipelines/pag/pipeline_pag_sd_xl_img2img.py +7 -3
  256. diffusers/pipelines/pag/pipeline_pag_sd_xl_inpaint.py +10 -6
  257. diffusers/pipelines/paint_by_example/pipeline_paint_by_example.py +13 -3
  258. diffusers/pipelines/pia/pipeline_pia.py +13 -1
  259. diffusers/pipelines/pipeline_flax_utils.py +7 -7
  260. diffusers/pipelines/pipeline_loading_utils.py +193 -83
  261. diffusers/pipelines/pipeline_utils.py +221 -106
  262. diffusers/pipelines/pixart_alpha/pipeline_pixart_alpha.py +17 -5
  263. diffusers/pipelines/pixart_alpha/pipeline_pixart_sigma.py +17 -4
  264. diffusers/pipelines/sana/__init__.py +2 -0
  265. diffusers/pipelines/sana/pipeline_sana.py +183 -58
  266. diffusers/pipelines/sana/pipeline_sana_sprint.py +889 -0
  267. diffusers/pipelines/semantic_stable_diffusion/pipeline_semantic_stable_diffusion.py +12 -2
  268. diffusers/pipelines/shap_e/pipeline_shap_e.py +12 -0
  269. diffusers/pipelines/shap_e/pipeline_shap_e_img2img.py +12 -0
  270. diffusers/pipelines/shap_e/renderer.py +6 -6
  271. diffusers/pipelines/stable_audio/pipeline_stable_audio.py +1 -1
  272. diffusers/pipelines/stable_cascade/pipeline_stable_cascade.py +15 -4
  273. diffusers/pipelines/stable_cascade/pipeline_stable_cascade_combined.py +12 -8
  274. diffusers/pipelines/stable_cascade/pipeline_stable_cascade_prior.py +12 -1
  275. diffusers/pipelines/stable_diffusion/convert_from_ckpt.py +3 -2
  276. diffusers/pipelines/stable_diffusion/pipeline_flax_stable_diffusion.py +14 -10
  277. diffusers/pipelines/stable_diffusion/pipeline_flax_stable_diffusion_img2img.py +3 -3
  278. diffusers/pipelines/stable_diffusion/pipeline_flax_stable_diffusion_inpaint.py +14 -10
  279. diffusers/pipelines/stable_diffusion/pipeline_onnx_stable_diffusion.py +2 -2
  280. diffusers/pipelines/stable_diffusion/pipeline_onnx_stable_diffusion_img2img.py +4 -3
  281. diffusers/pipelines/stable_diffusion/pipeline_onnx_stable_diffusion_inpaint.py +5 -4
  282. diffusers/pipelines/stable_diffusion/pipeline_onnx_stable_diffusion_upscale.py +2 -2
  283. diffusers/pipelines/stable_diffusion/pipeline_stable_diffusion.py +18 -13
  284. diffusers/pipelines/stable_diffusion/pipeline_stable_diffusion_depth2img.py +30 -8
  285. diffusers/pipelines/stable_diffusion/pipeline_stable_diffusion_image_variation.py +24 -10
  286. diffusers/pipelines/stable_diffusion/pipeline_stable_diffusion_img2img.py +28 -12
  287. diffusers/pipelines/stable_diffusion/pipeline_stable_diffusion_inpaint.py +39 -18
  288. diffusers/pipelines/stable_diffusion/pipeline_stable_diffusion_instruct_pix2pix.py +17 -6
  289. diffusers/pipelines/stable_diffusion/pipeline_stable_diffusion_latent_upscale.py +13 -3
  290. diffusers/pipelines/stable_diffusion/pipeline_stable_diffusion_upscale.py +20 -3
  291. diffusers/pipelines/stable_diffusion/pipeline_stable_unclip.py +14 -2
  292. diffusers/pipelines/stable_diffusion/pipeline_stable_unclip_img2img.py +13 -1
  293. diffusers/pipelines/stable_diffusion_3/pipeline_stable_diffusion_3.py +16 -17
  294. diffusers/pipelines/stable_diffusion_3/pipeline_stable_diffusion_3_img2img.py +136 -18
  295. diffusers/pipelines/stable_diffusion_3/pipeline_stable_diffusion_3_inpaint.py +150 -21
  296. diffusers/pipelines/stable_diffusion_attend_and_excite/pipeline_stable_diffusion_attend_and_excite.py +15 -3
  297. diffusers/pipelines/stable_diffusion_diffedit/pipeline_stable_diffusion_diffedit.py +26 -11
  298. diffusers/pipelines/stable_diffusion_gligen/pipeline_stable_diffusion_gligen.py +15 -3
  299. diffusers/pipelines/stable_diffusion_gligen/pipeline_stable_diffusion_gligen_text_image.py +22 -4
  300. diffusers/pipelines/stable_diffusion_k_diffusion/pipeline_stable_diffusion_k_diffusion.py +30 -13
  301. diffusers/pipelines/stable_diffusion_k_diffusion/pipeline_stable_diffusion_xl_k_diffusion.py +12 -4
  302. diffusers/pipelines/stable_diffusion_ldm3d/pipeline_stable_diffusion_ldm3d.py +15 -3
  303. diffusers/pipelines/stable_diffusion_panorama/pipeline_stable_diffusion_panorama.py +15 -3
  304. diffusers/pipelines/stable_diffusion_safe/pipeline_stable_diffusion_safe.py +26 -12
  305. diffusers/pipelines/stable_diffusion_sag/pipeline_stable_diffusion_sag.py +16 -4
  306. diffusers/pipelines/stable_diffusion_xl/pipeline_flax_stable_diffusion_xl.py +1 -1
  307. diffusers/pipelines/stable_diffusion_xl/pipeline_stable_diffusion_xl.py +12 -4
  308. diffusers/pipelines/stable_diffusion_xl/pipeline_stable_diffusion_xl_img2img.py +7 -3
  309. diffusers/pipelines/stable_diffusion_xl/pipeline_stable_diffusion_xl_inpaint.py +10 -6
  310. diffusers/pipelines/stable_diffusion_xl/pipeline_stable_diffusion_xl_instruct_pix2pix.py +11 -4
  311. diffusers/pipelines/stable_video_diffusion/pipeline_stable_video_diffusion.py +13 -2
  312. diffusers/pipelines/t2i_adapter/pipeline_stable_diffusion_adapter.py +18 -4
  313. diffusers/pipelines/t2i_adapter/pipeline_stable_diffusion_xl_adapter.py +26 -5
  314. diffusers/pipelines/text_to_video_synthesis/pipeline_text_to_video_synth.py +13 -1
  315. diffusers/pipelines/text_to_video_synthesis/pipeline_text_to_video_synth_img2img.py +13 -1
  316. diffusers/pipelines/text_to_video_synthesis/pipeline_text_to_video_zero.py +28 -6
  317. diffusers/pipelines/text_to_video_synthesis/pipeline_text_to_video_zero_sdxl.py +26 -4
  318. diffusers/pipelines/transformers_loading_utils.py +121 -0
  319. diffusers/pipelines/unclip/pipeline_unclip.py +11 -1
  320. diffusers/pipelines/unclip/pipeline_unclip_image_variation.py +11 -1
  321. diffusers/pipelines/unidiffuser/pipeline_unidiffuser.py +19 -2
  322. diffusers/pipelines/wan/__init__.py +51 -0
  323. diffusers/pipelines/wan/pipeline_output.py +20 -0
  324. diffusers/pipelines/wan/pipeline_wan.py +593 -0
  325. diffusers/pipelines/wan/pipeline_wan_i2v.py +722 -0
  326. diffusers/pipelines/wan/pipeline_wan_video2video.py +725 -0
  327. diffusers/pipelines/wuerstchen/modeling_wuerstchen_prior.py +7 -31
  328. diffusers/pipelines/wuerstchen/pipeline_wuerstchen.py +12 -1
  329. diffusers/pipelines/wuerstchen/pipeline_wuerstchen_prior.py +12 -1
  330. diffusers/quantizers/auto.py +5 -1
  331. diffusers/quantizers/base.py +5 -9
  332. diffusers/quantizers/bitsandbytes/bnb_quantizer.py +41 -29
  333. diffusers/quantizers/bitsandbytes/utils.py +30 -20
  334. diffusers/quantizers/gguf/gguf_quantizer.py +1 -0
  335. diffusers/quantizers/gguf/utils.py +4 -2
  336. diffusers/quantizers/quantization_config.py +59 -4
  337. diffusers/quantizers/quanto/__init__.py +1 -0
  338. diffusers/quantizers/quanto/quanto_quantizer.py +177 -0
  339. diffusers/quantizers/quanto/utils.py +60 -0
  340. diffusers/quantizers/torchao/__init__.py +1 -1
  341. diffusers/quantizers/torchao/torchao_quantizer.py +47 -2
  342. diffusers/schedulers/__init__.py +2 -1
  343. diffusers/schedulers/scheduling_consistency_models.py +1 -2
  344. diffusers/schedulers/scheduling_ddim_inverse.py +1 -1
  345. diffusers/schedulers/scheduling_ddpm.py +2 -3
  346. diffusers/schedulers/scheduling_ddpm_parallel.py +1 -2
  347. diffusers/schedulers/scheduling_dpmsolver_multistep.py +12 -4
  348. diffusers/schedulers/scheduling_edm_euler.py +45 -10
  349. diffusers/schedulers/scheduling_flow_match_euler_discrete.py +116 -28
  350. diffusers/schedulers/scheduling_flow_match_heun_discrete.py +7 -6
  351. diffusers/schedulers/scheduling_heun_discrete.py +1 -1
  352. diffusers/schedulers/scheduling_lcm.py +1 -2
  353. diffusers/schedulers/scheduling_lms_discrete.py +1 -1
  354. diffusers/schedulers/scheduling_repaint.py +5 -1
  355. diffusers/schedulers/scheduling_scm.py +265 -0
  356. diffusers/schedulers/scheduling_tcd.py +1 -2
  357. diffusers/schedulers/scheduling_utils.py +2 -1
  358. diffusers/training_utils.py +14 -7
  359. diffusers/utils/__init__.py +10 -2
  360. diffusers/utils/constants.py +13 -1
  361. diffusers/utils/deprecation_utils.py +1 -1
  362. diffusers/utils/dummy_bitsandbytes_objects.py +17 -0
  363. diffusers/utils/dummy_gguf_objects.py +17 -0
  364. diffusers/utils/dummy_optimum_quanto_objects.py +17 -0
  365. diffusers/utils/dummy_pt_objects.py +233 -0
  366. diffusers/utils/dummy_torch_and_transformers_and_opencv_objects.py +17 -0
  367. diffusers/utils/dummy_torch_and_transformers_objects.py +270 -0
  368. diffusers/utils/dummy_torchao_objects.py +17 -0
  369. diffusers/utils/dynamic_modules_utils.py +1 -1
  370. diffusers/utils/export_utils.py +28 -3
  371. diffusers/utils/hub_utils.py +52 -102
  372. diffusers/utils/import_utils.py +121 -221
  373. diffusers/utils/loading_utils.py +14 -1
  374. diffusers/utils/logging.py +1 -2
  375. diffusers/utils/peft_utils.py +6 -14
  376. diffusers/utils/remote_utils.py +425 -0
  377. diffusers/utils/source_code_parsing_utils.py +52 -0
  378. diffusers/utils/state_dict_utils.py +15 -1
  379. diffusers/utils/testing_utils.py +243 -13
  380. diffusers/utils/torch_utils.py +10 -0
  381. diffusers/utils/typing_utils.py +91 -0
  382. diffusers/video_processor.py +1 -1
  383. {diffusers-0.32.1.dist-info → diffusers-0.33.0.dist-info}/METADATA +76 -44
  384. diffusers-0.33.0.dist-info/RECORD +608 -0
  385. {diffusers-0.32.1.dist-info → diffusers-0.33.0.dist-info}/WHEEL +1 -1
  386. diffusers-0.32.1.dist-info/RECORD +0 -550
  387. {diffusers-0.32.1.dist-info → diffusers-0.33.0.dist-info}/LICENSE +0 -0
  388. {diffusers-0.32.1.dist-info → diffusers-0.33.0.dist-info}/entry_points.txt +0 -0
  389. {diffusers-0.32.1.dist-info → diffusers-0.33.0.dist-info}/top_level.txt +0 -0
diffusers/__init__.py CHANGED
@@ -1,4 +1,4 @@
1
- __version__ = "0.32.1"
1
+ __version__ = "0.33.0"
2
2
 
3
3
  from typing import TYPE_CHECKING
4
4
 
@@ -6,14 +6,20 @@ from .utils import (
6
6
  DIFFUSERS_SLOW_IMPORT,
7
7
  OptionalDependencyNotAvailable,
8
8
  _LazyModule,
9
+ is_accelerate_available,
10
+ is_bitsandbytes_available,
9
11
  is_flax_available,
12
+ is_gguf_available,
10
13
  is_k_diffusion_available,
11
14
  is_librosa_available,
12
15
  is_note_seq_available,
13
16
  is_onnx_available,
17
+ is_opencv_available,
18
+ is_optimum_quanto_available,
14
19
  is_scipy_available,
15
20
  is_sentencepiece_available,
16
21
  is_torch_available,
22
+ is_torchao_available,
17
23
  is_torchsde_available,
18
24
  is_transformers_available,
19
25
  )
@@ -28,10 +34,11 @@ from .utils import (
28
34
 
29
35
  _import_structure = {
30
36
  "configuration_utils": ["ConfigMixin"],
37
+ "hooks": [],
31
38
  "loaders": ["FromOriginalModelMixin"],
32
39
  "models": [],
33
40
  "pipelines": [],
34
- "quantizers.quantization_config": ["BitsAndBytesConfig", "GGUFQuantizationConfig", "TorchAoConfig"],
41
+ "quantizers.quantization_config": [],
35
42
  "schedulers": [],
36
43
  "utils": [
37
44
  "OptionalDependencyNotAvailable",
@@ -53,6 +60,54 @@ _import_structure = {
53
60
  ],
54
61
  }
55
62
 
63
+ try:
64
+ if not is_torch_available() and not is_accelerate_available() and not is_bitsandbytes_available():
65
+ raise OptionalDependencyNotAvailable()
66
+ except OptionalDependencyNotAvailable:
67
+ from .utils import dummy_bitsandbytes_objects
68
+
69
+ _import_structure["utils.dummy_bitsandbytes_objects"] = [
70
+ name for name in dir(dummy_bitsandbytes_objects) if not name.startswith("_")
71
+ ]
72
+ else:
73
+ _import_structure["quantizers.quantization_config"].append("BitsAndBytesConfig")
74
+
75
+ try:
76
+ if not is_torch_available() and not is_accelerate_available() and not is_gguf_available():
77
+ raise OptionalDependencyNotAvailable()
78
+ except OptionalDependencyNotAvailable:
79
+ from .utils import dummy_gguf_objects
80
+
81
+ _import_structure["utils.dummy_gguf_objects"] = [
82
+ name for name in dir(dummy_gguf_objects) if not name.startswith("_")
83
+ ]
84
+ else:
85
+ _import_structure["quantizers.quantization_config"].append("GGUFQuantizationConfig")
86
+
87
+ try:
88
+ if not is_torch_available() and not is_accelerate_available() and not is_torchao_available():
89
+ raise OptionalDependencyNotAvailable()
90
+ except OptionalDependencyNotAvailable:
91
+ from .utils import dummy_torchao_objects
92
+
93
+ _import_structure["utils.dummy_torchao_objects"] = [
94
+ name for name in dir(dummy_torchao_objects) if not name.startswith("_")
95
+ ]
96
+ else:
97
+ _import_structure["quantizers.quantization_config"].append("TorchAoConfig")
98
+
99
+ try:
100
+ if not is_torch_available() and not is_accelerate_available() and not is_optimum_quanto_available():
101
+ raise OptionalDependencyNotAvailable()
102
+ except OptionalDependencyNotAvailable:
103
+ from .utils import dummy_optimum_quanto_objects
104
+
105
+ _import_structure["utils.dummy_optimum_quanto_objects"] = [
106
+ name for name in dir(dummy_optimum_quanto_objects) if not name.startswith("_")
107
+ ]
108
+ else:
109
+ _import_structure["quantizers.quantization_config"].append("QuantoConfig")
110
+
56
111
  try:
57
112
  if not is_onnx_available():
58
113
  raise OptionalDependencyNotAvailable()
@@ -75,6 +130,15 @@ except OptionalDependencyNotAvailable:
75
130
  _import_structure["utils.dummy_pt_objects"] = [name for name in dir(dummy_pt_objects) if not name.startswith("_")]
76
131
 
77
132
  else:
133
+ _import_structure["hooks"].extend(
134
+ [
135
+ "FasterCacheConfig",
136
+ "HookRegistry",
137
+ "PyramidAttentionBroadcastConfig",
138
+ "apply_faster_cache",
139
+ "apply_pyramid_attention_broadcast",
140
+ ]
141
+ )
78
142
  _import_structure["models"].extend(
79
143
  [
80
144
  "AllegroTransformer3DModel",
@@ -86,17 +150,24 @@ else:
86
150
  "AutoencoderKLCogVideoX",
87
151
  "AutoencoderKLHunyuanVideo",
88
152
  "AutoencoderKLLTXVideo",
153
+ "AutoencoderKLMagvit",
89
154
  "AutoencoderKLMochi",
90
155
  "AutoencoderKLTemporalDecoder",
156
+ "AutoencoderKLWan",
91
157
  "AutoencoderOobleck",
92
158
  "AutoencoderTiny",
159
+ "AutoModel",
160
+ "CacheMixin",
93
161
  "CogVideoXTransformer3DModel",
94
162
  "CogView3PlusTransformer2DModel",
163
+ "CogView4Transformer2DModel",
164
+ "ConsisIDTransformer3DModel",
95
165
  "ConsistencyDecoderVAE",
96
166
  "ControlNetModel",
97
167
  "ControlNetUnionModel",
98
168
  "ControlNetXSAdapter",
99
169
  "DiTTransformer2DModel",
170
+ "EasyAnimateTransformer3DModel",
100
171
  "FluxControlNetModel",
101
172
  "FluxMultiControlNetModel",
102
173
  "FluxTransformer2DModel",
@@ -108,12 +179,14 @@ else:
108
179
  "Kandinsky3UNet",
109
180
  "LatteTransformer3DModel",
110
181
  "LTXVideoTransformer3DModel",
182
+ "Lumina2Transformer2DModel",
111
183
  "LuminaNextDiT2DModel",
112
184
  "MochiTransformer3DModel",
113
185
  "ModelMixin",
114
186
  "MotionAdapter",
115
187
  "MultiAdapter",
116
188
  "MultiControlNetModel",
189
+ "OmniGenTransformer2DModel",
117
190
  "PixArtTransformer2DModel",
118
191
  "PriorTransformer",
119
192
  "SanaTransformer2DModel",
@@ -126,6 +199,7 @@ else:
126
199
  "T2IAdapter",
127
200
  "T5FilmDecoder",
128
201
  "Transformer2DModel",
202
+ "TransformerTemporalModel",
129
203
  "UNet1DModel",
130
204
  "UNet2DConditionModel",
131
205
  "UNet2DModel",
@@ -135,6 +209,7 @@ else:
135
209
  "UNetSpatioTemporalConditionModel",
136
210
  "UVit2DModel",
137
211
  "VQModel",
212
+ "WanTransformer3DModel",
138
213
  ]
139
214
  )
140
215
  _import_structure["optimization"] = [
@@ -201,6 +276,7 @@ else:
201
276
  "RePaintScheduler",
202
277
  "SASolverScheduler",
203
278
  "SchedulerMixin",
279
+ "SCMScheduler",
204
280
  "ScoreSdeVeScheduler",
205
281
  "TCDScheduler",
206
282
  "UnCLIPScheduler",
@@ -275,7 +351,12 @@ else:
275
351
  "CogVideoXPipeline",
276
352
  "CogVideoXVideoToVideoPipeline",
277
353
  "CogView3PlusPipeline",
354
+ "CogView4ControlPipeline",
355
+ "CogView4Pipeline",
278
356
  "CycleDiffusionPipeline",
357
+ "EasyAnimateControlPipeline",
358
+ "EasyAnimateInpaintPipeline",
359
+ "EasyAnimatePipeline",
279
360
  "FluxControlImg2ImgPipeline",
280
361
  "FluxControlInpaintPipeline",
281
362
  "FluxControlNetImg2ImgPipeline",
@@ -290,6 +371,8 @@ else:
290
371
  "HunyuanDiTControlNetPipeline",
291
372
  "HunyuanDiTPAGPipeline",
292
373
  "HunyuanDiTPipeline",
374
+ "HunyuanSkyreelsImageToVideoPipeline",
375
+ "HunyuanVideoImageToVideoPipeline",
293
376
  "HunyuanVideoPipeline",
294
377
  "I2VGenXLPipeline",
295
378
  "IFImg2ImgPipeline",
@@ -324,13 +407,19 @@ else:
324
407
  "LDMTextToImagePipeline",
325
408
  "LEditsPPPipelineStableDiffusion",
326
409
  "LEditsPPPipelineStableDiffusionXL",
410
+ "LTXConditionPipeline",
327
411
  "LTXImageToVideoPipeline",
328
412
  "LTXPipeline",
413
+ "Lumina2Pipeline",
414
+ "Lumina2Text2ImgPipeline",
415
+ "LuminaPipeline",
329
416
  "LuminaText2ImgPipeline",
330
417
  "MarigoldDepthPipeline",
418
+ "MarigoldIntrinsicsPipeline",
331
419
  "MarigoldNormalsPipeline",
332
420
  "MochiPipeline",
333
421
  "MusicLDMPipeline",
422
+ "OmniGenPipeline",
334
423
  "PaintByExamplePipeline",
335
424
  "PIAPipeline",
336
425
  "PixArtAlphaPipeline",
@@ -339,6 +428,7 @@ else:
339
428
  "ReduxImageEncoder",
340
429
  "SanaPAGPipeline",
341
430
  "SanaPipeline",
431
+ "SanaSprintPipeline",
342
432
  "SemanticStableDiffusionPipeline",
343
433
  "ShapEImg2ImgPipeline",
344
434
  "ShapEPipeline",
@@ -419,12 +509,28 @@ else:
419
509
  "VersatileDiffusionTextToImagePipeline",
420
510
  "VideoToVideoSDPipeline",
421
511
  "VQDiffusionPipeline",
512
+ "WanImageToVideoPipeline",
513
+ "WanPipeline",
514
+ "WanVideoToVideoPipeline",
422
515
  "WuerstchenCombinedPipeline",
423
516
  "WuerstchenDecoderPipeline",
424
517
  "WuerstchenPriorPipeline",
425
518
  ]
426
519
  )
427
520
 
521
+ try:
522
+ if not (is_torch_available() and is_transformers_available() and is_opencv_available()):
523
+ raise OptionalDependencyNotAvailable()
524
+ except OptionalDependencyNotAvailable:
525
+ from .utils import dummy_torch_and_transformers_and_opencv_objects # noqa F403
526
+
527
+ _import_structure["utils.dummy_torch_and_transformers_and_opencv_objects"] = [
528
+ name for name in dir(dummy_torch_and_transformers_and_opencv_objects) if not name.startswith("_")
529
+ ]
530
+
531
+ else:
532
+ _import_structure["pipelines"].extend(["ConsisIDPipeline"])
533
+
428
534
  try:
429
535
  if not (is_torch_available() and is_transformers_available() and is_k_diffusion_available()):
430
536
  raise OptionalDependencyNotAvailable()
@@ -570,7 +676,38 @@ else:
570
676
 
571
677
  if TYPE_CHECKING or DIFFUSERS_SLOW_IMPORT:
572
678
  from .configuration_utils import ConfigMixin
573
- from .quantizers.quantization_config import BitsAndBytesConfig, GGUFQuantizationConfig, TorchAoConfig
679
+
680
+ try:
681
+ if not is_bitsandbytes_available():
682
+ raise OptionalDependencyNotAvailable()
683
+ except OptionalDependencyNotAvailable:
684
+ from .utils.dummy_bitsandbytes_objects import *
685
+ else:
686
+ from .quantizers.quantization_config import BitsAndBytesConfig
687
+
688
+ try:
689
+ if not is_gguf_available():
690
+ raise OptionalDependencyNotAvailable()
691
+ except OptionalDependencyNotAvailable:
692
+ from .utils.dummy_gguf_objects import *
693
+ else:
694
+ from .quantizers.quantization_config import GGUFQuantizationConfig
695
+
696
+ try:
697
+ if not is_torchao_available():
698
+ raise OptionalDependencyNotAvailable()
699
+ except OptionalDependencyNotAvailable:
700
+ from .utils.dummy_torchao_objects import *
701
+ else:
702
+ from .quantizers.quantization_config import TorchAoConfig
703
+
704
+ try:
705
+ if not is_optimum_quanto_available():
706
+ raise OptionalDependencyNotAvailable()
707
+ except OptionalDependencyNotAvailable:
708
+ from .utils.dummy_optimum_quanto_objects import *
709
+ else:
710
+ from .quantizers.quantization_config import QuantoConfig
574
711
 
575
712
  try:
576
713
  if not is_onnx_available():
@@ -586,6 +723,13 @@ if TYPE_CHECKING or DIFFUSERS_SLOW_IMPORT:
586
723
  except OptionalDependencyNotAvailable:
587
724
  from .utils.dummy_pt_objects import * # noqa F403
588
725
  else:
726
+ from .hooks import (
727
+ FasterCacheConfig,
728
+ HookRegistry,
729
+ PyramidAttentionBroadcastConfig,
730
+ apply_faster_cache,
731
+ apply_pyramid_attention_broadcast,
732
+ )
589
733
  from .models import (
590
734
  AllegroTransformer3DModel,
591
735
  AsymmetricAutoencoderKL,
@@ -596,17 +740,24 @@ if TYPE_CHECKING or DIFFUSERS_SLOW_IMPORT:
596
740
  AutoencoderKLCogVideoX,
597
741
  AutoencoderKLHunyuanVideo,
598
742
  AutoencoderKLLTXVideo,
743
+ AutoencoderKLMagvit,
599
744
  AutoencoderKLMochi,
600
745
  AutoencoderKLTemporalDecoder,
746
+ AutoencoderKLWan,
601
747
  AutoencoderOobleck,
602
748
  AutoencoderTiny,
749
+ AutoModel,
750
+ CacheMixin,
603
751
  CogVideoXTransformer3DModel,
604
752
  CogView3PlusTransformer2DModel,
753
+ CogView4Transformer2DModel,
754
+ ConsisIDTransformer3DModel,
605
755
  ConsistencyDecoderVAE,
606
756
  ControlNetModel,
607
757
  ControlNetUnionModel,
608
758
  ControlNetXSAdapter,
609
759
  DiTTransformer2DModel,
760
+ EasyAnimateTransformer3DModel,
610
761
  FluxControlNetModel,
611
762
  FluxMultiControlNetModel,
612
763
  FluxTransformer2DModel,
@@ -618,12 +769,14 @@ if TYPE_CHECKING or DIFFUSERS_SLOW_IMPORT:
618
769
  Kandinsky3UNet,
619
770
  LatteTransformer3DModel,
620
771
  LTXVideoTransformer3DModel,
772
+ Lumina2Transformer2DModel,
621
773
  LuminaNextDiT2DModel,
622
774
  MochiTransformer3DModel,
623
775
  ModelMixin,
624
776
  MotionAdapter,
625
777
  MultiAdapter,
626
778
  MultiControlNetModel,
779
+ OmniGenTransformer2DModel,
627
780
  PixArtTransformer2DModel,
628
781
  PriorTransformer,
629
782
  SanaTransformer2DModel,
@@ -635,6 +788,7 @@ if TYPE_CHECKING or DIFFUSERS_SLOW_IMPORT:
635
788
  T2IAdapter,
636
789
  T5FilmDecoder,
637
790
  Transformer2DModel,
791
+ TransformerTemporalModel,
638
792
  UNet1DModel,
639
793
  UNet2DConditionModel,
640
794
  UNet2DModel,
@@ -644,6 +798,7 @@ if TYPE_CHECKING or DIFFUSERS_SLOW_IMPORT:
644
798
  UNetSpatioTemporalConditionModel,
645
799
  UVit2DModel,
646
800
  VQModel,
801
+ WanTransformer3DModel,
647
802
  )
648
803
  from .optimization import (
649
804
  get_constant_schedule,
@@ -709,6 +864,7 @@ if TYPE_CHECKING or DIFFUSERS_SLOW_IMPORT:
709
864
  RePaintScheduler,
710
865
  SASolverScheduler,
711
866
  SchedulerMixin,
867
+ SCMScheduler,
712
868
  ScoreSdeVeScheduler,
713
869
  TCDScheduler,
714
870
  UnCLIPScheduler,
@@ -764,7 +920,12 @@ if TYPE_CHECKING or DIFFUSERS_SLOW_IMPORT:
764
920
  CogVideoXPipeline,
765
921
  CogVideoXVideoToVideoPipeline,
766
922
  CogView3PlusPipeline,
923
+ CogView4ControlPipeline,
924
+ CogView4Pipeline,
767
925
  CycleDiffusionPipeline,
926
+ EasyAnimateControlPipeline,
927
+ EasyAnimateInpaintPipeline,
928
+ EasyAnimatePipeline,
768
929
  FluxControlImg2ImgPipeline,
769
930
  FluxControlInpaintPipeline,
770
931
  FluxControlNetImg2ImgPipeline,
@@ -779,6 +940,8 @@ if TYPE_CHECKING or DIFFUSERS_SLOW_IMPORT:
779
940
  HunyuanDiTControlNetPipeline,
780
941
  HunyuanDiTPAGPipeline,
781
942
  HunyuanDiTPipeline,
943
+ HunyuanSkyreelsImageToVideoPipeline,
944
+ HunyuanVideoImageToVideoPipeline,
782
945
  HunyuanVideoPipeline,
783
946
  I2VGenXLPipeline,
784
947
  IFImg2ImgPipeline,
@@ -813,13 +976,19 @@ if TYPE_CHECKING or DIFFUSERS_SLOW_IMPORT:
813
976
  LDMTextToImagePipeline,
814
977
  LEditsPPPipelineStableDiffusion,
815
978
  LEditsPPPipelineStableDiffusionXL,
979
+ LTXConditionPipeline,
816
980
  LTXImageToVideoPipeline,
817
981
  LTXPipeline,
982
+ Lumina2Pipeline,
983
+ Lumina2Text2ImgPipeline,
984
+ LuminaPipeline,
818
985
  LuminaText2ImgPipeline,
819
986
  MarigoldDepthPipeline,
987
+ MarigoldIntrinsicsPipeline,
820
988
  MarigoldNormalsPipeline,
821
989
  MochiPipeline,
822
990
  MusicLDMPipeline,
991
+ OmniGenPipeline,
823
992
  PaintByExamplePipeline,
824
993
  PIAPipeline,
825
994
  PixArtAlphaPipeline,
@@ -828,6 +997,7 @@ if TYPE_CHECKING or DIFFUSERS_SLOW_IMPORT:
828
997
  ReduxImageEncoder,
829
998
  SanaPAGPipeline,
830
999
  SanaPipeline,
1000
+ SanaSprintPipeline,
831
1001
  SemanticStableDiffusionPipeline,
832
1002
  ShapEImg2ImgPipeline,
833
1003
  ShapEPipeline,
@@ -836,6 +1006,7 @@ if TYPE_CHECKING or DIFFUSERS_SLOW_IMPORT:
836
1006
  StableCascadeCombinedPipeline,
837
1007
  StableCascadeDecoderPipeline,
838
1008
  StableCascadePriorPipeline,
1009
+ StableDiffusion3ControlNetInpaintingPipeline,
839
1010
  StableDiffusion3ControlNetPipeline,
840
1011
  StableDiffusion3Img2ImgPipeline,
841
1012
  StableDiffusion3InpaintPipeline,
@@ -906,6 +1077,9 @@ if TYPE_CHECKING or DIFFUSERS_SLOW_IMPORT:
906
1077
  VersatileDiffusionTextToImagePipeline,
907
1078
  VideoToVideoSDPipeline,
908
1079
  VQDiffusionPipeline,
1080
+ WanImageToVideoPipeline,
1081
+ WanPipeline,
1082
+ WanVideoToVideoPipeline,
909
1083
  WuerstchenCombinedPipeline,
910
1084
  WuerstchenDecoderPipeline,
911
1085
  WuerstchenPriorPipeline,
@@ -926,6 +1100,15 @@ if TYPE_CHECKING or DIFFUSERS_SLOW_IMPORT:
926
1100
  from .utils.dummy_torch_and_transformers_and_sentencepiece_objects import * # noqa F403
927
1101
  else:
928
1102
  from .pipelines import KolorsImg2ImgPipeline, KolorsPAGPipeline, KolorsPipeline
1103
+
1104
+ try:
1105
+ if not (is_torch_available() and is_transformers_available() and is_opencv_available()):
1106
+ raise OptionalDependencyNotAvailable()
1107
+ except OptionalDependencyNotAvailable:
1108
+ from .utils.dummy_torch_and_transformers_and_opencv_objects import * # noqa F403
1109
+ else:
1110
+ from .pipelines import ConsisIDPipeline
1111
+
929
1112
  try:
930
1113
  if not (is_torch_available() and is_transformers_available() and is_onnx_available()):
931
1114
  raise OptionalDependencyNotAvailable()
@@ -1,5 +1,5 @@
1
1
  # coding=utf-8
2
- # Copyright 2024 The HuggingFace Inc. team.
2
+ # Copyright 2025 The HuggingFace Inc. team.
3
3
  # Copyright (c) 2022, NVIDIA CORPORATION. All rights reserved.
4
4
  #
5
5
  # Licensed under the Apache License, Version 2.0 (the "License");
@@ -24,10 +24,10 @@ import os
24
24
  import re
25
25
  from collections import OrderedDict
26
26
  from pathlib import Path
27
- from typing import Any, Dict, Tuple, Union
27
+ from typing import Any, Dict, Optional, Tuple, Union
28
28
 
29
29
  import numpy as np
30
- from huggingface_hub import create_repo, hf_hub_download
30
+ from huggingface_hub import DDUFEntry, create_repo, hf_hub_download
31
31
  from huggingface_hub.utils import (
32
32
  EntryNotFoundError,
33
33
  RepositoryNotFoundError,
@@ -35,6 +35,7 @@ from huggingface_hub.utils import (
35
35
  validate_hf_hub_args,
36
36
  )
37
37
  from requests import HTTPError
38
+ from typing_extensions import Self
38
39
 
39
40
  from . import __version__
40
41
  from .utils import (
@@ -185,7 +186,9 @@ class ConfigMixin:
185
186
  )
186
187
 
187
188
  @classmethod
188
- def from_config(cls, config: Union[FrozenDict, Dict[str, Any]] = None, return_unused_kwargs=False, **kwargs):
189
+ def from_config(
190
+ cls, config: Union[FrozenDict, Dict[str, Any]] = None, return_unused_kwargs=False, **kwargs
191
+ ) -> Union[Self, Tuple[Self, Dict[str, Any]]]:
189
192
  r"""
190
193
  Instantiate a Python class from a config dictionary.
191
194
 
@@ -347,6 +350,7 @@ class ConfigMixin:
347
350
  _ = kwargs.pop("mirror", None)
348
351
  subfolder = kwargs.pop("subfolder", None)
349
352
  user_agent = kwargs.pop("user_agent", {})
353
+ dduf_entries: Optional[Dict[str, DDUFEntry]] = kwargs.pop("dduf_entries", None)
350
354
 
351
355
  user_agent = {**user_agent, "file_type": "config"}
352
356
  user_agent = http_user_agent(user_agent)
@@ -358,8 +362,15 @@ class ConfigMixin:
358
362
  "`self.config_name` is not defined. Note that one should not load a config from "
359
363
  "`ConfigMixin`. Please make sure to define `config_name` in a class inheriting from `ConfigMixin`"
360
364
  )
361
-
362
- if os.path.isfile(pretrained_model_name_or_path):
365
+ # Custom path for now
366
+ if dduf_entries:
367
+ if subfolder is not None:
368
+ raise ValueError(
369
+ "DDUF file only allow for 1 level of directory (e.g transformer/model1/model.safetentors is not allowed). "
370
+ "Please check the DDUF structure"
371
+ )
372
+ config_file = cls._get_config_file_from_dduf(pretrained_model_name_or_path, dduf_entries)
373
+ elif os.path.isfile(pretrained_model_name_or_path):
363
374
  config_file = pretrained_model_name_or_path
364
375
  elif os.path.isdir(pretrained_model_name_or_path):
365
376
  if subfolder is not None and os.path.isfile(
@@ -426,10 +437,8 @@ class ConfigMixin:
426
437
  f"Otherwise, make sure '{pretrained_model_name_or_path}' is the correct path to a directory "
427
438
  f"containing a {cls.config_name} file"
428
439
  )
429
-
430
440
  try:
431
- # Load config dict
432
- config_dict = cls._dict_from_json_file(config_file)
441
+ config_dict = cls._dict_from_json_file(config_file, dduf_entries=dduf_entries)
433
442
 
434
443
  commit_hash = extract_commit_hash(config_file)
435
444
  except (json.JSONDecodeError, UnicodeDecodeError):
@@ -552,9 +561,14 @@ class ConfigMixin:
552
561
  return init_dict, unused_kwargs, hidden_config_dict
553
562
 
554
563
  @classmethod
555
- def _dict_from_json_file(cls, json_file: Union[str, os.PathLike]):
556
- with open(json_file, "r", encoding="utf-8") as reader:
557
- text = reader.read()
564
+ def _dict_from_json_file(
565
+ cls, json_file: Union[str, os.PathLike], dduf_entries: Optional[Dict[str, DDUFEntry]] = None
566
+ ):
567
+ if dduf_entries:
568
+ text = dduf_entries[json_file].read_text()
569
+ else:
570
+ with open(json_file, "r", encoding="utf-8") as reader:
571
+ text = reader.read()
558
572
  return json.loads(text)
559
573
 
560
574
  def __repr__(self):
@@ -616,6 +630,20 @@ class ConfigMixin:
616
630
  with open(json_file_path, "w", encoding="utf-8") as writer:
617
631
  writer.write(self.to_json_string())
618
632
 
633
+ @classmethod
634
+ def _get_config_file_from_dduf(cls, pretrained_model_name_or_path: str, dduf_entries: Dict[str, DDUFEntry]):
635
+ # paths inside a DDUF file must always be "/"
636
+ config_file = (
637
+ cls.config_name
638
+ if pretrained_model_name_or_path == ""
639
+ else "/".join([pretrained_model_name_or_path, cls.config_name])
640
+ )
641
+ if config_file not in dduf_entries:
642
+ raise ValueError(
643
+ f"We did not manage to find the file {config_file} in the dduf file. We only have the following files {dduf_entries.keys()}"
644
+ )
645
+ return config_file
646
+
619
647
 
620
648
  def register_to_config(init):
621
649
  r"""
@@ -9,7 +9,7 @@ deps = {
9
9
  "filelock": "filelock",
10
10
  "flax": "flax>=0.4.1",
11
11
  "hf-doc-builder": "hf-doc-builder>=0.3.0",
12
- "huggingface-hub": "huggingface-hub>=0.23.2",
12
+ "huggingface-hub": "huggingface-hub>=0.27.0",
13
13
  "requests-mock": "requests-mock==1.10.0",
14
14
  "importlib_metadata": "importlib_metadata",
15
15
  "invisible-watermark": "invisible-watermark>=0.2.0",
@@ -29,18 +29,25 @@ deps = {
29
29
  "pytest-timeout": "pytest-timeout",
30
30
  "pytest-xdist": "pytest-xdist",
31
31
  "python": "python>=3.8.0",
32
- "ruff": "ruff==0.1.5",
32
+ "ruff": "ruff==0.9.10",
33
33
  "safetensors": "safetensors>=0.3.1",
34
34
  "sentencepiece": "sentencepiece>=0.1.91,!=0.1.92",
35
35
  "GitPython": "GitPython<3.1.19",
36
36
  "scipy": "scipy",
37
37
  "onnx": "onnx",
38
+ "optimum_quanto": "optimum_quanto>=0.2.6",
39
+ "gguf": "gguf>=0.10.0",
40
+ "torchao": "torchao>=0.7.0",
41
+ "bitsandbytes": "bitsandbytes>=0.43.3",
38
42
  "regex": "regex!=2019.12.17",
39
43
  "requests": "requests",
40
44
  "tensorboard": "tensorboard",
45
+ "tiktoken": "tiktoken>=0.7.0",
41
46
  "torch": "torch>=1.4",
42
47
  "torchvision": "torchvision",
43
48
  "transformers": "transformers>=4.41.2",
44
49
  "urllib3": "urllib3<=2.0.0",
45
50
  "black": "black",
51
+ "phonemizer": "phonemizer",
52
+ "opencv-python": "opencv-python",
46
53
  }
@@ -0,0 +1,9 @@
1
+ from ..utils import is_torch_available
2
+
3
+
4
+ if is_torch_available():
5
+ from .faster_cache import FasterCacheConfig, apply_faster_cache
6
+ from .group_offloading import apply_group_offloading
7
+ from .hooks import HookRegistry, ModelHook
8
+ from .layerwise_casting import apply_layerwise_casting, apply_layerwise_casting_hook
9
+ from .pyramid_attention_broadcast import PyramidAttentionBroadcastConfig, apply_pyramid_attention_broadcast