diffusers 0.33.1__py3-none-any.whl → 0.35.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 +145 -1
- diffusers/callbacks.py +35 -0
- diffusers/commands/__init__.py +1 -1
- diffusers/commands/custom_blocks.py +134 -0
- diffusers/commands/diffusers_cli.py +3 -1
- diffusers/commands/env.py +1 -1
- diffusers/commands/fp16_safetensors.py +2 -2
- diffusers/configuration_utils.py +11 -2
- diffusers/dependency_versions_check.py +1 -1
- diffusers/dependency_versions_table.py +3 -3
- diffusers/experimental/rl/value_guided_sampling.py +1 -1
- diffusers/guiders/__init__.py +41 -0
- diffusers/guiders/adaptive_projected_guidance.py +188 -0
- diffusers/guiders/auto_guidance.py +190 -0
- diffusers/guiders/classifier_free_guidance.py +141 -0
- diffusers/guiders/classifier_free_zero_star_guidance.py +152 -0
- diffusers/guiders/frequency_decoupled_guidance.py +327 -0
- diffusers/guiders/guider_utils.py +309 -0
- diffusers/guiders/perturbed_attention_guidance.py +271 -0
- diffusers/guiders/skip_layer_guidance.py +262 -0
- diffusers/guiders/smoothed_energy_guidance.py +251 -0
- diffusers/guiders/tangential_classifier_free_guidance.py +143 -0
- diffusers/hooks/__init__.py +17 -0
- diffusers/hooks/_common.py +56 -0
- diffusers/hooks/_helpers.py +293 -0
- diffusers/hooks/faster_cache.py +9 -8
- diffusers/hooks/first_block_cache.py +259 -0
- diffusers/hooks/group_offloading.py +332 -227
- diffusers/hooks/hooks.py +58 -3
- diffusers/hooks/layer_skip.py +263 -0
- diffusers/hooks/layerwise_casting.py +5 -10
- diffusers/hooks/pyramid_attention_broadcast.py +15 -12
- diffusers/hooks/smoothed_energy_guidance_utils.py +167 -0
- diffusers/hooks/utils.py +43 -0
- diffusers/image_processor.py +7 -2
- diffusers/loaders/__init__.py +10 -0
- diffusers/loaders/ip_adapter.py +260 -18
- diffusers/loaders/lora_base.py +261 -127
- diffusers/loaders/lora_conversion_utils.py +657 -35
- diffusers/loaders/lora_pipeline.py +2778 -1246
- diffusers/loaders/peft.py +78 -112
- diffusers/loaders/single_file.py +2 -2
- diffusers/loaders/single_file_model.py +64 -15
- diffusers/loaders/single_file_utils.py +395 -7
- diffusers/loaders/textual_inversion.py +3 -2
- diffusers/loaders/transformer_flux.py +10 -11
- diffusers/loaders/transformer_sd3.py +8 -3
- diffusers/loaders/unet.py +24 -21
- diffusers/loaders/unet_loader_utils.py +6 -3
- diffusers/loaders/utils.py +1 -1
- diffusers/models/__init__.py +23 -1
- diffusers/models/activations.py +5 -5
- diffusers/models/adapter.py +2 -3
- diffusers/models/attention.py +488 -7
- diffusers/models/attention_dispatch.py +1218 -0
- diffusers/models/attention_flax.py +10 -10
- diffusers/models/attention_processor.py +113 -667
- diffusers/models/auto_model.py +49 -12
- diffusers/models/autoencoders/__init__.py +2 -0
- diffusers/models/autoencoders/autoencoder_asym_kl.py +4 -4
- diffusers/models/autoencoders/autoencoder_dc.py +17 -4
- diffusers/models/autoencoders/autoencoder_kl.py +5 -5
- diffusers/models/autoencoders/autoencoder_kl_allegro.py +4 -4
- diffusers/models/autoencoders/autoencoder_kl_cogvideox.py +6 -6
- diffusers/models/autoencoders/autoencoder_kl_cosmos.py +1110 -0
- diffusers/models/autoencoders/autoencoder_kl_hunyuan_video.py +2 -2
- diffusers/models/autoencoders/autoencoder_kl_ltx.py +3 -3
- diffusers/models/autoencoders/autoencoder_kl_magvit.py +4 -4
- diffusers/models/autoencoders/autoencoder_kl_mochi.py +3 -3
- diffusers/models/autoencoders/autoencoder_kl_qwenimage.py +1070 -0
- diffusers/models/autoencoders/autoencoder_kl_temporal_decoder.py +4 -4
- diffusers/models/autoencoders/autoencoder_kl_wan.py +626 -62
- diffusers/models/autoencoders/autoencoder_oobleck.py +1 -1
- diffusers/models/autoencoders/autoencoder_tiny.py +3 -3
- diffusers/models/autoencoders/consistency_decoder_vae.py +1 -1
- diffusers/models/autoencoders/vae.py +13 -2
- diffusers/models/autoencoders/vq_model.py +2 -2
- diffusers/models/cache_utils.py +32 -10
- diffusers/models/controlnet.py +1 -1
- diffusers/models/controlnet_flux.py +1 -1
- diffusers/models/controlnet_sd3.py +1 -1
- diffusers/models/controlnet_sparsectrl.py +1 -1
- diffusers/models/controlnets/__init__.py +1 -0
- diffusers/models/controlnets/controlnet.py +3 -3
- diffusers/models/controlnets/controlnet_flax.py +1 -1
- diffusers/models/controlnets/controlnet_flux.py +21 -20
- diffusers/models/controlnets/controlnet_hunyuan.py +2 -2
- diffusers/models/controlnets/controlnet_sana.py +290 -0
- diffusers/models/controlnets/controlnet_sd3.py +1 -1
- diffusers/models/controlnets/controlnet_sparsectrl.py +2 -2
- diffusers/models/controlnets/controlnet_union.py +5 -5
- diffusers/models/controlnets/controlnet_xs.py +7 -7
- diffusers/models/controlnets/multicontrolnet.py +4 -5
- diffusers/models/controlnets/multicontrolnet_union.py +5 -6
- diffusers/models/downsampling.py +2 -2
- diffusers/models/embeddings.py +36 -46
- diffusers/models/embeddings_flax.py +2 -2
- diffusers/models/lora.py +3 -3
- diffusers/models/model_loading_utils.py +233 -1
- diffusers/models/modeling_flax_utils.py +1 -2
- diffusers/models/modeling_utils.py +203 -108
- diffusers/models/normalization.py +4 -4
- diffusers/models/resnet.py +2 -2
- diffusers/models/resnet_flax.py +1 -1
- diffusers/models/transformers/__init__.py +7 -0
- diffusers/models/transformers/auraflow_transformer_2d.py +70 -24
- diffusers/models/transformers/cogvideox_transformer_3d.py +1 -1
- diffusers/models/transformers/consisid_transformer_3d.py +1 -1
- diffusers/models/transformers/dit_transformer_2d.py +2 -2
- diffusers/models/transformers/dual_transformer_2d.py +1 -1
- diffusers/models/transformers/hunyuan_transformer_2d.py +2 -2
- diffusers/models/transformers/latte_transformer_3d.py +4 -5
- diffusers/models/transformers/lumina_nextdit2d.py +2 -2
- diffusers/models/transformers/pixart_transformer_2d.py +3 -3
- diffusers/models/transformers/prior_transformer.py +1 -1
- diffusers/models/transformers/sana_transformer.py +8 -3
- diffusers/models/transformers/stable_audio_transformer.py +5 -9
- diffusers/models/transformers/t5_film_transformer.py +3 -3
- diffusers/models/transformers/transformer_2d.py +1 -1
- diffusers/models/transformers/transformer_allegro.py +1 -1
- diffusers/models/transformers/transformer_chroma.py +641 -0
- diffusers/models/transformers/transformer_cogview3plus.py +5 -10
- diffusers/models/transformers/transformer_cogview4.py +353 -27
- diffusers/models/transformers/transformer_cosmos.py +586 -0
- diffusers/models/transformers/transformer_flux.py +376 -138
- diffusers/models/transformers/transformer_hidream_image.py +942 -0
- diffusers/models/transformers/transformer_hunyuan_video.py +12 -8
- diffusers/models/transformers/transformer_hunyuan_video_framepack.py +416 -0
- diffusers/models/transformers/transformer_ltx.py +105 -24
- diffusers/models/transformers/transformer_lumina2.py +1 -1
- diffusers/models/transformers/transformer_mochi.py +1 -1
- diffusers/models/transformers/transformer_omnigen.py +2 -2
- diffusers/models/transformers/transformer_qwenimage.py +645 -0
- diffusers/models/transformers/transformer_sd3.py +7 -7
- diffusers/models/transformers/transformer_skyreels_v2.py +607 -0
- diffusers/models/transformers/transformer_temporal.py +1 -1
- diffusers/models/transformers/transformer_wan.py +316 -87
- diffusers/models/transformers/transformer_wan_vace.py +387 -0
- diffusers/models/unets/unet_1d.py +1 -1
- diffusers/models/unets/unet_1d_blocks.py +1 -1
- diffusers/models/unets/unet_2d.py +1 -1
- diffusers/models/unets/unet_2d_blocks.py +1 -1
- diffusers/models/unets/unet_2d_blocks_flax.py +8 -7
- diffusers/models/unets/unet_2d_condition.py +4 -3
- diffusers/models/unets/unet_2d_condition_flax.py +2 -2
- diffusers/models/unets/unet_3d_blocks.py +1 -1
- diffusers/models/unets/unet_3d_condition.py +3 -3
- diffusers/models/unets/unet_i2vgen_xl.py +3 -3
- diffusers/models/unets/unet_kandinsky3.py +1 -1
- diffusers/models/unets/unet_motion_model.py +2 -2
- diffusers/models/unets/unet_stable_cascade.py +1 -1
- diffusers/models/upsampling.py +2 -2
- diffusers/models/vae_flax.py +2 -2
- diffusers/models/vq_model.py +1 -1
- diffusers/modular_pipelines/__init__.py +83 -0
- diffusers/modular_pipelines/components_manager.py +1068 -0
- diffusers/modular_pipelines/flux/__init__.py +66 -0
- diffusers/modular_pipelines/flux/before_denoise.py +689 -0
- diffusers/modular_pipelines/flux/decoders.py +109 -0
- diffusers/modular_pipelines/flux/denoise.py +227 -0
- diffusers/modular_pipelines/flux/encoders.py +412 -0
- diffusers/modular_pipelines/flux/modular_blocks.py +181 -0
- diffusers/modular_pipelines/flux/modular_pipeline.py +59 -0
- diffusers/modular_pipelines/modular_pipeline.py +2446 -0
- diffusers/modular_pipelines/modular_pipeline_utils.py +672 -0
- diffusers/modular_pipelines/node_utils.py +665 -0
- diffusers/modular_pipelines/stable_diffusion_xl/__init__.py +77 -0
- diffusers/modular_pipelines/stable_diffusion_xl/before_denoise.py +1874 -0
- diffusers/modular_pipelines/stable_diffusion_xl/decoders.py +208 -0
- diffusers/modular_pipelines/stable_diffusion_xl/denoise.py +771 -0
- diffusers/modular_pipelines/stable_diffusion_xl/encoders.py +887 -0
- diffusers/modular_pipelines/stable_diffusion_xl/modular_blocks.py +380 -0
- diffusers/modular_pipelines/stable_diffusion_xl/modular_pipeline.py +365 -0
- diffusers/modular_pipelines/wan/__init__.py +66 -0
- diffusers/modular_pipelines/wan/before_denoise.py +365 -0
- diffusers/modular_pipelines/wan/decoders.py +105 -0
- diffusers/modular_pipelines/wan/denoise.py +261 -0
- diffusers/modular_pipelines/wan/encoders.py +242 -0
- diffusers/modular_pipelines/wan/modular_blocks.py +144 -0
- diffusers/modular_pipelines/wan/modular_pipeline.py +90 -0
- diffusers/pipelines/__init__.py +68 -6
- diffusers/pipelines/allegro/pipeline_allegro.py +11 -11
- diffusers/pipelines/amused/pipeline_amused.py +7 -6
- diffusers/pipelines/amused/pipeline_amused_img2img.py +6 -5
- diffusers/pipelines/amused/pipeline_amused_inpaint.py +6 -5
- diffusers/pipelines/animatediff/pipeline_animatediff.py +6 -6
- diffusers/pipelines/animatediff/pipeline_animatediff_controlnet.py +6 -6
- diffusers/pipelines/animatediff/pipeline_animatediff_sdxl.py +16 -15
- diffusers/pipelines/animatediff/pipeline_animatediff_sparsectrl.py +6 -6
- diffusers/pipelines/animatediff/pipeline_animatediff_video2video.py +5 -5
- diffusers/pipelines/animatediff/pipeline_animatediff_video2video_controlnet.py +5 -5
- diffusers/pipelines/audioldm/pipeline_audioldm.py +8 -7
- diffusers/pipelines/audioldm2/modeling_audioldm2.py +1 -1
- diffusers/pipelines/audioldm2/pipeline_audioldm2.py +22 -13
- diffusers/pipelines/aura_flow/pipeline_aura_flow.py +48 -11
- diffusers/pipelines/auto_pipeline.py +23 -20
- diffusers/pipelines/blip_diffusion/modeling_blip2.py +1 -1
- diffusers/pipelines/blip_diffusion/modeling_ctx_clip.py +2 -2
- diffusers/pipelines/blip_diffusion/pipeline_blip_diffusion.py +11 -10
- diffusers/pipelines/chroma/__init__.py +49 -0
- diffusers/pipelines/chroma/pipeline_chroma.py +949 -0
- diffusers/pipelines/chroma/pipeline_chroma_img2img.py +1034 -0
- diffusers/pipelines/chroma/pipeline_output.py +21 -0
- diffusers/pipelines/cogvideo/pipeline_cogvideox.py +17 -16
- diffusers/pipelines/cogvideo/pipeline_cogvideox_fun_control.py +17 -16
- diffusers/pipelines/cogvideo/pipeline_cogvideox_image2video.py +18 -17
- diffusers/pipelines/cogvideo/pipeline_cogvideox_video2video.py +17 -16
- diffusers/pipelines/cogview3/pipeline_cogview3plus.py +9 -9
- diffusers/pipelines/cogview4/pipeline_cogview4.py +23 -22
- diffusers/pipelines/cogview4/pipeline_cogview4_control.py +7 -7
- diffusers/pipelines/consisid/consisid_utils.py +2 -2
- diffusers/pipelines/consisid/pipeline_consisid.py +8 -8
- diffusers/pipelines/consistency_models/pipeline_consistency_models.py +1 -1
- diffusers/pipelines/controlnet/pipeline_controlnet.py +7 -7
- diffusers/pipelines/controlnet/pipeline_controlnet_blip_diffusion.py +11 -10
- diffusers/pipelines/controlnet/pipeline_controlnet_img2img.py +7 -7
- diffusers/pipelines/controlnet/pipeline_controlnet_inpaint.py +7 -7
- diffusers/pipelines/controlnet/pipeline_controlnet_inpaint_sd_xl.py +14 -14
- diffusers/pipelines/controlnet/pipeline_controlnet_sd_xl.py +10 -6
- diffusers/pipelines/controlnet/pipeline_controlnet_sd_xl_img2img.py +13 -13
- diffusers/pipelines/controlnet/pipeline_controlnet_union_inpaint_sd_xl.py +226 -107
- diffusers/pipelines/controlnet/pipeline_controlnet_union_sd_xl.py +12 -8
- diffusers/pipelines/controlnet/pipeline_controlnet_union_sd_xl_img2img.py +207 -105
- diffusers/pipelines/controlnet/pipeline_flax_controlnet.py +1 -1
- diffusers/pipelines/controlnet_hunyuandit/pipeline_hunyuandit_controlnet.py +8 -8
- diffusers/pipelines/controlnet_sd3/pipeline_stable_diffusion_3_controlnet.py +7 -7
- diffusers/pipelines/controlnet_sd3/pipeline_stable_diffusion_3_controlnet_inpainting.py +7 -7
- diffusers/pipelines/controlnet_xs/pipeline_controlnet_xs.py +12 -10
- diffusers/pipelines/controlnet_xs/pipeline_controlnet_xs_sd_xl.py +9 -7
- diffusers/pipelines/cosmos/__init__.py +54 -0
- diffusers/pipelines/cosmos/pipeline_cosmos2_text2image.py +673 -0
- diffusers/pipelines/cosmos/pipeline_cosmos2_video2world.py +792 -0
- diffusers/pipelines/cosmos/pipeline_cosmos_text2world.py +664 -0
- diffusers/pipelines/cosmos/pipeline_cosmos_video2world.py +826 -0
- diffusers/pipelines/cosmos/pipeline_output.py +40 -0
- diffusers/pipelines/dance_diffusion/pipeline_dance_diffusion.py +5 -4
- diffusers/pipelines/ddim/pipeline_ddim.py +4 -4
- diffusers/pipelines/ddpm/pipeline_ddpm.py +1 -1
- diffusers/pipelines/deepfloyd_if/pipeline_if.py +10 -10
- diffusers/pipelines/deepfloyd_if/pipeline_if_img2img.py +10 -10
- diffusers/pipelines/deepfloyd_if/pipeline_if_img2img_superresolution.py +10 -10
- diffusers/pipelines/deepfloyd_if/pipeline_if_inpainting.py +10 -10
- diffusers/pipelines/deepfloyd_if/pipeline_if_inpainting_superresolution.py +10 -10
- diffusers/pipelines/deepfloyd_if/pipeline_if_superresolution.py +10 -10
- diffusers/pipelines/deprecated/alt_diffusion/pipeline_alt_diffusion.py +8 -8
- diffusers/pipelines/deprecated/alt_diffusion/pipeline_alt_diffusion_img2img.py +5 -5
- diffusers/pipelines/deprecated/audio_diffusion/mel.py +1 -1
- diffusers/pipelines/deprecated/audio_diffusion/pipeline_audio_diffusion.py +3 -3
- diffusers/pipelines/deprecated/latent_diffusion_uncond/pipeline_latent_diffusion_uncond.py +1 -1
- diffusers/pipelines/deprecated/pndm/pipeline_pndm.py +2 -2
- diffusers/pipelines/deprecated/repaint/pipeline_repaint.py +4 -3
- diffusers/pipelines/deprecated/score_sde_ve/pipeline_score_sde_ve.py +1 -1
- diffusers/pipelines/deprecated/spectrogram_diffusion/continuous_encoder.py +1 -1
- diffusers/pipelines/deprecated/spectrogram_diffusion/midi_utils.py +1 -1
- diffusers/pipelines/deprecated/spectrogram_diffusion/notes_encoder.py +1 -1
- diffusers/pipelines/deprecated/spectrogram_diffusion/pipeline_spectrogram_diffusion.py +1 -1
- diffusers/pipelines/deprecated/stable_diffusion_variants/pipeline_cycle_diffusion.py +8 -8
- diffusers/pipelines/deprecated/stable_diffusion_variants/pipeline_onnx_stable_diffusion_inpaint_legacy.py +9 -9
- diffusers/pipelines/deprecated/stable_diffusion_variants/pipeline_stable_diffusion_inpaint_legacy.py +10 -10
- diffusers/pipelines/deprecated/stable_diffusion_variants/pipeline_stable_diffusion_model_editing.py +10 -8
- diffusers/pipelines/deprecated/stable_diffusion_variants/pipeline_stable_diffusion_paradigms.py +5 -5
- diffusers/pipelines/deprecated/stable_diffusion_variants/pipeline_stable_diffusion_pix2pix_zero.py +18 -18
- diffusers/pipelines/deprecated/stochastic_karras_ve/pipeline_stochastic_karras_ve.py +1 -1
- diffusers/pipelines/deprecated/versatile_diffusion/modeling_text_unet.py +2 -2
- diffusers/pipelines/deprecated/versatile_diffusion/pipeline_versatile_diffusion.py +6 -6
- diffusers/pipelines/deprecated/versatile_diffusion/pipeline_versatile_diffusion_dual_guided.py +5 -5
- diffusers/pipelines/deprecated/versatile_diffusion/pipeline_versatile_diffusion_image_variation.py +5 -5
- diffusers/pipelines/deprecated/versatile_diffusion/pipeline_versatile_diffusion_text_to_image.py +5 -5
- diffusers/pipelines/deprecated/vq_diffusion/pipeline_vq_diffusion.py +1 -1
- diffusers/pipelines/dit/pipeline_dit.py +4 -2
- diffusers/pipelines/easyanimate/pipeline_easyanimate.py +4 -4
- diffusers/pipelines/easyanimate/pipeline_easyanimate_control.py +4 -4
- diffusers/pipelines/easyanimate/pipeline_easyanimate_inpaint.py +7 -6
- diffusers/pipelines/flux/__init__.py +4 -0
- diffusers/pipelines/flux/modeling_flux.py +1 -1
- diffusers/pipelines/flux/pipeline_flux.py +37 -36
- diffusers/pipelines/flux/pipeline_flux_control.py +9 -9
- diffusers/pipelines/flux/pipeline_flux_control_img2img.py +7 -7
- diffusers/pipelines/flux/pipeline_flux_control_inpaint.py +7 -7
- diffusers/pipelines/flux/pipeline_flux_controlnet.py +7 -7
- diffusers/pipelines/flux/pipeline_flux_controlnet_image_to_image.py +31 -23
- diffusers/pipelines/flux/pipeline_flux_controlnet_inpainting.py +3 -2
- diffusers/pipelines/flux/pipeline_flux_fill.py +7 -7
- diffusers/pipelines/flux/pipeline_flux_img2img.py +40 -7
- diffusers/pipelines/flux/pipeline_flux_inpaint.py +12 -7
- diffusers/pipelines/flux/pipeline_flux_kontext.py +1134 -0
- diffusers/pipelines/flux/pipeline_flux_kontext_inpaint.py +1460 -0
- diffusers/pipelines/flux/pipeline_flux_prior_redux.py +2 -2
- diffusers/pipelines/flux/pipeline_output.py +6 -4
- diffusers/pipelines/free_init_utils.py +2 -2
- diffusers/pipelines/free_noise_utils.py +3 -3
- diffusers/pipelines/hidream_image/__init__.py +47 -0
- diffusers/pipelines/hidream_image/pipeline_hidream_image.py +1026 -0
- diffusers/pipelines/hidream_image/pipeline_output.py +35 -0
- diffusers/pipelines/hunyuan_video/__init__.py +2 -0
- diffusers/pipelines/hunyuan_video/pipeline_hunyuan_skyreels_image2video.py +8 -8
- diffusers/pipelines/hunyuan_video/pipeline_hunyuan_video.py +26 -25
- diffusers/pipelines/hunyuan_video/pipeline_hunyuan_video_framepack.py +1114 -0
- diffusers/pipelines/hunyuan_video/pipeline_hunyuan_video_image2video.py +71 -15
- diffusers/pipelines/hunyuan_video/pipeline_output.py +19 -0
- diffusers/pipelines/hunyuandit/pipeline_hunyuandit.py +8 -8
- diffusers/pipelines/i2vgen_xl/pipeline_i2vgen_xl.py +10 -8
- diffusers/pipelines/kandinsky/pipeline_kandinsky.py +6 -6
- diffusers/pipelines/kandinsky/pipeline_kandinsky_combined.py +34 -34
- diffusers/pipelines/kandinsky/pipeline_kandinsky_img2img.py +19 -26
- diffusers/pipelines/kandinsky/pipeline_kandinsky_inpaint.py +7 -7
- diffusers/pipelines/kandinsky/pipeline_kandinsky_prior.py +11 -11
- diffusers/pipelines/kandinsky2_2/pipeline_kandinsky2_2.py +6 -6
- diffusers/pipelines/kandinsky2_2/pipeline_kandinsky2_2_combined.py +35 -35
- diffusers/pipelines/kandinsky2_2/pipeline_kandinsky2_2_controlnet.py +6 -6
- diffusers/pipelines/kandinsky2_2/pipeline_kandinsky2_2_controlnet_img2img.py +17 -39
- diffusers/pipelines/kandinsky2_2/pipeline_kandinsky2_2_img2img.py +17 -45
- diffusers/pipelines/kandinsky2_2/pipeline_kandinsky2_2_inpainting.py +7 -7
- diffusers/pipelines/kandinsky2_2/pipeline_kandinsky2_2_prior.py +10 -10
- diffusers/pipelines/kandinsky2_2/pipeline_kandinsky2_2_prior_emb2emb.py +10 -10
- diffusers/pipelines/kandinsky3/pipeline_kandinsky3.py +7 -7
- diffusers/pipelines/kandinsky3/pipeline_kandinsky3_img2img.py +17 -38
- diffusers/pipelines/kolors/pipeline_kolors.py +10 -10
- diffusers/pipelines/kolors/pipeline_kolors_img2img.py +12 -12
- diffusers/pipelines/kolors/text_encoder.py +3 -3
- diffusers/pipelines/kolors/tokenizer.py +1 -1
- diffusers/pipelines/latent_consistency_models/pipeline_latent_consistency_img2img.py +2 -2
- diffusers/pipelines/latent_consistency_models/pipeline_latent_consistency_text2img.py +2 -2
- diffusers/pipelines/latent_diffusion/pipeline_latent_diffusion.py +1 -1
- diffusers/pipelines/latent_diffusion/pipeline_latent_diffusion_superresolution.py +3 -3
- diffusers/pipelines/latte/pipeline_latte.py +12 -12
- diffusers/pipelines/ledits_pp/pipeline_leditspp_stable_diffusion.py +13 -13
- diffusers/pipelines/ledits_pp/pipeline_leditspp_stable_diffusion_xl.py +17 -16
- diffusers/pipelines/ltx/__init__.py +4 -0
- diffusers/pipelines/ltx/modeling_latent_upsampler.py +188 -0
- diffusers/pipelines/ltx/pipeline_ltx.py +64 -18
- diffusers/pipelines/ltx/pipeline_ltx_condition.py +117 -38
- diffusers/pipelines/ltx/pipeline_ltx_image2video.py +63 -18
- diffusers/pipelines/ltx/pipeline_ltx_latent_upsample.py +277 -0
- diffusers/pipelines/lumina/pipeline_lumina.py +13 -13
- diffusers/pipelines/lumina2/pipeline_lumina2.py +10 -10
- diffusers/pipelines/marigold/marigold_image_processing.py +2 -2
- diffusers/pipelines/mochi/pipeline_mochi.py +15 -14
- diffusers/pipelines/musicldm/pipeline_musicldm.py +16 -13
- diffusers/pipelines/omnigen/pipeline_omnigen.py +13 -11
- diffusers/pipelines/omnigen/processor_omnigen.py +8 -3
- diffusers/pipelines/onnx_utils.py +15 -2
- diffusers/pipelines/pag/pag_utils.py +2 -2
- diffusers/pipelines/pag/pipeline_pag_controlnet_sd.py +12 -8
- diffusers/pipelines/pag/pipeline_pag_controlnet_sd_inpaint.py +7 -7
- diffusers/pipelines/pag/pipeline_pag_controlnet_sd_xl.py +10 -6
- diffusers/pipelines/pag/pipeline_pag_controlnet_sd_xl_img2img.py +14 -14
- diffusers/pipelines/pag/pipeline_pag_hunyuandit.py +8 -8
- diffusers/pipelines/pag/pipeline_pag_kolors.py +10 -10
- diffusers/pipelines/pag/pipeline_pag_pixart_sigma.py +11 -11
- diffusers/pipelines/pag/pipeline_pag_sana.py +18 -12
- diffusers/pipelines/pag/pipeline_pag_sd.py +8 -8
- diffusers/pipelines/pag/pipeline_pag_sd_3.py +7 -7
- diffusers/pipelines/pag/pipeline_pag_sd_3_img2img.py +7 -7
- diffusers/pipelines/pag/pipeline_pag_sd_animatediff.py +6 -6
- diffusers/pipelines/pag/pipeline_pag_sd_img2img.py +5 -5
- diffusers/pipelines/pag/pipeline_pag_sd_inpaint.py +8 -8
- diffusers/pipelines/pag/pipeline_pag_sd_xl.py +16 -15
- diffusers/pipelines/pag/pipeline_pag_sd_xl_img2img.py +18 -17
- diffusers/pipelines/pag/pipeline_pag_sd_xl_inpaint.py +12 -12
- diffusers/pipelines/paint_by_example/image_encoder.py +1 -1
- diffusers/pipelines/paint_by_example/pipeline_paint_by_example.py +8 -7
- diffusers/pipelines/pia/pipeline_pia.py +8 -6
- diffusers/pipelines/pipeline_flax_utils.py +5 -6
- diffusers/pipelines/pipeline_loading_utils.py +113 -15
- diffusers/pipelines/pipeline_utils.py +127 -48
- diffusers/pipelines/pixart_alpha/pipeline_pixart_alpha.py +14 -12
- diffusers/pipelines/pixart_alpha/pipeline_pixart_sigma.py +31 -11
- diffusers/pipelines/qwenimage/__init__.py +55 -0
- diffusers/pipelines/qwenimage/pipeline_output.py +21 -0
- diffusers/pipelines/qwenimage/pipeline_qwenimage.py +726 -0
- diffusers/pipelines/qwenimage/pipeline_qwenimage_edit.py +882 -0
- diffusers/pipelines/qwenimage/pipeline_qwenimage_img2img.py +829 -0
- diffusers/pipelines/qwenimage/pipeline_qwenimage_inpaint.py +1015 -0
- diffusers/pipelines/sana/__init__.py +4 -0
- diffusers/pipelines/sana/pipeline_sana.py +23 -21
- diffusers/pipelines/sana/pipeline_sana_controlnet.py +1106 -0
- diffusers/pipelines/sana/pipeline_sana_sprint.py +23 -19
- diffusers/pipelines/sana/pipeline_sana_sprint_img2img.py +981 -0
- diffusers/pipelines/semantic_stable_diffusion/pipeline_semantic_stable_diffusion.py +7 -6
- diffusers/pipelines/shap_e/camera.py +1 -1
- diffusers/pipelines/shap_e/pipeline_shap_e.py +1 -1
- diffusers/pipelines/shap_e/pipeline_shap_e_img2img.py +1 -1
- diffusers/pipelines/shap_e/renderer.py +3 -3
- diffusers/pipelines/skyreels_v2/__init__.py +59 -0
- diffusers/pipelines/skyreels_v2/pipeline_output.py +20 -0
- diffusers/pipelines/skyreels_v2/pipeline_skyreels_v2.py +610 -0
- diffusers/pipelines/skyreels_v2/pipeline_skyreels_v2_diffusion_forcing.py +978 -0
- diffusers/pipelines/skyreels_v2/pipeline_skyreels_v2_diffusion_forcing_i2v.py +1059 -0
- diffusers/pipelines/skyreels_v2/pipeline_skyreels_v2_diffusion_forcing_v2v.py +1063 -0
- diffusers/pipelines/skyreels_v2/pipeline_skyreels_v2_i2v.py +745 -0
- diffusers/pipelines/stable_audio/modeling_stable_audio.py +1 -1
- diffusers/pipelines/stable_audio/pipeline_stable_audio.py +5 -5
- diffusers/pipelines/stable_cascade/pipeline_stable_cascade.py +8 -8
- diffusers/pipelines/stable_cascade/pipeline_stable_cascade_combined.py +13 -13
- diffusers/pipelines/stable_cascade/pipeline_stable_cascade_prior.py +9 -9
- diffusers/pipelines/stable_diffusion/__init__.py +0 -7
- diffusers/pipelines/stable_diffusion/clip_image_project_model.py +1 -1
- diffusers/pipelines/stable_diffusion/convert_from_ckpt.py +11 -4
- diffusers/pipelines/stable_diffusion/pipeline_flax_stable_diffusion.py +1 -1
- diffusers/pipelines/stable_diffusion/pipeline_flax_stable_diffusion_img2img.py +1 -1
- diffusers/pipelines/stable_diffusion/pipeline_flax_stable_diffusion_inpaint.py +1 -1
- diffusers/pipelines/stable_diffusion/pipeline_onnx_stable_diffusion.py +12 -11
- diffusers/pipelines/stable_diffusion/pipeline_onnx_stable_diffusion_img2img.py +10 -10
- diffusers/pipelines/stable_diffusion/pipeline_onnx_stable_diffusion_inpaint.py +11 -11
- diffusers/pipelines/stable_diffusion/pipeline_onnx_stable_diffusion_upscale.py +10 -10
- diffusers/pipelines/stable_diffusion/pipeline_stable_diffusion.py +10 -9
- diffusers/pipelines/stable_diffusion/pipeline_stable_diffusion_depth2img.py +5 -5
- diffusers/pipelines/stable_diffusion/pipeline_stable_diffusion_image_variation.py +5 -5
- diffusers/pipelines/stable_diffusion/pipeline_stable_diffusion_img2img.py +5 -5
- diffusers/pipelines/stable_diffusion/pipeline_stable_diffusion_inpaint.py +5 -5
- diffusers/pipelines/stable_diffusion/pipeline_stable_diffusion_instruct_pix2pix.py +5 -5
- diffusers/pipelines/stable_diffusion/pipeline_stable_diffusion_latent_upscale.py +4 -4
- diffusers/pipelines/stable_diffusion/pipeline_stable_diffusion_upscale.py +5 -5
- diffusers/pipelines/stable_diffusion/pipeline_stable_unclip.py +7 -7
- diffusers/pipelines/stable_diffusion/pipeline_stable_unclip_img2img.py +5 -5
- diffusers/pipelines/stable_diffusion/safety_checker.py +1 -1
- diffusers/pipelines/stable_diffusion/safety_checker_flax.py +1 -1
- diffusers/pipelines/stable_diffusion/stable_unclip_image_normalizer.py +1 -1
- diffusers/pipelines/stable_diffusion_3/pipeline_stable_diffusion_3.py +13 -12
- diffusers/pipelines/stable_diffusion_3/pipeline_stable_diffusion_3_img2img.py +7 -7
- diffusers/pipelines/stable_diffusion_3/pipeline_stable_diffusion_3_inpaint.py +7 -7
- diffusers/pipelines/stable_diffusion_attend_and_excite/pipeline_stable_diffusion_attend_and_excite.py +12 -8
- diffusers/pipelines/stable_diffusion_diffedit/pipeline_stable_diffusion_diffedit.py +15 -9
- diffusers/pipelines/stable_diffusion_gligen/pipeline_stable_diffusion_gligen.py +11 -9
- diffusers/pipelines/stable_diffusion_gligen/pipeline_stable_diffusion_gligen_text_image.py +11 -9
- diffusers/pipelines/stable_diffusion_k_diffusion/pipeline_stable_diffusion_k_diffusion.py +18 -12
- diffusers/pipelines/stable_diffusion_k_diffusion/pipeline_stable_diffusion_xl_k_diffusion.py +11 -8
- diffusers/pipelines/stable_diffusion_ldm3d/pipeline_stable_diffusion_ldm3d.py +11 -8
- diffusers/pipelines/stable_diffusion_panorama/pipeline_stable_diffusion_panorama.py +15 -12
- diffusers/pipelines/stable_diffusion_safe/pipeline_stable_diffusion_safe.py +8 -6
- diffusers/pipelines/stable_diffusion_safe/safety_checker.py +1 -1
- diffusers/pipelines/stable_diffusion_sag/pipeline_stable_diffusion_sag.py +15 -11
- diffusers/pipelines/stable_diffusion_xl/pipeline_flax_stable_diffusion_xl.py +1 -1
- diffusers/pipelines/stable_diffusion_xl/pipeline_stable_diffusion_xl.py +16 -15
- diffusers/pipelines/stable_diffusion_xl/pipeline_stable_diffusion_xl_img2img.py +18 -17
- diffusers/pipelines/stable_diffusion_xl/pipeline_stable_diffusion_xl_inpaint.py +12 -12
- diffusers/pipelines/stable_diffusion_xl/pipeline_stable_diffusion_xl_instruct_pix2pix.py +16 -15
- diffusers/pipelines/stable_video_diffusion/pipeline_stable_video_diffusion.py +3 -3
- diffusers/pipelines/t2i_adapter/pipeline_stable_diffusion_adapter.py +12 -12
- diffusers/pipelines/t2i_adapter/pipeline_stable_diffusion_xl_adapter.py +18 -17
- diffusers/pipelines/text_to_video_synthesis/pipeline_text_to_video_synth.py +12 -7
- diffusers/pipelines/text_to_video_synthesis/pipeline_text_to_video_synth_img2img.py +12 -7
- diffusers/pipelines/text_to_video_synthesis/pipeline_text_to_video_zero.py +15 -13
- diffusers/pipelines/text_to_video_synthesis/pipeline_text_to_video_zero_sdxl.py +24 -21
- diffusers/pipelines/unclip/pipeline_unclip.py +4 -3
- diffusers/pipelines/unclip/pipeline_unclip_image_variation.py +4 -3
- diffusers/pipelines/unclip/text_proj.py +2 -2
- diffusers/pipelines/unidiffuser/modeling_text_decoder.py +2 -2
- diffusers/pipelines/unidiffuser/modeling_uvit.py +1 -1
- diffusers/pipelines/unidiffuser/pipeline_unidiffuser.py +8 -7
- diffusers/pipelines/visualcloze/__init__.py +52 -0
- diffusers/pipelines/visualcloze/pipeline_visualcloze_combined.py +444 -0
- diffusers/pipelines/visualcloze/pipeline_visualcloze_generation.py +952 -0
- diffusers/pipelines/visualcloze/visualcloze_utils.py +251 -0
- diffusers/pipelines/wan/__init__.py +2 -0
- diffusers/pipelines/wan/pipeline_wan.py +91 -30
- diffusers/pipelines/wan/pipeline_wan_i2v.py +145 -45
- diffusers/pipelines/wan/pipeline_wan_vace.py +975 -0
- diffusers/pipelines/wan/pipeline_wan_video2video.py +14 -16
- diffusers/pipelines/wuerstchen/modeling_paella_vq_model.py +1 -1
- diffusers/pipelines/wuerstchen/modeling_wuerstchen_diffnext.py +1 -1
- diffusers/pipelines/wuerstchen/modeling_wuerstchen_prior.py +1 -1
- diffusers/pipelines/wuerstchen/pipeline_wuerstchen.py +8 -8
- diffusers/pipelines/wuerstchen/pipeline_wuerstchen_combined.py +16 -15
- diffusers/pipelines/wuerstchen/pipeline_wuerstchen_prior.py +6 -6
- diffusers/quantizers/__init__.py +3 -1
- diffusers/quantizers/base.py +17 -1
- diffusers/quantizers/bitsandbytes/bnb_quantizer.py +4 -0
- diffusers/quantizers/bitsandbytes/utils.py +10 -7
- diffusers/quantizers/gguf/gguf_quantizer.py +13 -4
- diffusers/quantizers/gguf/utils.py +108 -16
- diffusers/quantizers/pipe_quant_config.py +202 -0
- diffusers/quantizers/quantization_config.py +18 -16
- diffusers/quantizers/quanto/quanto_quantizer.py +4 -0
- diffusers/quantizers/torchao/torchao_quantizer.py +31 -1
- diffusers/schedulers/__init__.py +3 -1
- diffusers/schedulers/deprecated/scheduling_karras_ve.py +4 -3
- diffusers/schedulers/deprecated/scheduling_sde_vp.py +1 -1
- diffusers/schedulers/scheduling_consistency_models.py +1 -1
- diffusers/schedulers/scheduling_cosine_dpmsolver_multistep.py +10 -5
- diffusers/schedulers/scheduling_ddim.py +8 -8
- diffusers/schedulers/scheduling_ddim_cogvideox.py +5 -5
- diffusers/schedulers/scheduling_ddim_flax.py +6 -6
- diffusers/schedulers/scheduling_ddim_inverse.py +6 -6
- diffusers/schedulers/scheduling_ddim_parallel.py +22 -22
- diffusers/schedulers/scheduling_ddpm.py +9 -9
- diffusers/schedulers/scheduling_ddpm_flax.py +7 -7
- diffusers/schedulers/scheduling_ddpm_parallel.py +18 -18
- diffusers/schedulers/scheduling_ddpm_wuerstchen.py +2 -2
- diffusers/schedulers/scheduling_deis_multistep.py +16 -9
- diffusers/schedulers/scheduling_dpm_cogvideox.py +5 -5
- diffusers/schedulers/scheduling_dpmsolver_multistep.py +18 -12
- diffusers/schedulers/scheduling_dpmsolver_multistep_flax.py +22 -20
- diffusers/schedulers/scheduling_dpmsolver_multistep_inverse.py +11 -11
- diffusers/schedulers/scheduling_dpmsolver_sde.py +2 -2
- diffusers/schedulers/scheduling_dpmsolver_singlestep.py +19 -13
- diffusers/schedulers/scheduling_edm_dpmsolver_multistep.py +13 -8
- diffusers/schedulers/scheduling_edm_euler.py +20 -11
- diffusers/schedulers/scheduling_euler_ancestral_discrete.py +3 -3
- diffusers/schedulers/scheduling_euler_discrete.py +3 -3
- diffusers/schedulers/scheduling_euler_discrete_flax.py +3 -3
- diffusers/schedulers/scheduling_flow_match_euler_discrete.py +20 -5
- diffusers/schedulers/scheduling_flow_match_heun_discrete.py +1 -1
- diffusers/schedulers/scheduling_flow_match_lcm.py +561 -0
- diffusers/schedulers/scheduling_heun_discrete.py +2 -2
- diffusers/schedulers/scheduling_ipndm.py +2 -2
- diffusers/schedulers/scheduling_k_dpm_2_ancestral_discrete.py +2 -2
- diffusers/schedulers/scheduling_k_dpm_2_discrete.py +2 -2
- diffusers/schedulers/scheduling_karras_ve_flax.py +5 -5
- diffusers/schedulers/scheduling_lcm.py +3 -3
- diffusers/schedulers/scheduling_lms_discrete.py +2 -2
- diffusers/schedulers/scheduling_lms_discrete_flax.py +1 -1
- diffusers/schedulers/scheduling_pndm.py +4 -4
- diffusers/schedulers/scheduling_pndm_flax.py +4 -4
- diffusers/schedulers/scheduling_repaint.py +9 -9
- diffusers/schedulers/scheduling_sasolver.py +15 -15
- diffusers/schedulers/scheduling_scm.py +1 -2
- diffusers/schedulers/scheduling_sde_ve.py +1 -1
- diffusers/schedulers/scheduling_sde_ve_flax.py +2 -2
- diffusers/schedulers/scheduling_tcd.py +3 -3
- diffusers/schedulers/scheduling_unclip.py +5 -5
- diffusers/schedulers/scheduling_unipc_multistep.py +21 -12
- diffusers/schedulers/scheduling_utils.py +3 -3
- diffusers/schedulers/scheduling_utils_flax.py +2 -2
- diffusers/schedulers/scheduling_vq_diffusion.py +1 -1
- diffusers/training_utils.py +91 -5
- diffusers/utils/__init__.py +15 -0
- diffusers/utils/accelerate_utils.py +1 -1
- diffusers/utils/constants.py +4 -0
- diffusers/utils/doc_utils.py +1 -1
- diffusers/utils/dummy_pt_objects.py +432 -0
- diffusers/utils/dummy_torch_and_transformers_objects.py +480 -0
- diffusers/utils/dynamic_modules_utils.py +85 -8
- diffusers/utils/export_utils.py +1 -1
- diffusers/utils/hub_utils.py +33 -17
- diffusers/utils/import_utils.py +151 -18
- diffusers/utils/logging.py +1 -1
- diffusers/utils/outputs.py +2 -1
- diffusers/utils/peft_utils.py +96 -10
- diffusers/utils/state_dict_utils.py +20 -3
- diffusers/utils/testing_utils.py +195 -17
- diffusers/utils/torch_utils.py +43 -5
- diffusers/video_processor.py +2 -2
- {diffusers-0.33.1.dist-info → diffusers-0.35.0.dist-info}/METADATA +72 -57
- diffusers-0.35.0.dist-info/RECORD +703 -0
- {diffusers-0.33.1.dist-info → diffusers-0.35.0.dist-info}/WHEEL +1 -1
- diffusers-0.33.1.dist-info/RECORD +0 -608
- {diffusers-0.33.1.dist-info → diffusers-0.35.0.dist-info}/LICENSE +0 -0
- {diffusers-0.33.1.dist-info → diffusers-0.35.0.dist-info}/entry_points.txt +0 -0
- {diffusers-0.33.1.dist-info → diffusers-0.35.0.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,90 @@
|
|
1
|
+
# Copyright 2025 The HuggingFace Team. All rights reserved.
|
2
|
+
#
|
3
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
4
|
+
# you may not use this file except in compliance with the License.
|
5
|
+
# You may obtain a copy of the License at
|
6
|
+
#
|
7
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
8
|
+
#
|
9
|
+
# Unless required by applicable law or agreed to in writing, software
|
10
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
11
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
12
|
+
# See the License for the specific language governing permissions and
|
13
|
+
# limitations under the License.
|
14
|
+
|
15
|
+
|
16
|
+
from ...loaders import WanLoraLoaderMixin
|
17
|
+
from ...pipelines.pipeline_utils import StableDiffusionMixin
|
18
|
+
from ...utils import logging
|
19
|
+
from ..modular_pipeline import ModularPipeline
|
20
|
+
|
21
|
+
|
22
|
+
logger = logging.get_logger(__name__) # pylint: disable=invalid-name
|
23
|
+
|
24
|
+
|
25
|
+
class WanModularPipeline(
|
26
|
+
ModularPipeline,
|
27
|
+
StableDiffusionMixin,
|
28
|
+
WanLoraLoaderMixin,
|
29
|
+
):
|
30
|
+
"""
|
31
|
+
A ModularPipeline for Wan.
|
32
|
+
|
33
|
+
<Tip warning={true}>
|
34
|
+
|
35
|
+
This is an experimental feature and is likely to change in the future.
|
36
|
+
|
37
|
+
</Tip>
|
38
|
+
"""
|
39
|
+
|
40
|
+
@property
|
41
|
+
def default_height(self):
|
42
|
+
return self.default_sample_height * self.vae_scale_factor_spatial
|
43
|
+
|
44
|
+
@property
|
45
|
+
def default_width(self):
|
46
|
+
return self.default_sample_width * self.vae_scale_factor_spatial
|
47
|
+
|
48
|
+
@property
|
49
|
+
def default_num_frames(self):
|
50
|
+
return (self.default_sample_num_frames - 1) * self.vae_scale_factor_temporal + 1
|
51
|
+
|
52
|
+
@property
|
53
|
+
def default_sample_height(self):
|
54
|
+
return 60
|
55
|
+
|
56
|
+
@property
|
57
|
+
def default_sample_width(self):
|
58
|
+
return 104
|
59
|
+
|
60
|
+
@property
|
61
|
+
def default_sample_num_frames(self):
|
62
|
+
return 21
|
63
|
+
|
64
|
+
@property
|
65
|
+
def vae_scale_factor_spatial(self):
|
66
|
+
vae_scale_factor = 8
|
67
|
+
if hasattr(self, "vae") and self.vae is not None:
|
68
|
+
vae_scale_factor = 2 ** len(self.vae.temperal_downsample)
|
69
|
+
return vae_scale_factor
|
70
|
+
|
71
|
+
@property
|
72
|
+
def vae_scale_factor_temporal(self):
|
73
|
+
vae_scale_factor = 4
|
74
|
+
if hasattr(self, "vae") and self.vae is not None:
|
75
|
+
vae_scale_factor = 2 ** sum(self.vae.temperal_downsample)
|
76
|
+
return vae_scale_factor
|
77
|
+
|
78
|
+
@property
|
79
|
+
def num_channels_transformer(self):
|
80
|
+
num_channels_transformer = 16
|
81
|
+
if hasattr(self, "transformer") and self.transformer is not None:
|
82
|
+
num_channels_transformer = self.transformer.config.in_channels
|
83
|
+
return num_channels_transformer
|
84
|
+
|
85
|
+
@property
|
86
|
+
def num_channels_latents(self):
|
87
|
+
num_channels_latents = 16
|
88
|
+
if hasattr(self, "vae") and self.vae is not None:
|
89
|
+
num_channels_latents = self.vae.config.z_dim
|
90
|
+
return num_channels_latents
|
diffusers/pipelines/__init__.py
CHANGED
@@ -140,6 +140,8 @@ else:
|
|
140
140
|
"FluxFillPipeline",
|
141
141
|
"FluxPriorReduxPipeline",
|
142
142
|
"ReduxImageEncoder",
|
143
|
+
"FluxKontextPipeline",
|
144
|
+
"FluxKontextInpaintPipeline",
|
143
145
|
]
|
144
146
|
_import_structure["audioldm"] = ["AudioLDMPipeline"]
|
145
147
|
_import_structure["audioldm2"] = [
|
@@ -148,6 +150,7 @@ else:
|
|
148
150
|
"AudioLDM2UNet2DConditionModel",
|
149
151
|
]
|
150
152
|
_import_structure["blip_diffusion"] = ["BlipDiffusionPipeline"]
|
153
|
+
_import_structure["chroma"] = ["ChromaPipeline", "ChromaImg2ImgPipeline"]
|
151
154
|
_import_structure["cogvideo"] = [
|
152
155
|
"CogVideoXPipeline",
|
153
156
|
"CogVideoXImageToVideoPipeline",
|
@@ -156,6 +159,13 @@ else:
|
|
156
159
|
]
|
157
160
|
_import_structure["cogview3"] = ["CogView3PlusPipeline"]
|
158
161
|
_import_structure["cogview4"] = ["CogView4Pipeline", "CogView4ControlPipeline"]
|
162
|
+
_import_structure["consisid"] = ["ConsisIDPipeline"]
|
163
|
+
_import_structure["cosmos"] = [
|
164
|
+
"Cosmos2TextToImagePipeline",
|
165
|
+
"CosmosTextToWorldPipeline",
|
166
|
+
"CosmosVideoToWorldPipeline",
|
167
|
+
"Cosmos2VideoToWorldPipeline",
|
168
|
+
]
|
159
169
|
_import_structure["controlnet"].extend(
|
160
170
|
[
|
161
171
|
"BlipDiffusionControlNetPipeline",
|
@@ -221,11 +231,13 @@ else:
|
|
221
231
|
"EasyAnimateInpaintPipeline",
|
222
232
|
"EasyAnimateControlPipeline",
|
223
233
|
]
|
234
|
+
_import_structure["hidream_image"] = ["HiDreamImagePipeline"]
|
224
235
|
_import_structure["hunyuandit"] = ["HunyuanDiTPipeline"]
|
225
236
|
_import_structure["hunyuan_video"] = [
|
226
237
|
"HunyuanVideoPipeline",
|
227
238
|
"HunyuanSkyreelsImageToVideoPipeline",
|
228
239
|
"HunyuanVideoImageToVideoPipeline",
|
240
|
+
"HunyuanVideoFramepackPipeline",
|
229
241
|
]
|
230
242
|
_import_structure["kandinsky"] = [
|
231
243
|
"KandinskyCombinedPipeline",
|
@@ -264,7 +276,12 @@ else:
|
|
264
276
|
]
|
265
277
|
)
|
266
278
|
_import_structure["latte"] = ["LattePipeline"]
|
267
|
-
_import_structure["ltx"] = [
|
279
|
+
_import_structure["ltx"] = [
|
280
|
+
"LTXPipeline",
|
281
|
+
"LTXImageToVideoPipeline",
|
282
|
+
"LTXConditionPipeline",
|
283
|
+
"LTXLatentUpsamplePipeline",
|
284
|
+
]
|
268
285
|
_import_structure["lumina"] = ["LuminaPipeline", "LuminaText2ImgPipeline"]
|
269
286
|
_import_structure["lumina2"] = ["Lumina2Pipeline", "Lumina2Text2ImgPipeline"]
|
270
287
|
_import_structure["marigold"].extend(
|
@@ -277,10 +294,16 @@ else:
|
|
277
294
|
_import_structure["mochi"] = ["MochiPipeline"]
|
278
295
|
_import_structure["musicldm"] = ["MusicLDMPipeline"]
|
279
296
|
_import_structure["omnigen"] = ["OmniGenPipeline"]
|
297
|
+
_import_structure["visualcloze"] = ["VisualClozePipeline", "VisualClozeGenerationPipeline"]
|
280
298
|
_import_structure["paint_by_example"] = ["PaintByExamplePipeline"]
|
281
299
|
_import_structure["pia"] = ["PIAPipeline"]
|
282
300
|
_import_structure["pixart_alpha"] = ["PixArtAlphaPipeline", "PixArtSigmaPipeline"]
|
283
|
-
_import_structure["sana"] = [
|
301
|
+
_import_structure["sana"] = [
|
302
|
+
"SanaPipeline",
|
303
|
+
"SanaSprintPipeline",
|
304
|
+
"SanaControlNetPipeline",
|
305
|
+
"SanaSprintImg2ImgPipeline",
|
306
|
+
]
|
284
307
|
_import_structure["semantic_stable_diffusion"] = ["SemanticStableDiffusionPipeline"]
|
285
308
|
_import_structure["shap_e"] = ["ShapEImg2ImgPipeline", "ShapEPipeline"]
|
286
309
|
_import_structure["stable_audio"] = [
|
@@ -356,7 +379,20 @@ else:
|
|
356
379
|
"WuerstchenDecoderPipeline",
|
357
380
|
"WuerstchenPriorPipeline",
|
358
381
|
]
|
359
|
-
_import_structure["wan"] = ["WanPipeline", "WanImageToVideoPipeline", "WanVideoToVideoPipeline"]
|
382
|
+
_import_structure["wan"] = ["WanPipeline", "WanImageToVideoPipeline", "WanVideoToVideoPipeline", "WanVACEPipeline"]
|
383
|
+
_import_structure["skyreels_v2"] = [
|
384
|
+
"SkyReelsV2DiffusionForcingPipeline",
|
385
|
+
"SkyReelsV2DiffusionForcingImageToVideoPipeline",
|
386
|
+
"SkyReelsV2DiffusionForcingVideoToVideoPipeline",
|
387
|
+
"SkyReelsV2ImageToVideoPipeline",
|
388
|
+
"SkyReelsV2Pipeline",
|
389
|
+
]
|
390
|
+
_import_structure["qwenimage"] = [
|
391
|
+
"QwenImagePipeline",
|
392
|
+
"QwenImageImg2ImgPipeline",
|
393
|
+
"QwenImageInpaintPipeline",
|
394
|
+
"QwenImageEditPipeline",
|
395
|
+
]
|
360
396
|
try:
|
361
397
|
if not is_onnx_available():
|
362
398
|
raise OptionalDependencyNotAvailable()
|
@@ -516,6 +552,7 @@ if TYPE_CHECKING or DIFFUSERS_SLOW_IMPORT:
|
|
516
552
|
)
|
517
553
|
from .aura_flow import AuraFlowPipeline
|
518
554
|
from .blip_diffusion import BlipDiffusionPipeline
|
555
|
+
from .chroma import ChromaImg2ImgPipeline, ChromaPipeline
|
519
556
|
from .cogvideo import (
|
520
557
|
CogVideoXFunControlPipeline,
|
521
558
|
CogVideoXImageToVideoPipeline,
|
@@ -544,6 +581,12 @@ if TYPE_CHECKING or DIFFUSERS_SLOW_IMPORT:
|
|
544
581
|
StableDiffusionControlNetXSPipeline,
|
545
582
|
StableDiffusionXLControlNetXSPipeline,
|
546
583
|
)
|
584
|
+
from .cosmos import (
|
585
|
+
Cosmos2TextToImagePipeline,
|
586
|
+
Cosmos2VideoToWorldPipeline,
|
587
|
+
CosmosTextToWorldPipeline,
|
588
|
+
CosmosVideoToWorldPipeline,
|
589
|
+
)
|
547
590
|
from .deepfloyd_if import (
|
548
591
|
IFImg2ImgPipeline,
|
549
592
|
IFImg2ImgSuperResolutionPipeline,
|
@@ -581,12 +624,16 @@ if TYPE_CHECKING or DIFFUSERS_SLOW_IMPORT:
|
|
581
624
|
FluxFillPipeline,
|
582
625
|
FluxImg2ImgPipeline,
|
583
626
|
FluxInpaintPipeline,
|
627
|
+
FluxKontextInpaintPipeline,
|
628
|
+
FluxKontextPipeline,
|
584
629
|
FluxPipeline,
|
585
630
|
FluxPriorReduxPipeline,
|
586
631
|
ReduxImageEncoder,
|
587
632
|
)
|
633
|
+
from .hidream_image import HiDreamImagePipeline
|
588
634
|
from .hunyuan_video import (
|
589
635
|
HunyuanSkyreelsImageToVideoPipeline,
|
636
|
+
HunyuanVideoFramepackPipeline,
|
590
637
|
HunyuanVideoImageToVideoPipeline,
|
591
638
|
HunyuanVideoPipeline,
|
592
639
|
)
|
@@ -629,7 +676,7 @@ if TYPE_CHECKING or DIFFUSERS_SLOW_IMPORT:
|
|
629
676
|
LEditsPPPipelineStableDiffusion,
|
630
677
|
LEditsPPPipelineStableDiffusionXL,
|
631
678
|
)
|
632
|
-
from .ltx import LTXConditionPipeline, LTXImageToVideoPipeline, LTXPipeline
|
679
|
+
from .ltx import LTXConditionPipeline, LTXImageToVideoPipeline, LTXLatentUpsamplePipeline, LTXPipeline
|
633
680
|
from .lumina import LuminaPipeline, LuminaText2ImgPipeline
|
634
681
|
from .lumina2 import Lumina2Pipeline, Lumina2Text2ImgPipeline
|
635
682
|
from .marigold import (
|
@@ -662,7 +709,13 @@ if TYPE_CHECKING or DIFFUSERS_SLOW_IMPORT:
|
|
662
709
|
from .paint_by_example import PaintByExamplePipeline
|
663
710
|
from .pia import PIAPipeline
|
664
711
|
from .pixart_alpha import PixArtAlphaPipeline, PixArtSigmaPipeline
|
665
|
-
from .
|
712
|
+
from .qwenimage import (
|
713
|
+
QwenImageEditPipeline,
|
714
|
+
QwenImageImg2ImgPipeline,
|
715
|
+
QwenImageInpaintPipeline,
|
716
|
+
QwenImagePipeline,
|
717
|
+
)
|
718
|
+
from .sana import SanaControlNetPipeline, SanaPipeline, SanaSprintImg2ImgPipeline, SanaSprintPipeline
|
666
719
|
from .semantic_stable_diffusion import SemanticStableDiffusionPipeline
|
667
720
|
from .shap_e import ShapEImg2ImgPipeline, ShapEPipeline
|
668
721
|
from .stable_audio import StableAudioPipeline, StableAudioProjectionModel
|
@@ -720,7 +773,8 @@ if TYPE_CHECKING or DIFFUSERS_SLOW_IMPORT:
|
|
720
773
|
UniDiffuserPipeline,
|
721
774
|
UniDiffuserTextDecoder,
|
722
775
|
)
|
723
|
-
from .
|
776
|
+
from .visualcloze import VisualClozeGenerationPipeline, VisualClozePipeline
|
777
|
+
from .wan import WanImageToVideoPipeline, WanPipeline, WanVACEPipeline, WanVideoToVideoPipeline
|
724
778
|
from .wuerstchen import (
|
725
779
|
WuerstchenCombinedPipeline,
|
726
780
|
WuerstchenDecoderPipeline,
|
@@ -816,6 +870,14 @@ if TYPE_CHECKING or DIFFUSERS_SLOW_IMPORT:
|
|
816
870
|
SpectrogramDiffusionPipeline,
|
817
871
|
)
|
818
872
|
|
873
|
+
from .skyreels_v2 import (
|
874
|
+
SkyReelsV2DiffusionForcingImageToVideoPipeline,
|
875
|
+
SkyReelsV2DiffusionForcingPipeline,
|
876
|
+
SkyReelsV2DiffusionForcingVideoToVideoPipeline,
|
877
|
+
SkyReelsV2ImageToVideoPipeline,
|
878
|
+
SkyReelsV2Pipeline,
|
879
|
+
)
|
880
|
+
|
819
881
|
else:
|
820
882
|
import sys
|
821
883
|
|
@@ -1,4 +1,4 @@
|
|
1
|
-
# Copyright
|
1
|
+
# Copyright 2025 The RhymesAI and The HuggingFace Team.
|
2
2
|
# All rights reserved.
|
3
3
|
#
|
4
4
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
@@ -351,7 +351,7 @@ class AllegroPipeline(DiffusionPipeline):
|
|
351
351
|
def prepare_extra_step_kwargs(self, generator, eta):
|
352
352
|
# prepare extra kwargs for the scheduler step, since not all schedulers have the same signature
|
353
353
|
# eta (η) is only used with the DDIMScheduler, it will be ignored for other schedulers.
|
354
|
-
# eta corresponds to η in DDIM paper: https://
|
354
|
+
# eta corresponds to η in DDIM paper: https://huggingface.co/papers/2010.02502
|
355
355
|
# and should be between [0, 1]
|
356
356
|
|
357
357
|
accepts_eta = "eta" in set(inspect.signature(self.scheduler.step).parameters.keys())
|
@@ -514,7 +514,7 @@ class AllegroPipeline(DiffusionPipeline):
|
|
514
514
|
# &
|
515
515
|
caption = re.sub(r"&", "", caption)
|
516
516
|
|
517
|
-
# ip
|
517
|
+
# ip addresses:
|
518
518
|
caption = re.sub(r"\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}", " ", caption)
|
519
519
|
|
520
520
|
# article ids:
|
@@ -738,11 +738,11 @@ class AllegroPipeline(DiffusionPipeline):
|
|
738
738
|
Custom timesteps to use for the denoising process. If not defined, equal spaced `num_inference_steps`
|
739
739
|
timesteps are used. Must be in descending order.
|
740
740
|
guidance_scale (`float`, *optional*, defaults to 7.5):
|
741
|
-
Guidance scale as defined in [Classifier-Free Diffusion
|
742
|
-
`guidance_scale` is defined as `w` of equation 2.
|
743
|
-
Paper](https://
|
744
|
-
1`. Higher guidance scale encourages to generate videos that are closely linked to
|
745
|
-
usually at the expense of lower video quality.
|
741
|
+
Guidance scale as defined in [Classifier-Free Diffusion
|
742
|
+
Guidance](https://huggingface.co/papers/2207.12598). `guidance_scale` is defined as `w` of equation 2.
|
743
|
+
of [Imagen Paper](https://huggingface.co/papers/2205.11487). Guidance scale is enabled by setting
|
744
|
+
`guidance_scale > 1`. Higher guidance scale encourages to generate videos that are closely linked to
|
745
|
+
the text `prompt`, usually at the expense of lower video quality.
|
746
746
|
num_videos_per_prompt (`int`, *optional*, defaults to 1):
|
747
747
|
The number of videos to generate per prompt.
|
748
748
|
num_frames: (`int`, *optional*, defaults to 88):
|
@@ -752,8 +752,8 @@ class AllegroPipeline(DiffusionPipeline):
|
|
752
752
|
width (`int`, *optional*, defaults to self.unet.config.sample_size):
|
753
753
|
The width in pixels of the generated video.
|
754
754
|
eta (`float`, *optional*, defaults to 0.0):
|
755
|
-
Corresponds to parameter eta (η) in the DDIM paper: https://
|
756
|
-
[`schedulers.DDIMScheduler`], will be ignored for others.
|
755
|
+
Corresponds to parameter eta (η) in the DDIM paper: https://huggingface.co/papers/2010.02502. Only
|
756
|
+
applies to [`schedulers.DDIMScheduler`], will be ignored for others.
|
757
757
|
generator (`torch.Generator` or `List[torch.Generator]`, *optional*):
|
758
758
|
One or a list of [torch generator(s)](https://pytorch.org/docs/stable/generated/torch.Generator.html)
|
759
759
|
to make generation deterministic.
|
@@ -833,7 +833,7 @@ class AllegroPipeline(DiffusionPipeline):
|
|
833
833
|
device = self._execution_device
|
834
834
|
|
835
835
|
# here `guidance_scale` is defined analog to the guidance weight `w` of equation (2)
|
836
|
-
# of the Imagen paper: https://
|
836
|
+
# of the Imagen paper: https://huggingface.co/papers/2205.11487 . `guidance_scale = 1`
|
837
837
|
# corresponds to doing no classifier free guidance.
|
838
838
|
do_classifier_free_guidance = guidance_scale > 1.0
|
839
839
|
|
@@ -1,4 +1,4 @@
|
|
1
|
-
# Copyright
|
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.
|
@@ -21,7 +21,7 @@ from ...image_processor import VaeImageProcessor
|
|
21
21
|
from ...models import UVit2DModel, VQModel
|
22
22
|
from ...schedulers import AmusedScheduler
|
23
23
|
from ...utils import is_torch_xla_available, replace_example_docstring
|
24
|
-
from ..pipeline_utils import DiffusionPipeline, ImagePipelineOutput
|
24
|
+
from ..pipeline_utils import DeprecatedPipelineMixin, DiffusionPipeline, ImagePipelineOutput
|
25
25
|
|
26
26
|
|
27
27
|
if is_torch_xla_available():
|
@@ -47,7 +47,8 @@ EXAMPLE_DOC_STRING = """
|
|
47
47
|
"""
|
48
48
|
|
49
49
|
|
50
|
-
class AmusedPipeline(DiffusionPipeline):
|
50
|
+
class AmusedPipeline(DeprecatedPipelineMixin, DiffusionPipeline):
|
51
|
+
_last_supported_version = "0.33.1"
|
51
52
|
image_processor: VaeImageProcessor
|
52
53
|
vqvae: VQModel
|
53
54
|
tokenizer: CLIPTokenizer
|
@@ -131,7 +132,7 @@ class AmusedPipeline(DiffusionPipeline):
|
|
131
132
|
generation deterministic.
|
132
133
|
latents (`torch.IntTensor`, *optional*):
|
133
134
|
Pre-generated tokens representing latent vectors in `self.vqvae`, to be used as inputs for image
|
134
|
-
|
135
|
+
generation. If not provided, the starting latents will be completely masked.
|
135
136
|
prompt_embeds (`torch.Tensor`, *optional*):
|
136
137
|
Pre-generated text embeddings. Can be used to easily tweak text inputs (prompt weighting). If not
|
137
138
|
provided, text embeddings are generated from the `prompt` input argument. A single vector from the
|
@@ -160,10 +161,10 @@ class AmusedPipeline(DiffusionPipeline):
|
|
160
161
|
micro_conditioning_aesthetic_score (`int`, *optional*, defaults to 6):
|
161
162
|
The targeted aesthetic score according to the laion aesthetic classifier. See
|
162
163
|
https://laion.ai/blog/laion-aesthetics/ and the micro-conditioning section of
|
163
|
-
https://
|
164
|
+
https://huggingface.co/papers/2307.01952.
|
164
165
|
micro_conditioning_crop_coord (`Tuple[int]`, *optional*, defaults to (0, 0)):
|
165
166
|
The targeted height, width crop coordinates. See the micro-conditioning section of
|
166
|
-
https://
|
167
|
+
https://huggingface.co/papers/2307.01952.
|
167
168
|
temperature (`Union[int, Tuple[int, int], List[int]]`, *optional*, defaults to (2, 0)):
|
168
169
|
Configures the temperature scheduler on `self.scheduler` see `AmusedScheduler#set_timesteps`.
|
169
170
|
|
@@ -1,4 +1,4 @@
|
|
1
|
-
# Copyright
|
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.
|
@@ -21,7 +21,7 @@ from ...image_processor import PipelineImageInput, VaeImageProcessor
|
|
21
21
|
from ...models import UVit2DModel, VQModel
|
22
22
|
from ...schedulers import AmusedScheduler
|
23
23
|
from ...utils import is_torch_xla_available, replace_example_docstring
|
24
|
-
from ..pipeline_utils import DiffusionPipeline, ImagePipelineOutput
|
24
|
+
from ..pipeline_utils import DeprecatedPipelineMixin, DiffusionPipeline, ImagePipelineOutput
|
25
25
|
|
26
26
|
|
27
27
|
if is_torch_xla_available():
|
@@ -57,7 +57,8 @@ EXAMPLE_DOC_STRING = """
|
|
57
57
|
"""
|
58
58
|
|
59
59
|
|
60
|
-
class AmusedImg2ImgPipeline(DiffusionPipeline):
|
60
|
+
class AmusedImg2ImgPipeline(DeprecatedPipelineMixin, DiffusionPipeline):
|
61
|
+
_last_supported_version = "0.33.1"
|
61
62
|
image_processor: VaeImageProcessor
|
62
63
|
vqvae: VQModel
|
63
64
|
tokenizer: CLIPTokenizer
|
@@ -179,10 +180,10 @@ class AmusedImg2ImgPipeline(DiffusionPipeline):
|
|
179
180
|
micro_conditioning_aesthetic_score (`int`, *optional*, defaults to 6):
|
180
181
|
The targeted aesthetic score according to the laion aesthetic classifier. See
|
181
182
|
https://laion.ai/blog/laion-aesthetics/ and the micro-conditioning section of
|
182
|
-
https://
|
183
|
+
https://huggingface.co/papers/2307.01952.
|
183
184
|
micro_conditioning_crop_coord (`Tuple[int]`, *optional*, defaults to (0, 0)):
|
184
185
|
The targeted height, width crop coordinates. See the micro-conditioning section of
|
185
|
-
https://
|
186
|
+
https://huggingface.co/papers/2307.01952.
|
186
187
|
temperature (`Union[int, Tuple[int, int], List[int]]`, *optional*, defaults to (2, 0)):
|
187
188
|
Configures the temperature scheduler on `self.scheduler` see `AmusedScheduler#set_timesteps`.
|
188
189
|
|
@@ -1,4 +1,4 @@
|
|
1
|
-
# Copyright
|
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.
|
@@ -22,7 +22,7 @@ from ...image_processor import PipelineImageInput, VaeImageProcessor
|
|
22
22
|
from ...models import UVit2DModel, VQModel
|
23
23
|
from ...schedulers import AmusedScheduler
|
24
24
|
from ...utils import is_torch_xla_available, replace_example_docstring
|
25
|
-
from ..pipeline_utils import DiffusionPipeline, ImagePipelineOutput
|
25
|
+
from ..pipeline_utils import DeprecatedPipelineMixin, DiffusionPipeline, ImagePipelineOutput
|
26
26
|
|
27
27
|
|
28
28
|
if is_torch_xla_available():
|
@@ -65,7 +65,8 @@ EXAMPLE_DOC_STRING = """
|
|
65
65
|
"""
|
66
66
|
|
67
67
|
|
68
|
-
class AmusedInpaintPipeline(DiffusionPipeline):
|
68
|
+
class AmusedInpaintPipeline(DeprecatedPipelineMixin, DiffusionPipeline):
|
69
|
+
_last_supported_version = "0.33.1"
|
69
70
|
image_processor: VaeImageProcessor
|
70
71
|
vqvae: VQModel
|
71
72
|
tokenizer: CLIPTokenizer
|
@@ -203,10 +204,10 @@ class AmusedInpaintPipeline(DiffusionPipeline):
|
|
203
204
|
micro_conditioning_aesthetic_score (`int`, *optional*, defaults to 6):
|
204
205
|
The targeted aesthetic score according to the laion aesthetic classifier. See
|
205
206
|
https://laion.ai/blog/laion-aesthetics/ and the micro-conditioning section of
|
206
|
-
https://
|
207
|
+
https://huggingface.co/papers/2307.01952.
|
207
208
|
micro_conditioning_crop_coord (`Tuple[int]`, *optional*, defaults to (0, 0)):
|
208
209
|
The targeted height, width crop coordinates. See the micro-conditioning section of
|
209
|
-
https://
|
210
|
+
https://huggingface.co/papers/2307.01952.
|
210
211
|
temperature (`Union[int, Tuple[int, int], List[int]]`, *optional*, defaults to (2, 0)):
|
211
212
|
Configures the temperature scheduler on `self.scheduler` see `AmusedScheduler#set_timesteps`.
|
212
213
|
|
@@ -1,4 +1,4 @@
|
|
1
|
-
# Copyright
|
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.
|
@@ -428,7 +428,7 @@ class AnimateDiffPipeline(
|
|
428
428
|
def prepare_extra_step_kwargs(self, generator, eta):
|
429
429
|
# prepare extra kwargs for the scheduler step, since not all schedulers have the same signature
|
430
430
|
# eta (η) is only used with the DDIMScheduler, it will be ignored for other schedulers.
|
431
|
-
# eta corresponds to η in DDIM paper: https://
|
431
|
+
# eta corresponds to η in DDIM paper: https://huggingface.co/papers/2010.02502
|
432
432
|
# and should be between [0, 1]
|
433
433
|
|
434
434
|
accepts_eta = "eta" in set(inspect.signature(self.scheduler.step).parameters.keys())
|
@@ -514,7 +514,7 @@ class AnimateDiffPipeline(
|
|
514
514
|
def prepare_latents(
|
515
515
|
self, batch_size, num_channels_latents, num_frames, height, width, dtype, device, generator, latents=None
|
516
516
|
):
|
517
|
-
# If FreeNoise is enabled, generate latents as described in Equation (7) of [FreeNoise](https://
|
517
|
+
# If FreeNoise is enabled, generate latents as described in Equation (7) of [FreeNoise](https://huggingface.co/papers/2310.15169)
|
518
518
|
if self.free_noise_enabled:
|
519
519
|
latents = self._prepare_latents_free_noise(
|
520
520
|
batch_size, num_channels_latents, num_frames, height, width, dtype, device, generator, latents
|
@@ -552,7 +552,7 @@ class AnimateDiffPipeline(
|
|
552
552
|
return self._clip_skip
|
553
553
|
|
554
554
|
# here `guidance_scale` is defined analog to the guidance weight `w` of equation (2)
|
555
|
-
# of the Imagen paper: https://
|
555
|
+
# of the Imagen paper: https://huggingface.co/papers/2205.11487 . `guidance_scale = 1`
|
556
556
|
# corresponds to doing no classifier free guidance.
|
557
557
|
@property
|
558
558
|
def do_classifier_free_guidance(self):
|
@@ -621,8 +621,8 @@ class AnimateDiffPipeline(
|
|
621
621
|
The prompt or prompts to guide what to not include in image generation. If not defined, you need to
|
622
622
|
pass `negative_prompt_embeds` instead. Ignored when not using guidance (`guidance_scale < 1`).
|
623
623
|
eta (`float`, *optional*, defaults to 0.0):
|
624
|
-
Corresponds to parameter eta (η) from the [DDIM](https://
|
625
|
-
to the [`~schedulers.DDIMScheduler`], and is ignored in other schedulers.
|
624
|
+
Corresponds to parameter eta (η) from the [DDIM](https://huggingface.co/papers/2010.02502) paper. Only
|
625
|
+
applies to the [`~schedulers.DDIMScheduler`], and is ignored in other schedulers.
|
626
626
|
generator (`torch.Generator` or `List[torch.Generator]`, *optional*):
|
627
627
|
A [`torch.Generator`](https://pytorch.org/docs/stable/generated/torch.Generator.html) to make
|
628
628
|
generation deterministic.
|
@@ -1,4 +1,4 @@
|
|
1
|
-
# Copyright
|
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.
|
@@ -472,7 +472,7 @@ class AnimateDiffControlNetPipeline(
|
|
472
472
|
def prepare_extra_step_kwargs(self, generator, eta):
|
473
473
|
# prepare extra kwargs for the scheduler step, since not all schedulers have the same signature
|
474
474
|
# eta (η) is only used with the DDIMScheduler, it will be ignored for other schedulers.
|
475
|
-
# eta corresponds to η in DDIM paper: https://
|
475
|
+
# eta corresponds to η in DDIM paper: https://huggingface.co/papers/2010.02502
|
476
476
|
# and should be between [0, 1]
|
477
477
|
|
478
478
|
accepts_eta = "eta" in set(inspect.signature(self.scheduler.step).parameters.keys())
|
@@ -630,7 +630,7 @@ class AnimateDiffControlNetPipeline(
|
|
630
630
|
def prepare_latents(
|
631
631
|
self, batch_size, num_channels_latents, num_frames, height, width, dtype, device, generator, latents=None
|
632
632
|
):
|
633
|
-
# If FreeNoise is enabled, generate latents as described in Equation (7) of [FreeNoise](https://
|
633
|
+
# If FreeNoise is enabled, generate latents as described in Equation (7) of [FreeNoise](https://huggingface.co/papers/2310.15169)
|
634
634
|
if self.free_noise_enabled:
|
635
635
|
latents = self._prepare_latents_free_noise(
|
636
636
|
batch_size, num_channels_latents, num_frames, height, width, dtype, device, generator, latents
|
@@ -700,7 +700,7 @@ class AnimateDiffControlNetPipeline(
|
|
700
700
|
return self._clip_skip
|
701
701
|
|
702
702
|
# here `guidance_scale` is defined analog to the guidance weight `w` of equation (2)
|
703
|
-
# of the Imagen paper: https://
|
703
|
+
# of the Imagen paper: https://huggingface.co/papers/2205.11487 . `guidance_scale = 1`
|
704
704
|
# corresponds to doing no classifier free guidance.
|
705
705
|
@property
|
706
706
|
def do_classifier_free_guidance(self):
|
@@ -772,8 +772,8 @@ class AnimateDiffControlNetPipeline(
|
|
772
772
|
The prompt or prompts to guide what to not include in image generation. If not defined, you need to
|
773
773
|
pass `negative_prompt_embeds` instead. Ignored when not using guidance (`guidance_scale < 1`).
|
774
774
|
eta (`float`, *optional*, defaults to 0.0):
|
775
|
-
Corresponds to parameter eta (η) from the [DDIM](https://
|
776
|
-
to the [`~schedulers.DDIMScheduler`], and is ignored in other schedulers.
|
775
|
+
Corresponds to parameter eta (η) from the [DDIM](https://huggingface.co/papers/2010.02502) paper. Only
|
776
|
+
applies to the [`~schedulers.DDIMScheduler`], and is ignored in other schedulers.
|
777
777
|
generator (`torch.Generator` or `List[torch.Generator]`, *optional*):
|
778
778
|
A [`torch.Generator`](https://pytorch.org/docs/stable/generated/torch.Generator.html) to make
|
779
779
|
generation deterministic.
|
@@ -1,4 +1,4 @@
|
|
1
|
-
# Copyright
|
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.
|
@@ -125,7 +125,7 @@ def rescale_noise_cfg(noise_cfg, noise_pred_text, guidance_rescale=0.0):
|
|
125
125
|
r"""
|
126
126
|
Rescales `noise_cfg` tensor based on `guidance_rescale` to improve image quality and fix overexposure. Based on
|
127
127
|
Section 3.4 from [Common Diffusion Noise Schedules and Sample Steps are
|
128
|
-
Flawed](https://
|
128
|
+
Flawed](https://huggingface.co/papers/2305.08891).
|
129
129
|
|
130
130
|
Args:
|
131
131
|
noise_cfg (`torch.Tensor`):
|
@@ -652,7 +652,7 @@ class AnimateDiffSDXLPipeline(
|
|
652
652
|
def prepare_extra_step_kwargs(self, generator, eta):
|
653
653
|
# prepare extra kwargs for the scheduler step, since not all schedulers have the same signature
|
654
654
|
# eta (η) is only used with the DDIMScheduler, it will be ignored for other schedulers.
|
655
|
-
# eta corresponds to η in DDIM paper: https://
|
655
|
+
# eta corresponds to η in DDIM paper: https://huggingface.co/papers/2010.02502
|
656
656
|
# and should be between [0, 1]
|
657
657
|
|
658
658
|
accepts_eta = "eta" in set(inspect.signature(self.scheduler.step).parameters.keys())
|
@@ -844,7 +844,7 @@ class AnimateDiffSDXLPipeline(
|
|
844
844
|
return self._clip_skip
|
845
845
|
|
846
846
|
# here `guidance_scale` is defined analog to the guidance weight `w` of equation (2)
|
847
|
-
# of the Imagen paper: https://
|
847
|
+
# of the Imagen paper: https://huggingface.co/papers/2205.11487 . `guidance_scale = 1`
|
848
848
|
# corresponds to doing no classifier free guidance.
|
849
849
|
@property
|
850
850
|
def do_classifier_free_guidance(self):
|
@@ -948,11 +948,11 @@ class AnimateDiffSDXLPipeline(
|
|
948
948
|
"Mixture of Denoisers" multi-pipeline setup, as elaborated in [**Refining the Image
|
949
949
|
Output**](https://huggingface.co/docs/diffusers/api/pipelines/stable_diffusion/stable_diffusion_xl#refining-the-image-output)
|
950
950
|
guidance_scale (`float`, *optional*, defaults to 5.0):
|
951
|
-
Guidance scale as defined in [Classifier-Free Diffusion
|
952
|
-
`guidance_scale` is defined as `w` of equation 2.
|
953
|
-
Paper](https://
|
954
|
-
1`. Higher guidance scale encourages to generate images that are closely linked to
|
955
|
-
usually at the expense of lower video quality.
|
951
|
+
Guidance scale as defined in [Classifier-Free Diffusion
|
952
|
+
Guidance](https://huggingface.co/papers/2207.12598). `guidance_scale` is defined as `w` of equation 2.
|
953
|
+
of [Imagen Paper](https://huggingface.co/papers/2205.11487). Guidance scale is enabled by setting
|
954
|
+
`guidance_scale > 1`. Higher guidance scale encourages to generate images that are closely linked to
|
955
|
+
the text `prompt`, usually at the expense of lower video quality.
|
956
956
|
negative_prompt (`str` or `List[str]`, *optional*):
|
957
957
|
The prompt or prompts not to guide the video generation. If not defined, one has to pass
|
958
958
|
`negative_prompt_embeds` instead. Ignored when not using guidance (i.e., ignored if `guidance_scale` is
|
@@ -963,8 +963,8 @@ class AnimateDiffSDXLPipeline(
|
|
963
963
|
num_videos_per_prompt (`int`, *optional*, defaults to 1):
|
964
964
|
The number of videos to generate per prompt.
|
965
965
|
eta (`float`, *optional*, defaults to 0.0):
|
966
|
-
Corresponds to parameter eta (η) in the DDIM paper: https://
|
967
|
-
[`schedulers.DDIMScheduler`], will be ignored for others.
|
966
|
+
Corresponds to parameter eta (η) in the DDIM paper: https://huggingface.co/papers/2010.02502. Only
|
967
|
+
applies to [`schedulers.DDIMScheduler`], will be ignored for others.
|
968
968
|
generator (`torch.Generator` or `List[torch.Generator]`, *optional*):
|
969
969
|
One or a list of [torch generator(s)](https://pytorch.org/docs/stable/generated/torch.Generator.html)
|
970
970
|
to make generation deterministic.
|
@@ -1003,9 +1003,10 @@ class AnimateDiffSDXLPipeline(
|
|
1003
1003
|
[diffusers.models.attention_processor](https://github.com/huggingface/diffusers/blob/main/src/diffusers/models/attention_processor.py).
|
1004
1004
|
guidance_rescale (`float`, *optional*, defaults to 0.0):
|
1005
1005
|
Guidance rescale factor proposed by [Common Diffusion Noise Schedules and Sample Steps are
|
1006
|
-
Flawed](https://
|
1007
|
-
[Common Diffusion Noise Schedules and Sample Steps are
|
1008
|
-
Guidance rescale factor should fix overexposure when
|
1006
|
+
Flawed](https://huggingface.co/papers/2305.08891) `guidance_scale` is defined as `φ` in equation 16. of
|
1007
|
+
[Common Diffusion Noise Schedules and Sample Steps are
|
1008
|
+
Flawed](https://huggingface.co/papers/2305.08891). Guidance rescale factor should fix overexposure when
|
1009
|
+
using zero terminal SNR.
|
1009
1010
|
original_size (`Tuple[int]`, *optional*, defaults to (1024, 1024)):
|
1010
1011
|
If `original_size` is not the same as `target_size` the image will appear to be down- or upsampled.
|
1011
1012
|
`original_size` defaults to `(height, width)` if not specified. Part of SDXL's micro-conditioning as
|
@@ -1252,7 +1253,7 @@ class AnimateDiffSDXLPipeline(
|
|
1252
1253
|
noise_pred = noise_pred_uncond + self.guidance_scale * (noise_pred_text - noise_pred_uncond)
|
1253
1254
|
|
1254
1255
|
if self.do_classifier_free_guidance and self.guidance_rescale > 0.0:
|
1255
|
-
# Based on 3.4. in https://
|
1256
|
+
# Based on 3.4. in https://huggingface.co/papers/2305.08891
|
1256
1257
|
noise_pred = rescale_noise_cfg(
|
1257
1258
|
noise_pred, noise_pred_text, guidance_rescale=self.guidance_rescale
|
1258
1259
|
)
|