diffusers 0.28.2__py3-none-any.whl → 0.29.1__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (122) hide show
  1. diffusers/__init__.py +15 -1
  2. diffusers/commands/env.py +1 -5
  3. diffusers/dependency_versions_table.py +1 -1
  4. diffusers/image_processor.py +2 -1
  5. diffusers/loaders/__init__.py +2 -2
  6. diffusers/loaders/lora.py +406 -140
  7. diffusers/loaders/lora_conversion_utils.py +7 -1
  8. diffusers/loaders/single_file.py +13 -1
  9. diffusers/loaders/single_file_model.py +15 -8
  10. diffusers/loaders/single_file_utils.py +267 -17
  11. diffusers/loaders/unet.py +307 -272
  12. diffusers/models/__init__.py +7 -3
  13. diffusers/models/attention.py +125 -1
  14. diffusers/models/attention_processor.py +169 -1
  15. diffusers/models/autoencoders/__init__.py +1 -0
  16. diffusers/models/autoencoders/autoencoder_asym_kl.py +1 -1
  17. diffusers/models/autoencoders/autoencoder_kl.py +17 -6
  18. diffusers/models/autoencoders/autoencoder_kl_temporal_decoder.py +4 -2
  19. diffusers/models/autoencoders/consistency_decoder_vae.py +9 -9
  20. diffusers/models/autoencoders/vq_model.py +182 -0
  21. diffusers/models/controlnet_sd3.py +418 -0
  22. diffusers/models/controlnet_xs.py +6 -6
  23. diffusers/models/embeddings.py +112 -84
  24. diffusers/models/model_loading_utils.py +55 -0
  25. diffusers/models/modeling_utils.py +138 -20
  26. diffusers/models/normalization.py +11 -6
  27. diffusers/models/transformers/__init__.py +1 -0
  28. diffusers/models/transformers/dual_transformer_2d.py +5 -4
  29. diffusers/models/transformers/hunyuan_transformer_2d.py +149 -2
  30. diffusers/models/transformers/prior_transformer.py +5 -5
  31. diffusers/models/transformers/transformer_2d.py +2 -2
  32. diffusers/models/transformers/transformer_sd3.py +353 -0
  33. diffusers/models/transformers/transformer_temporal.py +12 -10
  34. diffusers/models/unets/unet_1d.py +3 -3
  35. diffusers/models/unets/unet_2d.py +3 -3
  36. diffusers/models/unets/unet_2d_condition.py +4 -15
  37. diffusers/models/unets/unet_3d_condition.py +5 -17
  38. diffusers/models/unets/unet_i2vgen_xl.py +4 -4
  39. diffusers/models/unets/unet_motion_model.py +4 -4
  40. diffusers/models/unets/unet_spatio_temporal_condition.py +3 -3
  41. diffusers/models/vq_model.py +8 -165
  42. diffusers/pipelines/__init__.py +11 -0
  43. diffusers/pipelines/animatediff/pipeline_animatediff.py +4 -3
  44. diffusers/pipelines/animatediff/pipeline_animatediff_video2video.py +4 -3
  45. diffusers/pipelines/auto_pipeline.py +8 -0
  46. diffusers/pipelines/controlnet/pipeline_controlnet.py +4 -3
  47. diffusers/pipelines/controlnet/pipeline_controlnet_img2img.py +4 -3
  48. diffusers/pipelines/controlnet/pipeline_controlnet_inpaint.py +4 -3
  49. diffusers/pipelines/controlnet_sd3/__init__.py +53 -0
  50. diffusers/pipelines/controlnet_sd3/pipeline_stable_diffusion_3_controlnet.py +1062 -0
  51. diffusers/pipelines/controlnet_xs/pipeline_controlnet_xs.py +4 -3
  52. diffusers/pipelines/deepfloyd_if/watermark.py +1 -1
  53. diffusers/pipelines/deprecated/stable_diffusion_variants/pipeline_cycle_diffusion.py +4 -3
  54. diffusers/pipelines/deprecated/stable_diffusion_variants/pipeline_stable_diffusion_inpaint_legacy.py +4 -3
  55. diffusers/pipelines/deprecated/stable_diffusion_variants/pipeline_stable_diffusion_model_editing.py +4 -3
  56. diffusers/pipelines/deprecated/stable_diffusion_variants/pipeline_stable_diffusion_paradigms.py +4 -3
  57. diffusers/pipelines/deprecated/stable_diffusion_variants/pipeline_stable_diffusion_pix2pix_zero.py +4 -3
  58. diffusers/pipelines/hunyuandit/pipeline_hunyuandit.py +24 -5
  59. diffusers/pipelines/latent_consistency_models/pipeline_latent_consistency_img2img.py +4 -3
  60. diffusers/pipelines/latent_consistency_models/pipeline_latent_consistency_text2img.py +4 -3
  61. diffusers/pipelines/marigold/marigold_image_processing.py +35 -20
  62. diffusers/pipelines/pia/pipeline_pia.py +4 -3
  63. diffusers/pipelines/pixart_alpha/pipeline_pixart_alpha.py +1 -1
  64. diffusers/pipelines/pixart_alpha/pipeline_pixart_sigma.py +1 -1
  65. diffusers/pipelines/semantic_stable_diffusion/pipeline_semantic_stable_diffusion.py +17 -17
  66. diffusers/pipelines/stable_diffusion/pipeline_stable_diffusion.py +4 -3
  67. diffusers/pipelines/stable_diffusion/pipeline_stable_diffusion_depth2img.py +5 -4
  68. diffusers/pipelines/stable_diffusion/pipeline_stable_diffusion_img2img.py +4 -3
  69. diffusers/pipelines/stable_diffusion/pipeline_stable_diffusion_inpaint.py +4 -3
  70. diffusers/pipelines/stable_diffusion/pipeline_stable_diffusion_upscale.py +4 -3
  71. diffusers/pipelines/stable_diffusion/pipeline_stable_unclip.py +4 -3
  72. diffusers/pipelines/stable_diffusion/pipeline_stable_unclip_img2img.py +7 -6
  73. diffusers/pipelines/stable_diffusion_3/__init__.py +52 -0
  74. diffusers/pipelines/stable_diffusion_3/pipeline_output.py +21 -0
  75. diffusers/pipelines/stable_diffusion_3/pipeline_stable_diffusion_3.py +904 -0
  76. diffusers/pipelines/stable_diffusion_3/pipeline_stable_diffusion_3_img2img.py +941 -0
  77. diffusers/pipelines/stable_diffusion_attend_and_excite/pipeline_stable_diffusion_attend_and_excite.py +4 -3
  78. diffusers/pipelines/stable_diffusion_diffedit/pipeline_stable_diffusion_diffedit.py +10 -11
  79. diffusers/pipelines/stable_diffusion_gligen/pipeline_stable_diffusion_gligen.py +4 -3
  80. diffusers/pipelines/stable_diffusion_gligen/pipeline_stable_diffusion_gligen_text_image.py +4 -3
  81. diffusers/pipelines/stable_diffusion_k_diffusion/pipeline_stable_diffusion_k_diffusion.py +4 -3
  82. diffusers/pipelines/stable_diffusion_ldm3d/pipeline_stable_diffusion_ldm3d.py +4 -3
  83. diffusers/pipelines/stable_diffusion_panorama/pipeline_stable_diffusion_panorama.py +4 -3
  84. diffusers/pipelines/stable_diffusion_sag/pipeline_stable_diffusion_sag.py +4 -3
  85. diffusers/pipelines/t2i_adapter/pipeline_stable_diffusion_adapter.py +4 -3
  86. diffusers/pipelines/text_to_video_synthesis/pipeline_text_to_video_synth.py +4 -3
  87. diffusers/pipelines/text_to_video_synthesis/pipeline_text_to_video_synth_img2img.py +4 -3
  88. diffusers/pipelines/text_to_video_synthesis/pipeline_text_to_video_zero.py +4 -3
  89. diffusers/pipelines/unidiffuser/modeling_uvit.py +1 -1
  90. diffusers/pipelines/unidiffuser/pipeline_unidiffuser.py +4 -3
  91. diffusers/schedulers/__init__.py +2 -0
  92. diffusers/schedulers/scheduling_dpmsolver_sde.py +2 -2
  93. diffusers/schedulers/scheduling_edm_dpmsolver_multistep.py +2 -3
  94. diffusers/schedulers/scheduling_edm_euler.py +2 -4
  95. diffusers/schedulers/scheduling_flow_match_euler_discrete.py +287 -0
  96. diffusers/schedulers/scheduling_lms_discrete.py +2 -2
  97. diffusers/training_utils.py +4 -4
  98. diffusers/utils/__init__.py +3 -0
  99. diffusers/utils/constants.py +2 -0
  100. diffusers/utils/dummy_pt_objects.py +60 -0
  101. diffusers/utils/dummy_torch_and_transformers_objects.py +45 -0
  102. diffusers/utils/dynamic_modules_utils.py +15 -13
  103. diffusers/utils/hub_utils.py +106 -0
  104. diffusers/utils/import_utils.py +0 -1
  105. diffusers/utils/logging.py +3 -1
  106. diffusers/utils/state_dict_utils.py +2 -0
  107. {diffusers-0.28.2.dist-info → diffusers-0.29.1.dist-info}/METADATA +3 -3
  108. {diffusers-0.28.2.dist-info → diffusers-0.29.1.dist-info}/RECORD +112 -112
  109. {diffusers-0.28.2.dist-info → diffusers-0.29.1.dist-info}/WHEEL +1 -1
  110. diffusers/models/dual_transformer_2d.py +0 -20
  111. diffusers/models/prior_transformer.py +0 -12
  112. diffusers/models/t5_film_transformer.py +0 -70
  113. diffusers/models/transformer_2d.py +0 -25
  114. diffusers/models/transformer_temporal.py +0 -34
  115. diffusers/models/unet_1d.py +0 -26
  116. diffusers/models/unet_1d_blocks.py +0 -203
  117. diffusers/models/unet_2d.py +0 -27
  118. diffusers/models/unet_2d_blocks.py +0 -375
  119. diffusers/models/unet_2d_condition.py +0 -25
  120. {diffusers-0.28.2.dist-info → diffusers-0.29.1.dist-info}/LICENSE +0 -0
  121. {diffusers-0.28.2.dist-info → diffusers-0.29.1.dist-info}/entry_points.txt +0 -0
  122. {diffusers-0.28.2.dist-info → diffusers-0.29.1.dist-info}/top_level.txt +0 -0
