diffusers 0.33.0__py3-none-any.whl → 0.34.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 (478) hide show
  1. diffusers/__init__.py +48 -1
  2. diffusers/commands/__init__.py +1 -1
  3. diffusers/commands/diffusers_cli.py +1 -1
  4. diffusers/commands/env.py +1 -1
  5. diffusers/commands/fp16_safetensors.py +1 -1
  6. diffusers/dependency_versions_check.py +1 -1
  7. diffusers/dependency_versions_table.py +1 -1
  8. diffusers/experimental/rl/value_guided_sampling.py +1 -1
  9. diffusers/hooks/faster_cache.py +2 -2
  10. diffusers/hooks/group_offloading.py +128 -29
  11. diffusers/hooks/hooks.py +2 -2
  12. diffusers/hooks/layerwise_casting.py +3 -3
  13. diffusers/hooks/pyramid_attention_broadcast.py +1 -1
  14. diffusers/image_processor.py +7 -2
  15. diffusers/loaders/__init__.py +4 -0
  16. diffusers/loaders/ip_adapter.py +5 -14
  17. diffusers/loaders/lora_base.py +212 -111
  18. diffusers/loaders/lora_conversion_utils.py +275 -34
  19. diffusers/loaders/lora_pipeline.py +1554 -819
  20. diffusers/loaders/peft.py +52 -109
  21. diffusers/loaders/single_file.py +2 -2
  22. diffusers/loaders/single_file_model.py +20 -4
  23. diffusers/loaders/single_file_utils.py +225 -5
  24. diffusers/loaders/textual_inversion.py +3 -2
  25. diffusers/loaders/transformer_flux.py +1 -1
  26. diffusers/loaders/transformer_sd3.py +2 -2
  27. diffusers/loaders/unet.py +2 -16
  28. diffusers/loaders/unet_loader_utils.py +1 -1
  29. diffusers/loaders/utils.py +1 -1
  30. diffusers/models/__init__.py +15 -1
  31. diffusers/models/activations.py +5 -5
  32. diffusers/models/adapter.py +2 -3
  33. diffusers/models/attention.py +4 -4
  34. diffusers/models/attention_flax.py +10 -10
  35. diffusers/models/attention_processor.py +14 -10
  36. diffusers/models/auto_model.py +47 -10
  37. diffusers/models/autoencoders/__init__.py +1 -0
  38. diffusers/models/autoencoders/autoencoder_asym_kl.py +4 -4
  39. diffusers/models/autoencoders/autoencoder_dc.py +3 -3
  40. diffusers/models/autoencoders/autoencoder_kl.py +4 -4
  41. diffusers/models/autoencoders/autoencoder_kl_allegro.py +4 -4
  42. diffusers/models/autoencoders/autoencoder_kl_cogvideox.py +6 -6
  43. diffusers/models/autoencoders/autoencoder_kl_cosmos.py +1108 -0
  44. diffusers/models/autoencoders/autoencoder_kl_hunyuan_video.py +2 -2
  45. diffusers/models/autoencoders/autoencoder_kl_ltx.py +3 -3
  46. diffusers/models/autoencoders/autoencoder_kl_magvit.py +4 -4
  47. diffusers/models/autoencoders/autoencoder_kl_mochi.py +3 -3
  48. diffusers/models/autoencoders/autoencoder_kl_temporal_decoder.py +4 -4
  49. diffusers/models/autoencoders/autoencoder_kl_wan.py +256 -22
  50. diffusers/models/autoencoders/autoencoder_oobleck.py +1 -1
  51. diffusers/models/autoencoders/autoencoder_tiny.py +3 -3
  52. diffusers/models/autoencoders/consistency_decoder_vae.py +1 -1
  53. diffusers/models/autoencoders/vae.py +13 -2
  54. diffusers/models/autoencoders/vq_model.py +2 -2
  55. diffusers/models/cache_utils.py +1 -1
  56. diffusers/models/controlnet.py +1 -1
  57. diffusers/models/controlnet_flux.py +1 -1
  58. diffusers/models/controlnet_sd3.py +1 -1
  59. diffusers/models/controlnet_sparsectrl.py +1 -1
  60. diffusers/models/controlnets/__init__.py +1 -0
  61. diffusers/models/controlnets/controlnet.py +3 -3
  62. diffusers/models/controlnets/controlnet_flax.py +1 -1
  63. diffusers/models/controlnets/controlnet_flux.py +16 -15
  64. diffusers/models/controlnets/controlnet_hunyuan.py +2 -2
  65. diffusers/models/controlnets/controlnet_sana.py +290 -0
  66. diffusers/models/controlnets/controlnet_sd3.py +1 -1
  67. diffusers/models/controlnets/controlnet_sparsectrl.py +2 -2
  68. diffusers/models/controlnets/controlnet_union.py +1 -1
  69. diffusers/models/controlnets/controlnet_xs.py +7 -7
  70. diffusers/models/controlnets/multicontrolnet.py +4 -5
  71. diffusers/models/controlnets/multicontrolnet_union.py +5 -6
  72. diffusers/models/downsampling.py +2 -2
  73. diffusers/models/embeddings.py +10 -12
  74. diffusers/models/embeddings_flax.py +2 -2
  75. diffusers/models/lora.py +3 -3
  76. diffusers/models/modeling_utils.py +44 -14
  77. diffusers/models/normalization.py +4 -4
  78. diffusers/models/resnet.py +2 -2
  79. diffusers/models/resnet_flax.py +1 -1
  80. diffusers/models/transformers/__init__.py +5 -0
  81. diffusers/models/transformers/auraflow_transformer_2d.py +70 -24
  82. diffusers/models/transformers/cogvideox_transformer_3d.py +1 -1
  83. diffusers/models/transformers/consisid_transformer_3d.py +1 -1
  84. diffusers/models/transformers/dit_transformer_2d.py +2 -2
  85. diffusers/models/transformers/dual_transformer_2d.py +1 -1
  86. diffusers/models/transformers/hunyuan_transformer_2d.py +2 -2
  87. diffusers/models/transformers/latte_transformer_3d.py +4 -5
  88. diffusers/models/transformers/lumina_nextdit2d.py +2 -2
  89. diffusers/models/transformers/pixart_transformer_2d.py +3 -3
  90. diffusers/models/transformers/prior_transformer.py +1 -1
  91. diffusers/models/transformers/sana_transformer.py +8 -3
  92. diffusers/models/transformers/stable_audio_transformer.py +5 -9
  93. diffusers/models/transformers/t5_film_transformer.py +3 -3
  94. diffusers/models/transformers/transformer_2d.py +1 -1
  95. diffusers/models/transformers/transformer_allegro.py +1 -1
  96. diffusers/models/transformers/transformer_chroma.py +742 -0
  97. diffusers/models/transformers/transformer_cogview3plus.py +5 -10
  98. diffusers/models/transformers/transformer_cogview4.py +317 -25
  99. diffusers/models/transformers/transformer_cosmos.py +579 -0
  100. diffusers/models/transformers/transformer_flux.py +9 -11
  101. diffusers/models/transformers/transformer_hidream_image.py +942 -0
  102. diffusers/models/transformers/transformer_hunyuan_video.py +6 -8
  103. diffusers/models/transformers/transformer_hunyuan_video_framepack.py +416 -0
  104. diffusers/models/transformers/transformer_ltx.py +2 -2
  105. diffusers/models/transformers/transformer_lumina2.py +1 -1
  106. diffusers/models/transformers/transformer_mochi.py +1 -1
  107. diffusers/models/transformers/transformer_omnigen.py +2 -2
  108. diffusers/models/transformers/transformer_sd3.py +7 -7
  109. diffusers/models/transformers/transformer_temporal.py +1 -1
  110. diffusers/models/transformers/transformer_wan.py +24 -8
  111. diffusers/models/transformers/transformer_wan_vace.py +393 -0
  112. diffusers/models/unets/unet_1d.py +1 -1
  113. diffusers/models/unets/unet_1d_blocks.py +1 -1
  114. diffusers/models/unets/unet_2d.py +1 -1
  115. diffusers/models/unets/unet_2d_blocks.py +1 -1
  116. diffusers/models/unets/unet_2d_blocks_flax.py +8 -7
  117. diffusers/models/unets/unet_2d_condition.py +2 -2
  118. diffusers/models/unets/unet_2d_condition_flax.py +2 -2
  119. diffusers/models/unets/unet_3d_blocks.py +1 -1
  120. diffusers/models/unets/unet_3d_condition.py +3 -3
  121. diffusers/models/unets/unet_i2vgen_xl.py +3 -3
  122. diffusers/models/unets/unet_kandinsky3.py +1 -1
  123. diffusers/models/unets/unet_motion_model.py +2 -2
  124. diffusers/models/unets/unet_stable_cascade.py +1 -1
  125. diffusers/models/upsampling.py +2 -2
  126. diffusers/models/vae_flax.py +2 -2
  127. diffusers/models/vq_model.py +1 -1
  128. diffusers/pipelines/__init__.py +37 -6
  129. diffusers/pipelines/allegro/pipeline_allegro.py +11 -11
  130. diffusers/pipelines/amused/pipeline_amused.py +7 -6
  131. diffusers/pipelines/amused/pipeline_amused_img2img.py +6 -5
  132. diffusers/pipelines/amused/pipeline_amused_inpaint.py +6 -5
  133. diffusers/pipelines/animatediff/pipeline_animatediff.py +6 -6
  134. diffusers/pipelines/animatediff/pipeline_animatediff_controlnet.py +6 -6
  135. diffusers/pipelines/animatediff/pipeline_animatediff_sdxl.py +16 -15
  136. diffusers/pipelines/animatediff/pipeline_animatediff_sparsectrl.py +6 -6
  137. diffusers/pipelines/animatediff/pipeline_animatediff_video2video.py +5 -5
  138. diffusers/pipelines/animatediff/pipeline_animatediff_video2video_controlnet.py +5 -5
  139. diffusers/pipelines/audioldm/pipeline_audioldm.py +8 -7
  140. diffusers/pipelines/audioldm2/modeling_audioldm2.py +1 -1
  141. diffusers/pipelines/audioldm2/pipeline_audioldm2.py +23 -13
  142. diffusers/pipelines/aura_flow/pipeline_aura_flow.py +48 -11
  143. diffusers/pipelines/auto_pipeline.py +6 -7
  144. diffusers/pipelines/blip_diffusion/modeling_blip2.py +1 -1
  145. diffusers/pipelines/blip_diffusion/modeling_ctx_clip.py +2 -2
  146. diffusers/pipelines/blip_diffusion/pipeline_blip_diffusion.py +11 -10
  147. diffusers/pipelines/chroma/__init__.py +49 -0
  148. diffusers/pipelines/chroma/pipeline_chroma.py +949 -0
  149. diffusers/pipelines/chroma/pipeline_chroma_img2img.py +1034 -0
  150. diffusers/pipelines/chroma/pipeline_output.py +21 -0
  151. diffusers/pipelines/cogvideo/pipeline_cogvideox.py +8 -8
  152. diffusers/pipelines/cogvideo/pipeline_cogvideox_fun_control.py +8 -8
  153. diffusers/pipelines/cogvideo/pipeline_cogvideox_image2video.py +8 -8
  154. diffusers/pipelines/cogvideo/pipeline_cogvideox_video2video.py +8 -8
  155. diffusers/pipelines/cogview3/pipeline_cogview3plus.py +9 -9
  156. diffusers/pipelines/cogview4/pipeline_cogview4.py +7 -7
  157. diffusers/pipelines/cogview4/pipeline_cogview4_control.py +7 -7
  158. diffusers/pipelines/consisid/consisid_utils.py +2 -2
  159. diffusers/pipelines/consisid/pipeline_consisid.py +8 -8
  160. diffusers/pipelines/consistency_models/pipeline_consistency_models.py +1 -1
  161. diffusers/pipelines/controlnet/pipeline_controlnet.py +7 -7
  162. diffusers/pipelines/controlnet/pipeline_controlnet_blip_diffusion.py +8 -8
  163. diffusers/pipelines/controlnet/pipeline_controlnet_img2img.py +7 -7
  164. diffusers/pipelines/controlnet/pipeline_controlnet_inpaint.py +7 -7
  165. diffusers/pipelines/controlnet/pipeline_controlnet_inpaint_sd_xl.py +14 -14
  166. diffusers/pipelines/controlnet/pipeline_controlnet_sd_xl.py +10 -6
  167. diffusers/pipelines/controlnet/pipeline_controlnet_sd_xl_img2img.py +13 -13
  168. diffusers/pipelines/controlnet/pipeline_controlnet_union_inpaint_sd_xl.py +14 -14
  169. diffusers/pipelines/controlnet/pipeline_controlnet_union_sd_xl.py +5 -5
  170. diffusers/pipelines/controlnet/pipeline_controlnet_union_sd_xl_img2img.py +13 -13
  171. diffusers/pipelines/controlnet/pipeline_flax_controlnet.py +1 -1
  172. diffusers/pipelines/controlnet_hunyuandit/pipeline_hunyuandit_controlnet.py +8 -8
  173. diffusers/pipelines/controlnet_sd3/pipeline_stable_diffusion_3_controlnet.py +7 -7
  174. diffusers/pipelines/controlnet_sd3/pipeline_stable_diffusion_3_controlnet_inpainting.py +7 -7
  175. diffusers/pipelines/controlnet_xs/pipeline_controlnet_xs.py +12 -10
  176. diffusers/pipelines/controlnet_xs/pipeline_controlnet_xs_sd_xl.py +9 -7
  177. diffusers/pipelines/cosmos/__init__.py +54 -0
  178. diffusers/pipelines/cosmos/pipeline_cosmos2_text2image.py +673 -0
  179. diffusers/pipelines/cosmos/pipeline_cosmos2_video2world.py +792 -0
  180. diffusers/pipelines/cosmos/pipeline_cosmos_text2world.py +664 -0
  181. diffusers/pipelines/cosmos/pipeline_cosmos_video2world.py +826 -0
  182. diffusers/pipelines/cosmos/pipeline_output.py +40 -0
  183. diffusers/pipelines/dance_diffusion/pipeline_dance_diffusion.py +5 -4
  184. diffusers/pipelines/ddim/pipeline_ddim.py +4 -4
  185. diffusers/pipelines/ddpm/pipeline_ddpm.py +1 -1
  186. diffusers/pipelines/deepfloyd_if/pipeline_if.py +10 -10
  187. diffusers/pipelines/deepfloyd_if/pipeline_if_img2img.py +10 -10
  188. diffusers/pipelines/deepfloyd_if/pipeline_if_img2img_superresolution.py +10 -10
  189. diffusers/pipelines/deepfloyd_if/pipeline_if_inpainting.py +10 -10
  190. diffusers/pipelines/deepfloyd_if/pipeline_if_inpainting_superresolution.py +10 -10
  191. diffusers/pipelines/deepfloyd_if/pipeline_if_superresolution.py +10 -10
  192. diffusers/pipelines/deprecated/alt_diffusion/pipeline_alt_diffusion.py +8 -8
  193. diffusers/pipelines/deprecated/alt_diffusion/pipeline_alt_diffusion_img2img.py +5 -5
  194. diffusers/pipelines/deprecated/audio_diffusion/mel.py +1 -1
  195. diffusers/pipelines/deprecated/audio_diffusion/pipeline_audio_diffusion.py +3 -3
  196. diffusers/pipelines/deprecated/latent_diffusion_uncond/pipeline_latent_diffusion_uncond.py +1 -1
  197. diffusers/pipelines/deprecated/pndm/pipeline_pndm.py +2 -2
  198. diffusers/pipelines/deprecated/repaint/pipeline_repaint.py +4 -3
  199. diffusers/pipelines/deprecated/score_sde_ve/pipeline_score_sde_ve.py +1 -1
  200. diffusers/pipelines/deprecated/spectrogram_diffusion/continuous_encoder.py +1 -1
  201. diffusers/pipelines/deprecated/spectrogram_diffusion/midi_utils.py +1 -1
  202. diffusers/pipelines/deprecated/spectrogram_diffusion/notes_encoder.py +1 -1
  203. diffusers/pipelines/deprecated/spectrogram_diffusion/pipeline_spectrogram_diffusion.py +1 -1
  204. diffusers/pipelines/deprecated/stable_diffusion_variants/pipeline_cycle_diffusion.py +7 -7
  205. diffusers/pipelines/deprecated/stable_diffusion_variants/pipeline_onnx_stable_diffusion_inpaint_legacy.py +9 -9
  206. diffusers/pipelines/deprecated/stable_diffusion_variants/pipeline_stable_diffusion_inpaint_legacy.py +10 -10
  207. diffusers/pipelines/deprecated/stable_diffusion_variants/pipeline_stable_diffusion_model_editing.py +10 -8
  208. diffusers/pipelines/deprecated/stable_diffusion_variants/pipeline_stable_diffusion_paradigms.py +5 -5
  209. diffusers/pipelines/deprecated/stable_diffusion_variants/pipeline_stable_diffusion_pix2pix_zero.py +18 -18
  210. diffusers/pipelines/deprecated/stochastic_karras_ve/pipeline_stochastic_karras_ve.py +1 -1
  211. diffusers/pipelines/deprecated/versatile_diffusion/modeling_text_unet.py +2 -2
  212. diffusers/pipelines/deprecated/versatile_diffusion/pipeline_versatile_diffusion.py +6 -6
  213. diffusers/pipelines/deprecated/versatile_diffusion/pipeline_versatile_diffusion_dual_guided.py +5 -5
  214. diffusers/pipelines/deprecated/versatile_diffusion/pipeline_versatile_diffusion_image_variation.py +5 -5
  215. diffusers/pipelines/deprecated/versatile_diffusion/pipeline_versatile_diffusion_text_to_image.py +5 -5
  216. diffusers/pipelines/deprecated/vq_diffusion/pipeline_vq_diffusion.py +1 -1
  217. diffusers/pipelines/dit/pipeline_dit.py +1 -1
  218. diffusers/pipelines/easyanimate/pipeline_easyanimate.py +4 -4
  219. diffusers/pipelines/easyanimate/pipeline_easyanimate_control.py +4 -4
  220. diffusers/pipelines/easyanimate/pipeline_easyanimate_inpaint.py +7 -6
  221. diffusers/pipelines/flux/modeling_flux.py +1 -1
  222. diffusers/pipelines/flux/pipeline_flux.py +10 -17
  223. diffusers/pipelines/flux/pipeline_flux_control.py +6 -6
  224. diffusers/pipelines/flux/pipeline_flux_control_img2img.py +6 -6
  225. diffusers/pipelines/flux/pipeline_flux_control_inpaint.py +6 -6
  226. diffusers/pipelines/flux/pipeline_flux_controlnet.py +6 -6
  227. diffusers/pipelines/flux/pipeline_flux_controlnet_image_to_image.py +30 -22
  228. diffusers/pipelines/flux/pipeline_flux_controlnet_inpainting.py +2 -1
  229. diffusers/pipelines/flux/pipeline_flux_fill.py +6 -6
  230. diffusers/pipelines/flux/pipeline_flux_img2img.py +39 -6
  231. diffusers/pipelines/flux/pipeline_flux_inpaint.py +11 -6
  232. diffusers/pipelines/flux/pipeline_flux_prior_redux.py +1 -1
  233. diffusers/pipelines/free_init_utils.py +2 -2
  234. diffusers/pipelines/free_noise_utils.py +3 -3
  235. diffusers/pipelines/hidream_image/__init__.py +47 -0
  236. diffusers/pipelines/hidream_image/pipeline_hidream_image.py +1026 -0
  237. diffusers/pipelines/hidream_image/pipeline_output.py +35 -0
  238. diffusers/pipelines/hunyuan_video/__init__.py +2 -0
  239. diffusers/pipelines/hunyuan_video/pipeline_hunyuan_skyreels_image2video.py +8 -8
  240. diffusers/pipelines/hunyuan_video/pipeline_hunyuan_video.py +8 -8
  241. diffusers/pipelines/hunyuan_video/pipeline_hunyuan_video_framepack.py +1114 -0
  242. diffusers/pipelines/hunyuan_video/pipeline_hunyuan_video_image2video.py +71 -15
  243. diffusers/pipelines/hunyuan_video/pipeline_output.py +19 -0
  244. diffusers/pipelines/hunyuandit/pipeline_hunyuandit.py +8 -8
  245. diffusers/pipelines/i2vgen_xl/pipeline_i2vgen_xl.py +10 -8
  246. diffusers/pipelines/kandinsky/pipeline_kandinsky.py +6 -6
  247. diffusers/pipelines/kandinsky/pipeline_kandinsky_combined.py +34 -34
  248. diffusers/pipelines/kandinsky/pipeline_kandinsky_img2img.py +19 -26
  249. diffusers/pipelines/kandinsky/pipeline_kandinsky_inpaint.py +7 -7
  250. diffusers/pipelines/kandinsky/pipeline_kandinsky_prior.py +11 -11
  251. diffusers/pipelines/kandinsky2_2/pipeline_kandinsky2_2.py +6 -6
  252. diffusers/pipelines/kandinsky2_2/pipeline_kandinsky2_2_combined.py +35 -35
  253. diffusers/pipelines/kandinsky2_2/pipeline_kandinsky2_2_controlnet.py +6 -6
  254. diffusers/pipelines/kandinsky2_2/pipeline_kandinsky2_2_controlnet_img2img.py +17 -39
  255. diffusers/pipelines/kandinsky2_2/pipeline_kandinsky2_2_img2img.py +17 -45
  256. diffusers/pipelines/kandinsky2_2/pipeline_kandinsky2_2_inpainting.py +7 -7
  257. diffusers/pipelines/kandinsky2_2/pipeline_kandinsky2_2_prior.py +10 -10
  258. diffusers/pipelines/kandinsky2_2/pipeline_kandinsky2_2_prior_emb2emb.py +10 -10
  259. diffusers/pipelines/kandinsky3/pipeline_kandinsky3.py +7 -7
  260. diffusers/pipelines/kandinsky3/pipeline_kandinsky3_img2img.py +17 -38
  261. diffusers/pipelines/kolors/pipeline_kolors.py +10 -10
  262. diffusers/pipelines/kolors/pipeline_kolors_img2img.py +12 -12
  263. diffusers/pipelines/kolors/text_encoder.py +3 -3
  264. diffusers/pipelines/kolors/tokenizer.py +1 -1
  265. diffusers/pipelines/latent_consistency_models/pipeline_latent_consistency_img2img.py +2 -2
  266. diffusers/pipelines/latent_consistency_models/pipeline_latent_consistency_text2img.py +2 -2
  267. diffusers/pipelines/latent_diffusion/pipeline_latent_diffusion.py +1 -1
  268. diffusers/pipelines/latent_diffusion/pipeline_latent_diffusion_superresolution.py +3 -3
  269. diffusers/pipelines/latte/pipeline_latte.py +12 -12
  270. diffusers/pipelines/ledits_pp/pipeline_leditspp_stable_diffusion.py +13 -13
  271. diffusers/pipelines/ledits_pp/pipeline_leditspp_stable_diffusion_xl.py +17 -16
  272. diffusers/pipelines/ltx/__init__.py +4 -0
  273. diffusers/pipelines/ltx/modeling_latent_upsampler.py +188 -0
  274. diffusers/pipelines/ltx/pipeline_ltx.py +51 -6
  275. diffusers/pipelines/ltx/pipeline_ltx_condition.py +107 -29
  276. diffusers/pipelines/ltx/pipeline_ltx_image2video.py +50 -6
  277. diffusers/pipelines/ltx/pipeline_ltx_latent_upsample.py +277 -0
  278. diffusers/pipelines/lumina/pipeline_lumina.py +13 -13
  279. diffusers/pipelines/lumina2/pipeline_lumina2.py +10 -10
  280. diffusers/pipelines/marigold/marigold_image_processing.py +2 -2
  281. diffusers/pipelines/mochi/pipeline_mochi.py +6 -6
  282. diffusers/pipelines/musicldm/pipeline_musicldm.py +16 -13
  283. diffusers/pipelines/omnigen/pipeline_omnigen.py +13 -11
  284. diffusers/pipelines/omnigen/processor_omnigen.py +8 -3
  285. diffusers/pipelines/onnx_utils.py +15 -2
  286. diffusers/pipelines/pag/pag_utils.py +2 -2
  287. diffusers/pipelines/pag/pipeline_pag_controlnet_sd.py +12 -8
  288. diffusers/pipelines/pag/pipeline_pag_controlnet_sd_inpaint.py +7 -7
  289. diffusers/pipelines/pag/pipeline_pag_controlnet_sd_xl.py +10 -6
  290. diffusers/pipelines/pag/pipeline_pag_controlnet_sd_xl_img2img.py +14 -14
  291. diffusers/pipelines/pag/pipeline_pag_hunyuandit.py +8 -8
  292. diffusers/pipelines/pag/pipeline_pag_kolors.py +10 -10
  293. diffusers/pipelines/pag/pipeline_pag_pixart_sigma.py +11 -11
  294. diffusers/pipelines/pag/pipeline_pag_sana.py +18 -12
  295. diffusers/pipelines/pag/pipeline_pag_sd.py +8 -8
  296. diffusers/pipelines/pag/pipeline_pag_sd_3.py +7 -7
  297. diffusers/pipelines/pag/pipeline_pag_sd_3_img2img.py +7 -7
  298. diffusers/pipelines/pag/pipeline_pag_sd_animatediff.py +6 -6
  299. diffusers/pipelines/pag/pipeline_pag_sd_img2img.py +5 -5
  300. diffusers/pipelines/pag/pipeline_pag_sd_inpaint.py +8 -8
  301. diffusers/pipelines/pag/pipeline_pag_sd_xl.py +16 -15
  302. diffusers/pipelines/pag/pipeline_pag_sd_xl_img2img.py +18 -17
  303. diffusers/pipelines/pag/pipeline_pag_sd_xl_inpaint.py +12 -12
  304. diffusers/pipelines/paint_by_example/image_encoder.py +1 -1
  305. diffusers/pipelines/paint_by_example/pipeline_paint_by_example.py +8 -7
  306. diffusers/pipelines/pia/pipeline_pia.py +8 -6
  307. diffusers/pipelines/pipeline_flax_utils.py +3 -4
  308. diffusers/pipelines/pipeline_loading_utils.py +89 -13
  309. diffusers/pipelines/pipeline_utils.py +105 -33
  310. diffusers/pipelines/pixart_alpha/pipeline_pixart_alpha.py +11 -11
  311. diffusers/pipelines/pixart_alpha/pipeline_pixart_sigma.py +11 -11
  312. diffusers/pipelines/sana/__init__.py +4 -0
  313. diffusers/pipelines/sana/pipeline_sana.py +23 -21
  314. diffusers/pipelines/sana/pipeline_sana_controlnet.py +1106 -0
  315. diffusers/pipelines/sana/pipeline_sana_sprint.py +23 -19
  316. diffusers/pipelines/sana/pipeline_sana_sprint_img2img.py +981 -0
  317. diffusers/pipelines/semantic_stable_diffusion/pipeline_semantic_stable_diffusion.py +7 -6
  318. diffusers/pipelines/shap_e/camera.py +1 -1
  319. diffusers/pipelines/shap_e/pipeline_shap_e.py +1 -1
  320. diffusers/pipelines/shap_e/pipeline_shap_e_img2img.py +1 -1
  321. diffusers/pipelines/shap_e/renderer.py +3 -3
  322. diffusers/pipelines/stable_audio/modeling_stable_audio.py +1 -1
  323. diffusers/pipelines/stable_audio/pipeline_stable_audio.py +5 -5
  324. diffusers/pipelines/stable_cascade/pipeline_stable_cascade.py +8 -8
  325. diffusers/pipelines/stable_cascade/pipeline_stable_cascade_combined.py +13 -13
  326. diffusers/pipelines/stable_cascade/pipeline_stable_cascade_prior.py +9 -9
  327. diffusers/pipelines/stable_diffusion/__init__.py +0 -7
  328. diffusers/pipelines/stable_diffusion/clip_image_project_model.py +1 -1
  329. diffusers/pipelines/stable_diffusion/convert_from_ckpt.py +11 -4
  330. diffusers/pipelines/stable_diffusion/pipeline_flax_stable_diffusion.py +1 -1
  331. diffusers/pipelines/stable_diffusion/pipeline_flax_stable_diffusion_img2img.py +1 -1
  332. diffusers/pipelines/stable_diffusion/pipeline_flax_stable_diffusion_inpaint.py +1 -1
  333. diffusers/pipelines/stable_diffusion/pipeline_onnx_stable_diffusion.py +10 -10
  334. diffusers/pipelines/stable_diffusion/pipeline_onnx_stable_diffusion_img2img.py +10 -10
  335. diffusers/pipelines/stable_diffusion/pipeline_onnx_stable_diffusion_inpaint.py +10 -10
  336. diffusers/pipelines/stable_diffusion/pipeline_onnx_stable_diffusion_upscale.py +9 -9
  337. diffusers/pipelines/stable_diffusion/pipeline_stable_diffusion.py +8 -8
  338. diffusers/pipelines/stable_diffusion/pipeline_stable_diffusion_depth2img.py +5 -5
  339. diffusers/pipelines/stable_diffusion/pipeline_stable_diffusion_image_variation.py +5 -5
  340. diffusers/pipelines/stable_diffusion/pipeline_stable_diffusion_img2img.py +5 -5
  341. diffusers/pipelines/stable_diffusion/pipeline_stable_diffusion_inpaint.py +5 -5
  342. diffusers/pipelines/stable_diffusion/pipeline_stable_diffusion_instruct_pix2pix.py +5 -5
  343. diffusers/pipelines/stable_diffusion/pipeline_stable_diffusion_latent_upscale.py +4 -4
  344. diffusers/pipelines/stable_diffusion/pipeline_stable_diffusion_upscale.py +5 -5
  345. diffusers/pipelines/stable_diffusion/pipeline_stable_unclip.py +7 -7
  346. diffusers/pipelines/stable_diffusion/pipeline_stable_unclip_img2img.py +5 -5
  347. diffusers/pipelines/stable_diffusion/safety_checker.py +1 -1
  348. diffusers/pipelines/stable_diffusion/safety_checker_flax.py +1 -1
  349. diffusers/pipelines/stable_diffusion/stable_unclip_image_normalizer.py +1 -1
  350. diffusers/pipelines/stable_diffusion_3/pipeline_stable_diffusion_3.py +7 -7
  351. diffusers/pipelines/stable_diffusion_3/pipeline_stable_diffusion_3_img2img.py +7 -7
  352. diffusers/pipelines/stable_diffusion_3/pipeline_stable_diffusion_3_inpaint.py +7 -7
  353. diffusers/pipelines/stable_diffusion_attend_and_excite/pipeline_stable_diffusion_attend_and_excite.py +12 -8
  354. diffusers/pipelines/stable_diffusion_diffedit/pipeline_stable_diffusion_diffedit.py +15 -9
  355. diffusers/pipelines/stable_diffusion_gligen/pipeline_stable_diffusion_gligen.py +11 -9
  356. diffusers/pipelines/stable_diffusion_gligen/pipeline_stable_diffusion_gligen_text_image.py +11 -9
  357. diffusers/pipelines/stable_diffusion_k_diffusion/pipeline_stable_diffusion_k_diffusion.py +18 -12
  358. diffusers/pipelines/stable_diffusion_k_diffusion/pipeline_stable_diffusion_xl_k_diffusion.py +11 -8
  359. diffusers/pipelines/stable_diffusion_ldm3d/pipeline_stable_diffusion_ldm3d.py +11 -8
  360. diffusers/pipelines/stable_diffusion_panorama/pipeline_stable_diffusion_panorama.py +15 -12
  361. diffusers/pipelines/stable_diffusion_safe/pipeline_stable_diffusion_safe.py +8 -6
  362. diffusers/pipelines/stable_diffusion_safe/safety_checker.py +1 -1
  363. diffusers/pipelines/stable_diffusion_sag/pipeline_stable_diffusion_sag.py +15 -11
  364. diffusers/pipelines/stable_diffusion_xl/pipeline_flax_stable_diffusion_xl.py +1 -1
  365. diffusers/pipelines/stable_diffusion_xl/pipeline_stable_diffusion_xl.py +16 -15
  366. diffusers/pipelines/stable_diffusion_xl/pipeline_stable_diffusion_xl_img2img.py +18 -17
  367. diffusers/pipelines/stable_diffusion_xl/pipeline_stable_diffusion_xl_inpaint.py +12 -12
  368. diffusers/pipelines/stable_diffusion_xl/pipeline_stable_diffusion_xl_instruct_pix2pix.py +16 -15
  369. diffusers/pipelines/stable_video_diffusion/pipeline_stable_video_diffusion.py +3 -3
  370. diffusers/pipelines/t2i_adapter/pipeline_stable_diffusion_adapter.py +12 -12
  371. diffusers/pipelines/t2i_adapter/pipeline_stable_diffusion_xl_adapter.py +18 -17
  372. diffusers/pipelines/text_to_video_synthesis/pipeline_text_to_video_synth.py +12 -7
  373. diffusers/pipelines/text_to_video_synthesis/pipeline_text_to_video_synth_img2img.py +12 -7
  374. diffusers/pipelines/text_to_video_synthesis/pipeline_text_to_video_zero.py +15 -13
  375. diffusers/pipelines/text_to_video_synthesis/pipeline_text_to_video_zero_sdxl.py +24 -21
  376. diffusers/pipelines/unclip/pipeline_unclip.py +4 -3
  377. diffusers/pipelines/unclip/pipeline_unclip_image_variation.py +4 -3
  378. diffusers/pipelines/unclip/text_proj.py +2 -2
  379. diffusers/pipelines/unidiffuser/modeling_text_decoder.py +2 -2
  380. diffusers/pipelines/unidiffuser/modeling_uvit.py +1 -1
  381. diffusers/pipelines/unidiffuser/pipeline_unidiffuser.py +8 -7
  382. diffusers/pipelines/visualcloze/__init__.py +52 -0
  383. diffusers/pipelines/visualcloze/pipeline_visualcloze_combined.py +444 -0
  384. diffusers/pipelines/visualcloze/pipeline_visualcloze_generation.py +952 -0
  385. diffusers/pipelines/visualcloze/visualcloze_utils.py +251 -0
  386. diffusers/pipelines/wan/__init__.py +2 -0
  387. diffusers/pipelines/wan/pipeline_wan.py +17 -12
  388. diffusers/pipelines/wan/pipeline_wan_i2v.py +42 -20
  389. diffusers/pipelines/wan/pipeline_wan_vace.py +976 -0
  390. diffusers/pipelines/wan/pipeline_wan_video2video.py +18 -18
  391. diffusers/pipelines/wuerstchen/modeling_paella_vq_model.py +1 -1
  392. diffusers/pipelines/wuerstchen/modeling_wuerstchen_diffnext.py +1 -1
  393. diffusers/pipelines/wuerstchen/modeling_wuerstchen_prior.py +1 -1
  394. diffusers/pipelines/wuerstchen/pipeline_wuerstchen.py +8 -8
  395. diffusers/pipelines/wuerstchen/pipeline_wuerstchen_combined.py +16 -15
  396. diffusers/pipelines/wuerstchen/pipeline_wuerstchen_prior.py +6 -6
  397. diffusers/quantizers/__init__.py +179 -1
  398. diffusers/quantizers/base.py +6 -1
  399. diffusers/quantizers/bitsandbytes/bnb_quantizer.py +4 -0
  400. diffusers/quantizers/bitsandbytes/utils.py +10 -7
  401. diffusers/quantizers/gguf/gguf_quantizer.py +13 -4
  402. diffusers/quantizers/gguf/utils.py +16 -13
  403. diffusers/quantizers/quantization_config.py +18 -16
  404. diffusers/quantizers/quanto/quanto_quantizer.py +4 -0
  405. diffusers/quantizers/torchao/torchao_quantizer.py +5 -1
  406. diffusers/schedulers/__init__.py +3 -1
  407. diffusers/schedulers/deprecated/scheduling_karras_ve.py +4 -3
  408. diffusers/schedulers/deprecated/scheduling_sde_vp.py +1 -1
  409. diffusers/schedulers/scheduling_consistency_models.py +1 -1
  410. diffusers/schedulers/scheduling_cosine_dpmsolver_multistep.py +10 -5
  411. diffusers/schedulers/scheduling_ddim.py +8 -8
  412. diffusers/schedulers/scheduling_ddim_cogvideox.py +5 -5
  413. diffusers/schedulers/scheduling_ddim_flax.py +6 -6
  414. diffusers/schedulers/scheduling_ddim_inverse.py +6 -6
  415. diffusers/schedulers/scheduling_ddim_parallel.py +22 -22
  416. diffusers/schedulers/scheduling_ddpm.py +9 -9
  417. diffusers/schedulers/scheduling_ddpm_flax.py +7 -7
  418. diffusers/schedulers/scheduling_ddpm_parallel.py +18 -18
  419. diffusers/schedulers/scheduling_ddpm_wuerstchen.py +2 -2
  420. diffusers/schedulers/scheduling_deis_multistep.py +8 -8
  421. diffusers/schedulers/scheduling_dpm_cogvideox.py +5 -5
  422. diffusers/schedulers/scheduling_dpmsolver_multistep.py +12 -12
  423. diffusers/schedulers/scheduling_dpmsolver_multistep_flax.py +22 -20
  424. diffusers/schedulers/scheduling_dpmsolver_multistep_inverse.py +11 -11
  425. diffusers/schedulers/scheduling_dpmsolver_sde.py +2 -2
  426. diffusers/schedulers/scheduling_dpmsolver_singlestep.py +13 -13
  427. diffusers/schedulers/scheduling_edm_dpmsolver_multistep.py +13 -8
  428. diffusers/schedulers/scheduling_edm_euler.py +20 -11
  429. diffusers/schedulers/scheduling_euler_ancestral_discrete.py +3 -3
  430. diffusers/schedulers/scheduling_euler_discrete.py +3 -3
  431. diffusers/schedulers/scheduling_euler_discrete_flax.py +3 -3
  432. diffusers/schedulers/scheduling_flow_match_euler_discrete.py +20 -5
  433. diffusers/schedulers/scheduling_flow_match_heun_discrete.py +1 -1
  434. diffusers/schedulers/scheduling_flow_match_lcm.py +561 -0
  435. diffusers/schedulers/scheduling_heun_discrete.py +2 -2
  436. diffusers/schedulers/scheduling_ipndm.py +2 -2
  437. diffusers/schedulers/scheduling_k_dpm_2_ancestral_discrete.py +2 -2
  438. diffusers/schedulers/scheduling_k_dpm_2_discrete.py +2 -2
  439. diffusers/schedulers/scheduling_karras_ve_flax.py +5 -5
  440. diffusers/schedulers/scheduling_lcm.py +3 -3
  441. diffusers/schedulers/scheduling_lms_discrete.py +2 -2
  442. diffusers/schedulers/scheduling_lms_discrete_flax.py +1 -1
  443. diffusers/schedulers/scheduling_pndm.py +4 -4
  444. diffusers/schedulers/scheduling_pndm_flax.py +4 -4
  445. diffusers/schedulers/scheduling_repaint.py +9 -9
  446. diffusers/schedulers/scheduling_sasolver.py +15 -15
  447. diffusers/schedulers/scheduling_scm.py +1 -1
  448. diffusers/schedulers/scheduling_sde_ve.py +1 -1
  449. diffusers/schedulers/scheduling_sde_ve_flax.py +2 -2
  450. diffusers/schedulers/scheduling_tcd.py +3 -3
  451. diffusers/schedulers/scheduling_unclip.py +5 -5
  452. diffusers/schedulers/scheduling_unipc_multistep.py +11 -11
  453. diffusers/schedulers/scheduling_utils.py +1 -1
  454. diffusers/schedulers/scheduling_utils_flax.py +1 -1
  455. diffusers/schedulers/scheduling_vq_diffusion.py +1 -1
  456. diffusers/training_utils.py +13 -5
  457. diffusers/utils/__init__.py +5 -0
  458. diffusers/utils/accelerate_utils.py +1 -1
  459. diffusers/utils/doc_utils.py +1 -1
  460. diffusers/utils/dummy_pt_objects.py +120 -0
  461. diffusers/utils/dummy_torch_and_transformers_objects.py +225 -0
  462. diffusers/utils/dynamic_modules_utils.py +21 -3
  463. diffusers/utils/export_utils.py +1 -1
  464. diffusers/utils/import_utils.py +81 -18
  465. diffusers/utils/logging.py +1 -1
  466. diffusers/utils/outputs.py +2 -1
  467. diffusers/utils/peft_utils.py +91 -8
  468. diffusers/utils/state_dict_utils.py +20 -3
  469. diffusers/utils/testing_utils.py +59 -7
  470. diffusers/utils/torch_utils.py +25 -5
  471. diffusers/video_processor.py +2 -2
  472. {diffusers-0.33.0.dist-info → diffusers-0.34.0.dist-info}/METADATA +3 -3
  473. diffusers-0.34.0.dist-info/RECORD +639 -0
  474. diffusers-0.33.0.dist-info/RECORD +0 -608
  475. {diffusers-0.33.0.dist-info → diffusers-0.34.0.dist-info}/LICENSE +0 -0
  476. {diffusers-0.33.0.dist-info → diffusers-0.34.0.dist-info}/WHEEL +0 -0
  477. {diffusers-0.33.0.dist-info → diffusers-0.34.0.dist-info}/entry_points.txt +0 -0
  478. {diffusers-0.33.0.dist-info → diffusers-0.34.0.dist-info}/top_level.txt +0 -0
