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
@@ -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.
|
@@ -197,7 +197,7 @@ class StableDiffusionImageVariationPipeline(DiffusionPipeline, StableDiffusionMi
|
|
197
197
|
def prepare_extra_step_kwargs(self, generator, eta):
|
198
198
|
# prepare extra kwargs for the scheduler step, since not all schedulers have the same signature
|
199
199
|
# eta (η) is only used with the DDIMScheduler, it will be ignored for other schedulers.
|
200
|
-
# eta corresponds to η in DDIM paper: https://
|
200
|
+
# eta corresponds to η in DDIM paper: https://huggingface.co/papers/2010.02502
|
201
201
|
# and should be between [0, 1]
|
202
202
|
|
203
203
|
accepts_eta = "eta" in set(inspect.signature(self.scheduler.step).parameters.keys())
|
@@ -293,8 +293,8 @@ class StableDiffusionImageVariationPipeline(DiffusionPipeline, StableDiffusionMi
|
|
293
293
|
num_images_per_prompt (`int`, *optional*, defaults to 1):
|
294
294
|
The number of images to generate per prompt.
|
295
295
|
eta (`float`, *optional*, defaults to 0.0):
|
296
|
-
Corresponds to parameter eta (η) from the [DDIM](https://
|
297
|
-
to the [`~schedulers.DDIMScheduler`], and is ignored in other schedulers.
|
296
|
+
Corresponds to parameter eta (η) from the [DDIM](https://huggingface.co/papers/2010.02502) paper. Only
|
297
|
+
applies to the [`~schedulers.DDIMScheduler`], and is ignored in other schedulers.
|
298
298
|
generator (`torch.Generator` or `List[torch.Generator]`, *optional*):
|
299
299
|
A [`torch.Generator`](https://pytorch.org/docs/stable/generated/torch.Generator.html) to make
|
300
300
|
generation deterministic.
|
@@ -359,7 +359,7 @@ class StableDiffusionImageVariationPipeline(DiffusionPipeline, StableDiffusionMi
|
|
359
359
|
batch_size = image.shape[0]
|
360
360
|
device = self._execution_device
|
361
361
|
# here `guidance_scale` is defined analog to the guidance weight `w` of equation (2)
|
362
|
-
# of the Imagen paper: https://
|
362
|
+
# of the Imagen paper: https://huggingface.co/papers/2205.11487 . `guidance_scale = 1`
|
363
363
|
# corresponds to doing no classifier free guidance.
|
364
364
|
do_classifier_free_guidance = guidance_scale > 1.0
|
365
365
|
|
@@ -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.
|
@@ -639,7 +639,7 @@ class StableDiffusionImg2ImgPipeline(
|
|
639
639
|
def prepare_extra_step_kwargs(self, generator, eta):
|
640
640
|
# prepare extra kwargs for the scheduler step, since not all schedulers have the same signature
|
641
641
|
# eta (η) is only used with the DDIMScheduler, it will be ignored for other schedulers.
|
642
|
-
# eta corresponds to η in DDIM paper: https://
|
642
|
+
# eta corresponds to η in DDIM paper: https://huggingface.co/papers/2010.02502
|
643
643
|
# and should be between [0, 1]
|
644
644
|
|
645
645
|
accepts_eta = "eta" in set(inspect.signature(self.scheduler.step).parameters.keys())
|
@@ -837,7 +837,7 @@ class StableDiffusionImg2ImgPipeline(
|
|
837
837
|
return self._clip_skip
|
838
838
|
|
839
839
|
# here `guidance_scale` is defined analog to the guidance weight `w` of equation (2)
|
840
|
-
# of the Imagen paper: https://
|
840
|
+
# of the Imagen paper: https://huggingface.co/papers/2205.11487 . `guidance_scale = 1`
|
841
841
|
# corresponds to doing no classifier free guidance.
|
842
842
|
@property
|
843
843
|
def do_classifier_free_guidance(self):
|
@@ -922,8 +922,8 @@ class StableDiffusionImg2ImgPipeline(
|
|
922
922
|
num_images_per_prompt (`int`, *optional*, defaults to 1):
|
923
923
|
The number of images to generate per prompt.
|
924
924
|
eta (`float`, *optional*, defaults to 0.0):
|
925
|
-
Corresponds to parameter eta (η) from the [DDIM](https://
|
926
|
-
to the [`~schedulers.DDIMScheduler`], and is ignored in other schedulers.
|
925
|
+
Corresponds to parameter eta (η) from the [DDIM](https://huggingface.co/papers/2010.02502) paper. Only
|
926
|
+
applies to the [`~schedulers.DDIMScheduler`], and is ignored in other schedulers.
|
927
927
|
generator (`torch.Generator` or `List[torch.Generator]`, *optional*):
|
928
928
|
A [`torch.Generator`](https://pytorch.org/docs/stable/generated/torch.Generator.html) to make
|
929
929
|
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.
|
@@ -581,7 +581,7 @@ class StableDiffusionInpaintPipeline(
|
|
581
581
|
def prepare_extra_step_kwargs(self, generator, eta):
|
582
582
|
# prepare extra kwargs for the scheduler step, since not all schedulers have the same signature
|
583
583
|
# eta (η) is only used with the DDIMScheduler, it will be ignored for other schedulers.
|
584
|
-
# eta corresponds to η in DDIM paper: https://
|
584
|
+
# eta corresponds to η in DDIM paper: https://huggingface.co/papers/2010.02502
|
585
585
|
# and should be between [0, 1]
|
586
586
|
|
587
587
|
accepts_eta = "eta" in set(inspect.signature(self.scheduler.step).parameters.keys())
|
@@ -859,7 +859,7 @@ class StableDiffusionInpaintPipeline(
|
|
859
859
|
return self._clip_skip
|
860
860
|
|
861
861
|
# here `guidance_scale` is defined analog to the guidance weight `w` of equation (2)
|
862
|
-
# of the Imagen paper: https://
|
862
|
+
# of the Imagen paper: https://huggingface.co/papers/2205.11487 . `guidance_scale = 1`
|
863
863
|
# corresponds to doing no classifier free guidance.
|
864
864
|
@property
|
865
865
|
def do_classifier_free_guidance(self):
|
@@ -968,8 +968,8 @@ class StableDiffusionInpaintPipeline(
|
|
968
968
|
num_images_per_prompt (`int`, *optional*, defaults to 1):
|
969
969
|
The number of images to generate per prompt.
|
970
970
|
eta (`float`, *optional*, defaults to 0.0):
|
971
|
-
Corresponds to parameter eta (η) from the [DDIM](https://
|
972
|
-
to the [`~schedulers.DDIMScheduler`], and is ignored in other schedulers.
|
971
|
+
Corresponds to parameter eta (η) from the [DDIM](https://huggingface.co/papers/2010.02502) paper. Only
|
972
|
+
applies to the [`~schedulers.DDIMScheduler`], and is ignored in other schedulers.
|
973
973
|
generator (`torch.Generator` or `List[torch.Generator]`, *optional*):
|
974
974
|
A [`torch.Generator`](https://pytorch.org/docs/stable/generated/torch.Generator.html) to make
|
975
975
|
generation deterministic.
|
@@ -1,4 +1,4 @@
|
|
1
|
-
# Copyright
|
1
|
+
# Copyright 2025 The InstructPix2Pix Authors and 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.
|
@@ -221,8 +221,8 @@ class StableDiffusionInstructPix2PixPipeline(
|
|
221
221
|
num_images_per_prompt (`int`, *optional*, defaults to 1):
|
222
222
|
The number of images to generate per prompt.
|
223
223
|
eta (`float`, *optional*, defaults to 0.0):
|
224
|
-
Corresponds to parameter eta (η) from the [DDIM](https://
|
225
|
-
to the [`~schedulers.DDIMScheduler`], and is ignored in other schedulers.
|
224
|
+
Corresponds to parameter eta (η) from the [DDIM](https://huggingface.co/papers/2010.02502) paper. Only
|
225
|
+
applies to the [`~schedulers.DDIMScheduler`], and is ignored in other schedulers.
|
226
226
|
generator (`torch.Generator`, *optional*):
|
227
227
|
A [`torch.Generator`](https://pytorch.org/docs/stable/generated/torch.Generator.html) to make
|
228
228
|
generation deterministic.
|
@@ -742,7 +742,7 @@ class StableDiffusionInstructPix2PixPipeline(
|
|
742
742
|
def prepare_extra_step_kwargs(self, generator, eta):
|
743
743
|
# prepare extra kwargs for the scheduler step, since not all schedulers have the same signature
|
744
744
|
# eta (η) is only used with the DDIMScheduler, it will be ignored for other schedulers.
|
745
|
-
# eta corresponds to η in DDIM paper: https://
|
745
|
+
# eta corresponds to η in DDIM paper: https://huggingface.co/papers/2010.02502
|
746
746
|
# and should be between [0, 1]
|
747
747
|
|
748
748
|
accepts_eta = "eta" in set(inspect.signature(self.scheduler.step).parameters.keys())
|
@@ -910,7 +910,7 @@ class StableDiffusionInstructPix2PixPipeline(
|
|
910
910
|
return self._num_timesteps
|
911
911
|
|
912
912
|
# here `guidance_scale` is defined analog to the guidance weight `w` of equation (2)
|
913
|
-
# of the Imagen paper: https://
|
913
|
+
# of the Imagen paper: https://huggingface.co/papers/2205.11487 . `guidance_scale = 1`
|
914
914
|
# corresponds to doing no classifier free guidance.
|
915
915
|
@property
|
916
916
|
def do_classifier_free_guidance(self):
|
@@ -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.
|
@@ -433,8 +433,8 @@ class StableDiffusionLatentUpscalePipeline(DiffusionPipeline, StableDiffusionMix
|
|
433
433
|
The prompt or prompts to guide what to not include in image generation. If not defined, you need to
|
434
434
|
pass `negative_prompt_embeds` instead. Ignored when not using guidance (`guidance_scale < 1`).
|
435
435
|
eta (`float`, *optional*, defaults to 0.0):
|
436
|
-
Corresponds to parameter eta (η) from the [DDIM](https://
|
437
|
-
to the [`~schedulers.DDIMScheduler`], and is ignored in other schedulers.
|
436
|
+
Corresponds to parameter eta (η) from the [DDIM](https://huggingface.co/papers/2010.02502) paper. Only
|
437
|
+
applies to the [`~schedulers.DDIMScheduler`], and is ignored in other schedulers.
|
438
438
|
generator (`torch.Generator` or `List[torch.Generator]`, *optional*):
|
439
439
|
A [`torch.Generator`](https://pytorch.org/docs/stable/generated/torch.Generator.html) to make
|
440
440
|
generation deterministic.
|
@@ -516,7 +516,7 @@ class StableDiffusionLatentUpscalePipeline(DiffusionPipeline, StableDiffusionMix
|
|
516
516
|
batch_size = prompt_embeds.shape[0]
|
517
517
|
device = self._execution_device
|
518
518
|
# here `guidance_scale` is defined analog to the guidance weight `w` of equation (2)
|
519
|
-
# of the Imagen paper: https://
|
519
|
+
# of the Imagen paper: https://huggingface.co/papers/2205.11487 . `guidance_scale = 1`
|
520
520
|
# corresponds to doing no classifier free guidance.
|
521
521
|
do_classifier_free_guidance = guidance_scale > 1.0
|
522
522
|
|
@@ -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.
|
@@ -404,7 +404,7 @@ class StableDiffusionUpscalePipeline(
|
|
404
404
|
def prepare_extra_step_kwargs(self, generator, eta):
|
405
405
|
# prepare extra kwargs for the scheduler step, since not all schedulers have the same signature
|
406
406
|
# eta (η) is only used with the DDIMScheduler, it will be ignored for other schedulers.
|
407
|
-
# eta corresponds to η in DDIM paper: https://
|
407
|
+
# eta corresponds to η in DDIM paper: https://huggingface.co/papers/2010.02502
|
408
408
|
# and should be between [0, 1]
|
409
409
|
|
410
410
|
accepts_eta = "eta" in set(inspect.signature(self.scheduler.step).parameters.keys())
|
@@ -587,8 +587,8 @@ class StableDiffusionUpscalePipeline(
|
|
587
587
|
num_images_per_prompt (`int`, *optional*, defaults to 1):
|
588
588
|
The number of images to generate per prompt.
|
589
589
|
eta (`float`, *optional*, defaults to 0.0):
|
590
|
-
Corresponds to parameter eta (η) from the [DDIM](https://
|
591
|
-
to the [`~schedulers.DDIMScheduler`], and is ignored in other schedulers.
|
590
|
+
Corresponds to parameter eta (η) from the [DDIM](https://huggingface.co/papers/2010.02502) paper. Only
|
591
|
+
applies to the [`~schedulers.DDIMScheduler`], and is ignored in other schedulers.
|
592
592
|
generator (`torch.Generator` or `List[torch.Generator]`, *optional*):
|
593
593
|
A [`torch.Generator`](https://pytorch.org/docs/stable/generated/torch.Generator.html) to make
|
594
594
|
generation deterministic.
|
@@ -677,7 +677,7 @@ class StableDiffusionUpscalePipeline(
|
|
677
677
|
|
678
678
|
device = self._execution_device
|
679
679
|
# here `guidance_scale` is defined analog to the guidance weight `w` of equation (2)
|
680
|
-
# of the Imagen paper: https://
|
680
|
+
# of the Imagen paper: https://huggingface.co/papers/2205.11487 . `guidance_scale = 1`
|
681
681
|
# corresponds to doing no classifier free guidance.
|
682
682
|
do_classifier_free_guidance = guidance_scale > 1.0
|
683
683
|
|
@@ -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.
|
@@ -492,7 +492,7 @@ class StableUnCLIPPipeline(
|
|
492
492
|
def prepare_prior_extra_step_kwargs(self, generator, eta):
|
493
493
|
# prepare extra kwargs for the prior_scheduler step, since not all prior_schedulers have the same signature
|
494
494
|
# eta (η) is only used with the DDIMScheduler, it will be ignored for other prior_schedulers.
|
495
|
-
# eta corresponds to η in DDIM paper: https://
|
495
|
+
# eta corresponds to η in DDIM paper: https://huggingface.co/papers/2010.02502
|
496
496
|
# and should be between [0, 1]
|
497
497
|
|
498
498
|
accepts_eta = "eta" in set(inspect.signature(self.prior_scheduler.step).parameters.keys())
|
@@ -510,7 +510,7 @@ class StableUnCLIPPipeline(
|
|
510
510
|
def prepare_extra_step_kwargs(self, generator, eta):
|
511
511
|
# prepare extra kwargs for the scheduler step, since not all schedulers have the same signature
|
512
512
|
# eta (η) is only used with the DDIMScheduler, it will be ignored for other schedulers.
|
513
|
-
# eta corresponds to η in DDIM paper: https://
|
513
|
+
# eta corresponds to η in DDIM paper: https://huggingface.co/papers/2010.02502
|
514
514
|
# and should be between [0, 1]
|
515
515
|
|
516
516
|
accepts_eta = "eta" in set(inspect.signature(self.scheduler.step).parameters.keys())
|
@@ -693,8 +693,8 @@ class StableUnCLIPPipeline(
|
|
693
693
|
num_images_per_prompt (`int`, *optional*, defaults to 1):
|
694
694
|
The number of images to generate per prompt.
|
695
695
|
eta (`float`, *optional*, defaults to 0.0):
|
696
|
-
Corresponds to parameter eta (η) from the [DDIM](https://
|
697
|
-
to the [`~schedulers.DDIMScheduler`], and is ignored in other schedulers.
|
696
|
+
Corresponds to parameter eta (η) from the [DDIM](https://huggingface.co/papers/2010.02502) paper. Only
|
697
|
+
applies to the [`~schedulers.DDIMScheduler`], and is ignored in other schedulers.
|
698
698
|
generator (`torch.Generator` or `List[torch.Generator]`, *optional*):
|
699
699
|
A [`torch.Generator`](https://pytorch.org/docs/stable/generated/torch.Generator.html) to make
|
700
700
|
generation deterministic.
|
@@ -774,7 +774,7 @@ class StableUnCLIPPipeline(
|
|
774
774
|
device = self._execution_device
|
775
775
|
|
776
776
|
# here `guidance_scale` is defined analog to the guidance weight `w` of equation (2)
|
777
|
-
# of the Imagen paper: https://
|
777
|
+
# of the Imagen paper: https://huggingface.co/papers/2205.11487 . `guidance_scale = 1`
|
778
778
|
# corresponds to doing no classifier free guidance.
|
779
779
|
prior_do_classifier_free_guidance = prior_guidance_scale > 1.0
|
780
780
|
|
@@ -842,7 +842,7 @@ class StableUnCLIPPipeline(
|
|
842
842
|
# done prior
|
843
843
|
|
844
844
|
# here `guidance_scale` is defined analog to the guidance weight `w` of equation (2)
|
845
|
-
# of the Imagen paper: https://
|
845
|
+
# of the Imagen paper: https://huggingface.co/papers/2205.11487 . `guidance_scale = 1`
|
846
846
|
# corresponds to doing no classifier free guidance.
|
847
847
|
do_classifier_free_guidance = guidance_scale > 1.0
|
848
848
|
|
@@ -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.
|
@@ -454,7 +454,7 @@ class StableUnCLIPImg2ImgPipeline(
|
|
454
454
|
def prepare_extra_step_kwargs(self, generator, eta):
|
455
455
|
# prepare extra kwargs for the scheduler step, since not all schedulers have the same signature
|
456
456
|
# eta (η) is only used with the DDIMScheduler, it will be ignored for other schedulers.
|
457
|
-
# eta corresponds to η in DDIM paper: https://
|
457
|
+
# eta corresponds to η in DDIM paper: https://huggingface.co/papers/2010.02502
|
458
458
|
# and should be between [0, 1]
|
459
459
|
|
460
460
|
accepts_eta = "eta" in set(inspect.signature(self.scheduler.step).parameters.keys())
|
@@ -674,8 +674,8 @@ class StableUnCLIPImg2ImgPipeline(
|
|
674
674
|
num_images_per_prompt (`int`, *optional*, defaults to 1):
|
675
675
|
The number of images to generate per prompt.
|
676
676
|
eta (`float`, *optional*, defaults to 0.0):
|
677
|
-
Corresponds to parameter eta (η) from the [DDIM](https://
|
678
|
-
to the [`~schedulers.DDIMScheduler`], and is ignored in other schedulers.
|
677
|
+
Corresponds to parameter eta (η) from the [DDIM](https://huggingface.co/papers/2010.02502) paper. Only
|
678
|
+
applies to the [`~schedulers.DDIMScheduler`], and is ignored in other schedulers.
|
679
679
|
generator (`torch.Generator` or `List[torch.Generator]`, *optional*):
|
680
680
|
A [`torch.Generator`](https://pytorch.org/docs/stable/generated/torch.Generator.html) to make
|
681
681
|
generation deterministic.
|
@@ -753,7 +753,7 @@ class StableUnCLIPImg2ImgPipeline(
|
|
753
753
|
device = self._execution_device
|
754
754
|
|
755
755
|
# here `guidance_scale` is defined analog to the guidance weight `w` of equation (2)
|
756
|
-
# of the Imagen paper: https://
|
756
|
+
# of the Imagen paper: https://huggingface.co/papers/2205.11487 . `guidance_scale = 1`
|
757
757
|
# corresponds to doing no classifier free guidance.
|
758
758
|
do_classifier_free_guidance = guidance_scale > 1.0
|
759
759
|
|
@@ -1,4 +1,4 @@
|
|
1
|
-
# Copyright
|
1
|
+
# Copyright 2025 Stability AI, The HuggingFace Team and The InstantX 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.
|
@@ -25,6 +25,7 @@ from transformers import (
|
|
25
25
|
T5TokenizerFast,
|
26
26
|
)
|
27
27
|
|
28
|
+
from ...callbacks import MultiPipelineCallbacks, PipelineCallback
|
28
29
|
from ...image_processor import PipelineImageInput, VaeImageProcessor
|
29
30
|
from ...loaders import FromSingleFileMixin, SD3IPAdapterMixin, SD3LoraLoaderMixin
|
30
31
|
from ...models.autoencoders import AutoencoderKL
|
@@ -184,7 +185,7 @@ class StableDiffusion3Pipeline(DiffusionPipeline, SD3LoraLoaderMixin, FromSingle
|
|
184
185
|
|
185
186
|
model_cpu_offload_seq = "text_encoder->text_encoder_2->text_encoder_3->image_encoder->transformer->vae"
|
186
187
|
_optional_components = ["image_encoder", "feature_extractor"]
|
187
|
-
_callback_tensor_inputs = ["latents", "prompt_embeds", "
|
188
|
+
_callback_tensor_inputs = ["latents", "prompt_embeds", "pooled_prompt_embeds"]
|
188
189
|
|
189
190
|
def __init__(
|
190
191
|
self,
|
@@ -673,7 +674,7 @@ class StableDiffusion3Pipeline(DiffusionPipeline, SD3LoraLoaderMixin, FromSingle
|
|
673
674
|
return self._clip_skip
|
674
675
|
|
675
676
|
# here `guidance_scale` is defined analog to the guidance weight `w` of equation (2)
|
676
|
-
# of the Imagen paper: https://
|
677
|
+
# of the Imagen paper: https://huggingface.co/papers/2205.11487 . `guidance_scale = 1`
|
677
678
|
# corresponds to doing no classifier free guidance.
|
678
679
|
@property
|
679
680
|
def do_classifier_free_guidance(self):
|
@@ -830,11 +831,11 @@ class StableDiffusion3Pipeline(DiffusionPipeline, SD3LoraLoaderMixin, FromSingle
|
|
830
831
|
their `set_timesteps` method. If not defined, the default behavior when `num_inference_steps` is passed
|
831
832
|
will be used.
|
832
833
|
guidance_scale (`float`, *optional*, defaults to 7.0):
|
833
|
-
Guidance scale as defined in [Classifier-Free Diffusion
|
834
|
-
`guidance_scale` is defined as `w` of equation 2.
|
835
|
-
Paper](https://
|
836
|
-
1`. Higher guidance scale encourages to generate images that are closely linked to
|
837
|
-
usually at the expense of lower image quality.
|
834
|
+
Guidance scale as defined in [Classifier-Free Diffusion
|
835
|
+
Guidance](https://huggingface.co/papers/2207.12598). `guidance_scale` is defined as `w` of equation 2.
|
836
|
+
of [Imagen Paper](https://huggingface.co/papers/2205.11487). Guidance scale is enabled by setting
|
837
|
+
`guidance_scale > 1`. Higher guidance scale encourages to generate images that are closely linked to
|
838
|
+
the text `prompt`, usually at the expense of lower image quality.
|
838
839
|
negative_prompt (`str` or `List[str]`, *optional*):
|
839
840
|
The prompt or prompts not to guide the image generation. If not defined, one has to pass
|
840
841
|
`negative_prompt_embeds` instead. Ignored when not using guidance (i.e., ignored if `guidance_scale` is
|
@@ -923,6 +924,9 @@ class StableDiffusion3Pipeline(DiffusionPipeline, SD3LoraLoaderMixin, FromSingle
|
|
923
924
|
height = height or self.default_sample_size * self.vae_scale_factor
|
924
925
|
width = width or self.default_sample_size * self.vae_scale_factor
|
925
926
|
|
927
|
+
if isinstance(callback_on_step_end, (PipelineCallback, MultiPipelineCallbacks)):
|
928
|
+
callback_on_step_end_tensor_inputs = callback_on_step_end.tensor_inputs
|
929
|
+
|
926
930
|
# 1. Check inputs. Raise error if not correct
|
927
931
|
self.check_inputs(
|
928
932
|
prompt,
|
@@ -1109,10 +1113,7 @@ class StableDiffusion3Pipeline(DiffusionPipeline, SD3LoraLoaderMixin, FromSingle
|
|
1109
1113
|
|
1110
1114
|
latents = callback_outputs.pop("latents", latents)
|
1111
1115
|
prompt_embeds = callback_outputs.pop("prompt_embeds", prompt_embeds)
|
1112
|
-
|
1113
|
-
negative_pooled_prompt_embeds = callback_outputs.pop(
|
1114
|
-
"negative_pooled_prompt_embeds", negative_pooled_prompt_embeds
|
1115
|
-
)
|
1116
|
+
pooled_prompt_embeds = callback_outputs.pop("pooled_prompt_embeds", pooled_prompt_embeds)
|
1116
1117
|
|
1117
1118
|
# call the callback, if provided
|
1118
1119
|
if i == len(timesteps) - 1 or ((i + 1) > num_warmup_steps and (i + 1) % self.scheduler.order == 0):
|
@@ -1,4 +1,4 @@
|
|
1
|
-
# Copyright
|
1
|
+
# Copyright 2025 Stability AI and 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.
|
@@ -734,7 +734,7 @@ class StableDiffusion3Img2ImgPipeline(DiffusionPipeline, SD3LoraLoaderMixin, Fro
|
|
734
734
|
return self._clip_skip
|
735
735
|
|
736
736
|
# here `guidance_scale` is defined analog to the guidance weight `w` of equation (2)
|
737
|
-
# of the Imagen paper: https://
|
737
|
+
# of the Imagen paper: https://huggingface.co/papers/2205.11487 . `guidance_scale = 1`
|
738
738
|
# corresponds to doing no classifier free guidance.
|
739
739
|
@property
|
740
740
|
def do_classifier_free_guidance(self):
|
@@ -886,11 +886,11 @@ class StableDiffusion3Img2ImgPipeline(DiffusionPipeline, SD3LoraLoaderMixin, Fro
|
|
886
886
|
their `set_timesteps` method. If not defined, the default behavior when `num_inference_steps` is passed
|
887
887
|
will be used.
|
888
888
|
guidance_scale (`float`, *optional*, defaults to 7.0):
|
889
|
-
Guidance scale as defined in [Classifier-Free Diffusion
|
890
|
-
`guidance_scale` is defined as `w` of equation 2.
|
891
|
-
Paper](https://
|
892
|
-
1`. Higher guidance scale encourages to generate images that are closely linked to
|
893
|
-
usually at the expense of lower image quality.
|
889
|
+
Guidance scale as defined in [Classifier-Free Diffusion
|
890
|
+
Guidance](https://huggingface.co/papers/2207.12598). `guidance_scale` is defined as `w` of equation 2.
|
891
|
+
of [Imagen Paper](https://huggingface.co/papers/2205.11487). Guidance scale is enabled by setting
|
892
|
+
`guidance_scale > 1`. Higher guidance scale encourages to generate images that are closely linked to
|
893
|
+
the text `prompt`, usually at the expense of lower image quality.
|
894
894
|
negative_prompt (`str` or `List[str]`, *optional*):
|
895
895
|
The prompt or prompts not to guide the image generation. If not defined, one has to pass
|
896
896
|
`negative_prompt_embeds` instead. Ignored when not using guidance (i.e., ignored if `guidance_scale` is
|
@@ -1,4 +1,4 @@
|
|
1
|
-
# Copyright
|
1
|
+
# Copyright 2025 Stability AI and 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.
|
@@ -822,7 +822,7 @@ class StableDiffusion3InpaintPipeline(DiffusionPipeline, SD3LoraLoaderMixin, Fro
|
|
822
822
|
return self._clip_skip
|
823
823
|
|
824
824
|
# here `guidance_scale` is defined analog to the guidance weight `w` of equation (2)
|
825
|
-
# of the Imagen paper: https://
|
825
|
+
# of the Imagen paper: https://huggingface.co/papers/2205.11487 . `guidance_scale = 1`
|
826
826
|
# corresponds to doing no classifier free guidance.
|
827
827
|
@property
|
828
828
|
def do_classifier_free_guidance(self):
|
@@ -1010,11 +1010,11 @@ class StableDiffusion3InpaintPipeline(DiffusionPipeline, SD3LoraLoaderMixin, Fro
|
|
1010
1010
|
their `set_timesteps` method. If not defined, the default behavior when `num_inference_steps` is passed
|
1011
1011
|
will be used.
|
1012
1012
|
guidance_scale (`float`, *optional*, defaults to 7.0):
|
1013
|
-
Guidance scale as defined in [Classifier-Free Diffusion
|
1014
|
-
`guidance_scale` is defined as `w` of equation 2.
|
1015
|
-
Paper](https://
|
1016
|
-
1`. Higher guidance scale encourages to generate images that are closely linked to
|
1017
|
-
usually at the expense of lower image quality.
|
1013
|
+
Guidance scale as defined in [Classifier-Free Diffusion
|
1014
|
+
Guidance](https://huggingface.co/papers/2207.12598). `guidance_scale` is defined as `w` of equation 2.
|
1015
|
+
of [Imagen Paper](https://huggingface.co/papers/2205.11487). Guidance scale is enabled by setting
|
1016
|
+
`guidance_scale > 1`. Higher guidance scale encourages to generate images that are closely linked to
|
1017
|
+
the text `prompt`, usually at the expense of lower image quality.
|
1018
1018
|
negative_prompt (`str` or `List[str]`, *optional*):
|
1019
1019
|
The prompt or prompts not to guide the image generation. If not defined, one has to pass
|
1020
1020
|
`negative_prompt_embeds` instead. Ignored when not using guidance (i.e., ignored if `guidance_scale` is
|
@@ -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.
|
@@ -37,7 +37,7 @@ from ...utils import (
|
|
37
37
|
unscale_lora_layers,
|
38
38
|
)
|
39
39
|
from ...utils.torch_utils import randn_tensor
|
40
|
-
from ..pipeline_utils import DiffusionPipeline, StableDiffusionMixin
|
40
|
+
from ..pipeline_utils import DeprecatedPipelineMixin, DiffusionPipeline, StableDiffusionMixin
|
41
41
|
from ..stable_diffusion import StableDiffusionPipelineOutput
|
42
42
|
from ..stable_diffusion.safety_checker import StableDiffusionSafetyChecker
|
43
43
|
|
@@ -179,7 +179,9 @@ class AttendExciteAttnProcessor:
|
|
179
179
|
return hidden_states
|
180
180
|
|
181
181
|
|
182
|
-
class StableDiffusionAttendAndExcitePipeline(
|
182
|
+
class StableDiffusionAttendAndExcitePipeline(
|
183
|
+
DeprecatedPipelineMixin, DiffusionPipeline, StableDiffusionMixin, TextualInversionLoaderMixin
|
184
|
+
):
|
183
185
|
r"""
|
184
186
|
Pipeline for text-to-image generation using Stable Diffusion and Attend-and-Excite.
|
185
187
|
|
@@ -209,6 +211,8 @@ class StableDiffusionAttendAndExcitePipeline(DiffusionPipeline, StableDiffusionM
|
|
209
211
|
A `CLIPImageProcessor` to extract features from generated images; used as inputs to the `safety_checker`.
|
210
212
|
"""
|
211
213
|
|
214
|
+
_last_supported_version = "0.33.1"
|
215
|
+
|
212
216
|
model_cpu_offload_seq = "text_encoder->unet->vae"
|
213
217
|
_optional_components = ["safety_checker", "feature_extractor"]
|
214
218
|
_exclude_from_cpu_offload = ["safety_checker"]
|
@@ -502,7 +506,7 @@ class StableDiffusionAttendAndExcitePipeline(DiffusionPipeline, StableDiffusionM
|
|
502
506
|
def prepare_extra_step_kwargs(self, generator, eta):
|
503
507
|
# prepare extra kwargs for the scheduler step, since not all schedulers have the same signature
|
504
508
|
# eta (η) is only used with the DDIMScheduler, it will be ignored for other schedulers.
|
505
|
-
# eta corresponds to η in DDIM paper: https://
|
509
|
+
# eta corresponds to η in DDIM paper: https://huggingface.co/papers/2010.02502
|
506
510
|
# and should be between [0, 1]
|
507
511
|
|
508
512
|
accepts_eta = "eta" in set(inspect.signature(self.scheduler.step).parameters.keys())
|
@@ -794,8 +798,8 @@ class StableDiffusionAttendAndExcitePipeline(DiffusionPipeline, StableDiffusionM
|
|
794
798
|
num_images_per_prompt (`int`, *optional*, defaults to 1):
|
795
799
|
The number of images to generate per prompt.
|
796
800
|
eta (`float`, *optional*, defaults to 0.0):
|
797
|
-
Corresponds to parameter eta (η) from the [DDIM](https://
|
798
|
-
to the [`~schedulers.DDIMScheduler`], and is ignored in other schedulers.
|
801
|
+
Corresponds to parameter eta (η) from the [DDIM](https://huggingface.co/papers/2010.02502) paper. Only
|
802
|
+
applies to the [`~schedulers.DDIMScheduler`], and is ignored in other schedulers.
|
799
803
|
generator (`torch.Generator` or `List[torch.Generator]`, *optional*):
|
800
804
|
A [`torch.Generator`](https://pytorch.org/docs/stable/generated/torch.Generator.html) to make
|
801
805
|
generation deterministic.
|
@@ -873,7 +877,7 @@ class StableDiffusionAttendAndExcitePipeline(DiffusionPipeline, StableDiffusionM
|
|
873
877
|
|
874
878
|
device = self._execution_device
|
875
879
|
# here `guidance_scale` is defined analog to the guidance weight `w` of equation (2)
|
876
|
-
# of the Imagen paper: https://
|
880
|
+
# of the Imagen paper: https://huggingface.co/papers/2205.11487 . `guidance_scale = 1`
|
877
881
|
# corresponds to doing no classifier free guidance.
|
878
882
|
do_classifier_free_guidance = guidance_scale > 1.0
|
879
883
|
|
@@ -1047,7 +1051,7 @@ class StableDiffusionAttendAndExcitePipeline(DiffusionPipeline, StableDiffusionM
|
|
1047
1051
|
class GaussianSmoothing(torch.nn.Module):
|
1048
1052
|
"""
|
1049
1053
|
Arguments:
|
1050
|
-
Apply gaussian smoothing on a 1d, 2d or 3d tensor. Filtering is performed
|
1054
|
+
Apply gaussian smoothing on a 1d, 2d or 3d tensor. Filtering is performed separately for each channel in the input
|
1051
1055
|
using a depthwise convolution.
|
1052
1056
|
channels (int, sequence): Number of channels of the input tensors. Output will
|
1053
1057
|
have this number of channels as well.
|
@@ -1,4 +1,4 @@
|
|
1
|
-
# Copyright
|
1
|
+
# Copyright 2025 DiffEdit Authors and Pix2Pix Zero Authors and 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.
|
@@ -40,7 +40,7 @@ from ...utils import (
|
|
40
40
|
unscale_lora_layers,
|
41
41
|
)
|
42
42
|
from ...utils.torch_utils import randn_tensor
|
43
|
-
from ..pipeline_utils import DiffusionPipeline, StableDiffusionMixin
|
43
|
+
from ..pipeline_utils import DeprecatedPipelineMixin, DiffusionPipeline, StableDiffusionMixin
|
44
44
|
from ..stable_diffusion import StableDiffusionPipelineOutput
|
45
45
|
from ..stable_diffusion.safety_checker import StableDiffusionSafetyChecker
|
46
46
|
|
@@ -242,7 +242,11 @@ def preprocess_mask(mask, batch_size: int = 1):
|
|
242
242
|
|
243
243
|
|
244
244
|
class StableDiffusionDiffEditPipeline(
|
245
|
-
|
245
|
+
DeprecatedPipelineMixin,
|
246
|
+
DiffusionPipeline,
|
247
|
+
StableDiffusionMixin,
|
248
|
+
TextualInversionLoaderMixin,
|
249
|
+
StableDiffusionLoraLoaderMixin,
|
246
250
|
):
|
247
251
|
r"""
|
248
252
|
<Tip warning={true}>
|
@@ -282,6 +286,8 @@ class StableDiffusionDiffEditPipeline(
|
|
282
286
|
A `CLIPImageProcessor` to extract features from generated images; used as inputs to the `safety_checker`.
|
283
287
|
"""
|
284
288
|
|
289
|
+
_last_supported_version = "0.33.1"
|
290
|
+
|
285
291
|
model_cpu_offload_seq = "text_encoder->unet->vae"
|
286
292
|
_optional_components = ["safety_checker", "feature_extractor", "inverse_scheduler"]
|
287
293
|
_exclude_from_cpu_offload = ["safety_checker"]
|
@@ -618,7 +624,7 @@ class StableDiffusionDiffEditPipeline(
|
|
618
624
|
def prepare_extra_step_kwargs(self, generator, eta):
|
619
625
|
# prepare extra kwargs for the scheduler step, since not all schedulers have the same signature
|
620
626
|
# eta (η) is only used with the DDIMScheduler, it will be ignored for other schedulers.
|
621
|
-
# eta corresponds to η in DDIM paper: https://
|
627
|
+
# eta corresponds to η in DDIM paper: https://huggingface.co/papers/2010.02502
|
622
628
|
# and should be between [0, 1]
|
623
629
|
|
624
630
|
accepts_eta = "eta" in set(inspect.signature(self.scheduler.step).parameters.keys())
|
@@ -969,7 +975,7 @@ class StableDiffusionDiffEditPipeline(
|
|
969
975
|
|
970
976
|
device = self._execution_device
|
971
977
|
# here `guidance_scale` is defined analog to the guidance weight `w` of equation (2)
|
972
|
-
# of the Imagen paper: https://
|
978
|
+
# of the Imagen paper: https://huggingface.co/papers/2205.11487 . `guidance_scale = 1`
|
973
979
|
# corresponds to doing no classifier free guidance.
|
974
980
|
do_classifier_free_guidance = guidance_scale > 1.0
|
975
981
|
|
@@ -1176,7 +1182,7 @@ class StableDiffusionDiffEditPipeline(
|
|
1176
1182
|
|
1177
1183
|
device = self._execution_device
|
1178
1184
|
# here `guidance_scale` is defined analog to the guidance weight `w` of equation (2)
|
1179
|
-
# of the Imagen paper: https://
|
1185
|
+
# of the Imagen paper: https://huggingface.co/papers/2205.11487 . `guidance_scale = 1`
|
1180
1186
|
# corresponds to doing no classifier free guidance.
|
1181
1187
|
do_classifier_free_guidance = guidance_scale > 1.0
|
1182
1188
|
|
@@ -1349,8 +1355,8 @@ class StableDiffusionDiffEditPipeline(
|
|
1349
1355
|
num_images_per_prompt (`int`, *optional*, defaults to 1):
|
1350
1356
|
The number of images to generate per prompt.
|
1351
1357
|
eta (`float`, *optional*, defaults to 0.0):
|
1352
|
-
Corresponds to parameter eta (η) from the [DDIM](https://
|
1353
|
-
to the [`~schedulers.DDIMScheduler`], and is ignored in other schedulers.
|
1358
|
+
Corresponds to parameter eta (η) from the [DDIM](https://huggingface.co/papers/2010.02502) paper. Only
|
1359
|
+
applies to the [`~schedulers.DDIMScheduler`], and is ignored in other schedulers.
|
1354
1360
|
generator (`torch.Generator`, *optional*):
|
1355
1361
|
A [`torch.Generator`](https://pytorch.org/docs/stable/generated/torch.Generator.html) to make
|
1356
1362
|
generation deterministic.
|
@@ -1422,7 +1428,7 @@ class StableDiffusionDiffEditPipeline(
|
|
1422
1428
|
|
1423
1429
|
device = self._execution_device
|
1424
1430
|
# here `guidance_scale` is defined analog to the guidance weight `w` of equation (2)
|
1425
|
-
# of the Imagen paper: https://
|
1431
|
+
# of the Imagen paper: https://huggingface.co/papers/2205.11487 . `guidance_scale = 1`
|
1426
1432
|
# corresponds to doing no classifier free guidance.
|
1427
1433
|
do_classifier_free_guidance = guidance_scale > 1.0
|
1428
1434
|
|