diffusers/__init__.py CHANGED
@@ -1,4 +1,4 @@
1
- __version__ = "0.28.2"
1
+ __version__ = "0.29.1"
2
2
 
3
3
  from typing import TYPE_CHECKING
4
4
 
@@ -91,6 +91,9 @@ else:
91
91
  "MultiAdapter",
92
92
  "PixArtTransformer2DModel",
93
93
  "PriorTransformer",
94
+ "SD3ControlNetModel",
95
+ "SD3MultiControlNetModel",
96
+ "SD3Transformer2DModel",
94
97
  "StableCascadeUNet",
95
98
  "T2IAdapter",
96
99
  "T5FilmDecoder",
@@ -156,6 +159,7 @@ else:
156
159
  "EDMEulerScheduler",
157
160
  "EulerAncestralDiscreteScheduler",
158
161
  "EulerDiscreteScheduler",
162
+ "FlowMatchEulerDiscreteScheduler",
159
163
  "HeunDiscreteScheduler",
160
164
  "IPNDMScheduler",
161
165
  "KarrasVeScheduler",
@@ -276,6 +280,9 @@ else:
276
280
  "StableCascadeCombinedPipeline",
277
281
  "StableCascadeDecoderPipeline",
278
282
  "StableCascadePriorPipeline",