@@ -160,6 +160,21 @@ class AutoencoderKLCogVideoX(metaclass=DummyObject):
160
160
  requires_backends(cls, ["torch"])
161
161
 
162
162
 
163
+ class AutoencoderKLCosmos(metaclass=DummyObject):
164
+ _backends = ["torch"]
165
+
166
+ def __init__(self, *args, **kwargs):
167
+ requires_backends(self, ["torch"])
168
+
169
+ @classmethod
170
+ def from_config(cls, *args, **kwargs):
171
+ requires_backends(cls, ["torch"])
172
+
173
+ @classmethod
174
+ def from_pretrained(cls, *args, **kwargs):
175
+ requires_backends(cls, ["torch"])
176
+
177
+
163
178
  class AutoencoderKLHunyuanVideo(metaclass=DummyObject):
164
179
  _backends = ["torch"]
165
180
 
@@ -310,6 +325,21 @@ class CacheMixin(metaclass=DummyObject):
310
325
  requires_backends(cls, ["torch"])
311
326
 
312
327
 
328
+ class ChromaTransformer2DModel(metaclass=DummyObject):
329
+ _backends = ["torch"]
330
+
331
+ def __init__(self, *args, **kwargs):
332
+ requires_backends(self, ["torch"])
333
+
334
+ @classmethod
335
+ def from_config(cls, *args, **kwargs):
336
+ requires_backends(cls, ["torch"])
337
+
338
+ @classmethod
339
+ def from_pretrained(cls, *args, **kwargs):
340
+ requires_backends(cls, ["torch"])
341
+
342
+
313
343
  class CogVideoXTransformer3DModel(metaclass=DummyObject):
