diffusers 0.27.2__tar.gz → 0.28.0__tar.gz
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-0.27.2/src/diffusers.egg-info → diffusers-0.28.0}/PKG-INFO +4 -4
- {diffusers-0.27.2 → diffusers-0.28.0}/README.md +3 -3
- {diffusers-0.27.2 → diffusers-0.28.0}/pyproject.toml +5 -3
- {diffusers-0.27.2 → diffusers-0.28.0}/setup.py +15 -10
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/__init__.py +18 -1
- diffusers-0.28.0/src/diffusers/callbacks.py +156 -0
- diffusers-0.28.0/src/diffusers/commands/env.py +188 -0
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/configuration_utils.py +16 -11
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/dependency_versions_table.py +2 -1
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/image_processor.py +158 -45
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/loaders/__init__.py +2 -5
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/loaders/autoencoder.py +4 -4
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/loaders/controlnet.py +4 -4
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/loaders/ip_adapter.py +80 -22
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/loaders/lora.py +134 -20
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/loaders/lora_conversion_utils.py +46 -43
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/loaders/peft.py +4 -3
- diffusers-0.28.0/src/diffusers/loaders/single_file.py +549 -0
- diffusers-0.28.0/src/diffusers/loaders/single_file_model.py +290 -0
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/loaders/single_file_utils.py +616 -672
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/loaders/textual_inversion.py +41 -20
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/loaders/unet.py +168 -115
- diffusers-0.28.0/src/diffusers/loaders/unet_loader_utils.py +163 -0
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/models/__init__.py +2 -0
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/models/activations.py +11 -3
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/models/attention.py +10 -11
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/models/attention_processor.py +367 -148
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/models/autoencoders/autoencoder_asym_kl.py +14 -16
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/models/autoencoders/autoencoder_kl.py +18 -19
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/models/autoencoders/autoencoder_kl_temporal_decoder.py +11 -11
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/models/autoencoders/autoencoder_tiny.py +16 -16
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/models/autoencoders/consistency_decoder_vae.py +36 -11
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/models/autoencoders/vae.py +23 -24
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/models/controlnet.py +12 -9
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/models/controlnet_flax.py +4 -4
- diffusers-0.28.0/src/diffusers/models/controlnet_xs.py +1915 -0
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/models/downsampling.py +17 -18
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/models/embeddings.py +147 -24
- diffusers-0.28.0/src/diffusers/models/model_loading_utils.py +149 -0
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/models/modeling_flax_pytorch_utils.py +2 -1
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/models/modeling_flax_utils.py +4 -4
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/models/modeling_pytorch_flax_utils.py +1 -1
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/models/modeling_utils.py +118 -98
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/models/resnet.py +18 -23
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/models/transformer_temporal.py +3 -3
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/models/transformers/dual_transformer_2d.py +4 -4
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/models/transformers/prior_transformer.py +7 -7
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/models/transformers/t5_film_transformer.py +17 -19
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/models/transformers/transformer_2d.py +272 -156
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/models/transformers/transformer_temporal.py +10 -10
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/models/unets/unet_1d.py +5 -5
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/models/unets/unet_1d_blocks.py +29 -29
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/models/unets/unet_2d.py +6 -6
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/models/unets/unet_2d_blocks.py +137 -128
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/models/unets/unet_2d_condition.py +19 -15
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/models/unets/unet_2d_condition_flax.py +6 -5
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/models/unets/unet_3d_blocks.py +79 -77
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/models/unets/unet_3d_condition.py +13 -9
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/models/unets/unet_i2vgen_xl.py +14 -13
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/models/unets/unet_kandinsky3.py +1 -1
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/models/unets/unet_motion_model.py +114 -14
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/models/unets/unet_spatio_temporal_condition.py +15 -14
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/models/unets/unet_stable_cascade.py +16 -13
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/models/upsampling.py +17 -20
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/models/vq_model.py +16 -15
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/pipelines/__init__.py +25 -3
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/pipelines/amused/pipeline_amused.py +12 -12
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/pipelines/amused/pipeline_amused_img2img.py +14 -12
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/pipelines/amused/pipeline_amused_inpaint.py +13 -11
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/pipelines/animatediff/__init__.py +2 -0
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/pipelines/animatediff/pipeline_animatediff.py +24 -46
- diffusers-0.28.0/src/diffusers/pipelines/animatediff/pipeline_animatediff_sdxl.py +1284 -0
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/pipelines/animatediff/pipeline_animatediff_video2video.py +82 -72
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/pipelines/animatediff/pipeline_output.py +3 -2
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/pipelines/audioldm/pipeline_audioldm.py +14 -14
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/pipelines/audioldm2/modeling_audioldm2.py +54 -35
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/pipelines/audioldm2/pipeline_audioldm2.py +120 -36
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/pipelines/auto_pipeline.py +21 -17
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/pipelines/blip_diffusion/blip_image_processing.py +1 -1
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/pipelines/blip_diffusion/modeling_blip2.py +5 -5
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/pipelines/blip_diffusion/modeling_ctx_clip.py +1 -1
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/pipelines/blip_diffusion/pipeline_blip_diffusion.py +2 -2
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/pipelines/consistency_models/pipeline_consistency_models.py +5 -5
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/pipelines/controlnet/multicontrolnet.py +4 -8
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/pipelines/controlnet/pipeline_controlnet.py +87 -52
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/pipelines/controlnet/pipeline_controlnet_blip_diffusion.py +2 -2
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/pipelines/controlnet/pipeline_controlnet_img2img.py +50 -43
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/pipelines/controlnet/pipeline_controlnet_inpaint.py +52 -40
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/pipelines/controlnet/pipeline_controlnet_inpaint_sd_xl.py +80 -47
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/pipelines/controlnet/pipeline_controlnet_sd_xl.py +147 -49
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/pipelines/controlnet/pipeline_controlnet_sd_xl_img2img.py +89 -55
- diffusers-0.28.0/src/diffusers/pipelines/controlnet_xs/__init__.py +68 -0
- diffusers-0.28.0/src/diffusers/pipelines/controlnet_xs/pipeline_controlnet_xs.py +911 -0
- diffusers-0.28.0/src/diffusers/pipelines/controlnet_xs/pipeline_controlnet_xs_sd_xl.py +1115 -0
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/pipelines/deepfloyd_if/pipeline_if.py +14 -28
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/pipelines/deepfloyd_if/pipeline_if_img2img.py +18 -33
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/pipelines/deepfloyd_if/pipeline_if_img2img_superresolution.py +21 -39
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/pipelines/deepfloyd_if/pipeline_if_inpainting.py +20 -36
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/pipelines/deepfloyd_if/pipeline_if_inpainting_superresolution.py +23 -39
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/pipelines/deepfloyd_if/pipeline_if_superresolution.py +17 -32
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/pipelines/deprecated/alt_diffusion/modeling_roberta_series.py +11 -11
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/pipelines/deprecated/alt_diffusion/pipeline_alt_diffusion.py +43 -20
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/pipelines/deprecated/alt_diffusion/pipeline_alt_diffusion_img2img.py +36 -18
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/pipelines/deprecated/repaint/pipeline_repaint.py +2 -2
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/pipelines/deprecated/spectrogram_diffusion/pipeline_spectrogram_diffusion.py +7 -7
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/pipelines/deprecated/stable_diffusion_variants/pipeline_cycle_diffusion.py +12 -12
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/pipelines/deprecated/stable_diffusion_variants/pipeline_stable_diffusion_inpaint_legacy.py +18 -18
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/pipelines/deprecated/stable_diffusion_variants/pipeline_stable_diffusion_model_editing.py +20 -15
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/pipelines/deprecated/stable_diffusion_variants/pipeline_stable_diffusion_paradigms.py +20 -15
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/pipelines/deprecated/stable_diffusion_variants/pipeline_stable_diffusion_pix2pix_zero.py +30 -25
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/pipelines/deprecated/versatile_diffusion/modeling_text_unet.py +69 -59
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/pipelines/deprecated/versatile_diffusion/pipeline_versatile_diffusion.py +13 -13
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/pipelines/deprecated/versatile_diffusion/pipeline_versatile_diffusion_dual_guided.py +10 -5
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/pipelines/deprecated/versatile_diffusion/pipeline_versatile_diffusion_image_variation.py +11 -6
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/pipelines/deprecated/versatile_diffusion/pipeline_versatile_diffusion_text_to_image.py +10 -5
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/pipelines/deprecated/vq_diffusion/pipeline_vq_diffusion.py +5 -5
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/pipelines/dit/pipeline_dit.py +3 -0
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/pipelines/free_init_utils.py +39 -38
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/pipelines/i2vgen_xl/pipeline_i2vgen_xl.py +33 -48
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/pipelines/kandinsky/pipeline_kandinsky.py +8 -8
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/pipelines/kandinsky/pipeline_kandinsky_combined.py +23 -20
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/pipelines/kandinsky/pipeline_kandinsky_img2img.py +11 -11
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/pipelines/kandinsky/pipeline_kandinsky_inpaint.py +12 -12
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/pipelines/kandinsky/pipeline_kandinsky_prior.py +10 -10
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/pipelines/kandinsky2_2/pipeline_kandinsky2_2.py +6 -6
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/pipelines/kandinsky2_2/pipeline_kandinsky2_2_combined.py +32 -29
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/pipelines/kandinsky2_2/pipeline_kandinsky2_2_controlnet.py +10 -10
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/pipelines/kandinsky2_2/pipeline_kandinsky2_2_controlnet_img2img.py +10 -10
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/pipelines/kandinsky2_2/pipeline_kandinsky2_2_img2img.py +6 -6
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/pipelines/kandinsky2_2/pipeline_kandinsky2_2_inpainting.py +8 -8
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/pipelines/kandinsky2_2/pipeline_kandinsky2_2_prior.py +7 -7
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/pipelines/kandinsky2_2/pipeline_kandinsky2_2_prior_emb2emb.py +6 -6
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/pipelines/kandinsky3/convert_kandinsky3_unet.py +3 -3
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/pipelines/kandinsky3/pipeline_kandinsky3.py +20 -33
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/pipelines/kandinsky3/pipeline_kandinsky3_img2img.py +24 -35
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/pipelines/latent_consistency_models/pipeline_latent_consistency_img2img.py +48 -30
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/pipelines/latent_consistency_models/pipeline_latent_consistency_text2img.py +50 -28
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/pipelines/latent_diffusion/pipeline_latent_diffusion.py +11 -11
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/pipelines/ledits_pp/pipeline_leditspp_stable_diffusion.py +61 -67
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/pipelines/ledits_pp/pipeline_leditspp_stable_diffusion_xl.py +70 -69
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/pipelines/ledits_pp/pipeline_output.py +2 -2
- diffusers-0.28.0/src/diffusers/pipelines/marigold/__init__.py +50 -0
- diffusers-0.28.0/src/diffusers/pipelines/marigold/marigold_image_processing.py +561 -0
- diffusers-0.28.0/src/diffusers/pipelines/marigold/pipeline_marigold_depth.py +813 -0
- diffusers-0.28.0/src/diffusers/pipelines/marigold/pipeline_marigold_normals.py +690 -0
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/pipelines/musicldm/pipeline_musicldm.py +14 -14
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/pipelines/paint_by_example/pipeline_paint_by_example.py +17 -12
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/pipelines/pia/pipeline_pia.py +39 -125
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/pipelines/pipeline_flax_utils.py +4 -4
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/pipelines/pipeline_loading_utils.py +268 -23
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/pipelines/pipeline_utils.py +266 -37
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/pipelines/pixart_alpha/__init__.py +8 -1
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/pipelines/pixart_alpha/pipeline_pixart_alpha.py +65 -75
- diffusers-0.28.0/src/diffusers/pipelines/pixart_alpha/pipeline_pixart_sigma.py +880 -0
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/pipelines/semantic_stable_diffusion/pipeline_semantic_stable_diffusion.py +10 -5
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/pipelines/shap_e/pipeline_shap_e.py +3 -3
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/pipelines/shap_e/pipeline_shap_e_img2img.py +14 -14
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/pipelines/shap_e/renderer.py +1 -1
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/pipelines/stable_cascade/pipeline_stable_cascade.py +18 -18
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/pipelines/stable_cascade/pipeline_stable_cascade_combined.py +23 -19
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/pipelines/stable_cascade/pipeline_stable_cascade_prior.py +33 -32
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/pipelines/stable_diffusion/__init__.py +0 -1
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/pipelines/stable_diffusion/convert_from_ckpt.py +18 -11
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/pipelines/stable_diffusion/pipeline_onnx_stable_diffusion.py +2 -2
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/pipelines/stable_diffusion/pipeline_onnx_stable_diffusion_upscale.py +6 -6
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/pipelines/stable_diffusion/pipeline_stable_diffusion.py +73 -39
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/pipelines/stable_diffusion/pipeline_stable_diffusion_depth2img.py +24 -17
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/pipelines/stable_diffusion/pipeline_stable_diffusion_image_variation.py +13 -8
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/pipelines/stable_diffusion/pipeline_stable_diffusion_img2img.py +66 -36
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/pipelines/stable_diffusion/pipeline_stable_diffusion_inpaint.py +82 -46
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/pipelines/stable_diffusion/pipeline_stable_diffusion_instruct_pix2pix.py +123 -28
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/pipelines/stable_diffusion/pipeline_stable_diffusion_latent_upscale.py +6 -6
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/pipelines/stable_diffusion/pipeline_stable_diffusion_upscale.py +16 -16
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/pipelines/stable_diffusion/pipeline_stable_unclip.py +24 -19
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/pipelines/stable_diffusion/pipeline_stable_unclip_img2img.py +37 -31
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/pipelines/stable_diffusion/safety_checker.py +2 -1
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/pipelines/stable_diffusion_attend_and_excite/pipeline_stable_diffusion_attend_and_excite.py +23 -15
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/pipelines/stable_diffusion_diffedit/pipeline_stable_diffusion_diffedit.py +44 -39
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/pipelines/stable_diffusion_gligen/pipeline_stable_diffusion_gligen.py +23 -18
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/pipelines/stable_diffusion_gligen/pipeline_stable_diffusion_gligen_text_image.py +19 -14
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/pipelines/stable_diffusion_k_diffusion/pipeline_stable_diffusion_k_diffusion.py +20 -15
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/pipelines/stable_diffusion_k_diffusion/pipeline_stable_diffusion_xl_k_diffusion.py +24 -19
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/pipelines/stable_diffusion_ldm3d/pipeline_stable_diffusion_ldm3d.py +65 -32
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/pipelines/stable_diffusion_panorama/pipeline_stable_diffusion_panorama.py +274 -38
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/pipelines/stable_diffusion_safe/pipeline_stable_diffusion_safe.py +10 -5
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/pipelines/stable_diffusion_safe/safety_checker.py +1 -1
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/pipelines/stable_diffusion_sag/pipeline_stable_diffusion_sag.py +92 -25
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/pipelines/stable_diffusion_xl/pipeline_stable_diffusion_xl.py +88 -44
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/pipelines/stable_diffusion_xl/pipeline_stable_diffusion_xl_img2img.py +108 -56
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/pipelines/stable_diffusion_xl/pipeline_stable_diffusion_xl_inpaint.py +96 -51
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/pipelines/stable_diffusion_xl/pipeline_stable_diffusion_xl_instruct_pix2pix.py +45 -25
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/pipelines/stable_diffusion_xl/watermark.py +9 -3
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/pipelines/stable_video_diffusion/pipeline_stable_video_diffusion.py +110 -57
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/pipelines/t2i_adapter/pipeline_stable_diffusion_adapter.py +59 -30
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/pipelines/t2i_adapter/pipeline_stable_diffusion_xl_adapter.py +71 -42
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/pipelines/text_to_video_synthesis/pipeline_output.py +3 -2
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/pipelines/text_to_video_synthesis/pipeline_text_to_video_synth.py +18 -41
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/pipelines/text_to_video_synthesis/pipeline_text_to_video_synth_img2img.py +21 -85
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/pipelines/text_to_video_synthesis/pipeline_text_to_video_zero.py +28 -19
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/pipelines/text_to_video_synthesis/pipeline_text_to_video_zero_sdxl.py +39 -33
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/pipelines/unclip/pipeline_unclip.py +6 -6
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/pipelines/unclip/pipeline_unclip_image_variation.py +6 -6
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/pipelines/unidiffuser/modeling_text_decoder.py +1 -1
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/pipelines/unidiffuser/modeling_uvit.py +9 -9
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/pipelines/unidiffuser/pipeline_unidiffuser.py +23 -23
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/pipelines/wuerstchen/modeling_paella_vq_model.py +5 -5
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/pipelines/wuerstchen/modeling_wuerstchen_common.py +5 -10
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/pipelines/wuerstchen/modeling_wuerstchen_prior.py +4 -6
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/pipelines/wuerstchen/pipeline_wuerstchen.py +4 -4
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/pipelines/wuerstchen/pipeline_wuerstchen_combined.py +12 -12
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/pipelines/wuerstchen/pipeline_wuerstchen_prior.py +10 -10
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/schedulers/__init__.py +2 -2
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/schedulers/deprecated/__init__.py +1 -1
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/schedulers/deprecated/scheduling_karras_ve.py +25 -25
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/schedulers/scheduling_amused.py +5 -5
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/schedulers/scheduling_consistency_decoder.py +11 -11
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/schedulers/scheduling_consistency_models.py +20 -26
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/schedulers/scheduling_ddim.py +22 -24
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/schedulers/scheduling_ddim_flax.py +2 -1
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/schedulers/scheduling_ddim_inverse.py +16 -16
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/schedulers/scheduling_ddim_parallel.py +28 -30
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/schedulers/scheduling_ddpm.py +20 -22
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/schedulers/scheduling_ddpm_flax.py +7 -3
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/schedulers/scheduling_ddpm_parallel.py +26 -28
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/schedulers/scheduling_ddpm_wuerstchen.py +14 -14
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/schedulers/scheduling_deis_multistep.py +42 -42
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/schedulers/scheduling_dpmsolver_multistep.py +103 -77
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/schedulers/scheduling_dpmsolver_multistep_flax.py +2 -2
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/schedulers/scheduling_dpmsolver_multistep_inverse.py +46 -46
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/schedulers/scheduling_dpmsolver_sde.py +23 -23
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/schedulers/scheduling_dpmsolver_singlestep.py +86 -65
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/schedulers/scheduling_edm_dpmsolver_multistep.py +75 -54
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/schedulers/scheduling_edm_euler.py +50 -31
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/schedulers/scheduling_euler_ancestral_discrete.py +23 -29
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/schedulers/scheduling_euler_discrete.py +160 -68
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/schedulers/scheduling_heun_discrete.py +57 -39
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/schedulers/scheduling_ipndm.py +8 -8
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/schedulers/scheduling_k_dpm_2_ancestral_discrete.py +19 -19
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/schedulers/scheduling_k_dpm_2_discrete.py +19 -19
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/schedulers/scheduling_karras_ve_flax.py +6 -6
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/schedulers/scheduling_lcm.py +21 -23
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/schedulers/scheduling_lms_discrete.py +24 -26
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/schedulers/scheduling_pndm.py +20 -20
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/schedulers/scheduling_repaint.py +20 -20
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/schedulers/scheduling_sasolver.py +55 -54
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/schedulers/scheduling_sde_ve.py +19 -19
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/schedulers/scheduling_tcd.py +39 -30
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/schedulers/scheduling_unclip.py +15 -15
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/schedulers/scheduling_unipc_multistep.py +111 -41
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/schedulers/scheduling_utils.py +14 -5
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/schedulers/scheduling_utils_flax.py +3 -3
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/schedulers/scheduling_vq_diffusion.py +10 -10
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/training_utils.py +56 -1
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/utils/__init__.py +7 -0
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/utils/doc_utils.py +1 -0
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/utils/dummy_pt_objects.py +30 -0
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/utils/dummy_torch_and_transformers_objects.py +90 -0
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/utils/dynamic_modules_utils.py +24 -11
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/utils/hub_utils.py +3 -2
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/utils/import_utils.py +91 -0
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/utils/loading_utils.py +2 -2
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/utils/logging.py +1 -1
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/utils/peft_utils.py +32 -5
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/utils/state_dict_utils.py +11 -2
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/utils/testing_utils.py +71 -6
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/utils/torch_utils.py +1 -0
- diffusers-0.28.0/src/diffusers/video_processor.py +113 -0
- {diffusers-0.27.2 → diffusers-0.28.0/src/diffusers.egg-info}/PKG-INFO +4 -4
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers.egg-info/SOURCES.txt +15 -0
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers.egg-info/requires.txt +3 -3
- diffusers-0.27.2/src/diffusers/commands/env.py +0 -84
- diffusers-0.27.2/src/diffusers/loaders/single_file.py +0 -318
- {diffusers-0.27.2 → diffusers-0.28.0}/LICENSE +0 -0
- {diffusers-0.27.2 → diffusers-0.28.0}/MANIFEST.in +0 -0
- {diffusers-0.27.2 → diffusers-0.28.0}/setup.cfg +0 -0
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/commands/__init__.py +0 -0
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/commands/diffusers_cli.py +0 -0
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/commands/fp16_safetensors.py +0 -0
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/dependency_versions_check.py +0 -0
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/experimental/__init__.py +0 -0
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/experimental/rl/__init__.py +0 -0
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/experimental/rl/value_guided_sampling.py +0 -0
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/loaders/utils.py +0 -0
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/models/adapter.py +0 -0
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/models/attention_flax.py +0 -0
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/models/autoencoders/__init__.py +0 -0
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/models/dual_transformer_2d.py +0 -0
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/models/embeddings_flax.py +0 -0
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/models/lora.py +0 -0
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/models/modeling_outputs.py +0 -0
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/models/normalization.py +0 -0
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/models/prior_transformer.py +0 -0
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/models/resnet_flax.py +0 -0
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/models/t5_film_transformer.py +0 -0
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/models/transformer_2d.py +0 -0
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/models/transformers/__init__.py +0 -0
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/models/unet_1d.py +0 -0
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/models/unet_1d_blocks.py +0 -0
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/models/unet_2d.py +0 -0
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/models/unet_2d_blocks.py +0 -0
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/models/unet_2d_condition.py +0 -0
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/models/unets/__init__.py +0 -0
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/models/unets/unet_2d_blocks_flax.py +0 -0
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/models/unets/uvit_2d.py +0 -0
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/models/vae_flax.py +0 -0
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/optimization.py +0 -0
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/pipelines/amused/__init__.py +0 -0
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/pipelines/audioldm/__init__.py +0 -0
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/pipelines/audioldm2/__init__.py +0 -0
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/pipelines/blip_diffusion/__init__.py +0 -0
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/pipelines/consistency_models/__init__.py +0 -0
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/pipelines/controlnet/__init__.py +0 -0
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/pipelines/controlnet/pipeline_flax_controlnet.py +0 -0
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/pipelines/dance_diffusion/__init__.py +0 -0
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/pipelines/dance_diffusion/pipeline_dance_diffusion.py +0 -0
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/pipelines/ddim/__init__.py +0 -0
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/pipelines/ddim/pipeline_ddim.py +0 -0
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/pipelines/ddpm/__init__.py +0 -0
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/pipelines/ddpm/pipeline_ddpm.py +0 -0
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/pipelines/deepfloyd_if/__init__.py +0 -0
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/pipelines/deepfloyd_if/pipeline_output.py +0 -0
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/pipelines/deepfloyd_if/safety_checker.py +0 -0
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/pipelines/deepfloyd_if/timesteps.py +0 -0
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/pipelines/deepfloyd_if/watermark.py +0 -0
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/pipelines/deprecated/__init__.py +0 -0
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/pipelines/deprecated/alt_diffusion/__init__.py +0 -0
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/pipelines/deprecated/alt_diffusion/pipeline_output.py +0 -0
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/pipelines/deprecated/audio_diffusion/__init__.py +0 -0
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/pipelines/deprecated/audio_diffusion/mel.py +0 -0
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/pipelines/deprecated/audio_diffusion/pipeline_audio_diffusion.py +0 -0
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/pipelines/deprecated/latent_diffusion_uncond/__init__.py +0 -0
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/pipelines/deprecated/latent_diffusion_uncond/pipeline_latent_diffusion_uncond.py +0 -0
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/pipelines/deprecated/pndm/__init__.py +0 -0
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/pipelines/deprecated/pndm/pipeline_pndm.py +0 -0
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/pipelines/deprecated/repaint/__init__.py +0 -0
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/pipelines/deprecated/score_sde_ve/__init__.py +0 -0
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/pipelines/deprecated/score_sde_ve/pipeline_score_sde_ve.py +0 -0
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/pipelines/deprecated/spectrogram_diffusion/__init__.py +0 -0
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/pipelines/deprecated/spectrogram_diffusion/continuous_encoder.py +0 -0
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/pipelines/deprecated/spectrogram_diffusion/midi_utils.py +0 -0
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/pipelines/deprecated/spectrogram_diffusion/notes_encoder.py +0 -0
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/pipelines/deprecated/stable_diffusion_variants/__init__.py +0 -0
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/pipelines/deprecated/stable_diffusion_variants/pipeline_onnx_stable_diffusion_inpaint_legacy.py +0 -0
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/pipelines/deprecated/stochastic_karras_ve/__init__.py +0 -0
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/pipelines/deprecated/stochastic_karras_ve/pipeline_stochastic_karras_ve.py +0 -0
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/pipelines/deprecated/versatile_diffusion/__init__.py +0 -0
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/pipelines/deprecated/vq_diffusion/__init__.py +0 -0
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/pipelines/dit/__init__.py +0 -0
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/pipelines/i2vgen_xl/__init__.py +0 -0
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/pipelines/kandinsky/__init__.py +0 -0
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/pipelines/kandinsky/text_encoder.py +0 -0
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/pipelines/kandinsky2_2/__init__.py +0 -0
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/pipelines/kandinsky3/__init__.py +0 -0
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/pipelines/latent_consistency_models/__init__.py +0 -0
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/pipelines/latent_diffusion/__init__.py +0 -0
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/pipelines/latent_diffusion/pipeline_latent_diffusion_superresolution.py +0 -0
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/pipelines/ledits_pp/__init__.py +0 -0
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/pipelines/musicldm/__init__.py +0 -0
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/pipelines/onnx_utils.py +0 -0
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/pipelines/paint_by_example/__init__.py +0 -0
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/pipelines/paint_by_example/image_encoder.py +0 -0
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/pipelines/pia/__init__.py +0 -0
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/pipelines/semantic_stable_diffusion/__init__.py +0 -0
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/pipelines/semantic_stable_diffusion/pipeline_output.py +0 -0
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/pipelines/shap_e/__init__.py +0 -0
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/pipelines/shap_e/camera.py +0 -0
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/pipelines/stable_cascade/__init__.py +0 -0
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/pipelines/stable_diffusion/clip_image_project_model.py +0 -0
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/pipelines/stable_diffusion/pipeline_flax_stable_diffusion.py +0 -0
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/pipelines/stable_diffusion/pipeline_flax_stable_diffusion_img2img.py +0 -0
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/pipelines/stable_diffusion/pipeline_flax_stable_diffusion_inpaint.py +0 -0
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/pipelines/stable_diffusion/pipeline_onnx_stable_diffusion_img2img.py +0 -0
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/pipelines/stable_diffusion/pipeline_onnx_stable_diffusion_inpaint.py +0 -0
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/pipelines/stable_diffusion/pipeline_output.py +0 -0
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/pipelines/stable_diffusion/safety_checker_flax.py +0 -0
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/pipelines/stable_diffusion/stable_unclip_image_normalizer.py +0 -0
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/pipelines/stable_diffusion_attend_and_excite/__init__.py +0 -0
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/pipelines/stable_diffusion_diffedit/__init__.py +0 -0
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/pipelines/stable_diffusion_gligen/__init__.py +0 -0
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/pipelines/stable_diffusion_k_diffusion/__init__.py +0 -0
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/pipelines/stable_diffusion_ldm3d/__init__.py +0 -0
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/pipelines/stable_diffusion_panorama/__init__.py +0 -0
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/pipelines/stable_diffusion_safe/__init__.py +0 -0
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/pipelines/stable_diffusion_safe/pipeline_output.py +0 -0
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/pipelines/stable_diffusion_sag/__init__.py +0 -0
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/pipelines/stable_diffusion_xl/__init__.py +0 -0
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/pipelines/stable_diffusion_xl/pipeline_flax_stable_diffusion_xl.py +0 -0
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/pipelines/stable_diffusion_xl/pipeline_output.py +0 -0
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/pipelines/stable_video_diffusion/__init__.py +0 -0
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/pipelines/t2i_adapter/__init__.py +0 -0
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/pipelines/text_to_video_synthesis/__init__.py +0 -0
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/pipelines/unclip/__init__.py +0 -0
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/pipelines/unclip/text_proj.py +0 -0
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/pipelines/unidiffuser/__init__.py +0 -0
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/pipelines/wuerstchen/__init__.py +0 -0
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/pipelines/wuerstchen/modeling_wuerstchen_diffnext.py +0 -0
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/py.typed +0 -0
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/schedulers/deprecated/scheduling_sde_vp.py +0 -0
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/schedulers/scheduling_euler_discrete_flax.py +0 -0
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/schedulers/scheduling_lms_discrete_flax.py +0 -0
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/schedulers/scheduling_pndm_flax.py +0 -0
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/schedulers/scheduling_sde_ve_flax.py +0 -0
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/utils/accelerate_utils.py +0 -0
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/utils/constants.py +0 -0
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/utils/deprecation_utils.py +0 -0
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/utils/dummy_flax_and_transformers_objects.py +0 -0
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/utils/dummy_flax_objects.py +0 -0
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/utils/dummy_note_seq_objects.py +0 -0
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/utils/dummy_onnx_objects.py +0 -0
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/utils/dummy_torch_and_librosa_objects.py +0 -0
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/utils/dummy_torch_and_scipy_objects.py +0 -0
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/utils/dummy_torch_and_torchsde_objects.py +0 -0
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/utils/dummy_torch_and_transformers_and_k_diffusion_objects.py +0 -0
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/utils/dummy_torch_and_transformers_and_onnx_objects.py +0 -0
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/utils/dummy_transformers_and_torch_and_note_seq_objects.py +0 -0
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/utils/export_utils.py +0 -0
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/utils/model_card_template.md +0 -0
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/utils/outputs.py +0 -0
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/utils/pil_utils.py +0 -0
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers/utils/versions.py +0 -0
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers.egg-info/dependency_links.txt +0 -0
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers.egg-info/entry_points.txt +0 -0
- {diffusers-0.27.2 → diffusers-0.28.0}/src/diffusers.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: diffusers
|
3
|
-
Version: 0.
|
3
|
+
Version: 0.28.0
|
4
4
|
Summary: State-of-the-art diffusion in PyTorch and JAX.
|
5
5
|
Home-page: https://github.com/huggingface/diffusers
|
6
6
|
Author: The Hugging Face team (past and future) with the help of all our contributors (https://github.com/huggingface/diffusers/graphs/contributors)
|
@@ -108,7 +108,7 @@ Please refer to the [How to use Stable Diffusion in Apple Silicon](https://huggi
|
|
108
108
|
|
109
109
|
## Quickstart
|
110
110
|
|
111
|
-
Generating outputs is super easy with 🤗 Diffusers. To generate an image from text, use the `from_pretrained` method to load any pretrained diffusion model (browse the [Hub](https://huggingface.co/models?library=diffusers&sort=downloads) for
|
111
|
+
Generating outputs is super easy with 🤗 Diffusers. To generate an image from text, use the `from_pretrained` method to load any pretrained diffusion model (browse the [Hub](https://huggingface.co/models?library=diffusers&sort=downloads) for 25.000+ checkpoints):
|
112
112
|
|
113
113
|
```python
|
114
114
|
from diffusers import DiffusionPipeline
|
@@ -250,7 +250,7 @@ Also, say 👋 in our public Discord channel <a href="https://discord.gg/G7tWnz9
|
|
250
250
|
- https://github.com/deep-floyd/IF
|
251
251
|
- https://github.com/bentoml/BentoML
|
252
252
|
- https://github.com/bmaltais/kohya_ss
|
253
|
-
- +
|
253
|
+
- +11.000 other amazing GitHub repositories 💪
|
254
254
|
|
255
255
|
Thank you for using us ❤️.
|
256
256
|
|
@@ -269,7 +269,7 @@ We also want to thank @heejkoo for the very helpful overview of papers, code and
|
|
269
269
|
|
270
270
|
```bibtex
|
271
271
|
@misc{von-platen-etal-2022-diffusers,
|
272
|
-
author = {Patrick von Platen and Suraj Patil and Anton Lozhkov and Pedro Cuenca and Nathan Lambert and Kashif Rasul and Mishig Davaadorj and Thomas Wolf},
|
272
|
+
author = {Patrick von Platen and Suraj Patil and Anton Lozhkov and Pedro Cuenca and Nathan Lambert and Kashif Rasul and Mishig Davaadorj and Dhruv Nair and Sayak Paul and William Berman and Yiyi Xu and Steven Liu and Thomas Wolf},
|
273
273
|
title = {Diffusers: State-of-the-art diffusion models},
|
274
274
|
year = {2022},
|
275
275
|
publisher = {GitHub},
|
@@ -77,7 +77,7 @@ Please refer to the [How to use Stable Diffusion in Apple Silicon](https://huggi
|
|
77
77
|
|
78
78
|
## Quickstart
|
79
79
|
|
80
|
-
Generating outputs is super easy with 🤗 Diffusers. To generate an image from text, use the `from_pretrained` method to load any pretrained diffusion model (browse the [Hub](https://huggingface.co/models?library=diffusers&sort=downloads) for
|
80
|
+
Generating outputs is super easy with 🤗 Diffusers. To generate an image from text, use the `from_pretrained` method to load any pretrained diffusion model (browse the [Hub](https://huggingface.co/models?library=diffusers&sort=downloads) for 25.000+ checkpoints):
|
81
81
|
|
82
82
|
```python
|
83
83
|
from diffusers import DiffusionPipeline
|
@@ -219,7 +219,7 @@ Also, say 👋 in our public Discord channel <a href="https://discord.gg/G7tWnz9
|
|
219
219
|
- https://github.com/deep-floyd/IF
|
220
220
|
- https://github.com/bentoml/BentoML
|
221
221
|
- https://github.com/bmaltais/kohya_ss
|
222
|
-
- +
|
222
|
+
- +11.000 other amazing GitHub repositories 💪
|
223
223
|
|
224
224
|
Thank you for using us ❤️.
|
225
225
|
|
@@ -238,7 +238,7 @@ We also want to thank @heejkoo for the very helpful overview of papers, code and
|
|
238
238
|
|
239
239
|
```bibtex
|
240
240
|
@misc{von-platen-etal-2022-diffusers,
|
241
|
-
author = {Patrick von Platen and Suraj Patil and Anton Lozhkov and Pedro Cuenca and Nathan Lambert and Kashif Rasul and Mishig Davaadorj and Thomas Wolf},
|
241
|
+
author = {Patrick von Platen and Suraj Patil and Anton Lozhkov and Pedro Cuenca and Nathan Lambert and Kashif Rasul and Mishig Davaadorj and Dhruv Nair and Sayak Paul and William Berman and Yiyi Xu and Steven Liu and Thomas Wolf},
|
242
242
|
title = {Diffusers: State-of-the-art diffusion models},
|
243
243
|
year = {2022},
|
244
244
|
publisher = {GitHub},
|
@@ -1,15 +1,17 @@
|
|
1
1
|
[tool.ruff]
|
2
|
+
line-length = 119
|
3
|
+
|
4
|
+
[tool.ruff.lint]
|
2
5
|
# Never enforce `E501` (line length violations).
|
3
6
|
ignore = ["C901", "E501", "E741", "F402", "F823"]
|
4
7
|
select = ["C", "E", "F", "I", "W"]
|
5
|
-
line-length = 119
|
6
8
|
|
7
9
|
# Ignore import violations in all `__init__.py` files.
|
8
|
-
[tool.ruff.per-file-ignores]
|
10
|
+
[tool.ruff.lint.per-file-ignores]
|
9
11
|
"__init__.py" = ["E402", "F401", "F403", "F811"]
|
10
12
|
"src/diffusers/utils/dummy_*.py" = ["F401"]
|
11
13
|
|
12
|
-
[tool.ruff.isort]
|
14
|
+
[tool.ruff.lint.isort]
|
13
15
|
lines-after-imports = 2
|
14
16
|
known-first-party = ["diffusers"]
|
15
17
|
|
@@ -23,13 +23,14 @@ To create the package for PyPI.
|
|
23
23
|
If releasing on a special branch, copy the updated README.md on the main branch for the commit you will make
|
24
24
|
for the post-release and run `make fix-copies` on the main branch as well.
|
25
25
|
|
26
|
-
2.
|
26
|
+
2. Unpin specific versions from setup.py that use a git install.
|
27
27
|
|
28
|
-
3.
|
29
|
-
|
30
|
-
4. Checkout the release branch (v<RELEASE>-release, for example v4.19-release), and commit these changes with the
|
28
|
+
3. Checkout the release branch (v<RELEASE>-release, for example v4.19-release), and commit these changes with the
|
31
29
|
message: "Release: <RELEASE>" and push.
|
32
30
|
|
31
|
+
4. Manually trigger the "Nightly and release tests on main/release branch" workflow from the release branch. Wait for
|
32
|
+
the tests to complete. We can safely ignore the known test failures.
|
33
|
+
|
33
34
|
5. Wait for the tests on main to be completed and be green (otherwise revert and fix bugs).
|
34
35
|
|
35
36
|
6. Add a tag in git to mark the release: "git tag v<RELEASE> -m 'Adds tag v<RELEASE> for PyPI'"
|
@@ -72,7 +73,11 @@ To create the package for PyPI.
|
|
72
73
|
9. Upload the final version to the actual PyPI:
|
73
74
|
twine upload dist/* -r pypi
|
74
75
|
|
75
|
-
10. Prepare the release notes and publish them on GitHub once everything is looking hunky-dory.
|
76
|
+
10. Prepare the release notes and publish them on GitHub once everything is looking hunky-dory. You can use the following
|
77
|
+
Space to fetch all the commits applicable for the release: https://huggingface.co/spaces/lysandre/github-release. Repo should
|
78
|
+
be `huggingface/diffusers`. `tag` should be the previous release tag (v0.26.1, for example), and `branch` should be
|
79
|
+
the latest release branch (v0.27.0-release, for example). It denotes all commits that have happened on branch
|
80
|
+
v0.27.0-release after the tag v0.26.1 was created.
|
76
81
|
|
77
82
|
11. Run `make post-release` (or, for a patch release, `make post-patch`). If you were on a branch for the release,
|
78
83
|
you need to go back to main before executing this.
|
@@ -81,9 +86,8 @@ To create the package for PyPI.
|
|
81
86
|
import os
|
82
87
|
import re
|
83
88
|
import sys
|
84
|
-
from distutils.core import Command
|
85
89
|
|
86
|
-
from setuptools import find_packages, setup
|
90
|
+
from setuptools import Command, find_packages, setup
|
87
91
|
|
88
92
|
|
89
93
|
# IMPORTANT:
|
@@ -91,7 +95,7 @@ from setuptools import find_packages, setup
|
|
91
95
|
# 2. once modified, run: `make deps_table_update` to update src/diffusers/dependency_versions_table.py
|
92
96
|
_deps = [
|
93
97
|
"Pillow", # keep the PIL.Image.Resampling deprecation away
|
94
|
-
"accelerate>=0.
|
98
|
+
"accelerate>=0.29.3",
|
95
99
|
"compel==0.1.8",
|
96
100
|
"datasets",
|
97
101
|
"filelock",
|
@@ -130,6 +134,7 @@ _deps = [
|
|
130
134
|
"torchvision",
|
131
135
|
"transformers>=4.25.1",
|
132
136
|
"urllib3<=2.0.0",
|
137
|
+
"black",
|
133
138
|
]
|
134
139
|
|
135
140
|
# this is a lookup table with items like:
|
@@ -163,7 +168,7 @@ def deps_list(*pkgs):
|
|
163
168
|
|
164
169
|
class DepsTableUpdateCommand(Command):
|
165
170
|
"""
|
166
|
-
A custom
|
171
|
+
A custom command that updates the dependency table.
|
167
172
|
usage: python setup.py deps_table_update
|
168
173
|
"""
|
169
174
|
|
@@ -249,7 +254,7 @@ version_range_max = max(sys.version_info[1], 10) + 1
|
|
249
254
|
|
250
255
|
setup(
|
251
256
|
name="diffusers",
|
252
|
-
version="0.
|
257
|
+
version="0.28.0", # expected format is one of x.y.z.dev0, or x.y.z.rc1 or x.y.z (no to dashes, yes to dots)
|
253
258
|
description="State-of-the-art diffusion in PyTorch and JAX.",
|
254
259
|
long_description=open("README.md", "r", encoding="utf-8").read(),
|
255
260
|
long_description_content_type="text/markdown",
|
@@ -1,4 +1,4 @@
|
|
1
|
-
__version__ = "0.
|
1
|
+
__version__ = "0.28.0"
|
2
2
|
|
3
3
|
from typing import TYPE_CHECKING
|
4
4
|
|
@@ -27,6 +27,7 @@ from .utils import (
|
|
27
27
|
|
28
28
|
_import_structure = {
|
29
29
|
"configuration_utils": ["ConfigMixin"],
|
30
|
+
"loaders": ["FromOriginalModelMixin"],
|
30
31
|
"models": [],
|
31
32
|
"pipelines": [],
|
32
33
|
"schedulers": [],
|
@@ -80,6 +81,7 @@ else:
|
|
80
81
|
"AutoencoderTiny",
|
81
82
|
"ConsistencyDecoderVAE",
|
82
83
|
"ControlNetModel",
|
84
|
+
"ControlNetXSAdapter",
|
83
85
|
"I2VGenXLUNet",
|
84
86
|
"Kandinsky3UNet",
|
85
87
|
"ModelMixin",
|
@@ -94,6 +96,7 @@ else:
|
|
94
96
|
"UNet2DConditionModel",
|
95
97
|
"UNet2DModel",
|
96
98
|
"UNet3DConditionModel",
|
99
|
+
"UNetControlNetXSModel",
|
97
100
|
"UNetMotionModel",
|
98
101
|
"UNetSpatioTemporalConditionModel",
|
99
102
|
"UVit2DModel",
|
@@ -214,6 +217,7 @@ else:
|
|
214
217
|
"AmusedInpaintPipeline",
|
215
218
|
"AmusedPipeline",
|
216
219
|
"AnimateDiffPipeline",
|
220
|
+
"AnimateDiffSDXLPipeline",
|
217
221
|
"AnimateDiffVideoToVideoPipeline",
|
218
222
|
"AudioLDM2Pipeline",
|
219
223
|
"AudioLDM2ProjectionModel",
|
@@ -255,10 +259,13 @@ else:
|
|
255
259
|
"LDMTextToImagePipeline",
|
256
260
|
"LEditsPPPipelineStableDiffusion",
|
257
261
|
"LEditsPPPipelineStableDiffusionXL",
|
262
|
+
"MarigoldDepthPipeline",
|
263
|
+
"MarigoldNormalsPipeline",
|
258
264
|
"MusicLDMPipeline",
|
259
265
|
"PaintByExamplePipeline",
|
260
266
|
"PIAPipeline",
|
261
267
|
"PixArtAlphaPipeline",
|
268
|
+
"PixArtSigmaPipeline",
|
262
269
|
"SemanticStableDiffusionPipeline",
|
263
270
|
"ShapEImg2ImgPipeline",
|
264
271
|
"ShapEPipeline",
|
@@ -270,6 +277,7 @@ else:
|
|
270
277
|
"StableDiffusionControlNetImg2ImgPipeline",
|
271
278
|
"StableDiffusionControlNetInpaintPipeline",
|
272
279
|
"StableDiffusionControlNetPipeline",
|
280
|
+
"StableDiffusionControlNetXSPipeline",
|
273
281
|
"StableDiffusionDepth2ImgPipeline",
|
274
282
|
"StableDiffusionDiffEditPipeline",
|
275
283
|
"StableDiffusionGLIGENPipeline",
|
@@ -293,6 +301,7 @@ else:
|
|
293
301
|
"StableDiffusionXLControlNetImg2ImgPipeline",
|
294
302
|
"StableDiffusionXLControlNetInpaintPipeline",
|
295
303
|
"StableDiffusionXLControlNetPipeline",
|
304
|
+
"StableDiffusionXLControlNetXSPipeline",
|
296
305
|
"StableDiffusionXLImg2ImgPipeline",
|
297
306
|
"StableDiffusionXLInpaintPipeline",
|
298
307
|
"StableDiffusionXLInstructPix2PixPipeline",
|
@@ -474,6 +483,7 @@ if TYPE_CHECKING or DIFFUSERS_SLOW_IMPORT:
|
|
474
483
|
AutoencoderTiny,
|
475
484
|
ConsistencyDecoderVAE,
|
476
485
|
ControlNetModel,
|
486
|
+
ControlNetXSAdapter,
|
477
487
|
I2VGenXLUNet,
|
478
488
|
Kandinsky3UNet,
|
479
489
|
ModelMixin,
|
@@ -487,6 +497,7 @@ if TYPE_CHECKING or DIFFUSERS_SLOW_IMPORT:
|
|
487
497
|
UNet2DConditionModel,
|
488
498
|
UNet2DModel,
|
489
499
|
UNet3DConditionModel,
|
500
|
+
UNetControlNetXSModel,
|
490
501
|
UNetMotionModel,
|
491
502
|
UNetSpatioTemporalConditionModel,
|
492
503
|
UVit2DModel,
|
@@ -588,6 +599,7 @@ if TYPE_CHECKING or DIFFUSERS_SLOW_IMPORT:
|
|
588
599
|
AmusedInpaintPipeline,
|
589
600
|
AmusedPipeline,
|
590
601
|
AnimateDiffPipeline,
|
602
|
+
AnimateDiffSDXLPipeline,
|
591
603
|
AnimateDiffVideoToVideoPipeline,
|
592
604
|
AudioLDM2Pipeline,
|
593
605
|
AudioLDM2ProjectionModel,
|
@@ -627,10 +639,13 @@ if TYPE_CHECKING or DIFFUSERS_SLOW_IMPORT:
|
|
627
639
|
LDMTextToImagePipeline,
|
628
640
|
LEditsPPPipelineStableDiffusion,
|
629
641
|
LEditsPPPipelineStableDiffusionXL,
|
642
|
+
MarigoldDepthPipeline,
|
643
|
+
MarigoldNormalsPipeline,
|
630
644
|
MusicLDMPipeline,
|
631
645
|
PaintByExamplePipeline,
|
632
646
|
PIAPipeline,
|
633
647
|
PixArtAlphaPipeline,
|
648
|
+
PixArtSigmaPipeline,
|
634
649
|
SemanticStableDiffusionPipeline,
|
635
650
|
ShapEImg2ImgPipeline,
|
636
651
|
ShapEPipeline,
|
@@ -642,6 +657,7 @@ if TYPE_CHECKING or DIFFUSERS_SLOW_IMPORT:
|
|
642
657
|
StableDiffusionControlNetImg2ImgPipeline,
|
643
658
|
StableDiffusionControlNetInpaintPipeline,
|
644
659
|
StableDiffusionControlNetPipeline,
|
660
|
+
StableDiffusionControlNetXSPipeline,
|
645
661
|
StableDiffusionDepth2ImgPipeline,
|
646
662
|
StableDiffusionDiffEditPipeline,
|
647
663
|
StableDiffusionGLIGENPipeline,
|
@@ -665,6 +681,7 @@ if TYPE_CHECKING or DIFFUSERS_SLOW_IMPORT:
|
|
665
681
|
StableDiffusionXLControlNetImg2ImgPipeline,
|
666
682
|
StableDiffusionXLControlNetInpaintPipeline,
|
667
683
|
StableDiffusionXLControlNetPipeline,
|
684
|
+
StableDiffusionXLControlNetXSPipeline,
|
668
685
|
StableDiffusionXLImg2ImgPipeline,
|
669
686
|
StableDiffusionXLInpaintPipeline,
|
670
687
|
StableDiffusionXLInstructPix2PixPipeline,
|
@@ -0,0 +1,156 @@
|
|
1
|
+
from typing import Any, Dict, List
|
2
|
+
|
3
|
+
from .configuration_utils import ConfigMixin, register_to_config
|
4
|
+
from .utils import CONFIG_NAME
|
5
|
+
|
6
|
+
|
7
|
+
class PipelineCallback(ConfigMixin):
|
8
|
+
"""
|
9
|
+
Base class for all the official callbacks used in a pipeline. This class provides a structure for implementing
|
10
|
+
custom callbacks and ensures that all callbacks have a consistent interface.
|
11
|
+
|
12
|
+
Please implement the following:
|
13
|
+
`tensor_inputs`: This should return a list of tensor inputs specific to your callback. You will only be able to
|
14
|
+
include
|
15
|
+
variables listed in the `._callback_tensor_inputs` attribute of your pipeline class.
|
16
|
+
`callback_fn`: This method defines the core functionality of your callback.
|
17
|
+
"""
|
18
|
+
|
19
|
+
config_name = CONFIG_NAME
|
20
|
+
|
21
|
+
@register_to_config
|
22
|
+
def __init__(self, cutoff_step_ratio=1.0, cutoff_step_index=None):
|
23
|
+
super().__init__()
|
24
|
+
|
25
|
+
if (cutoff_step_ratio is None and cutoff_step_index is None) or (
|
26
|
+
cutoff_step_ratio is not None and cutoff_step_index is not None
|
27
|
+
):
|
28
|
+
raise ValueError("Either cutoff_step_ratio or cutoff_step_index should be provided, not both or none.")
|
29
|
+
|
30
|
+
if cutoff_step_ratio is not None and (
|
31
|
+
not isinstance(cutoff_step_ratio, float) or not (0.0 <= cutoff_step_ratio <= 1.0)
|
32
|
+
):
|
33
|
+
raise ValueError("cutoff_step_ratio must be a float between 0.0 and 1.0.")
|
34
|
+
|
35
|
+
@property
|
36
|
+
def tensor_inputs(self) -> List[str]:
|
37
|
+
raise NotImplementedError(f"You need to set the attribute `tensor_inputs` for {self.__class__}")
|
38
|
+
|
39
|
+
def callback_fn(self, pipeline, step_index, timesteps, callback_kwargs) -> Dict[str, Any]:
|
40
|
+
raise NotImplementedError(f"You need to implement the method `callback_fn` for {self.__class__}")
|
41
|
+
|
42
|
+
def __call__(self, pipeline, step_index, timestep, callback_kwargs) -> Dict[str, Any]:
|
43
|
+
return self.callback_fn(pipeline, step_index, timestep, callback_kwargs)
|
44
|
+
|
45
|
+
|
46
|
+
class MultiPipelineCallbacks:
|
47
|
+
"""
|
48
|
+
This class is designed to handle multiple pipeline callbacks. It accepts a list of PipelineCallback objects and
|
49
|
+
provides a unified interface for calling all of them.
|
50
|
+
"""
|
51
|
+
|
52
|
+
def __init__(self, callbacks: List[PipelineCallback]):
|
53
|
+
self.callbacks = callbacks
|
54
|
+
|
55
|
+
@property
|
56
|
+
def tensor_inputs(self) -> List[str]:
|
57
|
+
return [input for callback in self.callbacks for input in callback.tensor_inputs]
|
58
|
+
|
59
|
+
def __call__(self, pipeline, step_index, timestep, callback_kwargs) -> Dict[str, Any]:
|
60
|
+
"""
|
61
|
+
Calls all the callbacks in order with the given arguments and returns the final callback_kwargs.
|
62
|
+
"""
|
63
|
+
for callback in self.callbacks:
|
64
|
+
callback_kwargs = callback(pipeline, step_index, timestep, callback_kwargs)
|
65
|
+
|
66
|
+
return callback_kwargs
|
67
|
+
|
68
|
+
|
69
|
+
class SDCFGCutoffCallback(PipelineCallback):
|
70
|
+
"""
|
71
|
+
Callback function for Stable Diffusion Pipelines. After certain number of steps (set by `cutoff_step_ratio` or
|
72
|
+
`cutoff_step_index`), this callback will disable the CFG.
|
73
|
+
|
74
|
+
Note: This callback mutates the pipeline by changing the `_guidance_scale` attribute to 0.0 after the cutoff step.
|
75
|
+
"""
|
76
|
+
|
77
|
+
tensor_inputs = ["prompt_embeds"]
|
78
|
+
|
79
|
+
def callback_fn(self, pipeline, step_index, timestep, callback_kwargs) -> Dict[str, Any]:
|
80
|
+
cutoff_step_ratio = self.config.cutoff_step_ratio
|
81
|
+
cutoff_step_index = self.config.cutoff_step_index
|
82
|
+
|
83
|
+
# Use cutoff_step_index if it's not None, otherwise use cutoff_step_ratio
|
84
|
+
cutoff_step = (
|
85
|
+
cutoff_step_index if cutoff_step_index is not None else int(pipeline.num_timesteps * cutoff_step_ratio)
|
86
|
+
)
|
87
|
+
|
88
|
+
if step_index == cutoff_step:
|
89
|
+
prompt_embeds = callback_kwargs[self.tensor_inputs[0]]
|
90
|
+
prompt_embeds = prompt_embeds[-1:] # "-1" denotes the embeddings for conditional text tokens.
|
91
|
+
|
92
|
+
pipeline._guidance_scale = 0.0
|
93
|
+
|
94
|
+
callback_kwargs[self.tensor_inputs[0]] = prompt_embeds
|
95
|
+
return callback_kwargs
|
96
|
+
|
97
|
+
|
98
|
+
class SDXLCFGCutoffCallback(PipelineCallback):
|
99
|
+
"""
|
100
|
+
Callback function for Stable Diffusion XL Pipelines. After certain number of steps (set by `cutoff_step_ratio` or
|
101
|
+
`cutoff_step_index`), this callback will disable the CFG.
|
102
|
+
|
103
|
+
Note: This callback mutates the pipeline by changing the `_guidance_scale` attribute to 0.0 after the cutoff step.
|
104
|
+
"""
|
105
|
+
|
106
|
+
tensor_inputs = ["prompt_embeds", "add_text_embeds", "add_time_ids"]
|
107
|
+
|
108
|
+
def callback_fn(self, pipeline, step_index, timestep, callback_kwargs) -> Dict[str, Any]:
|
109
|
+
cutoff_step_ratio = self.config.cutoff_step_ratio
|
110
|
+
cutoff_step_index = self.config.cutoff_step_index
|
111
|
+
|
112
|
+
# Use cutoff_step_index if it's not None, otherwise use cutoff_step_ratio
|
113
|
+
cutoff_step = (
|
114
|
+
cutoff_step_index if cutoff_step_index is not None else int(pipeline.num_timesteps * cutoff_step_ratio)
|
115
|
+
)
|
116
|
+
|
117
|
+
if step_index == cutoff_step:
|
118
|
+
prompt_embeds = callback_kwargs[self.tensor_inputs[0]]
|
119
|
+
prompt_embeds = prompt_embeds[-1:] # "-1" denotes the embeddings for conditional text tokens.
|
120
|
+
|
121
|
+
add_text_embeds = callback_kwargs[self.tensor_inputs[1]]
|
122
|
+
add_text_embeds = add_text_embeds[-1:] # "-1" denotes the embeddings for conditional pooled text tokens
|
123
|
+
|
124
|
+
add_time_ids = callback_kwargs[self.tensor_inputs[2]]
|
125
|
+
add_time_ids = add_time_ids[-1:] # "-1" denotes the embeddings for conditional added time vector
|
126
|
+
|
127
|
+
pipeline._guidance_scale = 0.0
|
128
|
+
|
129
|
+
callback_kwargs[self.tensor_inputs[0]] = prompt_embeds
|
130
|
+
callback_kwargs[self.tensor_inputs[1]] = add_text_embeds
|
131
|
+
callback_kwargs[self.tensor_inputs[2]] = add_time_ids
|
132
|
+
return callback_kwargs
|
133
|
+
|
134
|
+
|
135
|
+
class IPAdapterScaleCutoffCallback(PipelineCallback):
|
136
|
+
"""
|
137
|
+
Callback function for any pipeline that inherits `IPAdapterMixin`. After certain number of steps (set by
|
138
|
+
`cutoff_step_ratio` or `cutoff_step_index`), this callback will set the IP Adapter scale to `0.0`.
|
139
|
+
|
140
|
+
Note: This callback mutates the IP Adapter attention processors by setting the scale to 0.0 after the cutoff step.
|
141
|
+
"""
|
142
|
+
|
143
|
+
tensor_inputs = []
|
144
|
+
|
145
|
+
def callback_fn(self, pipeline, step_index, timestep, callback_kwargs) -> Dict[str, Any]:
|
146
|
+
cutoff_step_ratio = self.config.cutoff_step_ratio
|
147
|
+
cutoff_step_index = self.config.cutoff_step_index
|
148
|
+
|
149
|
+
# Use cutoff_step_index if it's not None, otherwise use cutoff_step_ratio
|
150
|
+
cutoff_step = (
|
151
|
+
cutoff_step_index if cutoff_step_index is not None else int(pipeline.num_timesteps * cutoff_step_ratio)
|
152
|
+
)
|
153
|
+
|
154
|
+
if step_index == cutoff_step:
|
155
|
+
pipeline.set_ip_adapter_scale(0.0)
|
156
|
+
return callback_kwargs
|
@@ -0,0 +1,188 @@
|
|
1
|
+
# Copyright 2024 The HuggingFace Team. All rights reserved.
|
2
|
+
#
|
3
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
4
|
+
# you may not use this file except in compliance with the License.
|
5
|
+
# You may obtain a copy of the License at
|
6
|
+
#
|
7
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
8
|
+
#
|
9
|
+
# Unless required by applicable law or agreed to in writing, software
|
10
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
11
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
12
|
+
# See the License for the specific language governing permissions and
|
13
|
+
# limitations under the License.
|
14
|
+
|
15
|
+
import platform
|
16
|
+
import subprocess
|
17
|
+
from argparse import ArgumentParser
|
18
|
+
|
19
|
+
import huggingface_hub
|
20
|
+
|
21
|
+
from .. import __version__ as version
|
22
|
+
from ..utils import (
|
23
|
+
is_accelerate_available,
|
24
|
+
is_bitsandbytes_available,
|
25
|
+
is_flax_available,
|
26
|
+
is_google_colab,
|
27
|
+
is_notebook,
|
28
|
+
is_peft_available,
|
29
|
+
is_safetensors_available,
|
30
|
+
is_torch_available,
|
31
|
+
is_transformers_available,
|
32
|
+
is_xformers_available,
|
33
|
+
)
|
34
|
+
from ..utils.testing_utils import get_python_version
|
35
|
+
from . import BaseDiffusersCLICommand
|
36
|
+
|
37
|
+
|
38
|
+
def info_command_factory(_):
|
39
|
+
return EnvironmentCommand()
|
40
|
+
|
41
|
+
|
42
|
+
class EnvironmentCommand(BaseDiffusersCLICommand):
|
43
|
+
@staticmethod
|
44
|
+
def register_subcommand(parser: ArgumentParser) -> None:
|
45
|
+
download_parser = parser.add_parser("env")
|
46
|
+
download_parser.set_defaults(func=info_command_factory)
|
47
|
+
|
48
|
+
def run(self) -> dict:
|
49
|
+
hub_version = huggingface_hub.__version__
|
50
|
+
|
51
|
+
safetensors_version = "not installed"
|
52
|
+
if is_safetensors_available():
|
53
|
+
import safetensors
|
54
|
+
|
55
|
+
safetensors_version = safetensors.__version__
|
56
|
+
|
57
|
+
pt_version = "not installed"
|
58
|
+
pt_cuda_available = "NA"
|
59
|
+
if is_torch_available():
|
60
|
+
import torch
|
61
|
+
|
62
|
+
pt_version = torch.__version__
|
63
|
+
pt_cuda_available = torch.cuda.is_available()
|
64
|
+
|
65
|
+
flax_version = "not installed"
|
66
|
+
jax_version = "not installed"
|
67
|
+
jaxlib_version = "not installed"
|
68
|
+
jax_backend = "NA"
|
69
|
+
if is_flax_available():
|
70
|
+
import flax
|
71
|
+
import jax
|
72
|
+
import jaxlib
|
73
|
+
|
74
|
+
flax_version = flax.__version__
|
75
|
+
jax_version = jax.__version__
|
76
|
+
jaxlib_version = jaxlib.__version__
|
77
|
+
jax_backend = jax.lib.xla_bridge.get_backend().platform
|
78
|
+
|
79
|
+
transformers_version = "not installed"
|
80
|
+
if is_transformers_available():
|
81
|
+
import transformers
|
82
|
+
|
83
|
+
transformers_version = transformers.__version__
|
84
|
+
|
85
|
+
accelerate_version = "not installed"
|
86
|
+
if is_accelerate_available():
|
87
|
+
import accelerate
|
88
|
+
|
89
|
+
accelerate_version = accelerate.__version__
|
90
|
+
|
91
|
+
peft_version = "not installed"
|
92
|
+
if is_peft_available():
|
93
|
+
import peft
|
94
|
+
|
95
|
+
peft_version = peft.__version__
|
96
|
+
|
97
|
+
bitsandbytes_version = "not installed"
|
98
|
+
if is_bitsandbytes_available():
|
99
|
+
import bitsandbytes
|
100
|
+
|
101
|
+
bitsandbytes_version = bitsandbytes.__version__
|
102
|
+
|
103
|
+
xformers_version = "not installed"
|
104
|
+
if is_xformers_available():
|
105
|
+
import xformers
|
106
|
+
|
107
|
+
xformers_version = xformers.__version__
|
108
|
+
|
109
|
+
if get_python_version() >= (3, 10):
|
110
|
+
platform_info = f"{platform.freedesktop_os_release().get('PRETTY_NAME', None)} - {platform.platform()}"
|
111
|
+
else:
|
112
|
+
platform_info = platform.platform()
|
113
|
+
|
114
|
+
is_notebook_str = "Yes" if is_notebook() else "No"
|
115
|
+
|
116
|
+
is_google_colab_str = "Yes" if is_google_colab() else "No"
|
117
|
+
|
118
|
+
accelerator = "NA"
|
119
|
+
if platform.system() in {"Linux", "Windows"}:
|
120
|
+
try:
|
121
|
+
sp = subprocess.Popen(
|
122
|
+
["nvidia-smi", "--query-gpu=gpu_name,memory.total", "--format=csv,noheader"],
|
123
|
+
stdout=subprocess.PIPE,
|
124
|
+
stderr=subprocess.PIPE,
|
125
|
+
)
|
126
|
+
out_str, _ = sp.communicate()
|
127
|
+
out_str = out_str.decode("utf-8")
|
128
|
+
|
129
|
+
if len(out_str) > 0:
|
130
|
+
accelerator = out_str.strip() + " VRAM"
|
131
|
+
except FileNotFoundError:
|
132
|
+
pass
|
133
|
+
elif platform.system() == "Darwin": # Mac OS
|
134
|
+
try:
|
135
|
+
sp = subprocess.Popen(
|
136
|
+
["system_profiler", "SPDisplaysDataType"],
|
137
|
+
stdout=subprocess.PIPE,
|
138
|
+
stderr=subprocess.PIPE,
|
139
|
+
)
|
140
|
+
out_str, _ = sp.communicate()
|
141
|
+
out_str = out_str.decode("utf-8")
|
142
|
+
|
143
|
+
start = out_str.find("Chipset Model:")
|
144
|
+
if start != -1:
|
145
|
+
start += len("Chipset Model:")
|
146
|
+
end = out_str.find("\n", start)
|
147
|
+
accelerator = out_str[start:end].strip()
|
148
|
+
|
149
|
+
start = out_str.find("VRAM (Total):")
|
150
|
+
if start != -1:
|
151
|
+
start += len("VRAM (Total):")
|
152
|
+
end = out_str.find("\n", start)
|
153
|
+
accelerator += " VRAM: " + out_str[start:end].strip()
|
154
|
+
except FileNotFoundError:
|
155
|
+
pass
|
156
|
+
else:
|
157
|
+
print("It seems you are running an unusual OS. Could you fill in the accelerator manually?")
|
158
|
+
|
159
|
+
info = {
|
160
|
+
"🤗 Diffusers version": version,
|
161
|
+
"Platform": platform_info,
|
162
|
+
"Running on a notebook?": is_notebook_str,
|
163
|
+
"Running on Google Colab?": is_google_colab_str,
|
164
|
+
"Python version": platform.python_version(),
|
165
|
+
"PyTorch version (GPU?)": f"{pt_version} ({pt_cuda_available})",
|
166
|
+
"Flax version (CPU?/GPU?/TPU?)": f"{flax_version} ({jax_backend})",
|
167
|
+
"Jax version": jax_version,
|
168
|
+
"JaxLib version": jaxlib_version,
|
169
|
+
"Huggingface_hub version": hub_version,
|
170
|
+
"Transformers version": transformers_version,
|
171
|
+
"Accelerate version": accelerate_version,
|
172
|
+
"PEFT version": peft_version,
|
173
|
+
"Bitsandbytes version": bitsandbytes_version,
|
174
|
+
"Safetensors version": safetensors_version,
|
175
|
+
"xFormers version": xformers_version,
|
176
|
+
"Accelerator": accelerator,
|
177
|
+
"Using GPU in script?": "<fill in>",
|
178
|
+
"Using distributed or parallel set-up in script?": "<fill in>",
|
179
|
+
}
|
180
|
+
|
181
|
+
print("\nCopy-and-paste the text below in your GitHub issue and FILL OUT the two last points.\n")
|
182
|
+
print(self.format_dict(info))
|
183
|
+
|
184
|
+
return info
|
185
|
+
|
186
|
+
@staticmethod
|
187
|
+
def format_dict(d: dict) -> str:
|
188
|
+
return "\n".join([f"- {prop}: {val}" for prop, val in d.items()]) + "\n"
|