283
+ "StableDiffusion3ControlNetPipeline",
284
+ "StableDiffusion3Img2ImgPipeline",
285
+ "StableDiffusion3Pipeline",
279
286
  "StableDiffusionAdapterPipeline",
280
287
  "StableDiffusionAttendAndExcitePipeline",
281
288
  "StableDiffusionControlNetImg2ImgPipeline",
@@ -497,6 +504,9 @@ if TYPE_CHECKING or DIFFUSERS_SLOW_IMPORT:
497
504
  MultiAdapter,
498
505
  PixArtTransformer2DModel,
499
506
  PriorTransformer,
507
+ SD3ControlNetModel,
508
+ SD3MultiControlNetModel,
509
+ SD3Transformer2DModel,
500
510
  T2IAdapter,
501
511
  T5FilmDecoder,
502
512
  Transformer2DModel,
@@ -559,6 +569,7 @@ if TYPE_CHECKING or DIFFUSERS_SLOW_IMPORT:
559
569
  EDMEulerScheduler,
560
570
  EulerAncestralDiscreteScheduler,
561
571
  EulerDiscreteScheduler,
572
+ FlowMatchEulerDiscreteScheduler,
562
573
  HeunDiscreteScheduler,
563
574
  IPNDMScheduler,
564
575
  KarrasVeScheduler,