314
344
  _backends = ["torch"]
315
345
 
@@ -430,6 +460,21 @@ class ControlNetXSAdapter(metaclass=DummyObject):
430
460
  requires_backends(cls, ["torch"])
431
461
 
432
462
 
463
+ class CosmosTransformer3DModel(metaclass=DummyObject):
464
+ _backends = ["torch"]
465
+
466
+ def __init__(self, *args, **kwargs):
467
+ requires_backends(self, ["torch"])
468
+
469
+ @classmethod
470
+ def from_config(cls, *args, **kwargs):
471
+ requires_backends(cls, ["torch"])
472
+
473
+ @classmethod
474
+ def from_pretrained(cls, *args, **kwargs):
475
+ requires_backends(cls, ["torch"])
476
+
477
+
433
478
  class DiTTransformer2DModel(metaclass=DummyObject):
434
479
  _backends = ["torch"]
435
480
 
@@ -505,6 +550,21 @@ class FluxTransformer2DModel(metaclass=DummyObject):
505
550
  requires_backends(cls, ["torch"])
506
551
 
507
552
 
553
+ class HiDreamImageTransformer2DModel(metaclass=DummyObject):
554
+ _backends = ["torch"]
555
+
556
+ def __init__(self, *args, **kwargs):
557
+ requires_backends(self, ["torch"])
558
+
559
+ @classmethod
560
+ def from_config(cls, *args, **kwargs):
561
+ requires_backends(cls, ["torch"])
562
+
563
+ @classmethod
564
+ def from_pretrained(cls, *args, **kwargs):
565
+ requires_backends(cls, ["torch"])
566
+
567
+
508
568
  class HunyuanDiT2DControlNetModel(metaclass=DummyObject):
