diffusers 0.27.1__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.
Files changed (423) hide show
  1. {diffusers-0.27.1/src/diffusers.egg-info → diffusers-0.28.0}/PKG-INFO +4 -4
  2. {diffusers-0.27.1 → diffusers-0.28.0}/README.md +3 -3
  3. {diffusers-0.27.1 → diffusers-0.28.0}/pyproject.toml +5 -3
  4. {diffusers-0.27.1 → diffusers-0.28.0}/setup.py +15 -10
  5. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/__init__.py +18 -1
  6. diffusers-0.28.0/src/diffusers/callbacks.py +156 -0
  7. diffusers-0.28.0/src/diffusers/commands/env.py +188 -0
  8. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/configuration_utils.py +16 -11
  9. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/dependency_versions_table.py +2 -1
  10. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/image_processor.py +158 -45
  11. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/loaders/__init__.py +2 -5
  12. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/loaders/autoencoder.py +4 -4
  13. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/loaders/controlnet.py +4 -4
  14. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/loaders/ip_adapter.py +80 -22
  15. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/loaders/lora.py +134 -20
  16. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/loaders/lora_conversion_utils.py +46 -43
  17. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/loaders/peft.py +4 -3
  18. diffusers-0.28.0/src/diffusers/loaders/single_file.py +549 -0
  19. diffusers-0.28.0/src/diffusers/loaders/single_file_model.py +290 -0
  20. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/loaders/single_file_utils.py +616 -672
  21. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/loaders/textual_inversion.py +41 -20
  22. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/loaders/unet.py +168 -115
  23. diffusers-0.28.0/src/diffusers/loaders/unet_loader_utils.py +163 -0
  24. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/models/__init__.py +2 -0
  25. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/models/activations.py +11 -3
  26. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/models/attention.py +10 -11
  27. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/models/attention_processor.py +367 -148
  28. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/models/autoencoders/autoencoder_asym_kl.py +14 -16
  29. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/models/autoencoders/autoencoder_kl.py +18 -19
  30. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/models/autoencoders/autoencoder_kl_temporal_decoder.py +11 -11
  31. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/models/autoencoders/autoencoder_tiny.py +16 -16
  32. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/models/autoencoders/consistency_decoder_vae.py +36 -11
  33. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/models/autoencoders/vae.py +23 -24
  34. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/models/controlnet.py +12 -9
  35. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/models/controlnet_flax.py +4 -4
  36. diffusers-0.28.0/src/diffusers/models/controlnet_xs.py +1915 -0
  37. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/models/downsampling.py +17 -18
  38. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/models/embeddings.py +147 -24
  39. diffusers-0.28.0/src/diffusers/models/model_loading_utils.py +149 -0
  40. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/models/modeling_flax_pytorch_utils.py +2 -1
  41. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/models/modeling_flax_utils.py +4 -4
  42. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/models/modeling_pytorch_flax_utils.py +1 -1
  43. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/models/modeling_utils.py +118 -98
  44. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/models/resnet.py +18 -23
  45. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/models/transformer_temporal.py +3 -3
  46. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/models/transformers/dual_transformer_2d.py +4 -4
  47. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/models/transformers/prior_transformer.py +7 -7
  48. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/models/transformers/t5_film_transformer.py +17 -19
  49. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/models/transformers/transformer_2d.py +272 -156
  50. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/models/transformers/transformer_temporal.py +10 -10
  51. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/models/unets/unet_1d.py +5 -5
  52. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/models/unets/unet_1d_blocks.py +29 -29
  53. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/models/unets/unet_2d.py +6 -6
  54. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/models/unets/unet_2d_blocks.py +137 -128
  55. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/models/unets/unet_2d_condition.py +20 -15
  56. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/models/unets/unet_2d_condition_flax.py +6 -5
  57. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/models/unets/unet_3d_blocks.py +79 -77
  58. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/models/unets/unet_3d_condition.py +13 -9
  59. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/models/unets/unet_i2vgen_xl.py +14 -13
  60. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/models/unets/unet_kandinsky3.py +1 -1
  61. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/models/unets/unet_motion_model.py +114 -14
  62. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/models/unets/unet_spatio_temporal_condition.py +15 -14
  63. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/models/unets/unet_stable_cascade.py +16 -13
  64. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/models/upsampling.py +17 -20
  65. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/models/vq_model.py +16 -15
  66. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/pipelines/__init__.py +25 -3
  67. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/pipelines/amused/pipeline_amused.py +12 -12
  68. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/pipelines/amused/pipeline_amused_img2img.py +14 -12
  69. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/pipelines/amused/pipeline_amused_inpaint.py +13 -11
  70. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/pipelines/animatediff/__init__.py +2 -0
  71. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/pipelines/animatediff/pipeline_animatediff.py +24 -46
  72. diffusers-0.28.0/src/diffusers/pipelines/animatediff/pipeline_animatediff_sdxl.py +1284 -0
  73. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/pipelines/animatediff/pipeline_animatediff_video2video.py +82 -72
  74. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/pipelines/animatediff/pipeline_output.py +3 -2
  75. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/pipelines/audioldm/pipeline_audioldm.py +14 -14
  76. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/pipelines/audioldm2/modeling_audioldm2.py +54 -35
  77. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/pipelines/audioldm2/pipeline_audioldm2.py +120 -36
  78. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/pipelines/auto_pipeline.py +21 -17
  79. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/pipelines/blip_diffusion/blip_image_processing.py +1 -1
  80. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/pipelines/blip_diffusion/modeling_blip2.py +5 -5
  81. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/pipelines/blip_diffusion/modeling_ctx_clip.py +1 -1
  82. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/pipelines/blip_diffusion/pipeline_blip_diffusion.py +2 -2
  83. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/pipelines/consistency_models/pipeline_consistency_models.py +5 -5
  84. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/pipelines/controlnet/multicontrolnet.py +4 -8
  85. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/pipelines/controlnet/pipeline_controlnet.py +87 -52
  86. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/pipelines/controlnet/pipeline_controlnet_blip_diffusion.py +2 -2
  87. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/pipelines/controlnet/pipeline_controlnet_img2img.py +50 -43
  88. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/pipelines/controlnet/pipeline_controlnet_inpaint.py +52 -40
  89. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/pipelines/controlnet/pipeline_controlnet_inpaint_sd_xl.py +80 -47
  90. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/pipelines/controlnet/pipeline_controlnet_sd_xl.py +147 -49
  91. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/pipelines/controlnet/pipeline_controlnet_sd_xl_img2img.py +89 -55
  92. diffusers-0.28.0/src/diffusers/pipelines/controlnet_xs/__init__.py +68 -0
  93. diffusers-0.28.0/src/diffusers/pipelines/controlnet_xs/pipeline_controlnet_xs.py +911 -0
  94. diffusers-0.28.0/src/diffusers/pipelines/controlnet_xs/pipeline_controlnet_xs_sd_xl.py +1115 -0
  95. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/pipelines/deepfloyd_if/pipeline_if.py +14 -28
  96. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/pipelines/deepfloyd_if/pipeline_if_img2img.py +18 -33
  97. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/pipelines/deepfloyd_if/pipeline_if_img2img_superresolution.py +21 -39
  98. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/pipelines/deepfloyd_if/pipeline_if_inpainting.py +20 -36
  99. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/pipelines/deepfloyd_if/pipeline_if_inpainting_superresolution.py +23 -39
  100. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/pipelines/deepfloyd_if/pipeline_if_superresolution.py +17 -32
  101. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/pipelines/deprecated/alt_diffusion/modeling_roberta_series.py +11 -11
  102. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/pipelines/deprecated/alt_diffusion/pipeline_alt_diffusion.py +43 -20
  103. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/pipelines/deprecated/alt_diffusion/pipeline_alt_diffusion_img2img.py +36 -18
  104. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/pipelines/deprecated/repaint/pipeline_repaint.py +2 -2
  105. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/pipelines/deprecated/spectrogram_diffusion/pipeline_spectrogram_diffusion.py +7 -7
  106. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/pipelines/deprecated/stable_diffusion_variants/pipeline_cycle_diffusion.py +12 -12
  107. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/pipelines/deprecated/stable_diffusion_variants/pipeline_stable_diffusion_inpaint_legacy.py +18 -21
  108. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/pipelines/deprecated/stable_diffusion_variants/pipeline_stable_diffusion_model_editing.py +20 -15
  109. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/pipelines/deprecated/stable_diffusion_variants/pipeline_stable_diffusion_paradigms.py +20 -15
  110. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/pipelines/deprecated/stable_diffusion_variants/pipeline_stable_diffusion_pix2pix_zero.py +30 -25
  111. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/pipelines/deprecated/versatile_diffusion/modeling_text_unet.py +69 -59
  112. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/pipelines/deprecated/versatile_diffusion/pipeline_versatile_diffusion.py +13 -13
  113. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/pipelines/deprecated/versatile_diffusion/pipeline_versatile_diffusion_dual_guided.py +10 -5
  114. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/pipelines/deprecated/versatile_diffusion/pipeline_versatile_diffusion_image_variation.py +11 -6
  115. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/pipelines/deprecated/versatile_diffusion/pipeline_versatile_diffusion_text_to_image.py +10 -5
  116. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/pipelines/deprecated/vq_diffusion/pipeline_vq_diffusion.py +5 -5
  117. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/pipelines/dit/pipeline_dit.py +3 -0
  118. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/pipelines/free_init_utils.py +39 -38
  119. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/pipelines/i2vgen_xl/pipeline_i2vgen_xl.py +33 -48
  120. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/pipelines/kandinsky/pipeline_kandinsky.py +8 -8
  121. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/pipelines/kandinsky/pipeline_kandinsky_combined.py +23 -20
  122. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/pipelines/kandinsky/pipeline_kandinsky_img2img.py +11 -11
  123. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/pipelines/kandinsky/pipeline_kandinsky_inpaint.py +12 -12
  124. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/pipelines/kandinsky/pipeline_kandinsky_prior.py +10 -10
  125. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/pipelines/kandinsky2_2/pipeline_kandinsky2_2.py +6 -6
  126. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/pipelines/kandinsky2_2/pipeline_kandinsky2_2_combined.py +32 -29
  127. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/pipelines/kandinsky2_2/pipeline_kandinsky2_2_controlnet.py +10 -10
  128. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/pipelines/kandinsky2_2/pipeline_kandinsky2_2_controlnet_img2img.py +10 -10
  129. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/pipelines/kandinsky2_2/pipeline_kandinsky2_2_img2img.py +6 -6
  130. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/pipelines/kandinsky2_2/pipeline_kandinsky2_2_inpainting.py +8 -8
  131. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/pipelines/kandinsky2_2/pipeline_kandinsky2_2_prior.py +7 -7
  132. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/pipelines/kandinsky2_2/pipeline_kandinsky2_2_prior_emb2emb.py +6 -6
  133. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/pipelines/kandinsky3/convert_kandinsky3_unet.py +3 -3
  134. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/pipelines/kandinsky3/pipeline_kandinsky3.py +20 -33
  135. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/pipelines/kandinsky3/pipeline_kandinsky3_img2img.py +24 -35
  136. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/pipelines/latent_consistency_models/pipeline_latent_consistency_img2img.py +48 -30
  137. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/pipelines/latent_consistency_models/pipeline_latent_consistency_text2img.py +50 -28
  138. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/pipelines/latent_diffusion/pipeline_latent_diffusion.py +11 -11
  139. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/pipelines/ledits_pp/pipeline_leditspp_stable_diffusion.py +61 -67
  140. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/pipelines/ledits_pp/pipeline_leditspp_stable_diffusion_xl.py +70 -69
  141. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/pipelines/ledits_pp/pipeline_output.py +2 -2
  142. diffusers-0.28.0/src/diffusers/pipelines/marigold/__init__.py +50 -0
  143. diffusers-0.28.0/src/diffusers/pipelines/marigold/marigold_image_processing.py +561 -0
  144. diffusers-0.28.0/src/diffusers/pipelines/marigold/pipeline_marigold_depth.py +813 -0
  145. diffusers-0.28.0/src/diffusers/pipelines/marigold/pipeline_marigold_normals.py +690 -0
  146. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/pipelines/musicldm/pipeline_musicldm.py +14 -14
  147. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/pipelines/paint_by_example/pipeline_paint_by_example.py +17 -12
  148. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/pipelines/pia/pipeline_pia.py +39 -125
  149. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/pipelines/pipeline_flax_utils.py +4 -4
  150. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/pipelines/pipeline_loading_utils.py +268 -23
  151. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/pipelines/pipeline_utils.py +266 -37
  152. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/pipelines/pixart_alpha/__init__.py +8 -1
  153. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/pipelines/pixart_alpha/pipeline_pixart_alpha.py +65 -75
  154. diffusers-0.28.0/src/diffusers/pipelines/pixart_alpha/pipeline_pixart_sigma.py +880 -0
  155. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/pipelines/semantic_stable_diffusion/pipeline_semantic_stable_diffusion.py +10 -5
  156. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/pipelines/shap_e/pipeline_shap_e.py +3 -3
  157. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/pipelines/shap_e/pipeline_shap_e_img2img.py +14 -14
  158. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/pipelines/shap_e/renderer.py +1 -1
  159. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/pipelines/stable_cascade/pipeline_stable_cascade.py +36 -22
  160. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/pipelines/stable_cascade/pipeline_stable_cascade_combined.py +23 -19
  161. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/pipelines/stable_cascade/pipeline_stable_cascade_prior.py +33 -32
  162. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/pipelines/stable_diffusion/__init__.py +0 -1
  163. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/pipelines/stable_diffusion/convert_from_ckpt.py +18 -11
  164. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/pipelines/stable_diffusion/pipeline_onnx_stable_diffusion.py +2 -2
  165. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/pipelines/stable_diffusion/pipeline_onnx_stable_diffusion_upscale.py +6 -6
  166. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/pipelines/stable_diffusion/pipeline_stable_diffusion.py +73 -39
  167. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/pipelines/stable_diffusion/pipeline_stable_diffusion_depth2img.py +24 -17
  168. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/pipelines/stable_diffusion/pipeline_stable_diffusion_image_variation.py +13 -8
  169. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/pipelines/stable_diffusion/pipeline_stable_diffusion_img2img.py +66 -36
  170. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/pipelines/stable_diffusion/pipeline_stable_diffusion_inpaint.py +82 -46
  171. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/pipelines/stable_diffusion/pipeline_stable_diffusion_instruct_pix2pix.py +123 -28
  172. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/pipelines/stable_diffusion/pipeline_stable_diffusion_latent_upscale.py +6 -6
  173. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/pipelines/stable_diffusion/pipeline_stable_diffusion_upscale.py +16 -16
  174. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/pipelines/stable_diffusion/pipeline_stable_unclip.py +24 -19
  175. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/pipelines/stable_diffusion/pipeline_stable_unclip_img2img.py +37 -31
  176. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/pipelines/stable_diffusion/safety_checker.py +2 -1
  177. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/pipelines/stable_diffusion_attend_and_excite/pipeline_stable_diffusion_attend_and_excite.py +23 -15
  178. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/pipelines/stable_diffusion_diffedit/pipeline_stable_diffusion_diffedit.py +44 -42
  179. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/pipelines/stable_diffusion_gligen/pipeline_stable_diffusion_gligen.py +23 -18
  180. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/pipelines/stable_diffusion_gligen/pipeline_stable_diffusion_gligen_text_image.py +19 -14
  181. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/pipelines/stable_diffusion_k_diffusion/pipeline_stable_diffusion_k_diffusion.py +20 -15
  182. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/pipelines/stable_diffusion_k_diffusion/pipeline_stable_diffusion_xl_k_diffusion.py +24 -19
  183. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/pipelines/stable_diffusion_ldm3d/pipeline_stable_diffusion_ldm3d.py +65 -32
  184. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/pipelines/stable_diffusion_panorama/pipeline_stable_diffusion_panorama.py +274 -38
  185. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/pipelines/stable_diffusion_safe/pipeline_stable_diffusion_safe.py +10 -5
  186. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/pipelines/stable_diffusion_safe/safety_checker.py +1 -1
  187. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/pipelines/stable_diffusion_sag/pipeline_stable_diffusion_sag.py +92 -25
  188. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/pipelines/stable_diffusion_xl/pipeline_stable_diffusion_xl.py +88 -44
  189. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/pipelines/stable_diffusion_xl/pipeline_stable_diffusion_xl_img2img.py +108 -56
  190. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/pipelines/stable_diffusion_xl/pipeline_stable_diffusion_xl_inpaint.py +96 -51
  191. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/pipelines/stable_diffusion_xl/pipeline_stable_diffusion_xl_instruct_pix2pix.py +45 -25
  192. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/pipelines/stable_diffusion_xl/watermark.py +9 -3
  193. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/pipelines/stable_video_diffusion/pipeline_stable_video_diffusion.py +110 -57
  194. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/pipelines/t2i_adapter/pipeline_stable_diffusion_adapter.py +59 -30
  195. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/pipelines/t2i_adapter/pipeline_stable_diffusion_xl_adapter.py +71 -42
  196. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/pipelines/text_to_video_synthesis/pipeline_output.py +3 -2
  197. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/pipelines/text_to_video_synthesis/pipeline_text_to_video_synth.py +18 -41
  198. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/pipelines/text_to_video_synthesis/pipeline_text_to_video_synth_img2img.py +21 -85
  199. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/pipelines/text_to_video_synthesis/pipeline_text_to_video_zero.py +28 -19
  200. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/pipelines/text_to_video_synthesis/pipeline_text_to_video_zero_sdxl.py +39 -33
  201. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/pipelines/unclip/pipeline_unclip.py +6 -6
  202. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/pipelines/unclip/pipeline_unclip_image_variation.py +6 -6
  203. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/pipelines/unidiffuser/modeling_text_decoder.py +1 -1
  204. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/pipelines/unidiffuser/modeling_uvit.py +9 -9
  205. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/pipelines/unidiffuser/pipeline_unidiffuser.py +23 -23
  206. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/pipelines/wuerstchen/modeling_paella_vq_model.py +5 -5
  207. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/pipelines/wuerstchen/modeling_wuerstchen_common.py +5 -10
  208. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/pipelines/wuerstchen/modeling_wuerstchen_prior.py +4 -6
  209. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/pipelines/wuerstchen/pipeline_wuerstchen.py +4 -4
  210. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/pipelines/wuerstchen/pipeline_wuerstchen_combined.py +12 -12
  211. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/pipelines/wuerstchen/pipeline_wuerstchen_prior.py +10 -10
  212. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/schedulers/__init__.py +2 -2
  213. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/schedulers/deprecated/__init__.py +1 -1
  214. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/schedulers/deprecated/scheduling_karras_ve.py +25 -25
  215. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/schedulers/scheduling_amused.py +5 -5
  216. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/schedulers/scheduling_consistency_decoder.py +11 -11
  217. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/schedulers/scheduling_consistency_models.py +23 -25
  218. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/schedulers/scheduling_ddim.py +22 -24
  219. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/schedulers/scheduling_ddim_flax.py +2 -1
  220. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/schedulers/scheduling_ddim_inverse.py +16 -16
  221. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/schedulers/scheduling_ddim_parallel.py +28 -30
  222. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/schedulers/scheduling_ddpm.py +20 -22
  223. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/schedulers/scheduling_ddpm_flax.py +7 -3
  224. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/schedulers/scheduling_ddpm_parallel.py +26 -28
  225. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/schedulers/scheduling_ddpm_wuerstchen.py +14 -14
  226. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/schedulers/scheduling_deis_multistep.py +46 -42
  227. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/schedulers/scheduling_dpmsolver_multistep.py +107 -77
  228. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/schedulers/scheduling_dpmsolver_multistep_flax.py +2 -2
  229. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/schedulers/scheduling_dpmsolver_multistep_inverse.py +46 -46
  230. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/schedulers/scheduling_dpmsolver_sde.py +26 -22
  231. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/schedulers/scheduling_dpmsolver_singlestep.py +90 -65
  232. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/schedulers/scheduling_edm_dpmsolver_multistep.py +78 -53
  233. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/schedulers/scheduling_edm_euler.py +53 -30
  234. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/schedulers/scheduling_euler_ancestral_discrete.py +26 -28
  235. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/schedulers/scheduling_euler_discrete.py +163 -67
  236. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/schedulers/scheduling_heun_discrete.py +60 -38
  237. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/schedulers/scheduling_ipndm.py +8 -8
  238. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/schedulers/scheduling_k_dpm_2_ancestral_discrete.py +22 -18
  239. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/schedulers/scheduling_k_dpm_2_discrete.py +22 -18
  240. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/schedulers/scheduling_karras_ve_flax.py +6 -6
  241. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/schedulers/scheduling_lcm.py +21 -23
  242. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/schedulers/scheduling_lms_discrete.py +27 -25
  243. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/schedulers/scheduling_pndm.py +20 -20
  244. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/schedulers/scheduling_repaint.py +20 -20
  245. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/schedulers/scheduling_sasolver.py +55 -54
  246. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/schedulers/scheduling_sde_ve.py +19 -19
  247. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/schedulers/scheduling_tcd.py +39 -30
  248. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/schedulers/scheduling_unclip.py +15 -15
  249. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/schedulers/scheduling_unipc_multistep.py +115 -41
  250. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/schedulers/scheduling_utils.py +14 -5
  251. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/schedulers/scheduling_utils_flax.py +3 -3
  252. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/schedulers/scheduling_vq_diffusion.py +10 -10
  253. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/training_utils.py +56 -1
  254. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/utils/__init__.py +7 -0
  255. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/utils/doc_utils.py +1 -0
  256. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/utils/dummy_pt_objects.py +30 -0
  257. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/utils/dummy_torch_and_transformers_objects.py +90 -0
  258. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/utils/dynamic_modules_utils.py +24 -11
  259. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/utils/hub_utils.py +3 -2
  260. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/utils/import_utils.py +91 -0
  261. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/utils/loading_utils.py +2 -2
  262. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/utils/logging.py +1 -1
  263. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/utils/peft_utils.py +32 -5
  264. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/utils/state_dict_utils.py +11 -2
  265. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/utils/testing_utils.py +71 -6
  266. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/utils/torch_utils.py +1 -0
  267. diffusers-0.28.0/src/diffusers/video_processor.py +113 -0
  268. {diffusers-0.27.1 → diffusers-0.28.0/src/diffusers.egg-info}/PKG-INFO +4 -4
  269. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers.egg-info/SOURCES.txt +15 -0
  270. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers.egg-info/requires.txt +3 -3
  271. diffusers-0.27.1/src/diffusers/commands/env.py +0 -84
  272. diffusers-0.27.1/src/diffusers/loaders/single_file.py +0 -318
  273. {diffusers-0.27.1 → diffusers-0.28.0}/LICENSE +0 -0
  274. {diffusers-0.27.1 → diffusers-0.28.0}/MANIFEST.in +0 -0
  275. {diffusers-0.27.1 → diffusers-0.28.0}/setup.cfg +0 -0
  276. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/commands/__init__.py +0 -0
  277. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/commands/diffusers_cli.py +0 -0
  278. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/commands/fp16_safetensors.py +0 -0
  279. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/dependency_versions_check.py +0 -0
  280. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/experimental/__init__.py +0 -0
  281. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/experimental/rl/__init__.py +0 -0
  282. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/experimental/rl/value_guided_sampling.py +0 -0
  283. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/loaders/utils.py +0 -0
  284. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/models/adapter.py +0 -0
  285. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/models/attention_flax.py +0 -0
  286. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/models/autoencoders/__init__.py +0 -0
  287. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/models/dual_transformer_2d.py +0 -0
  288. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/models/embeddings_flax.py +0 -0
  289. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/models/lora.py +0 -0
  290. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/models/modeling_outputs.py +0 -0
  291. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/models/normalization.py +0 -0
  292. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/models/prior_transformer.py +0 -0
  293. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/models/resnet_flax.py +0 -0
  294. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/models/t5_film_transformer.py +0 -0
  295. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/models/transformer_2d.py +0 -0
  296. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/models/transformers/__init__.py +0 -0
  297. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/models/unet_1d.py +0 -0
  298. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/models/unet_1d_blocks.py +0 -0
  299. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/models/unet_2d.py +0 -0
  300. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/models/unet_2d_blocks.py +0 -0
  301. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/models/unet_2d_condition.py +0 -0
  302. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/models/unets/__init__.py +0 -0
  303. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/models/unets/unet_2d_blocks_flax.py +0 -0
  304. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/models/unets/uvit_2d.py +0 -0
  305. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/models/vae_flax.py +0 -0
  306. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/optimization.py +0 -0
  307. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/pipelines/amused/__init__.py +0 -0
  308. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/pipelines/audioldm/__init__.py +0 -0
  309. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/pipelines/audioldm2/__init__.py +0 -0
  310. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/pipelines/blip_diffusion/__init__.py +0 -0
  311. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/pipelines/consistency_models/__init__.py +0 -0
  312. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/pipelines/controlnet/__init__.py +0 -0
  313. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/pipelines/controlnet/pipeline_flax_controlnet.py +0 -0
  314. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/pipelines/dance_diffusion/__init__.py +0 -0
  315. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/pipelines/dance_diffusion/pipeline_dance_diffusion.py +0 -0
  316. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/pipelines/ddim/__init__.py +0 -0
  317. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/pipelines/ddim/pipeline_ddim.py +0 -0
  318. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/pipelines/ddpm/__init__.py +0 -0
  319. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/pipelines/ddpm/pipeline_ddpm.py +0 -0
  320. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/pipelines/deepfloyd_if/__init__.py +0 -0
  321. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/pipelines/deepfloyd_if/pipeline_output.py +0 -0
  322. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/pipelines/deepfloyd_if/safety_checker.py +0 -0
  323. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/pipelines/deepfloyd_if/timesteps.py +0 -0
  324. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/pipelines/deepfloyd_if/watermark.py +0 -0
  325. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/pipelines/deprecated/__init__.py +0 -0
  326. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/pipelines/deprecated/alt_diffusion/__init__.py +0 -0
  327. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/pipelines/deprecated/alt_diffusion/pipeline_output.py +0 -0
  328. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/pipelines/deprecated/audio_diffusion/__init__.py +0 -0
  329. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/pipelines/deprecated/audio_diffusion/mel.py +0 -0
  330. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/pipelines/deprecated/audio_diffusion/pipeline_audio_diffusion.py +0 -0
  331. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/pipelines/deprecated/latent_diffusion_uncond/__init__.py +0 -0
  332. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/pipelines/deprecated/latent_diffusion_uncond/pipeline_latent_diffusion_uncond.py +0 -0
  333. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/pipelines/deprecated/pndm/__init__.py +0 -0
  334. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/pipelines/deprecated/pndm/pipeline_pndm.py +0 -0
  335. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/pipelines/deprecated/repaint/__init__.py +0 -0
  336. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/pipelines/deprecated/score_sde_ve/__init__.py +0 -0
  337. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/pipelines/deprecated/score_sde_ve/pipeline_score_sde_ve.py +0 -0
  338. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/pipelines/deprecated/spectrogram_diffusion/__init__.py +0 -0
  339. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/pipelines/deprecated/spectrogram_diffusion/continuous_encoder.py +0 -0
  340. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/pipelines/deprecated/spectrogram_diffusion/midi_utils.py +0 -0
  341. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/pipelines/deprecated/spectrogram_diffusion/notes_encoder.py +0 -0
  342. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/pipelines/deprecated/stable_diffusion_variants/__init__.py +0 -0
  343. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/pipelines/deprecated/stable_diffusion_variants/pipeline_onnx_stable_diffusion_inpaint_legacy.py +0 -0
  344. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/pipelines/deprecated/stochastic_karras_ve/__init__.py +0 -0
  345. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/pipelines/deprecated/stochastic_karras_ve/pipeline_stochastic_karras_ve.py +0 -0
  346. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/pipelines/deprecated/versatile_diffusion/__init__.py +0 -0
  347. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/pipelines/deprecated/vq_diffusion/__init__.py +0 -0
  348. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/pipelines/dit/__init__.py +0 -0
  349. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/pipelines/i2vgen_xl/__init__.py +0 -0
  350. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/pipelines/kandinsky/__init__.py +0 -0
  351. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/pipelines/kandinsky/text_encoder.py +0 -0
  352. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/pipelines/kandinsky2_2/__init__.py +0 -0
  353. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/pipelines/kandinsky3/__init__.py +0 -0
  354. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/pipelines/latent_consistency_models/__init__.py +0 -0
  355. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/pipelines/latent_diffusion/__init__.py +0 -0
  356. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/pipelines/latent_diffusion/pipeline_latent_diffusion_superresolution.py +0 -0
  357. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/pipelines/ledits_pp/__init__.py +0 -0
  358. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/pipelines/musicldm/__init__.py +0 -0
  359. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/pipelines/onnx_utils.py +0 -0
  360. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/pipelines/paint_by_example/__init__.py +0 -0
  361. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/pipelines/paint_by_example/image_encoder.py +0 -0
  362. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/pipelines/pia/__init__.py +0 -0
  363. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/pipelines/semantic_stable_diffusion/__init__.py +0 -0
  364. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/pipelines/semantic_stable_diffusion/pipeline_output.py +0 -0
  365. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/pipelines/shap_e/__init__.py +0 -0
  366. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/pipelines/shap_e/camera.py +0 -0
  367. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/pipelines/stable_cascade/__init__.py +0 -0
  368. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/pipelines/stable_diffusion/clip_image_project_model.py +0 -0
  369. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/pipelines/stable_diffusion/pipeline_flax_stable_diffusion.py +0 -0
  370. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/pipelines/stable_diffusion/pipeline_flax_stable_diffusion_img2img.py +0 -0
  371. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/pipelines/stable_diffusion/pipeline_flax_stable_diffusion_inpaint.py +0 -0
  372. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/pipelines/stable_diffusion/pipeline_onnx_stable_diffusion_img2img.py +0 -0
  373. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/pipelines/stable_diffusion/pipeline_onnx_stable_diffusion_inpaint.py +0 -0
  374. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/pipelines/stable_diffusion/pipeline_output.py +0 -0
  375. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/pipelines/stable_diffusion/safety_checker_flax.py +0 -0
  376. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/pipelines/stable_diffusion/stable_unclip_image_normalizer.py +0 -0
  377. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/pipelines/stable_diffusion_attend_and_excite/__init__.py +0 -0
  378. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/pipelines/stable_diffusion_diffedit/__init__.py +0 -0
  379. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/pipelines/stable_diffusion_gligen/__init__.py +0 -0
  380. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/pipelines/stable_diffusion_k_diffusion/__init__.py +0 -0
  381. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/pipelines/stable_diffusion_ldm3d/__init__.py +0 -0
  382. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/pipelines/stable_diffusion_panorama/__init__.py +0 -0
  383. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/pipelines/stable_diffusion_safe/__init__.py +0 -0
  384. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/pipelines/stable_diffusion_safe/pipeline_output.py +0 -0
  385. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/pipelines/stable_diffusion_sag/__init__.py +0 -0
  386. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/pipelines/stable_diffusion_xl/__init__.py +0 -0
  387. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/pipelines/stable_diffusion_xl/pipeline_flax_stable_diffusion_xl.py +0 -0
  388. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/pipelines/stable_diffusion_xl/pipeline_output.py +0 -0
  389. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/pipelines/stable_video_diffusion/__init__.py +0 -0
  390. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/pipelines/t2i_adapter/__init__.py +0 -0
  391. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/pipelines/text_to_video_synthesis/__init__.py +0 -0
  392. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/pipelines/unclip/__init__.py +0 -0
  393. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/pipelines/unclip/text_proj.py +0 -0
  394. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/pipelines/unidiffuser/__init__.py +0 -0
  395. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/pipelines/wuerstchen/__init__.py +0 -0
  396. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/pipelines/wuerstchen/modeling_wuerstchen_diffnext.py +0 -0
  397. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/py.typed +0 -0
  398. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/schedulers/deprecated/scheduling_sde_vp.py +0 -0
  399. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/schedulers/scheduling_euler_discrete_flax.py +0 -0
  400. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/schedulers/scheduling_lms_discrete_flax.py +0 -0
  401. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/schedulers/scheduling_pndm_flax.py +0 -0
  402. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/schedulers/scheduling_sde_ve_flax.py +0 -0
  403. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/utils/accelerate_utils.py +0 -0
  404. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/utils/constants.py +0 -0
  405. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/utils/deprecation_utils.py +0 -0
  406. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/utils/dummy_flax_and_transformers_objects.py +0 -0
  407. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/utils/dummy_flax_objects.py +0 -0
  408. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/utils/dummy_note_seq_objects.py +0 -0
  409. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/utils/dummy_onnx_objects.py +0 -0
  410. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/utils/dummy_torch_and_librosa_objects.py +0 -0
  411. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/utils/dummy_torch_and_scipy_objects.py +0 -0
  412. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/utils/dummy_torch_and_torchsde_objects.py +0 -0
  413. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/utils/dummy_torch_and_transformers_and_k_diffusion_objects.py +0 -0
  414. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/utils/dummy_torch_and_transformers_and_onnx_objects.py +0 -0
  415. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/utils/dummy_transformers_and_torch_and_note_seq_objects.py +0 -0
  416. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/utils/export_utils.py +0 -0
  417. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/utils/model_card_template.md +0 -0
  418. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/utils/outputs.py +0 -0
  419. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/utils/pil_utils.py +0 -0
  420. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers/utils/versions.py +0 -0
  421. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers.egg-info/dependency_links.txt +0 -0
  422. {diffusers-0.27.1 → diffusers-0.28.0}/src/diffusers.egg-info/entry_points.txt +0 -0
  423. {diffusers-0.27.1 → 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.27.1
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 19000+ checkpoints):
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
- - +8000 other amazing GitHub repositories 💪
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 19000+ checkpoints):
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
- - +8000 other amazing GitHub repositories 💪
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. Run Tests for Amazon Sagemaker. The documentation is located in `./tests/sagemaker/README.md`, otherwise @philschmid.
26
+ 2. Unpin specific versions from setup.py that use a git install.
27
27
 
28
- 3. Unpin specific versions from setup.py that use a git install.
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.11.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 distutils command that updates the dependency table.
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.27.1", # expected format is one of x.y.z.dev0, or x.y.z.rc1 or x.y.z (no to dashes, yes to dots)
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.27.1"
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"