diffusers 0.33.1__py3-none-any.whl → 0.34.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- diffusers/__init__.py +48 -1
- diffusers/commands/__init__.py +1 -1
- diffusers/commands/diffusers_cli.py +1 -1
- diffusers/commands/env.py +1 -1
- diffusers/commands/fp16_safetensors.py +1 -1
- diffusers/dependency_versions_check.py +1 -1
- diffusers/dependency_versions_table.py +1 -1
- diffusers/experimental/rl/value_guided_sampling.py +1 -1
- diffusers/hooks/faster_cache.py +2 -2
- diffusers/hooks/group_offloading.py +128 -29
- diffusers/hooks/hooks.py +2 -2
- diffusers/hooks/layerwise_casting.py +3 -3
- diffusers/hooks/pyramid_attention_broadcast.py +1 -1
- diffusers/image_processor.py +7 -2
- diffusers/loaders/__init__.py +4 -0
- diffusers/loaders/ip_adapter.py +5 -14
- diffusers/loaders/lora_base.py +212 -111
- diffusers/loaders/lora_conversion_utils.py +275 -34
- diffusers/loaders/lora_pipeline.py +1554 -819
- diffusers/loaders/peft.py +52 -109
- diffusers/loaders/single_file.py +2 -2
- diffusers/loaders/single_file_model.py +20 -4
- diffusers/loaders/single_file_utils.py +225 -5
- diffusers/loaders/textual_inversion.py +3 -2
- diffusers/loaders/transformer_flux.py +1 -1
- diffusers/loaders/transformer_sd3.py +2 -2
- diffusers/loaders/unet.py +2 -16
- diffusers/loaders/unet_loader_utils.py +1 -1
- diffusers/loaders/utils.py +1 -1
- diffusers/models/__init__.py +15 -1
- diffusers/models/activations.py +5 -5
- diffusers/models/adapter.py +2 -3
- diffusers/models/attention.py +4 -4
- diffusers/models/attention_flax.py +10 -10
- diffusers/models/attention_processor.py +14 -10
- diffusers/models/auto_model.py +47 -10
- diffusers/models/autoencoders/__init__.py +1 -0
- diffusers/models/autoencoders/autoencoder_asym_kl.py +4 -4
- diffusers/models/autoencoders/autoencoder_dc.py +3 -3
- diffusers/models/autoencoders/autoencoder_kl.py +4 -4
- 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 +1108 -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_temporal_decoder.py +4 -4
- diffusers/models/autoencoders/autoencoder_kl_wan.py +256 -22
- 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 +1 -1
- 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 +16 -15
- 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 +1 -1
- 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 +10 -12
- diffusers/models/embeddings_flax.py +2 -2
- diffusers/models/lora.py +3 -3
- diffusers/models/modeling_utils.py +44 -14
- diffusers/models/normalization.py +4 -4
- diffusers/models/resnet.py +2 -2
- diffusers/models/resnet_flax.py +1 -1
- diffusers/models/transformers/__init__.py +5 -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 +742 -0
- diffusers/models/transformers/transformer_cogview3plus.py +5 -10
- diffusers/models/transformers/transformer_cogview4.py +317 -25
- diffusers/models/transformers/transformer_cosmos.py +579 -0
- diffusers/models/transformers/transformer_flux.py +9 -11
- diffusers/models/transformers/transformer_hidream_image.py +942 -0
- diffusers/models/transformers/transformer_hunyuan_video.py +6 -8
- diffusers/models/transformers/transformer_hunyuan_video_framepack.py +416 -0
- diffusers/models/transformers/transformer_ltx.py +2 -2
- 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_sd3.py +7 -7
- diffusers/models/transformers/transformer_temporal.py +1 -1
- diffusers/models/transformers/transformer_wan.py +24 -8
- diffusers/models/transformers/transformer_wan_vace.py +393 -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 +2 -2
- 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/pipelines/__init__.py +37 -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 +23 -13
- diffusers/pipelines/aura_flow/pipeline_aura_flow.py +48 -11
- diffusers/pipelines/auto_pipeline.py +6 -7
- 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 +8 -8
- diffusers/pipelines/cogvideo/pipeline_cogvideox_fun_control.py +8 -8
- diffusers/pipelines/cogvideo/pipeline_cogvideox_image2video.py +8 -8
- diffusers/pipelines/cogvideo/pipeline_cogvideox_video2video.py +8 -8
- diffusers/pipelines/cogview3/pipeline_cogview3plus.py +9 -9
- diffusers/pipelines/cogview4/pipeline_cogview4.py +7 -7
- 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 +8 -8
- 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 +14 -14
- diffusers/pipelines/controlnet/pipeline_controlnet_union_sd_xl.py +5 -5
- diffusers/pipelines/controlnet/pipeline_controlnet_union_sd_xl_img2img.py +13 -13
- 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 +7 -7
- 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 +1 -1
- 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/modeling_flux.py +1 -1
- diffusers/pipelines/flux/pipeline_flux.py +10 -17
- diffusers/pipelines/flux/pipeline_flux_control.py +6 -6
- diffusers/pipelines/flux/pipeline_flux_control_img2img.py +6 -6
- diffusers/pipelines/flux/pipeline_flux_control_inpaint.py +6 -6
- diffusers/pipelines/flux/pipeline_flux_controlnet.py +6 -6
- diffusers/pipelines/flux/pipeline_flux_controlnet_image_to_image.py +30 -22
- diffusers/pipelines/flux/pipeline_flux_controlnet_inpainting.py +2 -1
- diffusers/pipelines/flux/pipeline_flux_fill.py +6 -6
- diffusers/pipelines/flux/pipeline_flux_img2img.py +39 -6
- diffusers/pipelines/flux/pipeline_flux_inpaint.py +11 -6
- diffusers/pipelines/flux/pipeline_flux_prior_redux.py +1 -1
- 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 +8 -8
- 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 +51 -6
- diffusers/pipelines/ltx/pipeline_ltx_condition.py +107 -29
- diffusers/pipelines/ltx/pipeline_ltx_image2video.py +50 -6
- 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 +6 -6
- 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 +3 -4
- diffusers/pipelines/pipeline_loading_utils.py +89 -13
- diffusers/pipelines/pipeline_utils.py +105 -33
- diffusers/pipelines/pixart_alpha/pipeline_pixart_alpha.py +11 -11
- diffusers/pipelines/pixart_alpha/pipeline_pixart_sigma.py +11 -11
- 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/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 +10 -10
- diffusers/pipelines/stable_diffusion/pipeline_onnx_stable_diffusion_img2img.py +10 -10
- diffusers/pipelines/stable_diffusion/pipeline_onnx_stable_diffusion_inpaint.py +10 -10
- diffusers/pipelines/stable_diffusion/pipeline_onnx_stable_diffusion_upscale.py +9 -9
- diffusers/pipelines/stable_diffusion/pipeline_stable_diffusion.py +8 -8
- 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 +7 -7
- 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 +13 -10
- diffusers/pipelines/wan/pipeline_wan_i2v.py +38 -18
- diffusers/pipelines/wan/pipeline_wan_vace.py +976 -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 +179 -1
- diffusers/quantizers/base.py +6 -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 +16 -13
- diffusers/quantizers/quantization_config.py +18 -16
- diffusers/quantizers/quanto/quanto_quantizer.py +4 -0
- diffusers/quantizers/torchao/torchao_quantizer.py +5 -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 +8 -8
- diffusers/schedulers/scheduling_dpm_cogvideox.py +5 -5
- diffusers/schedulers/scheduling_dpmsolver_multistep.py +12 -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 +13 -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 -1
- 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 +11 -11
- diffusers/schedulers/scheduling_utils.py +1 -1
- diffusers/schedulers/scheduling_utils_flax.py +1 -1
- diffusers/schedulers/scheduling_vq_diffusion.py +1 -1
- diffusers/training_utils.py +13 -5
- diffusers/utils/__init__.py +5 -0
- diffusers/utils/accelerate_utils.py +1 -1
- diffusers/utils/doc_utils.py +1 -1
- diffusers/utils/dummy_pt_objects.py +120 -0
- diffusers/utils/dummy_torch_and_transformers_objects.py +225 -0
- diffusers/utils/dynamic_modules_utils.py +21 -3
- diffusers/utils/export_utils.py +1 -1
- diffusers/utils/import_utils.py +81 -18
- diffusers/utils/logging.py +1 -1
- diffusers/utils/outputs.py +2 -1
- diffusers/utils/peft_utils.py +91 -8
- diffusers/utils/state_dict_utils.py +20 -3
- diffusers/utils/testing_utils.py +59 -7
- diffusers/utils/torch_utils.py +25 -5
- diffusers/video_processor.py +2 -2
- {diffusers-0.33.1.dist-info → diffusers-0.34.0.dist-info}/METADATA +70 -55
- diffusers-0.34.0.dist-info/RECORD +639 -0
- {diffusers-0.33.1.dist-info → diffusers-0.34.0.dist-info}/WHEEL +1 -1
- diffusers-0.33.1.dist-info/RECORD +0 -608
- {diffusers-0.33.1.dist-info → diffusers-0.34.0.dist-info}/LICENSE +0 -0
- {diffusers-0.33.1.dist-info → diffusers-0.34.0.dist-info}/entry_points.txt +0 -0
- {diffusers-0.33.1.dist-info → diffusers-0.34.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.
|
@@ -70,7 +70,7 @@ def rescale_noise_cfg(noise_cfg, noise_pred_text, guidance_rescale=0.0):
|
|
70
70
|
r"""
|
71
71
|
Rescales `noise_cfg` tensor based on `guidance_rescale` to improve image quality and fix overexposure. Based on
|
72
72
|
Section 3.4 from [Common Diffusion Noise Schedules and Sample Steps are
|
73
|
-
Flawed](https://
|
73
|
+
Flawed](https://huggingface.co/papers/2305.08891).
|
74
74
|
|
75
75
|
Args:
|
76
76
|
noise_cfg (`torch.Tensor`):
|
@@ -608,7 +608,7 @@ class StableDiffusionPipeline(
|
|
608
608
|
def prepare_extra_step_kwargs(self, generator, eta):
|
609
609
|
# prepare extra kwargs for the scheduler step, since not all schedulers have the same signature
|
610
610
|
# eta (η) is only used with the DDIMScheduler, it will be ignored for other schedulers.
|
611
|
-
# eta corresponds to η in DDIM paper: https://
|
611
|
+
# eta corresponds to η in DDIM paper: https://huggingface.co/papers/2010.02502
|
612
612
|
# and should be between [0, 1]
|
613
613
|
|
614
614
|
accepts_eta = "eta" in set(inspect.signature(self.scheduler.step).parameters.keys())
|
@@ -757,7 +757,7 @@ class StableDiffusionPipeline(
|
|
757
757
|
return self._clip_skip
|
758
758
|
|
759
759
|
# here `guidance_scale` is defined analog to the guidance weight `w` of equation (2)
|
760
|
-
# of the Imagen paper: https://
|
760
|
+
# of the Imagen paper: https://huggingface.co/papers/2205.11487 . `guidance_scale = 1`
|
761
761
|
# corresponds to doing no classifier free guidance.
|
762
762
|
@property
|
763
763
|
def do_classifier_free_guidance(self):
|
@@ -836,8 +836,8 @@ class StableDiffusionPipeline(
|
|
836
836
|
num_images_per_prompt (`int`, *optional*, defaults to 1):
|
837
837
|
The number of images to generate per prompt.
|
838
838
|
eta (`float`, *optional*, defaults to 0.0):
|
839
|
-
Corresponds to parameter eta (η) from the [DDIM](https://
|
840
|
-
to the [`~schedulers.DDIMScheduler`], and is ignored in other schedulers.
|
839
|
+
Corresponds to parameter eta (η) from the [DDIM](https://huggingface.co/papers/2010.02502) paper. Only
|
840
|
+
applies to the [`~schedulers.DDIMScheduler`], and is ignored in other schedulers.
|
841
841
|
generator (`torch.Generator` or `List[torch.Generator]`, *optional*):
|
842
842
|
A [`torch.Generator`](https://pytorch.org/docs/stable/generated/torch.Generator.html) to make
|
843
843
|
generation deterministic.
|
@@ -867,7 +867,7 @@ class StableDiffusionPipeline(
|
|
867
867
|
[`self.processor`](https://github.com/huggingface/diffusers/blob/main/src/diffusers/models/attention_processor.py).
|
868
868
|
guidance_rescale (`float`, *optional*, defaults to 0.0):
|
869
869
|
Guidance rescale factor from [Common Diffusion Noise Schedules and Sample Steps are
|
870
|
-
Flawed](https://
|
870
|
+
Flawed](https://huggingface.co/papers/2305.08891). Guidance rescale factor should fix overexposure when
|
871
871
|
using zero terminal SNR.
|
872
872
|
clip_skip (`int`, *optional*):
|
873
873
|
Number of layers to be skipped from CLIP while computing the prompt embeddings. A value of 1 means that
|
@@ -1053,7 +1053,7 @@ class StableDiffusionPipeline(
|
|
1053
1053
|
noise_pred = noise_pred_uncond + self.guidance_scale * (noise_pred_text - noise_pred_uncond)
|
1054
1054
|
|
1055
1055
|
if self.do_classifier_free_guidance and self.guidance_rescale > 0.0:
|
1056
|
-
# Based on 3.4. in https://
|
1056
|
+
# Based on 3.4. in https://huggingface.co/papers/2305.08891
|
1057
1057
|
noise_pred = rescale_noise_cfg(noise_pred, noise_pred_text, guidance_rescale=self.guidance_rescale)
|
1058
1058
|
|
1059
1059
|
# compute the previous noisy sample x_t -> x_t-1
|
@@ -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.
|
@@ -414,7 +414,7 @@ class StableDiffusionDepth2ImgPipeline(DiffusionPipeline, TextualInversionLoader
|
|
414
414
|
def prepare_extra_step_kwargs(self, generator, eta):
|
415
415
|
# prepare extra kwargs for the scheduler step, since not all schedulers have the same signature
|
416
416
|
# eta (η) is only used with the DDIMScheduler, it will be ignored for other schedulers.
|
417
|
-
# eta corresponds to η in DDIM paper: https://
|
417
|
+
# eta corresponds to η in DDIM paper: https://huggingface.co/papers/2010.02502
|
418
418
|
# and should be between [0, 1]
|
419
419
|
|
420
420
|
accepts_eta = "eta" in set(inspect.signature(self.scheduler.step).parameters.keys())
|
@@ -617,7 +617,7 @@ class StableDiffusionDepth2ImgPipeline(DiffusionPipeline, TextualInversionLoader
|
|
617
617
|
return self._clip_skip
|
618
618
|
|
619
619
|
# here `guidance_scale` is defined analog to the guidance weight `w` of equation (2)
|
620
|
-
# of the Imagen paper: https://
|
620
|
+
# of the Imagen paper: https://huggingface.co/papers/2205.11487 . `guidance_scale = 1`
|
621
621
|
# corresponds to doing no classifier free guidance.
|
622
622
|
@property
|
623
623
|
def do_classifier_free_guidance(self):
|
@@ -684,8 +684,8 @@ class StableDiffusionDepth2ImgPipeline(DiffusionPipeline, TextualInversionLoader
|
|
684
684
|
num_images_per_prompt (`int`, *optional*, defaults to 1):
|
685
685
|
The number of images to generate per prompt.
|
686
686
|
eta (`float`, *optional*, defaults to 0.0):
|
687
|
-
Corresponds to parameter eta (η) from the [DDIM](https://
|
688
|
-
to the [`~schedulers.DDIMScheduler`], and is ignored in other schedulers.
|
687
|
+
Corresponds to parameter eta (η) from the [DDIM](https://huggingface.co/papers/2010.02502) paper. Only
|
688
|
+
applies to the [`~schedulers.DDIMScheduler`], and is ignored in other schedulers.
|
689
689
|
generator (`torch.Generator` or `List[torch.Generator]`, *optional*):
|
690
690
|
A [`torch.Generator`](https://pytorch.org/docs/stable/generated/torch.Generator.html) to make
|
691
691
|
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.
|
@@ -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.
|
@@ -673,7 +673,7 @@ class StableDiffusion3Pipeline(DiffusionPipeline, SD3LoraLoaderMixin, FromSingle
|
|
673
673
|
return self._clip_skip
|
674
674
|
|
675
675
|
# here `guidance_scale` is defined analog to the guidance weight `w` of equation (2)
|
676
|
-
# of the Imagen paper: https://
|
676
|
+
# of the Imagen paper: https://huggingface.co/papers/2205.11487 . `guidance_scale = 1`
|
677
677
|
# corresponds to doing no classifier free guidance.
|
678
678
|
@property
|
679
679
|
def do_classifier_free_guidance(self):
|
@@ -830,11 +830,11 @@ class StableDiffusion3Pipeline(DiffusionPipeline, SD3LoraLoaderMixin, FromSingle
|
|
830
830
|
their `set_timesteps` method. If not defined, the default behavior when `num_inference_steps` is passed
|
831
831
|
will be used.
|
832
832
|
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.
|
833
|
+
Guidance scale as defined in [Classifier-Free Diffusion
|
834
|
+
Guidance](https://huggingface.co/papers/2207.12598). `guidance_scale` is defined as `w` of equation 2.
|
835
|
+
of [Imagen Paper](https://huggingface.co/papers/2205.11487). Guidance scale is enabled by setting
|
836
|
+
`guidance_scale > 1`. Higher guidance scale encourages to generate images that are closely linked to
|
837
|
+
the text `prompt`, usually at the expense of lower image quality.
|
838
838
|
negative_prompt (`str` or `List[str]`, *optional*):
|
839
839
|
The prompt or prompts not to guide the image generation. If not defined, one has to pass
|
840
840
|
`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.
|
@@ -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.
|