509
569
  _backends = ["torch"]
510
570
 
@@ -550,6 +610,21 @@ class HunyuanDiT2DMultiControlNetModel(metaclass=DummyObject):
550
610
  requires_backends(cls, ["torch"])
551
611
 
552
612
 
613
+ class HunyuanVideoFramepackTransformer3DModel(metaclass=DummyObject):
614
+ _backends = ["torch"]
615
+
616
+ def __init__(self, *args, **kwargs):
617
+ requires_backends(self, ["torch"])
618
+
619
+ @classmethod
620
+ def from_config(cls, *args, **kwargs):
621
+ requires_backends(cls, ["torch"])
622
+
623
+ @classmethod
624
+ def from_pretrained(cls, *args, **kwargs):
625
+ requires_backends(cls, ["torch"])
626
+
627
+
553
628
  class HunyuanVideoTransformer3DModel(metaclass=DummyObject):
554
629
  _backends = ["torch"]
555
630
 
@@ -775,6 +850,21 @@ class PriorTransformer(metaclass=DummyObject):
775
850
  requires_backends(cls, ["torch"])
776
851
 
777
852
 
853
+ class SanaControlNetModel(metaclass=DummyObject):
854
+ _backends = ["torch"]
855
+
856
+ def __init__(self, *args, **kwargs):
857
+ requires_backends(self, ["torch"])
858
+
859
+ @classmethod
860
+ def from_config(cls, *args, **kwargs):
861
+ requires_backends(cls, ["torch"])
862
+
863
+ @classmethod
864
+ def from_pretrained(cls, *args, **kwargs):
865
+ requires_backends(cls, ["torch"])
866
+
867
+
778
868
  class SanaTransformer2DModel(metaclass=DummyObject):
