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 Harutatsu Akiyama, Jinbin Bai, 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.
|
@@ -51,7 +51,7 @@ from ...utils import (
|
|
51
51
|
scale_lora_layers,
|
52
52
|
unscale_lora_layers,
|
53
53
|
)
|
54
|
-
from ...utils.torch_utils import is_compiled_module, randn_tensor
|
54
|
+
from ...utils.torch_utils import empty_device_cache, is_compiled_module, randn_tensor
|
55
55
|
from ..pipeline_utils import DiffusionPipeline, StableDiffusionMixin
|
56
56
|
from ..stable_diffusion_xl.pipeline_output import StableDiffusionXLPipelineOutput
|
57
57
|
|
@@ -149,7 +149,7 @@ def rescale_noise_cfg(noise_cfg, noise_pred_text, guidance_rescale=0.0):
|
|
149
149
|
r"""
|
150
150
|
Rescales `noise_cfg` tensor based on `guidance_rescale` to improve image quality and fix overexposure. Based on
|
151
151
|
Section 3.4 from [Common Diffusion Noise Schedules and Sample Steps are
|
152
|
-
Flawed](https://
|
152
|
+
Flawed](https://huggingface.co/papers/2305.08891).
|
153
153
|
|
154
154
|
Args:
|
155
155
|
noise_cfg (`torch.Tensor`):
|
@@ -605,7 +605,7 @@ class StableDiffusionXLControlNetInpaintPipeline(
|
|
605
605
|
def prepare_extra_step_kwargs(self, generator, eta):
|
606
606
|
# prepare extra kwargs for the scheduler step, since not all schedulers have the same signature
|
607
607
|
# eta (η) is only used with the DDIMScheduler, it will be ignored for other schedulers.
|
608
|
-
# eta corresponds to η in DDIM paper: https://
|
608
|
+
# eta corresponds to η in DDIM paper: https://huggingface.co/papers/2010.02502
|
609
609
|
# and should be between [0, 1]
|
610
610
|
|
611
611
|
accepts_eta = "eta" in set(inspect.signature(self.scheduler.step).parameters.keys())
|
@@ -1157,7 +1157,7 @@ class StableDiffusionXLControlNetInpaintPipeline(
|
|
1157
1157
|
return self._clip_skip
|
1158
1158
|
|
1159
1159
|
# here `guidance_scale` is defined analog to the guidance weight `w` of equation (2)
|
1160
|
-
# of the Imagen paper: https://
|
1160
|
+
# of the Imagen paper: https://huggingface.co/papers/2205.11487 . `guidance_scale = 1`
|
1161
1161
|
# corresponds to doing no classifier free guidance.
|
1162
1162
|
@property
|
1163
1163
|
def do_classifier_free_guidance(self):
|
@@ -1283,11 +1283,11 @@ class StableDiffusionXLControlNetInpaintPipeline(
|
|
1283
1283
|
forms a part of a "Mixture of Denoisers" multi-pipeline setup, as elaborated in [**Refining the Image
|
1284
1284
|
Output**](https://huggingface.co/docs/diffusers/api/pipelines/stable_diffusion/stable_diffusion_xl#refining-the-image-output).
|
1285
1285
|
guidance_scale (`float`, *optional*, defaults to 7.5):
|
1286
|
-
Guidance scale as defined in [Classifier-Free Diffusion
|
1287
|
-
`guidance_scale` is defined as `w` of equation 2.
|
1288
|
-
Paper](https://
|
1289
|
-
1`. Higher guidance scale encourages to generate images that are closely linked to
|
1290
|
-
usually at the expense of lower image quality.
|
1286
|
+
Guidance scale as defined in [Classifier-Free Diffusion
|
1287
|
+
Guidance](https://huggingface.co/papers/2207.12598). `guidance_scale` is defined as `w` of equation 2.
|
1288
|
+
of [Imagen Paper](https://huggingface.co/papers/2205.11487). Guidance scale is enabled by setting
|
1289
|
+
`guidance_scale > 1`. Higher guidance scale encourages to generate images that are closely linked to
|
1290
|
+
the text `prompt`, usually at the expense of lower image quality.
|
1291
1291
|
negative_prompt (`str` or `List[str]`, *optional*):
|
1292
1292
|
The prompt or prompts not to guide the image generation. If not defined, one has to pass
|
1293
1293
|
`negative_prompt_embeds` instead. Ignored when not using guidance (i.e., ignored if `guidance_scale` is
|
@@ -1318,8 +1318,8 @@ class StableDiffusionXLControlNetInpaintPipeline(
|
|
1318
1318
|
num_images_per_prompt (`int`, *optional*, defaults to 1):
|
1319
1319
|
The number of images to generate per prompt.
|
1320
1320
|
eta (`float`, *optional*, defaults to 0.0):
|
1321
|
-
Corresponds to parameter eta (η) in the DDIM paper: https://
|
1322
|
-
[`schedulers.DDIMScheduler`], will be ignored for others.
|
1321
|
+
Corresponds to parameter eta (η) in the DDIM paper: https://huggingface.co/papers/2010.02502. Only
|
1322
|
+
applies to [`schedulers.DDIMScheduler`], will be ignored for others.
|
1323
1323
|
generator (`torch.Generator`, *optional*):
|
1324
1324
|
One or a list of [torch generator(s)](https://pytorch.org/docs/stable/generated/torch.Generator.html)
|
1325
1325
|
to make generation deterministic.
|
@@ -1806,7 +1806,7 @@ class StableDiffusionXLControlNetInpaintPipeline(
|
|
1806
1806
|
noise_pred = noise_pred_uncond + guidance_scale * (noise_pred_text - noise_pred_uncond)
|
1807
1807
|
|
1808
1808
|
if self.do_classifier_free_guidance and guidance_rescale > 0.0:
|
1809
|
-
# Based on 3.4. in https://
|
1809
|
+
# Based on 3.4. in https://huggingface.co/papers/2305.08891
|
1810
1810
|
noise_pred = rescale_noise_cfg(noise_pred, noise_pred_text, guidance_rescale=guidance_rescale)
|
1811
1811
|
|
1812
1812
|
# compute the previous noisy sample x_t -> x_t-1
|
@@ -1858,7 +1858,7 @@ class StableDiffusionXLControlNetInpaintPipeline(
|
|
1858
1858
|
if hasattr(self, "final_offload_hook") and self.final_offload_hook is not None:
|
1859
1859
|
self.unet.to("cpu")
|
1860
1860
|
self.controlnet.to("cpu")
|
1861
|
-
|
1861
|
+
empty_device_cache()
|
1862
1862
|
|
1863
1863
|
if not output_type == "latent":
|
1864
1864
|
image = self.vae.decode(latents / self.vae.config.scaling_factor, return_dict=False)[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.
|
@@ -613,7 +613,7 @@ class StableDiffusionXLControlNetPipeline(
|
|
613
613
|
def prepare_extra_step_kwargs(self, generator, eta):
|
614
614
|
# prepare extra kwargs for the scheduler step, since not all schedulers have the same signature
|
615
615
|
# eta (η) is only used with the DDIMScheduler, it will be ignored for other schedulers.
|
616
|
-
# eta corresponds to η in DDIM paper: https://
|
616
|
+
# eta corresponds to η in DDIM paper: https://huggingface.co/papers/2010.02502
|
617
617
|
# and should be between [0, 1]
|
618
618
|
|
619
619
|
accepts_eta = "eta" in set(inspect.signature(self.scheduler.step).parameters.keys())
|
@@ -985,7 +985,7 @@ class StableDiffusionXLControlNetPipeline(
|
|
985
985
|
return self._clip_skip
|
986
986
|
|
987
987
|
# here `guidance_scale` is defined analog to the guidance weight `w` of equation (2)
|
988
|
-
# of the Imagen paper: https://
|
988
|
+
# of the Imagen paper: https://huggingface.co/papers/2205.11487 . `guidance_scale = 1`
|
989
989
|
# corresponds to doing no classifier free guidance.
|
990
990
|
@property
|
991
991
|
def do_classifier_free_guidance(self):
|
@@ -1108,8 +1108,8 @@ class StableDiffusionXLControlNetPipeline(
|
|
1108
1108
|
num_images_per_prompt (`int`, *optional*, defaults to 1):
|
1109
1109
|
The number of images to generate per prompt.
|
1110
1110
|
eta (`float`, *optional*, defaults to 0.0):
|
1111
|
-
Corresponds to parameter eta (η) from the [DDIM](https://
|
1112
|
-
to the [`~schedulers.DDIMScheduler`], and is ignored in other schedulers.
|
1111
|
+
Corresponds to parameter eta (η) from the [DDIM](https://huggingface.co/papers/2010.02502) paper. Only
|
1112
|
+
applies to the [`~schedulers.DDIMScheduler`], and is ignored in other schedulers.
|
1113
1113
|
generator (`torch.Generator` or `List[torch.Generator]`, *optional*):
|
1114
1114
|
A [`torch.Generator`](https://pytorch.org/docs/stable/generated/torch.Generator.html) to make
|
1115
1115
|
generation deterministic.
|
@@ -1465,7 +1465,11 @@ class StableDiffusionXLControlNetPipeline(
|
|
1465
1465
|
|
1466
1466
|
# Relevant thread:
|
1467
1467
|
# https://dev-discuss.pytorch.org/t/cudagraphs-in-pytorch-2-0/1428
|
1468
|
-
if (
|
1468
|
+
if (
|
1469
|
+
torch.cuda.is_available()
|
1470
|
+
and (is_unet_compiled and is_controlnet_compiled)
|
1471
|
+
and is_torch_higher_equal_2_1
|
1472
|
+
):
|
1469
1473
|
torch._inductor.cudagraph_mark_step_begin()
|
1470
1474
|
# expand the latents if we are doing classifier free guidance
|
1471
1475
|
latent_model_input = torch.cat([latents] * 2) if self.do_classifier_free_guidance else latents
|
@@ -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.
|
@@ -53,7 +53,7 @@ from ...utils import (
|
|
53
53
|
scale_lora_layers,
|
54
54
|
unscale_lora_layers,
|
55
55
|
)
|
56
|
-
from ...utils.torch_utils import is_compiled_module, randn_tensor
|
56
|
+
from ...utils.torch_utils import empty_device_cache, is_compiled_module, randn_tensor
|
57
57
|
from ..pipeline_utils import DiffusionPipeline, StableDiffusionMixin
|
58
58
|
from ..stable_diffusion_xl.pipeline_output import StableDiffusionXLPipelineOutput
|
59
59
|
|
@@ -607,7 +607,7 @@ class StableDiffusionXLControlNetImg2ImgPipeline(
|
|
607
607
|
def prepare_extra_step_kwargs(self, generator, eta):
|
608
608
|
# prepare extra kwargs for the scheduler step, since not all schedulers have the same signature
|
609
609
|
# eta (η) is only used with the DDIMScheduler, it will be ignored for other schedulers.
|
610
|
-
# eta corresponds to η in DDIM paper: https://
|
610
|
+
# eta corresponds to η in DDIM paper: https://huggingface.co/papers/2010.02502
|
611
611
|
# and should be between [0, 1]
|
612
612
|
|
613
613
|
accepts_eta = "eta" in set(inspect.signature(self.scheduler.step).parameters.keys())
|
@@ -921,7 +921,7 @@ class StableDiffusionXLControlNetImg2ImgPipeline(
|
|
921
921
|
# Offload text encoder if `enable_model_cpu_offload` was enabled
|
922
922
|
if hasattr(self, "final_offload_hook") and self.final_offload_hook is not None:
|
923
923
|
self.text_encoder_2.to("cpu")
|
924
|
-
|
924
|
+
empty_device_cache()
|
925
925
|
|
926
926
|
image = image.to(device=device, dtype=dtype)
|
927
927
|
|
@@ -1069,7 +1069,7 @@ class StableDiffusionXLControlNetImg2ImgPipeline(
|
|
1069
1069
|
return self._clip_skip
|
1070
1070
|
|
1071
1071
|
# here `guidance_scale` is defined analog to the guidance weight `w` of equation (2)
|
1072
|
-
# of the Imagen paper: https://
|
1072
|
+
# of the Imagen paper: https://huggingface.co/papers/2205.11487 . `guidance_scale = 1`
|
1073
1073
|
# corresponds to doing no classifier free guidance.
|
1074
1074
|
@property
|
1075
1075
|
def do_classifier_free_guidance(self):
|
@@ -1174,11 +1174,11 @@ class StableDiffusionXLControlNetImg2ImgPipeline(
|
|
1174
1174
|
The number of denoising steps. More denoising steps usually lead to a higher quality image at the
|
1175
1175
|
expense of slower inference.
|
1176
1176
|
guidance_scale (`float`, *optional*, defaults to 7.5):
|
1177
|
-
Guidance scale as defined in [Classifier-Free Diffusion
|
1178
|
-
`guidance_scale` is defined as `w` of equation 2.
|
1179
|
-
Paper](https://
|
1180
|
-
1`. Higher guidance scale encourages to generate images that are closely linked to
|
1181
|
-
usually at the expense of lower image quality.
|
1177
|
+
Guidance scale as defined in [Classifier-Free Diffusion
|
1178
|
+
Guidance](https://huggingface.co/papers/2207.12598). `guidance_scale` is defined as `w` of equation 2.
|
1179
|
+
of [Imagen Paper](https://huggingface.co/papers/2205.11487). Guidance scale is enabled by setting
|
1180
|
+
`guidance_scale > 1`. Higher guidance scale encourages to generate images that are closely linked to
|
1181
|
+
the text `prompt`, usually at the expense of lower image quality.
|
1182
1182
|
negative_prompt (`str` or `List[str]`, *optional*):
|
1183
1183
|
The prompt or prompts not to guide the image generation. If not defined, one has to pass
|
1184
1184
|
`negative_prompt_embeds` instead. Ignored when not using guidance (i.e., ignored if `guidance_scale` is
|
@@ -1189,8 +1189,8 @@ class StableDiffusionXLControlNetImg2ImgPipeline(
|
|
1189
1189
|
num_images_per_prompt (`int`, *optional*, defaults to 1):
|
1190
1190
|
The number of images to generate per prompt.
|
1191
1191
|
eta (`float`, *optional*, defaults to 0.0):
|
1192
|
-
Corresponds to parameter eta (η) in the DDIM paper: https://
|
1193
|
-
[`schedulers.DDIMScheduler`], will be ignored for others.
|
1192
|
+
Corresponds to parameter eta (η) in the DDIM paper: https://huggingface.co/papers/2010.02502. Only
|
1193
|
+
applies to [`schedulers.DDIMScheduler`], will be ignored for others.
|
1194
1194
|
generator (`torch.Generator` or `List[torch.Generator]`, *optional*):
|
1195
1195
|
One or a list of [torch generator(s)](https://pytorch.org/docs/stable/generated/torch.Generator.html)
|
1196
1196
|
to make generation deterministic.
|
@@ -1632,7 +1632,7 @@ class StableDiffusionXLControlNetImg2ImgPipeline(
|
|
1632
1632
|
if hasattr(self, "final_offload_hook") and self.final_offload_hook is not None:
|
1633
1633
|
self.unet.to("cpu")
|
1634
1634
|
self.controlnet.to("cpu")
|
1635
|
-
|
1635
|
+
empty_device_cache()
|
1636
1636
|
|
1637
1637
|
if not output_type == "latent":
|
1638
1638
|
# make sure the VAE is in float32 mode, as it overflows in float16
|
@@ -1,4 +1,4 @@
|
|
1
|
-
# Copyright
|
1
|
+
# Copyright 2025 Harutatsu Akiyama, Jinbin Bai, 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.
|
@@ -51,7 +51,7 @@ from ...utils import (
|
|
51
51
|
scale_lora_layers,
|
52
52
|
unscale_lora_layers,
|
53
53
|
)
|
54
|
-
from ...utils.torch_utils import is_compiled_module, randn_tensor
|
54
|
+
from ...utils.torch_utils import empty_device_cache, is_compiled_module, randn_tensor
|
55
55
|
from ..pipeline_utils import DiffusionPipeline, StableDiffusionMixin
|
56
56
|
from ..stable_diffusion_xl.pipeline_output import StableDiffusionXLPipelineOutput
|
57
57
|
|
@@ -134,7 +134,7 @@ def rescale_noise_cfg(noise_cfg, noise_pred_text, guidance_rescale=0.0):
|
|
134
134
|
r"""
|
135
135
|
Rescales `noise_cfg` tensor based on `guidance_rescale` to improve image quality and fix overexposure. Based on
|
136
136
|
Section 3.4 from [Common Diffusion Noise Schedules and Sample Steps are
|
137
|
-
Flawed](https://
|
137
|
+
Flawed](https://huggingface.co/papers/2305.08891).
|
138
138
|
|
139
139
|
Args:
|
140
140
|
noise_cfg (`torch.Tensor`):
|
@@ -587,7 +587,7 @@ class StableDiffusionXLControlNetUnionInpaintPipeline(
|
|
587
587
|
def prepare_extra_step_kwargs(self, generator, eta):
|
588
588
|
# prepare extra kwargs for the scheduler step, since not all schedulers have the same signature
|
589
589
|
# eta (η) is only used with the DDIMScheduler, it will be ignored for other schedulers.
|
590
|
-
# eta corresponds to η in DDIM paper: https://
|
590
|
+
# eta corresponds to η in DDIM paper: https://huggingface.co/papers/2010.02502
|
591
591
|
# and should be between [0, 1]
|
592
592
|
|
593
593
|
accepts_eta = "eta" in set(inspect.signature(self.scheduler.step).parameters.keys())
|
@@ -1091,7 +1091,7 @@ class StableDiffusionXLControlNetUnionInpaintPipeline(
|
|
1091
1091
|
return self._clip_skip
|
1092
1092
|
|
1093
1093
|
# here `guidance_scale` is defined analog to the guidance weight `w` of equation (2)
|
1094
|
-
# of the Imagen paper: https://
|
1094
|
+
# of the Imagen paper: https://huggingface.co/papers/2205.11487 . `guidance_scale = 1`
|
1095
1095
|
# corresponds to doing no classifier free guidance.
|
1096
1096
|
@property
|
1097
1097
|
def do_classifier_free_guidance(self):
|
@@ -1215,11 +1215,11 @@ class StableDiffusionXLControlNetUnionInpaintPipeline(
|
|
1215
1215
|
forms a part of a "Mixture of Denoisers" multi-pipeline setup, as elaborated in [**Refining the Image
|
1216
1216
|
Output**](https://huggingface.co/docs/diffusers/api/pipelines/stable_diffusion/stable_diffusion_xl#refining-the-image-output).
|
1217
1217
|
guidance_scale (`float`, *optional*, defaults to 7.5):
|
1218
|
-
Guidance scale as defined in [Classifier-Free Diffusion
|
1219
|
-
`guidance_scale` is defined as `w` of equation 2.
|
1220
|
-
Paper](https://
|
1221
|
-
1`. Higher guidance scale encourages to generate images that are closely linked to
|
1222
|
-
usually at the expense of lower image quality.
|
1218
|
+
Guidance scale as defined in [Classifier-Free Diffusion
|
1219
|
+
Guidance](https://huggingface.co/papers/2207.12598). `guidance_scale` is defined as `w` of equation 2.
|
1220
|
+
of [Imagen Paper](https://huggingface.co/papers/2205.11487). Guidance scale is enabled by setting
|
1221
|
+
`guidance_scale > 1`. Higher guidance scale encourages to generate images that are closely linked to
|
1222
|
+
the text `prompt`, usually at the expense of lower image quality.
|
1223
1223
|
negative_prompt (`str` or `List[str]`, *optional*):
|
1224
1224
|
The prompt or prompts not to guide the image generation. If not defined, one has to pass
|
1225
1225
|
`negative_prompt_embeds` instead. Ignored when not using guidance (i.e., ignored if `guidance_scale` is
|
@@ -1250,8 +1250,8 @@ class StableDiffusionXLControlNetUnionInpaintPipeline(
|
|
1250
1250
|
num_images_per_prompt (`int`, *optional*, defaults to 1):
|
1251
1251
|
The number of images to generate per prompt.
|
1252
1252
|
eta (`float`, *optional*, defaults to 0.0):
|
1253
|
-
Corresponds to parameter eta (η) in the DDIM paper: https://
|
1254
|
-
[`schedulers.DDIMScheduler`], will be ignored for others.
|
1253
|
+
Corresponds to parameter eta (η) in the DDIM paper: https://huggingface.co/papers/2010.02502. Only
|
1254
|
+
applies to [`schedulers.DDIMScheduler`], will be ignored for others.
|
1255
1255
|
generator (`torch.Generator`, *optional*):
|
1256
1256
|
One or a list of [torch generator(s)](https://pytorch.org/docs/stable/generated/torch.Generator.html)
|
1257
1257
|
to make generation deterministic.
|
@@ -1715,7 +1715,7 @@ class StableDiffusionXLControlNetUnionInpaintPipeline(
|
|
1715
1715
|
noise_pred = noise_pred_uncond + guidance_scale * (noise_pred_text - noise_pred_uncond)
|
1716
1716
|
|
1717
1717
|
if self.do_classifier_free_guidance and guidance_rescale > 0.0:
|
1718
|
-
# Based on 3.4. in https://
|
1718
|
+
# Based on 3.4. in https://huggingface.co/papers/2305.08891
|
1719
1719
|
noise_pred = rescale_noise_cfg(noise_pred, noise_pred_text, guidance_rescale=guidance_rescale)
|
1720
1720
|
|
1721
1721
|
# compute the previous noisy sample x_t -> x_t-1
|
@@ -1766,7 +1766,7 @@ class StableDiffusionXLControlNetUnionInpaintPipeline(
|
|
1766
1766
|
if hasattr(self, "final_offload_hook") and self.final_offload_hook is not None:
|
1767
1767
|
self.unet.to("cpu")
|
1768
1768
|
self.controlnet.to("cpu")
|
1769
|
-
|
1769
|
+
empty_device_cache()
|
1770
1770
|
|
1771
1771
|
if not output_type == "latent":
|
1772
1772
|
image = self.vae.decode(latents / self.vae.config.scaling_factor, return_dict=False)[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.
|
@@ -603,7 +603,7 @@ class StableDiffusionXLControlNetUnionPipeline(
|
|
603
603
|
def prepare_extra_step_kwargs(self, generator, eta):
|
604
604
|
# prepare extra kwargs for the scheduler step, since not all schedulers have the same signature
|
605
605
|
# eta (η) is only used with the DDIMScheduler, it will be ignored for other schedulers.
|
606
|
-
# eta corresponds to η in DDIM paper: https://
|
606
|
+
# eta corresponds to η in DDIM paper: https://huggingface.co/papers/2010.02502
|
607
607
|
# and should be between [0, 1]
|
608
608
|
|
609
609
|
accepts_eta = "eta" in set(inspect.signature(self.scheduler.step).parameters.keys())
|
@@ -960,7 +960,7 @@ class StableDiffusionXLControlNetUnionPipeline(
|
|
960
960
|
return self._clip_skip
|
961
961
|
|
962
962
|
# here `guidance_scale` is defined analog to the guidance weight `w` of equation (2)
|
963
|
-
# of the Imagen paper: https://
|
963
|
+
# of the Imagen paper: https://huggingface.co/papers/2205.11487 . `guidance_scale = 1`
|
964
964
|
# corresponds to doing no classifier free guidance.
|
965
965
|
@property
|
966
966
|
def do_classifier_free_guidance(self):
|
@@ -1082,8 +1082,8 @@ class StableDiffusionXLControlNetUnionPipeline(
|
|
1082
1082
|
num_images_per_prompt (`int`, *optional*, defaults to 1):
|
1083
1083
|
The number of images to generate per prompt.
|
1084
1084
|
eta (`float`, *optional*, defaults to 0.0):
|
1085
|
-
Corresponds to parameter eta (η) from the [DDIM](https://
|
1086
|
-
to the [`~schedulers.DDIMScheduler`], and is ignored in other schedulers.
|
1085
|
+
Corresponds to parameter eta (η) from the [DDIM](https://huggingface.co/papers/2010.02502) paper. Only
|
1086
|
+
applies to the [`~schedulers.DDIMScheduler`], and is ignored in other schedulers.
|
1087
1087
|
generator (`torch.Generator` or `List[torch.Generator]`, *optional*):
|
1088
1088
|
A [`torch.Generator`](https://pytorch.org/docs/stable/generated/torch.Generator.html) to make
|
1089
1089
|
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.
|
@@ -53,7 +53,7 @@ from ...utils import (
|
|
53
53
|
scale_lora_layers,
|
54
54
|
unscale_lora_layers,
|
55
55
|
)
|
56
|
-
from ...utils.torch_utils import is_compiled_module, randn_tensor
|
56
|
+
from ...utils.torch_utils import empty_device_cache, is_compiled_module, randn_tensor
|
57
57
|
from ..pipeline_utils import DiffusionPipeline, StableDiffusionMixin
|
58
58
|
from ..stable_diffusion_xl.pipeline_output import StableDiffusionXLPipelineOutput
|
59
59
|
|
@@ -616,7 +616,7 @@ class StableDiffusionXLControlNetUnionImg2ImgPipeline(
|
|
616
616
|
def prepare_extra_step_kwargs(self, generator, eta):
|
617
617
|
# prepare extra kwargs for the scheduler step, since not all schedulers have the same signature
|
618
618
|
# eta (η) is only used with the DDIMScheduler, it will be ignored for other schedulers.
|
619
|
-
# eta corresponds to η in DDIM paper: https://
|
619
|
+
# eta corresponds to η in DDIM paper: https://huggingface.co/papers/2010.02502
|
620
620
|
# and should be between [0, 1]
|
621
621
|
|
622
622
|
accepts_eta = "eta" in set(inspect.signature(self.scheduler.step).parameters.keys())
|
@@ -876,7 +876,7 @@ class StableDiffusionXLControlNetUnionImg2ImgPipeline(
|
|
876
876
|
# Offload text encoder if `enable_model_cpu_offload` was enabled
|
877
877
|
if hasattr(self, "final_offload_hook") and self.final_offload_hook is not None:
|
878
878
|
self.text_encoder_2.to("cpu")
|
879
|
-
|
879
|
+
empty_device_cache()
|
880
880
|
|
881
881
|
image = image.to(device=device, dtype=dtype)
|
882
882
|
|
@@ -1024,7 +1024,7 @@ class StableDiffusionXLControlNetUnionImg2ImgPipeline(
|
|
1024
1024
|
return self._clip_skip
|
1025
1025
|
|
1026
1026
|
# here `guidance_scale` is defined analog to the guidance weight `w` of equation (2)
|
1027
|
-
# of the Imagen paper: https://
|
1027
|
+
# of the Imagen paper: https://huggingface.co/papers/2205.11487 . `guidance_scale = 1`
|
1028
1028
|
# corresponds to doing no classifier free guidance.
|
1029
1029
|
@property
|
1030
1030
|
def do_classifier_free_guidance(self):
|
@@ -1129,11 +1129,11 @@ class StableDiffusionXLControlNetUnionImg2ImgPipeline(
|
|
1129
1129
|
The number of denoising steps. More denoising steps usually lead to a higher quality image at the
|
1130
1130
|
expense of slower inference.
|
1131
1131
|
guidance_scale (`float`, *optional*, defaults to 7.5):
|
1132
|
-
Guidance scale as defined in [Classifier-Free Diffusion
|
1133
|
-
`guidance_scale` is defined as `w` of equation 2.
|
1134
|
-
Paper](https://
|
1135
|
-
1`. Higher guidance scale encourages to generate images that are closely linked to
|
1136
|
-
usually at the expense of lower image quality.
|
1132
|
+
Guidance scale as defined in [Classifier-Free Diffusion
|
1133
|
+
Guidance](https://huggingface.co/papers/2207.12598). `guidance_scale` is defined as `w` of equation 2.
|
1134
|
+
of [Imagen Paper](https://huggingface.co/papers/2205.11487). Guidance scale is enabled by setting
|
1135
|
+
`guidance_scale > 1`. Higher guidance scale encourages to generate images that are closely linked to
|
1136
|
+
the text `prompt`, usually at the expense of lower image quality.
|
1137
1137
|
negative_prompt (`str` or `List[str]`, *optional*):
|
1138
1138
|
The prompt or prompts not to guide the image generation. If not defined, one has to pass
|
1139
1139
|
`negative_prompt_embeds` instead. Ignored when not using guidance (i.e., ignored if `guidance_scale` is
|
@@ -1144,8 +1144,8 @@ class StableDiffusionXLControlNetUnionImg2ImgPipeline(
|
|
1144
1144
|
num_images_per_prompt (`int`, *optional*, defaults to 1):
|
1145
1145
|
The number of images to generate per prompt.
|
1146
1146
|
eta (`float`, *optional*, defaults to 0.0):
|
1147
|
-
Corresponds to parameter eta (η) in the DDIM paper: https://
|
1148
|
-
[`schedulers.DDIMScheduler`], will be ignored for others.
|
1147
|
+
Corresponds to parameter eta (η) in the DDIM paper: https://huggingface.co/papers/2010.02502. Only
|
1148
|
+
applies to [`schedulers.DDIMScheduler`], will be ignored for others.
|
1149
1149
|
generator (`torch.Generator` or `List[torch.Generator]`, *optional*):
|
1150
1150
|
One or a list of [torch generator(s)](https://pytorch.org/docs/stable/generated/torch.Generator.html)
|
1151
1151
|
to make generation deterministic.
|
@@ -1574,7 +1574,7 @@ class StableDiffusionXLControlNetUnionImg2ImgPipeline(
|
|
1574
1574
|
if hasattr(self, "final_offload_hook") and self.final_offload_hook is not None:
|
1575
1575
|
self.unet.to("cpu")
|
1576
1576
|
self.controlnet.to("cpu")
|
1577
|
-
|
1577
|
+
empty_device_cache()
|
1578
1578
|
|
1579
1579
|
if not output_type == "latent":
|
1580
1580
|
# make sure the VAE is in float32 mode, as it overflows in float16
|
@@ -1,4 +1,4 @@
|
|
1
|
-
# Copyright
|
1
|
+
# Copyright 2025 HunyuanDiT 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.
|
@@ -144,7 +144,7 @@ def rescale_noise_cfg(noise_cfg, noise_pred_text, guidance_rescale=0.0):
|
|
144
144
|
r"""
|
145
145
|
Rescales `noise_cfg` tensor based on `guidance_rescale` to improve image quality and fix overexposure. Based on
|
146
146
|
Section 3.4 from [Common Diffusion Noise Schedules and Sample Steps are
|
147
|
-
Flawed](https://
|
147
|
+
Flawed](https://huggingface.co/papers/2305.08891).
|
148
148
|
|
149
149
|
Args:
|
150
150
|
noise_cfg (`torch.Tensor`):
|
@@ -463,7 +463,7 @@ class HunyuanDiTControlNetPipeline(DiffusionPipeline):
|
|
463
463
|
def prepare_extra_step_kwargs(self, generator, eta):
|
464
464
|
# prepare extra kwargs for the scheduler step, since not all schedulers have the same signature
|
465
465
|
# eta (η) is only used with the DDIMScheduler, it will be ignored for other schedulers.
|
466
|
-
# eta corresponds to η in DDIM paper: https://
|
466
|
+
# eta corresponds to η in DDIM paper: https://huggingface.co/papers/2010.02502
|
467
467
|
# and should be between [0, 1]
|
468
468
|
|
469
469
|
accepts_eta = "eta" in set(inspect.signature(self.scheduler.step).parameters.keys())
|
@@ -621,7 +621,7 @@ class HunyuanDiTControlNetPipeline(DiffusionPipeline):
|
|
621
621
|
return self._guidance_rescale
|
622
622
|
|
623
623
|
# here `guidance_scale` is defined analog to the guidance weight `w` of equation (2)
|
624
|
-
# of the Imagen paper: https://
|
624
|
+
# of the Imagen paper: https://huggingface.co/papers/2205.11487 . `guidance_scale = 1`
|
625
625
|
# corresponds to doing no classifier free guidance.
|
626
626
|
@property
|
627
627
|
def do_classifier_free_guidance(self):
|
@@ -709,8 +709,8 @@ class HunyuanDiTControlNetPipeline(DiffusionPipeline):
|
|
709
709
|
num_images_per_prompt (`int`, *optional*, defaults to 1):
|
710
710
|
The number of images to generate per prompt.
|
711
711
|
eta (`float`, *optional*, defaults to 0.0):
|
712
|
-
Corresponds to parameter eta (η) from the [DDIM](https://
|
713
|
-
to the [`~schedulers.DDIMScheduler`], and is ignored in other schedulers.
|
712
|
+
Corresponds to parameter eta (η) from the [DDIM](https://huggingface.co/papers/2010.02502) paper. Only
|
713
|
+
applies to the [`~schedulers.DDIMScheduler`], and is ignored in other schedulers.
|
714
714
|
generator (`torch.Generator` or `List[torch.Generator]`, *optional*):
|
715
715
|
A [`torch.Generator`](https://pytorch.org/docs/stable/generated/torch.Generator.html) to make
|
716
716
|
generation deterministic.
|
@@ -746,7 +746,7 @@ class HunyuanDiTControlNetPipeline(DiffusionPipeline):
|
|
746
746
|
inputs will be passed.
|
747
747
|
guidance_rescale (`float`, *optional*, defaults to 0.0):
|
748
748
|
Rescale the noise_cfg according to `guidance_rescale`. Based on findings of [Common Diffusion Noise
|
749
|
-
Schedules and Sample Steps are Flawed](https://
|
749
|
+
Schedules and Sample Steps are Flawed](https://huggingface.co/papers/2305.08891). See Section 3.4
|
750
750
|
original_size (`Tuple[int, int]`, *optional*, defaults to `(1024, 1024)`):
|
751
751
|
The original size of the image. Used to calculate the time ids.
|
752
752
|
target_size (`Tuple[int, int]`, *optional*):
|
@@ -1009,7 +1009,7 @@ class HunyuanDiTControlNetPipeline(DiffusionPipeline):
|
|
1009
1009
|
noise_pred = noise_pred_uncond + guidance_scale * (noise_pred_text - noise_pred_uncond)
|
1010
1010
|
|
1011
1011
|
if self.do_classifier_free_guidance and guidance_rescale > 0.0:
|
1012
|
-
# Based on 3.4. in https://
|
1012
|
+
# Based on 3.4. in https://huggingface.co/papers/2305.08891
|
1013
1013
|
noise_pred = rescale_noise_cfg(noise_pred, noise_pred_text, guidance_rescale=guidance_rescale)
|
1014
1014
|
|
1015
1015
|
# compute the previous noisy sample x_t -> x_t-1
|
@@ -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.
|
@@ -719,7 +719,7 @@ class StableDiffusion3ControlNetPipeline(
|
|
719
719
|
return self._clip_skip
|
720
720
|
|
721
721
|
# here `guidance_scale` is defined analog to the guidance weight `w` of equation (2)
|
722
|
-
# of the Imagen paper: https://
|
722
|
+
# of the Imagen paper: https://huggingface.co/papers/2205.11487 . `guidance_scale = 1`
|
723
723
|
# corresponds to doing no classifier free guidance.
|
724
724
|
@property
|
725
725
|
def do_classifier_free_guidance(self):
|
@@ -877,11 +877,11 @@ class StableDiffusion3ControlNetPipeline(
|
|
877
877
|
their `set_timesteps` method. If not defined, the default behavior when `num_inference_steps` is passed
|
878
878
|
will be used.
|
879
879
|
guidance_scale (`float`, *optional*, defaults to 5.0):
|
880
|
-
Guidance scale as defined in [Classifier-Free Diffusion
|
881
|
-
`guidance_scale` is defined as `w` of equation 2.
|
882
|
-
Paper](https://
|
883
|
-
1`. Higher guidance scale encourages to generate images that are closely linked to
|
884
|
-
usually at the expense of lower image quality.
|
880
|
+
Guidance scale as defined in [Classifier-Free Diffusion
|
881
|
+
Guidance](https://huggingface.co/papers/2207.12598). `guidance_scale` is defined as `w` of equation 2.
|
882
|
+
of [Imagen Paper](https://huggingface.co/papers/2205.11487). Guidance scale is enabled by setting
|
883
|
+
`guidance_scale > 1`. Higher guidance scale encourages to generate images that are closely linked to
|
884
|
+
the text `prompt`, usually at the expense of lower image quality.
|
885
885
|
control_guidance_start (`float` or `List[float]`, *optional*, defaults to 0.0):
|
886
886
|
The percentage of total steps at which the ControlNet starts applying.
|
887
887
|
control_guidance_end (`float` or `List[float]`, *optional*, defaults to 1.0):
|
@@ -1,4 +1,4 @@
|
|
1
|
-
# Copyright
|
1
|
+
# Copyright 2025 Stability AI, The HuggingFace Team and The AlimamaCreative 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.
|
@@ -769,7 +769,7 @@ class StableDiffusion3ControlNetInpaintingPipeline(
|
|
769
769
|
return self._clip_skip
|
770
770
|
|
771
771
|
# here `guidance_scale` is defined analog to the guidance weight `w` of equation (2)
|
772
|
-
# of the Imagen paper: https://
|
772
|
+
# of the Imagen paper: https://huggingface.co/papers/2205.11487 . `guidance_scale = 1`
|
773
773
|
# corresponds to doing no classifier free guidance.
|
774
774
|
@property
|
775
775
|
def do_classifier_free_guidance(self):
|
@@ -928,11 +928,11 @@ class StableDiffusion3ControlNetInpaintingPipeline(
|
|
928
928
|
their `set_timesteps` method. If not defined, the default behavior when `num_inference_steps` is passed
|
929
929
|
will be used.
|
930
930
|
guidance_scale (`float`, *optional*, defaults to 5.0):
|
931
|
-
Guidance scale as defined in [Classifier-Free Diffusion
|
932
|
-
`guidance_scale` is defined as `w` of equation 2.
|
933
|
-
Paper](https://
|
934
|
-
1`. Higher guidance scale encourages to generate images that are closely linked to
|
935
|
-
usually at the expense of lower image quality.
|
931
|
+
Guidance scale as defined in [Classifier-Free Diffusion
|
932
|
+
Guidance](https://huggingface.co/papers/2207.12598). `guidance_scale` is defined as `w` of equation 2.
|
933
|
+
of [Imagen Paper](https://huggingface.co/papers/2205.11487). Guidance scale is enabled by setting
|
934
|
+
`guidance_scale > 1`. Higher guidance scale encourages to generate images that are closely linked to
|
935
|
+
the text `prompt`, usually at the expense of lower image quality.
|
936
936
|
control_guidance_start (`float` or `List[float]`, *optional*, defaults to 0.0):
|
937
937
|
The percentage of total steps at which the ControlNet starts applying.
|
938
938
|
control_guidance_end (`float` or `List[float]`, *optional*, defaults to 1.0):
|