@@ -660,6 +671,9 @@ if TYPE_CHECKING or DIFFUSERS_SLOW_IMPORT:
660
671
  StableCascadeCombinedPipeline,
661
672
  StableCascadeDecoderPipeline,
662
673
  StableCascadePriorPipeline,
674
+ StableDiffusion3ControlNetPipeline,
675
+ StableDiffusion3Img2ImgPipeline,
676
+ StableDiffusion3Pipeline,
663
677
  StableDiffusionAdapterPipeline,
664
678
  StableDiffusionAttendAndExcitePipeline,
665
679
  StableDiffusionControlNetImg2ImgPipeline,
diffusers/commands/env.py CHANGED
@@ -31,7 +31,6 @@ from ..utils import (
31
31
  is_transformers_available,
32
32
  is_xformers_available,
33
33
  )
34
- from ..utils.testing_utils import get_python_version
35
34
  from . import BaseDiffusersCLICommand
36
35
 
37
36
 
@@ -106,10 +105,7 @@ class EnvironmentCommand(BaseDiffusersCLICommand):
106
105
 
107
106
  xformers_version = xformers.__version__
108
107
 
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()
108
+ platform_info = platform.platform()
113
109
 
114
110
  is_notebook_str = "Yes" if is_notebook() else "No"
115
111
 
@@ -9,7 +9,7 @@ deps = {
9
9
  "filelock": "filelock",
10
10
  "flax": "flax>=0.4.1",
11
11
  "hf-doc-builder": "hf-doc-builder>=0.3.0",
12
- "huggingface-hub": "huggingface-hub>=0.20.2",
12
+ "huggingface-hub": "huggingface-hub>=0.23.2",
13
13
  "requests-mock": "requests-mock==1.10.0",
14
14
  "importlib_metadata": "importlib_metadata",
15
15
  "invisible-watermark": "invisible-watermark>=0.2.0",
@@ -86,6 +86,7 @@ class VaeImageProcessor(ConfigMixin):
86
86
  self,
87
87
  do_resize: bool = True,
88
88
  vae_scale_factor: int = 8,
89
+ vae_latent_channels: int = 4,
89
90
  resample: str = "lanczos",
90
91
  do_normalize: bool = True,
91
92
  do_binarize: bool = False,
@@ -533,7 +534,7 @@ class VaeImageProcessor(ConfigMixin):
533
534
 
534
535
  if not is_valid_image_imagelist(image):
535
536
  raise ValueError(
536
- f"Input is in incorrect format. Currently, we only support {', '.join(supported_formats)}"
537
+ f"Input is in incorrect format. Currently, we only support {', '.join(str(x) for x in supported_formats)}"
537
538
  )
538
539
  if not isinstance(image, list):
539
540
  image = [image]
@@ -59,7 +59,7 @@ if is_torch_available():
59
59
  _import_structure["utils"] = ["AttnProcsLayers"]
60
60
  if is_transformers_available():
61
61
  _import_structure["single_file"] = ["FromSingleFileMixin"]
62
- _import_structure["lora"] = ["LoraLoaderMixin", "StableDiffusionXLLoraLoaderMixin"]
62
+ _import_structure["lora"] = ["LoraLoaderMixin", "StableDiffusionXLLoraLoaderMixin", "SD3LoraLoaderMixin"]
63
63
  _import_structure["textual_inversion"] = ["TextualInversionLoaderMixin"]
64
64
  _import_structure["ip_adapter"] = ["IPAdapterMixin"]
65
65
 
@@ -74,7 +74,7 @@ if TYPE_CHECKING or DIFFUSERS_SLOW_IMPORT:
74
74
 
75
75
  if is_transformers_available():
76
76
  from .ip_adapter import IPAdapterMixin
77
- from .lora import LoraLoaderMixin, StableDiffusionXLLoraLoaderMixin
77
+ from .lora import LoraLoaderMixin, SD3LoraLoaderMixin, StableDiffusionXLLoraLoaderMixin
78
78
  from .single_file import FromSingleFileMixin
79
79
  from .textual_inversion import TextualInversionLoaderMixin
80
80