779
869
  _backends = ["torch"]
780
870
 
@@ -1075,6 +1165,21 @@ class WanTransformer3DModel(metaclass=DummyObject):
1075
1165
  requires_backends(cls, ["torch"])
1076
1166
 
1077
1167
 
1168
+ class WanVACETransformer3DModel(metaclass=DummyObject):
1169
+ _backends = ["torch"]
1170
+
1171
+ def __init__(self, *args, **kwargs):
1172
+ requires_backends(self, ["torch"])
1173
+
1174
+ @classmethod
1175
+ def from_config(cls, *args, **kwargs):
1176
+ requires_backends(cls, ["torch"])
1177
+
1178
+ @classmethod
1179
+ def from_pretrained(cls, *args, **kwargs):
1180
+ requires_backends(cls, ["torch"])
1181
+
1182
+
1078
1183
  def get_constant_schedule(*args, **kwargs):
1079
1184
  requires_backends(get_constant_schedule, ["torch"])
1080
1185
 
@@ -1733,6 +1838,21 @@ class FlowMatchHeunDiscreteScheduler(metaclass=DummyObject):
1733
1838
  requires_backends(cls, ["torch"])
1734
1839
 
1735
1840
 
1841
+ class FlowMatchLCMScheduler(metaclass=DummyObject):
1842
+ _backends = ["torch"]
1843
+
1844
+ def __init__(self, *args, **kwargs):
1845
+ requires_backends(self, ["torch"])
1846
+
1847
+ @classmethod
1848
+ def from_config(cls, *args, **kwargs):
1849
+ requires_backends(cls, ["torch"])
1850
+
1851
+ @classmethod
1852
+ def from_pretrained(cls, *args, **kwargs):
1853
+ requires_backends(cls, ["torch"])
1854
+
1855
+
1736
1856
  class HeunDiscreteScheduler(metaclass=DummyObject):
