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.
- diffusers/__init__.py +186 -3
- diffusers/configuration_utils.py +40 -12
- diffusers/dependency_versions_table.py +9 -2
- diffusers/hooks/__init__.py +9 -0
- diffusers/hooks/faster_cache.py +653 -0
- diffusers/hooks/group_offloading.py +793 -0
- diffusers/hooks/hooks.py +236 -0
- diffusers/hooks/layerwise_casting.py +245 -0
- diffusers/hooks/pyramid_attention_broadcast.py +311 -0
- diffusers/loaders/__init__.py +6 -0
- diffusers/loaders/ip_adapter.py +38 -30
- diffusers/loaders/lora_base.py +198 -28
- diffusers/loaders/lora_conversion_utils.py +679 -44
- diffusers/loaders/lora_pipeline.py +1963 -801
- diffusers/loaders/peft.py +169 -84
- diffusers/loaders/single_file.py +17 -2
- diffusers/loaders/single_file_model.py +53 -5
- diffusers/loaders/single_file_utils.py +653 -75
- diffusers/loaders/textual_inversion.py +9 -9
- diffusers/loaders/transformer_flux.py +8 -9
- diffusers/loaders/transformer_sd3.py +120 -39
- diffusers/loaders/unet.py +22 -32
- diffusers/models/__init__.py +22 -0
- diffusers/models/activations.py +9 -9
- diffusers/models/attention.py +0 -1
- diffusers/models/attention_processor.py +163 -25
- diffusers/models/auto_model.py +169 -0
- diffusers/models/autoencoders/__init__.py +2 -0
- diffusers/models/autoencoders/autoencoder_asym_kl.py +2 -0
- diffusers/models/autoencoders/autoencoder_dc.py +106 -4
- diffusers/models/autoencoders/autoencoder_kl.py +0 -4
- diffusers/models/autoencoders/autoencoder_kl_allegro.py +5 -23
- diffusers/models/autoencoders/autoencoder_kl_cogvideox.py +17 -55
- diffusers/models/autoencoders/autoencoder_kl_hunyuan_video.py +17 -97
- diffusers/models/autoencoders/autoencoder_kl_ltx.py +326 -107
- diffusers/models/autoencoders/autoencoder_kl_magvit.py +1094 -0
- diffusers/models/autoencoders/autoencoder_kl_mochi.py +21 -56
- diffusers/models/autoencoders/autoencoder_kl_temporal_decoder.py +11 -42
- diffusers/models/autoencoders/autoencoder_kl_wan.py +855 -0
- diffusers/models/autoencoders/autoencoder_oobleck.py +1 -0
- diffusers/models/autoencoders/autoencoder_tiny.py +0 -4
- diffusers/models/autoencoders/consistency_decoder_vae.py +3 -1
- diffusers/models/autoencoders/vae.py +31 -141
- diffusers/models/autoencoders/vq_model.py +3 -0
- diffusers/models/cache_utils.py +108 -0
- diffusers/models/controlnets/__init__.py +1 -0
- diffusers/models/controlnets/controlnet.py +3 -8
- diffusers/models/controlnets/controlnet_flux.py +14 -42
- diffusers/models/controlnets/controlnet_sd3.py +58 -34
- diffusers/models/controlnets/controlnet_sparsectrl.py +4 -7
- diffusers/models/controlnets/controlnet_union.py +27 -18
- diffusers/models/controlnets/controlnet_xs.py +7 -46
- diffusers/models/controlnets/multicontrolnet_union.py +196 -0
- diffusers/models/embeddings.py +18 -7
- diffusers/models/model_loading_utils.py +122 -80
- diffusers/models/modeling_flax_pytorch_utils.py +1 -1
- diffusers/models/modeling_flax_utils.py +1 -1
- diffusers/models/modeling_pytorch_flax_utils.py +1 -1
- diffusers/models/modeling_utils.py +617 -272
- diffusers/models/normalization.py +67 -14
- diffusers/models/resnet.py +1 -1
- diffusers/models/transformers/__init__.py +6 -0
- diffusers/models/transformers/auraflow_transformer_2d.py +9 -35
- diffusers/models/transformers/cogvideox_transformer_3d.py +13 -24
- diffusers/models/transformers/consisid_transformer_3d.py +789 -0
- diffusers/models/transformers/dit_transformer_2d.py +5 -19
- diffusers/models/transformers/hunyuan_transformer_2d.py +4 -3
- diffusers/models/transformers/latte_transformer_3d.py +20 -15
- diffusers/models/transformers/lumina_nextdit2d.py +3 -1
- diffusers/models/transformers/pixart_transformer_2d.py +4 -19
- diffusers/models/transformers/prior_transformer.py +5 -1
- diffusers/models/transformers/sana_transformer.py +144 -40
- diffusers/models/transformers/stable_audio_transformer.py +5 -20
- diffusers/models/transformers/transformer_2d.py +7 -22
- diffusers/models/transformers/transformer_allegro.py +9 -17
- diffusers/models/transformers/transformer_cogview3plus.py +6 -17
- diffusers/models/transformers/transformer_cogview4.py +462 -0
- diffusers/models/transformers/transformer_easyanimate.py +527 -0
- diffusers/models/transformers/transformer_flux.py +68 -110
- diffusers/models/transformers/transformer_hunyuan_video.py +409 -49
- diffusers/models/transformers/transformer_ltx.py +53 -35
- diffusers/models/transformers/transformer_lumina2.py +548 -0
- diffusers/models/transformers/transformer_mochi.py +6 -17
- diffusers/models/transformers/transformer_omnigen.py +469 -0
- diffusers/models/transformers/transformer_sd3.py +56 -86
- diffusers/models/transformers/transformer_temporal.py +5 -11
- diffusers/models/transformers/transformer_wan.py +469 -0
- diffusers/models/unets/unet_1d.py +3 -1
- diffusers/models/unets/unet_2d.py +21 -20
- diffusers/models/unets/unet_2d_blocks.py +19 -243
- diffusers/models/unets/unet_2d_condition.py +4 -6
- diffusers/models/unets/unet_3d_blocks.py +14 -127
- diffusers/models/unets/unet_3d_condition.py +8 -12
- diffusers/models/unets/unet_i2vgen_xl.py +5 -13
- diffusers/models/unets/unet_kandinsky3.py +0 -4
- diffusers/models/unets/unet_motion_model.py +20 -114
- diffusers/models/unets/unet_spatio_temporal_condition.py +7 -8
- diffusers/models/unets/unet_stable_cascade.py +8 -35
- diffusers/models/unets/uvit_2d.py +1 -4
- diffusers/optimization.py +2 -2
- diffusers/pipelines/__init__.py +57 -8
- diffusers/pipelines/allegro/pipeline_allegro.py +22 -2
- diffusers/pipelines/amused/pipeline_amused.py +15 -2
- diffusers/pipelines/amused/pipeline_amused_img2img.py +15 -2
- diffusers/pipelines/amused/pipeline_amused_inpaint.py +15 -2
- diffusers/pipelines/animatediff/pipeline_animatediff.py +15 -2
- diffusers/pipelines/animatediff/pipeline_animatediff_controlnet.py +15 -3
- diffusers/pipelines/animatediff/pipeline_animatediff_sdxl.py +24 -4
- diffusers/pipelines/animatediff/pipeline_animatediff_sparsectrl.py +15 -2
- diffusers/pipelines/animatediff/pipeline_animatediff_video2video.py +16 -4
- diffusers/pipelines/animatediff/pipeline_animatediff_video2video_controlnet.py +16 -4
- diffusers/pipelines/audioldm/pipeline_audioldm.py +13 -2
- diffusers/pipelines/audioldm2/modeling_audioldm2.py +13 -68
- diffusers/pipelines/audioldm2/pipeline_audioldm2.py +39 -9
- diffusers/pipelines/aura_flow/pipeline_aura_flow.py +63 -7
- diffusers/pipelines/auto_pipeline.py +35 -14
- diffusers/pipelines/blip_diffusion/blip_image_processing.py +1 -1
- diffusers/pipelines/blip_diffusion/modeling_blip2.py +5 -8
- diffusers/pipelines/blip_diffusion/pipeline_blip_diffusion.py +12 -0
- diffusers/pipelines/cogvideo/pipeline_cogvideox.py +22 -6
- diffusers/pipelines/cogvideo/pipeline_cogvideox_fun_control.py +22 -6
- diffusers/pipelines/cogvideo/pipeline_cogvideox_image2video.py +22 -5
- diffusers/pipelines/cogvideo/pipeline_cogvideox_video2video.py +22 -6
- diffusers/pipelines/cogview3/pipeline_cogview3plus.py +12 -4
- diffusers/pipelines/cogview4/__init__.py +49 -0
- diffusers/pipelines/cogview4/pipeline_cogview4.py +684 -0
- diffusers/pipelines/cogview4/pipeline_cogview4_control.py +732 -0
- diffusers/pipelines/cogview4/pipeline_output.py +21 -0
- diffusers/pipelines/consisid/__init__.py +49 -0
- diffusers/pipelines/consisid/consisid_utils.py +357 -0
- diffusers/pipelines/consisid/pipeline_consisid.py +974 -0
- diffusers/pipelines/consisid/pipeline_output.py +20 -0
- diffusers/pipelines/consistency_models/pipeline_consistency_models.py +11 -0
- diffusers/pipelines/controlnet/pipeline_controlnet.py +6 -5
- diffusers/pipelines/controlnet/pipeline_controlnet_blip_diffusion.py +13 -0
- diffusers/pipelines/controlnet/pipeline_controlnet_img2img.py +17 -5
- diffusers/pipelines/controlnet/pipeline_controlnet_inpaint.py +31 -12
- diffusers/pipelines/controlnet/pipeline_controlnet_inpaint_sd_xl.py +26 -7
- diffusers/pipelines/controlnet/pipeline_controlnet_sd_xl.py +20 -3
- diffusers/pipelines/controlnet/pipeline_controlnet_sd_xl_img2img.py +22 -3
- diffusers/pipelines/controlnet/pipeline_controlnet_union_inpaint_sd_xl.py +26 -25
- diffusers/pipelines/controlnet/pipeline_controlnet_union_sd_xl.py +224 -109
- diffusers/pipelines/controlnet/pipeline_controlnet_union_sd_xl_img2img.py +25 -29
- diffusers/pipelines/controlnet/pipeline_flax_controlnet.py +7 -4
- diffusers/pipelines/controlnet_hunyuandit/pipeline_hunyuandit_controlnet.py +3 -5
- diffusers/pipelines/controlnet_sd3/pipeline_stable_diffusion_3_controlnet.py +121 -10
- diffusers/pipelines/controlnet_sd3/pipeline_stable_diffusion_3_controlnet_inpainting.py +122 -11
- diffusers/pipelines/controlnet_xs/pipeline_controlnet_xs.py +12 -1
- diffusers/pipelines/controlnet_xs/pipeline_controlnet_xs_sd_xl.py +20 -3
- diffusers/pipelines/dance_diffusion/pipeline_dance_diffusion.py +14 -2
- diffusers/pipelines/ddim/pipeline_ddim.py +14 -1
- diffusers/pipelines/ddpm/pipeline_ddpm.py +15 -1
- diffusers/pipelines/deepfloyd_if/pipeline_if.py +12 -0
- diffusers/pipelines/deepfloyd_if/pipeline_if_img2img.py +12 -0
- diffusers/pipelines/deepfloyd_if/pipeline_if_img2img_superresolution.py +14 -1
- diffusers/pipelines/deepfloyd_if/pipeline_if_inpainting.py +12 -0
- diffusers/pipelines/deepfloyd_if/pipeline_if_inpainting_superresolution.py +14 -1
- diffusers/pipelines/deepfloyd_if/pipeline_if_superresolution.py +14 -1
- diffusers/pipelines/deprecated/alt_diffusion/pipeline_alt_diffusion.py +11 -7
- diffusers/pipelines/deprecated/alt_diffusion/pipeline_alt_diffusion_img2img.py +11 -7
- diffusers/pipelines/deprecated/repaint/pipeline_repaint.py +1 -1
- diffusers/pipelines/deprecated/stable_diffusion_variants/pipeline_cycle_diffusion.py +10 -6
- diffusers/pipelines/deprecated/stable_diffusion_variants/pipeline_onnx_stable_diffusion_inpaint_legacy.py +2 -2
- diffusers/pipelines/deprecated/stable_diffusion_variants/pipeline_stable_diffusion_inpaint_legacy.py +11 -7
- diffusers/pipelines/deprecated/stable_diffusion_variants/pipeline_stable_diffusion_model_editing.py +1 -1
- diffusers/pipelines/deprecated/stable_diffusion_variants/pipeline_stable_diffusion_paradigms.py +1 -1
- diffusers/pipelines/deprecated/stable_diffusion_variants/pipeline_stable_diffusion_pix2pix_zero.py +1 -1
- diffusers/pipelines/deprecated/versatile_diffusion/modeling_text_unet.py +10 -105
- diffusers/pipelines/deprecated/versatile_diffusion/pipeline_versatile_diffusion.py +1 -1
- diffusers/pipelines/deprecated/versatile_diffusion/pipeline_versatile_diffusion_dual_guided.py +1 -1
- diffusers/pipelines/deprecated/versatile_diffusion/pipeline_versatile_diffusion_image_variation.py +1 -1
- diffusers/pipelines/deprecated/versatile_diffusion/pipeline_versatile_diffusion_text_to_image.py +1 -1
- diffusers/pipelines/dit/pipeline_dit.py +15 -2
- diffusers/pipelines/easyanimate/__init__.py +52 -0
- diffusers/pipelines/easyanimate/pipeline_easyanimate.py +770 -0
- diffusers/pipelines/easyanimate/pipeline_easyanimate_control.py +994 -0
- diffusers/pipelines/easyanimate/pipeline_easyanimate_inpaint.py +1234 -0
- diffusers/pipelines/easyanimate/pipeline_output.py +20 -0
- diffusers/pipelines/flux/pipeline_flux.py +53 -21
- diffusers/pipelines/flux/pipeline_flux_control.py +9 -12
- diffusers/pipelines/flux/pipeline_flux_control_img2img.py +6 -10
- diffusers/pipelines/flux/pipeline_flux_control_inpaint.py +8 -10
- diffusers/pipelines/flux/pipeline_flux_controlnet.py +185 -13
- diffusers/pipelines/flux/pipeline_flux_controlnet_image_to_image.py +8 -10
- diffusers/pipelines/flux/pipeline_flux_controlnet_inpainting.py +16 -16
- diffusers/pipelines/flux/pipeline_flux_fill.py +107 -39
- diffusers/pipelines/flux/pipeline_flux_img2img.py +193 -15
- diffusers/pipelines/flux/pipeline_flux_inpaint.py +199 -19
- diffusers/pipelines/free_noise_utils.py +3 -3
- diffusers/pipelines/hunyuan_video/__init__.py +4 -0
- diffusers/pipelines/hunyuan_video/pipeline_hunyuan_skyreels_image2video.py +804 -0
- diffusers/pipelines/hunyuan_video/pipeline_hunyuan_video.py +90 -23
- diffusers/pipelines/hunyuan_video/pipeline_hunyuan_video_image2video.py +924 -0
- diffusers/pipelines/hunyuandit/pipeline_hunyuandit.py +3 -5
- diffusers/pipelines/i2vgen_xl/pipeline_i2vgen_xl.py +13 -1
- diffusers/pipelines/kandinsky/pipeline_kandinsky.py +12 -0
- diffusers/pipelines/kandinsky/pipeline_kandinsky_combined.py +1 -1
- diffusers/pipelines/kandinsky/pipeline_kandinsky_img2img.py +12 -0
- diffusers/pipelines/kandinsky/pipeline_kandinsky_inpaint.py +13 -1
- diffusers/pipelines/kandinsky/pipeline_kandinsky_prior.py +12 -0
- diffusers/pipelines/kandinsky2_2/pipeline_kandinsky2_2.py +12 -1
- diffusers/pipelines/kandinsky2_2/pipeline_kandinsky2_2_controlnet.py +13 -0
- diffusers/pipelines/kandinsky2_2/pipeline_kandinsky2_2_controlnet_img2img.py +12 -0
- diffusers/pipelines/kandinsky2_2/pipeline_kandinsky2_2_img2img.py +12 -1
- diffusers/pipelines/kandinsky2_2/pipeline_kandinsky2_2_inpainting.py +12 -1
- diffusers/pipelines/kandinsky2_2/pipeline_kandinsky2_2_prior.py +12 -0
- diffusers/pipelines/kandinsky2_2/pipeline_kandinsky2_2_prior_emb2emb.py +12 -0
- diffusers/pipelines/kandinsky3/pipeline_kandinsky3.py +12 -0
- diffusers/pipelines/kandinsky3/pipeline_kandinsky3_img2img.py +12 -0
- diffusers/pipelines/kolors/pipeline_kolors.py +10 -8
- diffusers/pipelines/kolors/pipeline_kolors_img2img.py +6 -4
- diffusers/pipelines/kolors/text_encoder.py +7 -34
- diffusers/pipelines/latent_consistency_models/pipeline_latent_consistency_img2img.py +12 -1
- diffusers/pipelines/latent_consistency_models/pipeline_latent_consistency_text2img.py +13 -1
- diffusers/pipelines/latent_diffusion/pipeline_latent_diffusion.py +14 -13
- diffusers/pipelines/latent_diffusion/pipeline_latent_diffusion_superresolution.py +12 -1
- diffusers/pipelines/latte/pipeline_latte.py +36 -7
- diffusers/pipelines/ledits_pp/pipeline_leditspp_stable_diffusion.py +67 -13
- diffusers/pipelines/ledits_pp/pipeline_leditspp_stable_diffusion_xl.py +60 -15
- diffusers/pipelines/ltx/__init__.py +2 -0
- diffusers/pipelines/ltx/pipeline_ltx.py +25 -13
- diffusers/pipelines/ltx/pipeline_ltx_condition.py +1194 -0
- diffusers/pipelines/ltx/pipeline_ltx_image2video.py +31 -17
- diffusers/pipelines/lumina/__init__.py +2 -2
- diffusers/pipelines/lumina/pipeline_lumina.py +83 -20
- diffusers/pipelines/lumina2/__init__.py +48 -0
- diffusers/pipelines/lumina2/pipeline_lumina2.py +790 -0
- diffusers/pipelines/marigold/__init__.py +2 -0
- diffusers/pipelines/marigold/marigold_image_processing.py +127 -14
- diffusers/pipelines/marigold/pipeline_marigold_depth.py +31 -16
- diffusers/pipelines/marigold/pipeline_marigold_intrinsics.py +721 -0
- diffusers/pipelines/marigold/pipeline_marigold_normals.py +31 -16
- diffusers/pipelines/mochi/pipeline_mochi.py +14 -18
- diffusers/pipelines/musicldm/pipeline_musicldm.py +16 -1
- diffusers/pipelines/omnigen/__init__.py +50 -0
- diffusers/pipelines/omnigen/pipeline_omnigen.py +512 -0
- diffusers/pipelines/omnigen/processor_omnigen.py +327 -0
- diffusers/pipelines/onnx_utils.py +5 -3
- diffusers/pipelines/pag/pag_utils.py +1 -1
- diffusers/pipelines/pag/pipeline_pag_controlnet_sd.py +12 -1
- diffusers/pipelines/pag/pipeline_pag_controlnet_sd_inpaint.py +15 -4
- diffusers/pipelines/pag/pipeline_pag_controlnet_sd_xl.py +20 -3
- diffusers/pipelines/pag/pipeline_pag_controlnet_sd_xl_img2img.py +20 -3
- diffusers/pipelines/pag/pipeline_pag_hunyuandit.py +1 -3
- diffusers/pipelines/pag/pipeline_pag_kolors.py +6 -4
- diffusers/pipelines/pag/pipeline_pag_pixart_sigma.py +16 -3
- diffusers/pipelines/pag/pipeline_pag_sana.py +65 -8
- diffusers/pipelines/pag/pipeline_pag_sd.py +23 -7
- diffusers/pipelines/pag/pipeline_pag_sd_3.py +3 -5
- diffusers/pipelines/pag/pipeline_pag_sd_3_img2img.py +3 -5
- diffusers/pipelines/pag/pipeline_pag_sd_animatediff.py +13 -1
- diffusers/pipelines/pag/pipeline_pag_sd_img2img.py +23 -7
- diffusers/pipelines/pag/pipeline_pag_sd_inpaint.py +26 -10
- diffusers/pipelines/pag/pipeline_pag_sd_xl.py +12 -4
- diffusers/pipelines/pag/pipeline_pag_sd_xl_img2img.py +7 -3
- diffusers/pipelines/pag/pipeline_pag_sd_xl_inpaint.py +10 -6
- diffusers/pipelines/paint_by_example/pipeline_paint_by_example.py +13 -3
- diffusers/pipelines/pia/pipeline_pia.py +13 -1
- diffusers/pipelines/pipeline_flax_utils.py +7 -7
- diffusers/pipelines/pipeline_loading_utils.py +193 -83
- diffusers/pipelines/pipeline_utils.py +221 -106
- diffusers/pipelines/pixart_alpha/pipeline_pixart_alpha.py +17 -5
- diffusers/pipelines/pixart_alpha/pipeline_pixart_sigma.py +17 -4
- diffusers/pipelines/sana/__init__.py +2 -0
- diffusers/pipelines/sana/pipeline_sana.py +183 -58
- diffusers/pipelines/sana/pipeline_sana_sprint.py +889 -0
- diffusers/pipelines/semantic_stable_diffusion/pipeline_semantic_stable_diffusion.py +12 -2
- diffusers/pipelines/shap_e/pipeline_shap_e.py +12 -0
- diffusers/pipelines/shap_e/pipeline_shap_e_img2img.py +12 -0
- diffusers/pipelines/shap_e/renderer.py +6 -6
- diffusers/pipelines/stable_audio/pipeline_stable_audio.py +1 -1
- diffusers/pipelines/stable_cascade/pipeline_stable_cascade.py +15 -4
- diffusers/pipelines/stable_cascade/pipeline_stable_cascade_combined.py +12 -8
- diffusers/pipelines/stable_cascade/pipeline_stable_cascade_prior.py +12 -1
- diffusers/pipelines/stable_diffusion/convert_from_ckpt.py +3 -2
- diffusers/pipelines/stable_diffusion/pipeline_flax_stable_diffusion.py +14 -10
- diffusers/pipelines/stable_diffusion/pipeline_flax_stable_diffusion_img2img.py +3 -3
- diffusers/pipelines/stable_diffusion/pipeline_flax_stable_diffusion_inpaint.py +14 -10
- diffusers/pipelines/stable_diffusion/pipeline_onnx_stable_diffusion.py +2 -2
- diffusers/pipelines/stable_diffusion/pipeline_onnx_stable_diffusion_img2img.py +4 -3
- diffusers/pipelines/stable_diffusion/pipeline_onnx_stable_diffusion_inpaint.py +5 -4
- diffusers/pipelines/stable_diffusion/pipeline_onnx_stable_diffusion_upscale.py +2 -2
- diffusers/pipelines/stable_diffusion/pipeline_stable_diffusion.py +18 -13
- diffusers/pipelines/stable_diffusion/pipeline_stable_diffusion_depth2img.py +30 -8
- diffusers/pipelines/stable_diffusion/pipeline_stable_diffusion_image_variation.py +24 -10
- diffusers/pipelines/stable_diffusion/pipeline_stable_diffusion_img2img.py +28 -12
- diffusers/pipelines/stable_diffusion/pipeline_stable_diffusion_inpaint.py +39 -18
- diffusers/pipelines/stable_diffusion/pipeline_stable_diffusion_instruct_pix2pix.py +17 -6
- diffusers/pipelines/stable_diffusion/pipeline_stable_diffusion_latent_upscale.py +13 -3
- diffusers/pipelines/stable_diffusion/pipeline_stable_diffusion_upscale.py +20 -3
- diffusers/pipelines/stable_diffusion/pipeline_stable_unclip.py +14 -2
- diffusers/pipelines/stable_diffusion/pipeline_stable_unclip_img2img.py +13 -1
- diffusers/pipelines/stable_diffusion_3/pipeline_stable_diffusion_3.py +16 -17
- diffusers/pipelines/stable_diffusion_3/pipeline_stable_diffusion_3_img2img.py +136 -18
- diffusers/pipelines/stable_diffusion_3/pipeline_stable_diffusion_3_inpaint.py +150 -21
- diffusers/pipelines/stable_diffusion_attend_and_excite/pipeline_stable_diffusion_attend_and_excite.py +15 -3
- diffusers/pipelines/stable_diffusion_diffedit/pipeline_stable_diffusion_diffedit.py +26 -11
- diffusers/pipelines/stable_diffusion_gligen/pipeline_stable_diffusion_gligen.py +15 -3
- diffusers/pipelines/stable_diffusion_gligen/pipeline_stable_diffusion_gligen_text_image.py +22 -4
- diffusers/pipelines/stable_diffusion_k_diffusion/pipeline_stable_diffusion_k_diffusion.py +30 -13
- diffusers/pipelines/stable_diffusion_k_diffusion/pipeline_stable_diffusion_xl_k_diffusion.py +12 -4
- diffusers/pipelines/stable_diffusion_ldm3d/pipeline_stable_diffusion_ldm3d.py +15 -3
- diffusers/pipelines/stable_diffusion_panorama/pipeline_stable_diffusion_panorama.py +15 -3
- diffusers/pipelines/stable_diffusion_safe/pipeline_stable_diffusion_safe.py +26 -12
- diffusers/pipelines/stable_diffusion_sag/pipeline_stable_diffusion_sag.py +16 -4
- diffusers/pipelines/stable_diffusion_xl/pipeline_flax_stable_diffusion_xl.py +1 -1
- diffusers/pipelines/stable_diffusion_xl/pipeline_stable_diffusion_xl.py +12 -4
- diffusers/pipelines/stable_diffusion_xl/pipeline_stable_diffusion_xl_img2img.py +7 -3
- diffusers/pipelines/stable_diffusion_xl/pipeline_stable_diffusion_xl_inpaint.py +10 -6
- diffusers/pipelines/stable_diffusion_xl/pipeline_stable_diffusion_xl_instruct_pix2pix.py +11 -4
- diffusers/pipelines/stable_video_diffusion/pipeline_stable_video_diffusion.py +13 -2
- diffusers/pipelines/t2i_adapter/pipeline_stable_diffusion_adapter.py +18 -4
- diffusers/pipelines/t2i_adapter/pipeline_stable_diffusion_xl_adapter.py +26 -5
- diffusers/pipelines/text_to_video_synthesis/pipeline_text_to_video_synth.py +13 -1
- diffusers/pipelines/text_to_video_synthesis/pipeline_text_to_video_synth_img2img.py +13 -1
- diffusers/pipelines/text_to_video_synthesis/pipeline_text_to_video_zero.py +28 -6
- diffusers/pipelines/text_to_video_synthesis/pipeline_text_to_video_zero_sdxl.py +26 -4
- diffusers/pipelines/transformers_loading_utils.py +121 -0
- diffusers/pipelines/unclip/pipeline_unclip.py +11 -1
- diffusers/pipelines/unclip/pipeline_unclip_image_variation.py +11 -1
- diffusers/pipelines/unidiffuser/pipeline_unidiffuser.py +19 -2
- diffusers/pipelines/wan/__init__.py +51 -0
- diffusers/pipelines/wan/pipeline_output.py +20 -0
- diffusers/pipelines/wan/pipeline_wan.py +593 -0
- diffusers/pipelines/wan/pipeline_wan_i2v.py +722 -0
- diffusers/pipelines/wan/pipeline_wan_video2video.py +725 -0
- diffusers/pipelines/wuerstchen/modeling_wuerstchen_prior.py +7 -31
- diffusers/pipelines/wuerstchen/pipeline_wuerstchen.py +12 -1
- diffusers/pipelines/wuerstchen/pipeline_wuerstchen_prior.py +12 -1
- diffusers/quantizers/auto.py +5 -1
- diffusers/quantizers/base.py +5 -9
- diffusers/quantizers/bitsandbytes/bnb_quantizer.py +41 -29
- diffusers/quantizers/bitsandbytes/utils.py +30 -20
- diffusers/quantizers/gguf/gguf_quantizer.py +1 -0
- diffusers/quantizers/gguf/utils.py +4 -2
- diffusers/quantizers/quantization_config.py +59 -4
- diffusers/quantizers/quanto/__init__.py +1 -0
- diffusers/quantizers/quanto/quanto_quantizer.py +177 -0
- diffusers/quantizers/quanto/utils.py +60 -0
- diffusers/quantizers/torchao/__init__.py +1 -1
- diffusers/quantizers/torchao/torchao_quantizer.py +47 -2
- diffusers/schedulers/__init__.py +2 -1
- diffusers/schedulers/scheduling_consistency_models.py +1 -2
- diffusers/schedulers/scheduling_ddim_inverse.py +1 -1
- diffusers/schedulers/scheduling_ddpm.py +2 -3
- diffusers/schedulers/scheduling_ddpm_parallel.py +1 -2
- diffusers/schedulers/scheduling_dpmsolver_multistep.py +12 -4
- diffusers/schedulers/scheduling_edm_euler.py +45 -10
- diffusers/schedulers/scheduling_flow_match_euler_discrete.py +116 -28
- diffusers/schedulers/scheduling_flow_match_heun_discrete.py +7 -6
- diffusers/schedulers/scheduling_heun_discrete.py +1 -1
- diffusers/schedulers/scheduling_lcm.py +1 -2
- diffusers/schedulers/scheduling_lms_discrete.py +1 -1
- diffusers/schedulers/scheduling_repaint.py +5 -1
- diffusers/schedulers/scheduling_scm.py +265 -0
- diffusers/schedulers/scheduling_tcd.py +1 -2
- diffusers/schedulers/scheduling_utils.py +2 -1
- diffusers/training_utils.py +14 -7
- diffusers/utils/__init__.py +10 -2
- diffusers/utils/constants.py +13 -1
- diffusers/utils/deprecation_utils.py +1 -1
- diffusers/utils/dummy_bitsandbytes_objects.py +17 -0
- diffusers/utils/dummy_gguf_objects.py +17 -0
- diffusers/utils/dummy_optimum_quanto_objects.py +17 -0
- diffusers/utils/dummy_pt_objects.py +233 -0
- diffusers/utils/dummy_torch_and_transformers_and_opencv_objects.py +17 -0
- diffusers/utils/dummy_torch_and_transformers_objects.py +270 -0
- diffusers/utils/dummy_torchao_objects.py +17 -0
- diffusers/utils/dynamic_modules_utils.py +1 -1
- diffusers/utils/export_utils.py +28 -3
- diffusers/utils/hub_utils.py +52 -102
- diffusers/utils/import_utils.py +121 -221
- diffusers/utils/loading_utils.py +14 -1
- diffusers/utils/logging.py +1 -2
- diffusers/utils/peft_utils.py +6 -14
- diffusers/utils/remote_utils.py +425 -0
- diffusers/utils/source_code_parsing_utils.py +52 -0
- diffusers/utils/state_dict_utils.py +15 -1
- diffusers/utils/testing_utils.py +243 -13
- diffusers/utils/torch_utils.py +10 -0
- diffusers/utils/typing_utils.py +91 -0
- diffusers/video_processor.py +1 -1
- {diffusers-0.32.1.dist-info → diffusers-0.33.0.dist-info}/METADATA +76 -44
- diffusers-0.33.0.dist-info/RECORD +608 -0
- {diffusers-0.32.1.dist-info → diffusers-0.33.0.dist-info}/WHEEL +1 -1
- diffusers-0.32.1.dist-info/RECORD +0 -550
- {diffusers-0.32.1.dist-info → diffusers-0.33.0.dist-info}/LICENSE +0 -0
- {diffusers-0.32.1.dist-info → diffusers-0.33.0.dist-info}/entry_points.txt +0 -0
- {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.
|
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": [
|
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
|
-
|
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()
|
diffusers/configuration_utils.py
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
# coding=utf-8
|
2
|
-
# Copyright
|
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(
|
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
|
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
|
-
|
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(
|
556
|
-
|
557
|
-
|
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.
|
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.
|
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
|