1737
1857
  _backends = ["torch"]
1738
1858
 
@@ -272,6 +272,36 @@ class AuraFlowPipeline(metaclass=DummyObject):
272
272
  requires_backends(cls, ["torch", "transformers"])
273
273
 
274
274
 
275
+ class ChromaImg2ImgPipeline(metaclass=DummyObject):
276
+ _backends = ["torch", "transformers"]
277
+
278
+ def __init__(self, *args, **kwargs):
279
+ requires_backends(self, ["torch", "transformers"])
280
+
281
+ @classmethod
282
+ def from_config(cls, *args, **kwargs):
283
+ requires_backends(cls, ["torch", "transformers"])
284
+
285
+ @classmethod
286
+ def from_pretrained(cls, *args, **kwargs):
287
+ requires_backends(cls, ["torch", "transformers"])
288
+
289
+
290
+ class ChromaPipeline(metaclass=DummyObject):
291
+ _backends = ["torch", "transformers"]
292
+
293
+ def __init__(self, *args, **kwargs):
294
+ requires_backends(self, ["torch", "transformers"])
295
+
296
+ @classmethod
297
+ def from_config(cls, *args, **kwargs):
298
+ requires_backends(cls, ["torch", "transformers"])
299
+
300
+ @classmethod
301
+ def from_pretrained(cls, *args, **kwargs):
302
+ requires_backends(cls, ["torch", "transformers"])
303
+
304
+
275
305
  class CLIPImageProjection(metaclass=DummyObject):
276
306
  _backends = ["torch", "transformers"]
277
307
 
@@ -392,6 +422,81 @@ class CogView4Pipeline(metaclass=DummyObject):
392
422
  requires_backends(cls, ["torch", "transformers"])
393
423
 
394
424
 
425
+ class ConsisIDPipeline(metaclass=DummyObject):
426
+ _backends = ["torch", "transformers"]
427
+
428
+ def __init__(self, *args, **kwargs):
429
+ requires_backends(self, ["torch", "transformers"])
430
+
431
+ @classmethod
432
+ def from_config(cls, *args, **kwargs):
433
+ requires_backends(cls, ["torch", "transformers"])
434
+
435
+ @classmethod
436
+ def from_pretrained(cls, *args, **kwargs):
437
+ requires_backends(cls, ["torch", "transformers"])
438
+
439
+
440
+ class Cosmos2TextToImagePipeline(metaclass=DummyObject):
441
+ _backends = ["torch", "transformers"]
442
+
443
+ def __init__(self, *args, **kwargs):
444
+ requires_backends(self, ["torch", "transformers"])
445
+
446
+ @classmethod
447
+ def from_config(cls, *args, **kwargs):
448
+ requires_backends(cls, ["torch", "transformers"])
449
+
450
+ @classmethod
451
+ def from_pretrained(cls, *args, **kwargs):
452
+ requires_backends(cls, ["torch", "transformers"])
453
+
454
+
455
+ class Cosmos2VideoToWorldPipeline(metaclass=DummyObject):
456
+ _backends = ["torch", "transformers"]
457
+
458
+ def __init__(self, *args, **kwargs):
459
+ requires_backends(self, ["torch", "transformers"])
460
+
461
+ @classmethod
462
+ def from_config(cls, *args, **kwargs):
463
+ requires_backends(cls, ["torch", "transformers"])
464
+
465
+ @classmethod
466
+ def from_pretrained(cls, *args, **kwargs):
467
+ requires_backends(cls, ["torch", "transformers"])
468
+
469
+
470
+ class CosmosTextToWorldPipeline(metaclass=DummyObject):
471
+ _backends = ["torch", "transformers"]
472
+
473
+ def __init__(self, *args, **kwargs):
474
+ requires_backends(self, ["torch", "transformers"])
475
+
476
+ @classmethod
477
+ def from_config(cls, *args, **kwargs):
478
+ requires_backends(cls, ["torch", "transformers"])
479
+
480
+ @classmethod
481
+ def from_pretrained(cls, *args, **kwargs):
482
+ requires_backends(cls, ["torch", "transformers"])
483
+
484
+
485
+ class CosmosVideoToWorldPipeline(metaclass=DummyObject):
486
+ _backends = ["torch", "transformers"]
487
+
488
+ def __init__(self, *args, **kwargs):
489
+ requires_backends(self, ["torch", "transformers"])
490
+
491
+ @classmethod
492
+ def from_config(cls, *args, **kwargs):
493
+ requires_backends(cls, ["torch", "transformers"])
494
+
495
+ @classmethod
496
+ def from_pretrained(cls, *args, **kwargs):
497
+ requires_backends(cls, ["torch", "transformers"])
498
+
499
+
395
500
  class CycleDiffusionPipeline(metaclass=DummyObject):
396
501
  _backends = ["torch", "transformers"]
397
502
 
@@ -617,6 +722,21 @@ class FluxPriorReduxPipeline(metaclass=DummyObject):
617
722
  requires_backends(cls, ["torch", "transformers"])
618
723
 
619
724
 
725
+ class HiDreamImagePipeline(metaclass=DummyObject):
726
+ _backends = ["torch", "transformers"]
727
+
728
+ def __init__(self, *args, **kwargs):
729
+ requires_backends(self, ["torch", "transformers"])
730
+
731
+ @classmethod
732
+ def from_config(cls, *args, **kwargs):
733
+ requires_backends(cls, ["torch", "transformers"])
734
+
735
+ @classmethod
736
+ def from_pretrained(cls, *args, **kwargs):
737
+ requires_backends(cls, ["torch", "transformers"])
738
+
739
+
620
740
  class HunyuanDiTControlNetPipeline(metaclass=DummyObject):
621
741
  _backends = ["torch", "transformers"]
622
742
 
@@ -677,6 +797,21 @@ class HunyuanSkyreelsImageToVideoPipeline(metaclass=DummyObject):
677
797
  requires_backends(cls, ["torch", "transformers"])
678
798
 
679
799
 
800
+ class HunyuanVideoFramepackPipeline(metaclass=DummyObject):
801
+ _backends = ["torch", "transformers"]
802
+
803
+ def __init__(self, *args, **kwargs):
804
+ requires_backends(self, ["torch", "transformers"])
805
+
806
+ @classmethod
807
+ def from_config(cls, *args, **kwargs):
808
+ requires_backends(cls, ["torch", "transformers"])
809
+
810
+ @classmethod
811
+ def from_pretrained(cls, *args, **kwargs):
812
+ requires_backends(cls, ["torch", "transformers"])
813
+
814
+
680
815
  class HunyuanVideoImageToVideoPipeline(metaclass=DummyObject):
681
816
  _backends = ["torch", "transformers"]
682
817
 
@@ -1232,6 +1367,21 @@ class LTXImageToVideoPipeline(metaclass=DummyObject):
1232
1367
  requires_backends(cls, ["torch", "transformers"])
1233
1368
 
1234
1369
 
1370
+ class LTXLatentUpsamplePipeline(metaclass=DummyObject):
1371
+ _backends = ["torch", "transformers"]
1372
+
1373
+ def __init__(self, *args, **kwargs):
1374
+ requires_backends(self, ["torch", "transformers"])
1375
+
1376
+ @classmethod
1377
+ def from_config(cls, *args, **kwargs):
1378
+ requires_backends(cls, ["torch", "transformers"])
1379
+
1380
+ @classmethod
1381
+ def from_pretrained(cls, *args, **kwargs):
1382
+ requires_backends(cls, ["torch", "transformers"])
1383
+
1384
+
1235
1385
  class LTXPipeline(metaclass=DummyObject):
1236
1386
  _backends = ["torch", "transformers"]
1237
1387
 
@@ -1487,6 +1637,21 @@ class ReduxImageEncoder(metaclass=DummyObject):
1487
1637
  requires_backends(cls, ["torch", "transformers"])
1488
1638
 
1489
1639
 
1640
+ class SanaControlNetPipeline(metaclass=DummyObject):
1641
+ _backends = ["torch", "transformers"]
1642
+
1643
+ def __init__(self, *args, **kwargs):
1644
+ requires_backends(self, ["torch", "transformers"])
1645
+
1646
+ @classmethod
1647
+ def from_config(cls, *args, **kwargs):
1648
+ requires_backends(cls, ["torch", "transformers"])
1649
+
1650
+ @classmethod
1651
+ def from_pretrained(cls, *args, **kwargs):
1652
+ requires_backends(cls, ["torch", "transformers"])
1653
+
1654
+
1490
1655
  class SanaPAGPipeline(metaclass=DummyObject):
1491
1656
  _backends = ["torch", "transformers"]
1492
1657
 
@@ -1517,6 +1682,21 @@ class SanaPipeline(metaclass=DummyObject):
1517
1682
  requires_backends(cls, ["torch", "transformers"])
1518
1683
 
1519
1684
 
1685
+ class SanaSprintImg2ImgPipeline(metaclass=DummyObject):
1686
+ _backends = ["torch", "transformers"]
1687
+
1688
+ def __init__(self, *args, **kwargs):
1689
+ requires_backends(self, ["torch", "transformers"])
1690
+
1691
+ @classmethod
1692
+ def from_config(cls, *args, **kwargs):
1693
+ requires_backends(cls, ["torch", "transformers"])
1694
+
1695
+ @classmethod
1696
+ def from_pretrained(cls, *args, **kwargs):
1697
+ requires_backends(cls, ["torch", "transformers"])
1698
+
1699
+
1520
1700
  class SanaSprintPipeline(metaclass=DummyObject):
1521
1701
  _backends = ["torch", "transformers"]
1522
1702
 
@@ -2702,6 +2882,36 @@ class VideoToVideoSDPipeline(metaclass=DummyObject):
2702
2882
  requires_backends(cls, ["torch", "transformers"])
2703
2883
 
2704
2884
 
2885
+ class VisualClozeGenerationPipeline(metaclass=DummyObject):
2886
+ _backends = ["torch", "transformers"]
2887
+
2888
+ def __init__(self, *args, **kwargs):
2889
+ requires_backends(self, ["torch", "transformers"])
2890
+
2891
+ @classmethod
2892
+ def from_config(cls, *args, **kwargs):
2893
+ requires_backends(cls, ["torch", "transformers"])
2894
+
2895
+ @classmethod
2896
+ def from_pretrained(cls, *args, **kwargs):
2897
+ requires_backends(cls, ["torch", "transformers"])
2898
+
2899
+
2900
+ class VisualClozePipeline(metaclass=DummyObject):
2901
+ _backends = ["torch", "transformers"]
2902
+
2903
+ def __init__(self, *args, **kwargs):
2904
+ requires_backends(self, ["torch", "transformers"])
2905
+
2906
+ @classmethod
2907
+ def from_config(cls, *args, **kwargs):
2908
+ requires_backends(cls, ["torch", "transformers"])
2909
+
2910
+ @classmethod
2911
+ def from_pretrained(cls, *args, **kwargs):
2912
+ requires_backends(cls, ["torch", "transformers"])
2913
+
2914
+
2705
2915
  class VQDiffusionPipeline(metaclass=DummyObject):
2706
2916
  _backends = ["torch", "transformers"]
2707
2917
 
@@ -2747,6 +2957,21 @@ class WanPipeline(metaclass=DummyObject):
2747
2957
  requires_backends(cls, ["torch", "transformers"])
2748
2958
 
2749
2959
 
2960
+ class WanVACEPipeline(metaclass=DummyObject):
2961
+ _backends = ["torch", "transformers"]
2962
+
2963
+ def __init__(self, *args, **kwargs):
2964
+ requires_backends(self, ["torch", "transformers"])
2965
+
2966
+ @classmethod
2967
+ def from_config(cls, *args, **kwargs):
2968
+ requires_backends(cls, ["torch", "transformers"])
2969
+
2970
+ @classmethod
2971
+ def from_pretrained(cls, *args, **kwargs):
2972
+ requires_backends(cls, ["torch", "transformers"])
2973
+
2974
+
2750
2975
  class WanVideoToVideoPipeline(metaclass=DummyObject):
2751
2976
  _backends = ["torch", "transformers"]
2752
2977
 
@@ -154,12 +154,30 @@ def check_imports(filename):
154
154
  return get_relative_imports(filename)
155
155
 
156
156
 
157
- def get_class_in_module(class_name, module_path):
157
+ def get_class_in_module(class_name, module_path, pretrained_model_name_or_path=None):
158
158
  """
159
159
  Import a module on the cache directory for modules and extract a class from it.
160
160
  """
161
161
  module_path = module_path.replace(os.path.sep, ".")
162
- module = importlib.import_module(module_path)
162
+ try:
163
+ module = importlib.import_module(module_path)
164
+ except ModuleNotFoundError as e:
165
+ # This can happen when the repo id contains ".", which Python's import machinery interprets as a directory
166
+ # separator. We do a bit of monkey patching to detect and fix this case.
167
+ if not (
168
+ pretrained_model_name_or_path is not None
169
+ and "." in pretrained_model_name_or_path
170
+ and module_path.startswith("diffusers_modules")
171
+ and pretrained_model_name_or_path.replace("/", "--") in module_path
172
+ ):
173
+ raise e # We can't figure this one out, just reraise the original error
174
+
175
+ corrected_path = os.path.join(HF_MODULES_CACHE, module_path.replace(".", "/")) + ".py"
176
+ corrected_path = corrected_path.replace(
177
+ pretrained_model_name_or_path.replace("/", "--").replace(".", "/"),
178
+ pretrained_model_name_or_path.replace("/", "--"),
179
+ )
180
+ module = importlib.machinery.SourceFileLoader(module_path, corrected_path).load_module()
163
181
 
164
182
  if class_name is None:
165
183
  return find_pipeline_class(module)
@@ -454,4 +472,4 @@ def get_class_from_dynamic_module(
454
472
  revision=revision,
455
473
  local_files_only=local_files_only,
456
474
  )
457
- return get_class_in_module(class_name, final_module.replace(".py", ""))
475
+ return get_class_in_module(class_name, final_module.replace(".py", ""), pretrained_model_name_or_path)
@@ -155,7 +155,7 @@ def export_to_video(
155
155
  bitrate:
156
156
  Set a constant bitrate for the video encoding. Default is None causing `quality` parameter to be used instead.
157
157
  Better quality videos with smaller file sizes will result from using the `quality` variable bitrate parameter
158
- rather than specifiying a fixed bitrate with this parameter.
158
+ rather than specifying a fixed bitrate with this parameter.
159
159
 
160
160
  macro_block_size:
161
161
  Size constraint for video. Width and height, must be divisible by this number. If not divisible by this number
@@ -1,4 +1,4 @@
1
- # Copyright 2024 The HuggingFace Team. All rights reserved.
1
+ # Copyright 2025 The HuggingFace Team. All rights reserved.
2
2
  #
3
3
  # Licensed under the Apache License, Version 2.0 (the "License");
4
4
  # you may not use this file except in compliance with the License.
@@ -16,13 +16,14 @@ Import utilities: Utilities related to imports and our lazy inits.
16
16
  """
17
17
 
18
18
  import importlib.util
19
+ import inspect
19
20
  import operator as op
20
21
  import os
21
22
  import sys
22
- from collections import OrderedDict
23
+ from collections import OrderedDict, defaultdict
23
24
  from itertools import chain
24
25
  from types import ModuleType
25
- from typing import Any, Union
26
+ from typing import Any, Tuple, Union
26
27
 
27
28
  from huggingface_hub.utils import is_jinja_available # noqa: F401
28
29
  from packaging.version import Version, parse
@@ -35,7 +36,10 @@ if sys.version_info < (3, 8):
35
36
  import importlib_metadata
36
37
  else:
37
38
  import importlib.metadata as importlib_metadata
38
-
39
+ try:
40
+ _package_map = importlib_metadata.packages_distributions() # load-once to avoid expensive calls
41
+ except Exception:
42
+ _package_map = None
39
43
 
40
44
  logger = logging.get_logger(__name__) # pylint: disable=invalid-name
41
45
 
@@ -54,12 +58,33 @@ STR_OPERATION_TO_FUNC = {">": op.gt, ">=": op.ge, "==": op.eq, "!=": op.ne, "<="
54
58
  _is_google_colab = "google.colab" in sys.modules or any(k.startswith("COLAB_") for k in os.environ)
55
59
 
56
60
 
57
- def _is_package_available(pkg_name: str):
61
+ def _is_package_available(pkg_name: str, get_dist_name: bool = False) -> Tuple[bool, str]:
62
+ global _package_map
58
63
  pkg_exists = importlib.util.find_spec(pkg_name) is not None
59
64
  pkg_version = "N/A"
60
65
 
61
66
  if pkg_exists:
67
+ if _package_map is None:
68
+ _package_map = defaultdict(list)
69
+ try:
70
+ # Fallback for Python < 3.10
71
+ for dist in importlib_metadata.distributions():
72
+ _top_level_declared = (dist.read_text("top_level.txt") or "").split()
73
+ _infered_opt_names = {
74
+ f.parts[0] if len(f.parts) > 1 else inspect.getmodulename(f) for f in (dist.files or [])
75
+ } - {None}
76
+ _top_level_inferred = filter(lambda name: "." not in name, _infered_opt_names)
77
+ for pkg in _top_level_declared or _top_level_inferred:
78
+ _package_map[pkg].append(dist.metadata["Name"])
79
+ except Exception as _:
80
+ pass
62
81
  try:
82
+ if get_dist_name and pkg_name in _package_map and _package_map[pkg_name]:
83
+ if len(_package_map[pkg_name]) > 1:
84
+ logger.warning(
85
+ f"Multiple distributions found for package {pkg_name}. Picked distribution: {_package_map[pkg_name][0]}"
86
+ )
87
+ pkg_name = _package_map[pkg_name][0]
63
88
  pkg_version = importlib_metadata.version(pkg_name)
64
89
  logger.debug(f"Successfully imported {pkg_name} version {pkg_version}")
65
90
  except (ImportError, importlib_metadata.PackageNotFoundError):
@@ -74,6 +99,7 @@ if USE_TORCH in ENV_VARS_TRUE_AND_AUTO_VALUES and USE_TF not in ENV_VARS_TRUE_VA
74
99
  else:
75
100
  logger.info("Disabling PyTorch because USE_TORCH is set")
76
101
  _torch_available = False
102
+ _torch_version = "N/A"
77
103
 
78
104
  _jax_version = "N/A"
79
105
  _flax_version = "N/A"
@@ -101,18 +127,20 @@ _onnx_available = importlib.util.find_spec("onnxruntime") is not None
101
127
  if _onnx_available:
102
128
  candidates = (
103
129
  "onnxruntime",
130
+ "onnxruntime-cann",
131
+ "onnxruntime-directml",
132
+ "ort_nightly_directml",
104
133
  "onnxruntime-gpu",
105
134
  "ort_nightly_gpu",
106
- "onnxruntime-directml",
135
+ "onnxruntime-migraphx",
107
136
  "onnxruntime-openvino",
108
- "ort_nightly_directml",
137
+ "onnxruntime-qnn",
109
138
  "onnxruntime-rocm",
110
- "onnxruntime-migraphx",
111
139
  "onnxruntime-training",
112
140
  "onnxruntime-vitisai",
113
141
  )
114
142
  _onnxruntime_version = None
115
- # For the metadata, we have to look for both onnxruntime and onnxruntime-gpu
143
+ # For the metadata, we have to look for both onnxruntime and onnxruntime-x
116
144
  for pkg in candidates:
117
145
  try:
118
146
  _onnxruntime_version = importlib_metadata.version(pkg)
@@ -187,15 +215,11 @@ _xformers_available, _xformers_version = _is_package_available("xformers")
187
215
  _gguf_available, _gguf_version = _is_package_available("gguf")
188
216
  _torchao_available, _torchao_version = _is_package_available("torchao")
189
217
  _bitsandbytes_available, _bitsandbytes_version = _is_package_available("bitsandbytes")
190
- _torchao_available, _torchao_version = _is_package_available("torchao")
191
-
192
- _optimum_quanto_available = importlib.util.find_spec("optimum") is not None
193
- if _optimum_quanto_available:
194
- try:
195
- _optimum_quanto_version = importlib_metadata.version("optimum_quanto")
196
- logger.debug(f"Successfully import optimum-quanto version {_optimum_quanto_version}")
197
- except importlib_metadata.PackageNotFoundError:
198
- _optimum_quanto_available = False
218
+ _optimum_quanto_available, _optimum_quanto_version = _is_package_available("optimum", get_dist_name=True)
219
+ _pytorch_retinaface_available, _pytorch_retinaface_version = _is_package_available("pytorch_retinaface")
220
+ _better_profanity_available, _better_profanity_version = _is_package_available("better_profanity")
221
+ _nltk_available, _nltk_version = _is_package_available("nltk")
222
+ _cosmos_guardrail_available, _cosmos_guardrail_version = _is_package_available("cosmos_guardrail")
199
223
 
200
224
 
201
225
  def is_torch_available():
@@ -334,6 +358,26 @@ def is_timm_available():
334
358
  return _timm_available
335
359
 
336
360
 
361
+ def is_pytorch_retinaface_available():
362
+ return _pytorch_retinaface_available
363
+
364
+
365
+ def is_better_profanity_available():
366
+ return _better_profanity_available
367
+
368
+
369
+ def is_nltk_available():
370
+ return _nltk_available
371
+
372
+
373
+ def is_cosmos_guardrail_available():
374
+ return _cosmos_guardrail_available
375
+
376
+
377
+ def is_hpu_available():
378
+ return all(importlib.util.find_spec(lib) for lib in ("habana_frameworks", "habana_frameworks.torch"))
379
+
380
+
337
381
  # docstyle-ignore
338
382
  FLAX_IMPORT_ERROR = """
339
383
  {0} requires the FLAX library but it was not found in your environment. Checkout the instructions on the
@@ -482,6 +526,22 @@ QUANTO_IMPORT_ERROR = """
482
526
  install optimum-quanto`
483
527
  """
484
528
 
529
+ # docstyle-ignore
530
+ PYTORCH_RETINAFACE_IMPORT_ERROR = """
531
+ {0} requires the pytorch_retinaface library but it was not found in your environment. You can install it with pip: `pip install pytorch_retinaface`
532
+ """
533
+
534
+ # docstyle-ignore
535
+ BETTER_PROFANITY_IMPORT_ERROR = """
536
+ {0} requires the better_profanity library but it was not found in your environment. You can install it with pip: `pip install better_profanity`
537
+ """
538
+
539
+ # docstyle-ignore
540
+ NLTK_IMPORT_ERROR = """
541
+ {0} requires the nltk library but it was not found in your environment. You can install it with pip: `pip install nltk`
542
+ """
543
+
544
+
485
545
  BACKENDS_MAPPING = OrderedDict(
486
546
  [
487
547
  ("bs4", (is_bs4_available, BS4_IMPORT_ERROR)),
@@ -510,6 +570,9 @@ BACKENDS_MAPPING = OrderedDict(
510
570
  ("gguf", (is_gguf_available, GGUF_IMPORT_ERROR)),
511
571
  ("torchao", (is_torchao_available, TORCHAO_IMPORT_ERROR)),
512
572
  ("quanto", (is_optimum_quanto_available, QUANTO_IMPORT_ERROR)),
573
+ ("pytorch_retinaface", (is_pytorch_retinaface_available, PYTORCH_RETINAFACE_IMPORT_ERROR)),
574
+ ("better_profanity", (is_better_profanity_available, BETTER_PROFANITY_IMPORT_ERROR)),
575
+ ("nltk", (is_nltk_available, NLTK_IMPORT_ERROR)),
513
576
  ]
514
577
  )
515
578
 
@@ -1,5 +1,5 @@
1
1
  # coding=utf-8
2
- # Copyright 2024 Optuna, Hugging Face
2
+ # Copyright 2025 Optuna, Hugging Face
3
3
  #
4
4
  # Licensed under the Apache License, Version 2.0 (the "License");
5
5
  # you may not use this file except in compliance with the License.