diffusers 0.30.0__py3-none-any.whl → 0.30.2__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.
@@ -330,6 +330,15 @@ except importlib_metadata.PackageNotFoundError:
330
330
 
331
331
  _is_google_colab = "google.colab" in sys.modules or any(k.startswith("COLAB_") for k in os.environ)
332
332
 
333
+ _imageio_available = importlib.util.find_spec("imageio") is not None
334
+ if _imageio_available:
335
+ try:
336
+ _imageio_version = importlib_metadata.version("imageio")
337
+ logger.debug(f"Successfully imported imageio version {_imageio_version}")
338
+
339
+ except importlib_metadata.PackageNotFoundError:
340
+ _imageio_available = False
341
+
333
342
 
334
343
  def is_torch_available():
335
344
  return _torch_available
@@ -447,6 +456,10 @@ def is_sentencepiece_available():
447
456
  return _sentencepiece_available
448
457
 
449
458
 
459
+ def is_imageio_available():
460
+ return _imageio_available
461
+
462
+
450
463
  # docstyle-ignore
451
464
  FLAX_IMPORT_ERROR = """
452
465
  {0} requires the FLAX library but it was not found in your environment. Checkout the instructions on the
@@ -575,6 +588,11 @@ BITSANDBYTES_IMPORT_ERROR = """
575
588
  {0} requires the bitsandbytes library but it was not found in your environment. You can install it with pip: `pip install bitsandbytes`
576
589
  """
577
590
 
591
+ # docstyle-ignore
592
+ IMAGEIO_IMPORT_ERROR = """
593
+ {0} requires the imageio library and ffmpeg but it was not found in your environment. You can install it with pip: `pip install imageio imageio-ffmpeg`
594
+ """
595
+
578
596
  BACKENDS_MAPPING = OrderedDict(
579
597
  [
580
598
  ("bs4", (is_bs4_available, BS4_IMPORT_ERROR)),
@@ -599,6 +617,7 @@ BACKENDS_MAPPING = OrderedDict(
599
617
  ("safetensors", (is_safetensors_available, SAFETENSORS_IMPORT_ERROR)),
600
618
  ("bitsandbytes", (is_bitsandbytes_available, BITSANDBYTES_IMPORT_ERROR)),
601
619
  ("sentencepiece", (is_sentencepiece_available, SENTENCEPIECE_IMPORT_ERROR)),
620
+ ("imageio", (is_imageio_available, IMAGEIO_IMPORT_ERROR)),
602
621
  ]
603
622
  )
604
623
 
@@ -6,7 +6,7 @@ import PIL.Image
6
6
  import PIL.ImageOps
7
7
  import requests
8
8
 
9
- from .import_utils import BACKENDS_MAPPING, is_opencv_available
9
+ from .import_utils import BACKENDS_MAPPING, is_imageio_available
10
10
 
11
11
 
12
12
  def load_image(
@@ -81,7 +81,8 @@ def load_video(
81
81
 
82
82
  if is_url:
83
83
  video_data = requests.get(video, stream=True).raw
84
- video_path = tempfile.NamedTemporaryFile(suffix=os.path.splitext(video)[1], delete=False).name
84
+ suffix = os.path.splitext(video)[1] or ".mp4"
85
+ video_path = tempfile.NamedTemporaryFile(suffix=suffix, delete=False).name
85
86
  was_tempfile_created = True
86
87
  with open(video_path, "wb") as f:
87
88
  f.write(video_data.read())
@@ -99,19 +100,22 @@ def load_video(
99
100
  pass
100
101
 
101
102
  else:
102
- if is_opencv_available():
103
- import cv2
103
+ if is_imageio_available():
104
+ import imageio
104
105
  else:
105
- raise ImportError(BACKENDS_MAPPING["opencv"][1].format("load_video"))
106
+ raise ImportError(BACKENDS_MAPPING["imageio"][1].format("load_video"))
106
107
 
107
- video_capture = cv2.VideoCapture(video)
108
- success, frame = video_capture.read()
109
- while success:
110
- frame = cv2.cvtColor(frame, cv2.COLOR_BGR2RGB)
111
- pil_images.append(PIL.Image.fromarray(frame))
112
- success, frame = video_capture.read()
108
+ try:
109
+ imageio.plugins.ffmpeg.get_exe()
110
+ except AttributeError:
111
+ raise AttributeError(
112
+ "`Unable to find an ffmpeg installation on your machine. Please install via `pip install imageio-ffmpeg"
113
+ )
113
114
 
114
- video_capture.release()
115
+ with imageio.get_reader(video) as reader:
116
+ # Read all frames
117
+ for frame in reader:
118
+ pil_images.append(PIL.Image.fromarray(frame))
115
119
 
116
120
  if was_tempfile_created:
117
121
  os.remove(video_path)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: diffusers
3
- Version: 0.30.0
3
+ Version: 0.30.2
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)
@@ -1,4 +1,4 @@
1
- diffusers/__init__.py,sha256=vQytNtLHin9OJg3IjGwms3iRGNncaloWFJvq34O4v-c,34105
1
+ diffusers/__init__.py,sha256=41QUjRiVqQrTK2FPRwBSz59s8TYEbRSNB54bmuQSUO0,34105
2
2
  diffusers/callbacks.py,sha256=m8ariuJC-WaPHMZn1zUyXG8hlAvaOvEW_6YWdKo--eo,6717
3
3
  diffusers/configuration_utils.py,sha256=yJiYuhgyHRK3AgjL15mevGzBJg7GsXZOYVjWVgy4AIs,32484
4
4
  diffusers/dependency_versions_check.py,sha256=J_ZAEhVN6uLWAOUZCJrcGJ7PYxUek4f_nwGTFM7LTk8,1271
@@ -16,14 +16,14 @@ diffusers/experimental/__init__.py,sha256=0C9ExG0XYiGZuzFJkZuJ53K6Ix5ylF2kWe4PGA
16
16
  diffusers/experimental/rl/__init__.py,sha256=Gcoznw9rYjfMvswH0seXekKYDAAN1YXXxZ-RWMdzvrE,57
17
17
  diffusers/experimental/rl/value_guided_sampling.py,sha256=gnUDVNx5nIVJDWxhHBlga4j7VQTxSTkUI1QaCnpiWAM,6033
18
18
  diffusers/loaders/__init__.py,sha256=J3fmn2UoRVDh_QaeNMH-Zwn7ejwVBmTWofla6Tp6Rek,4005
19
- diffusers/loaders/ip_adapter.py,sha256=U7ReoJQV2ZHL46URAw8JertFT9PE0z6EY-jnI1FIumo,16966
19
+ diffusers/loaders/ip_adapter.py,sha256=cdQGSWcJECas_Pz1nNMhoSBceA9zOXFEvkAvVdq251o,17078
20
20
  diffusers/loaders/lora_base.py,sha256=ni68uQ1apLAjiwNodXv-teSgVlQFmKIiMhU3nAHoYyo,31716
21
21
  diffusers/loaders/lora_conversion_utils.py,sha256=tbiyxd9ByjGDBv2fSBOo8uPUh0uProjZBbXFH3zoG7A,14322
22
- diffusers/loaders/lora_pipeline.py,sha256=odT-DSh68l7ObLt_jZvMQ7G-Qej42TryHY9xO8MI-J0,104485
22
+ diffusers/loaders/lora_pipeline.py,sha256=3ZREkA-aVGLZyVaDoP_HzlRVYYU4C-7-uNgG5EFtfcM,106023
23
23
  diffusers/loaders/peft.py,sha256=EtOFz7ezjBVwQrwIZ0z-bwWGIWKAroWh0oCpa_mu2pw,16127
24
- diffusers/loaders/single_file.py,sha256=HiSw12-36GOP-YtWkVqWsd4JxM8EiaU7NhWYQjxO7ho,24149
24
+ diffusers/loaders/single_file.py,sha256=HD5p15rgNx6Ao3G8ply3Uq7sS7SaKl0j8wKj2vHIJPA,24222
25
25
  diffusers/loaders/single_file_model.py,sha256=CiAXlpS3S9EzN6X8tDE4hzjN5fxu53wS_e-BLSmZ6U8,14330
26
- diffusers/loaders/single_file_utils.py,sha256=iGjjwHRpsbHKiy0GbR6HSsw7mv9GZlkA4D6xY1bAKUI,88875
26
+ diffusers/loaders/single_file_utils.py,sha256=F4WO_d9RKY6Dcqn6LqNGvziahZr4A6RJzGeM_2tEAkU,89987
27
27
  diffusers/loaders/textual_inversion.py,sha256=QjRUJZfyUJFY-sYAIVLUZgNuuk65xlbiIwJ3CD_0rAo,26655
28
28
  diffusers/loaders/unet.py,sha256=thoMcf4Q2F5yn1UJVFEAf64F5TgZTULrmrcFHkZeJ4I,43709
29
29
  diffusers/loaders/unet_loader_utils.py,sha256=9IHd_RlKqMstSO8G7btUdL1-Y3-fGX7Kbc4frEbRVVM,6220
@@ -33,7 +33,7 @@ diffusers/models/activations.py,sha256=2BXSp2kNk8-WZKwMFzVZKJqyDc8NhHv2yEdHKwhg3
33
33
  diffusers/models/adapter.py,sha256=XuVoUbhLkPEOeClqYiTm8KGMQrXgn2WZU3I73-jkcew,24723
34
34
  diffusers/models/attention.py,sha256=bFYlFf46Fo6R6bs1zvTLqvjcDeb5XmZ5rInB1kmp1-U,50270
35
35
  diffusers/models/attention_flax.py,sha256=Ju2KJCqsx_LIiz0i1pBcek7RMKTmVOIF4SvEcOqgJ1c,20250
36
- diffusers/models/attention_processor.py,sha256=eWxrwyl3orXrPgNcXnSi4foRXJk4iAYFgeR-RrCrZLE,176917
36
+ diffusers/models/attention_processor.py,sha256=r-R_9tM8hlr3ReKO7UvYBItm_VLefCs7rTeGfoJndsk,182643
37
37
  diffusers/models/controlnet.py,sha256=XcKsqCLtFbbvdJsbYjzxRUblmWYNMeo0kSP54d_m4yk,43249
38
38
  diffusers/models/controlnet_flax.py,sha256=_UuB-tNxQ9eR8v3dqDhF2Mz-6thIdEI6BlY8BpWpkvU,16710
39
39
  diffusers/models/controlnet_hunyuan.py,sha256=cb6SvFyiqHfkWqDiyfQjyZehZJT19JeZlyVGdZnPE7c,16913
@@ -41,7 +41,7 @@ diffusers/models/controlnet_sd3.py,sha256=NO7w6FT3r_JINbzojUcModp4oukZGzjV6a0n0s
41
41
  diffusers/models/controlnet_sparsectrl.py,sha256=V5wnisfoQQS4-9GVWb3E5DSaPjVXoJd-gAgwu_7vPEg,38539
42
42
  diffusers/models/controlnet_xs.py,sha256=zhz1O1ARvm1VhxHtVpZap7_I_8xq21RdsGGvraU9NJI,86865
43
43
  diffusers/models/downsampling.py,sha256=Li03bTffSRQVJtN41W7gPamEEkgymwX9fP_kICzGTO4,15828
44
- diffusers/models/embeddings.py,sha256=a_I8WdjBKIiG51VRrbCUmd0sY2VBSRc3GSBkvZEqBa4,60815
44
+ diffusers/models/embeddings.py,sha256=CXu4qvaCSg91R-YUATsJXyC5_pDXXTABOjuTG0rYUhY,64429
45
45
  diffusers/models/embeddings_flax.py,sha256=hNN63qtv9Ht6VEeidrIJdrdKWm0o8mumcgzxMNaR2H0,3445
46
46
  diffusers/models/lora.py,sha256=7LbI7bj8yk9GptoOnOLrhzarFcVSQX47LuGoZ1MBK0A,18829
47
47
  diffusers/models/model_loading_utils.py,sha256=YPp7aPymfOJ1Yd6oLgN3zVEmCPhqx3k6pMi9-1Hftnc,8534
@@ -59,7 +59,7 @@ diffusers/models/vq_model.py,sha256=ZUGlHjd0mhhfy2mtOIsMg4hIvUUL9j8MB2gQDVWEkQU,
59
59
  diffusers/models/autoencoders/__init__.py,sha256=1S4H1g51svAn9RfivWEmctE5d95Sr99cSZQlLggmzHQ,421
60
60
  diffusers/models/autoencoders/autoencoder_asym_kl.py,sha256=BQcgLKgQY3D9dBoqcb6G1Syvh02mE548z2PBSNbOKTI,7720
61
61
  diffusers/models/autoencoders/autoencoder_kl.py,sha256=3sjWEQuNDN_yeGJBEoEt_VCHwYBvcgD6LWBcPLL3L7c,22305
62
- diffusers/models/autoencoders/autoencoder_kl_cogvideox.py,sha256=gCsnXq0VhIZWtnjoesE6X9vzUuWSP2fxWc6H8JpG3jo,40324
62
+ diffusers/models/autoencoders/autoencoder_kl_cogvideox.py,sha256=--8SEoDVTivctb7_vv2oP5kLiXtuWSKwo0w5bljZTh8,51855
63
63
  diffusers/models/autoencoders/autoencoder_kl_temporal_decoder.py,sha256=ZiQyVdCrxG2deXe7hdU9CAJ4Y6uAWAkWCXiOsDsagHQ,16248
64
64
  diffusers/models/autoencoders/autoencoder_oobleck.py,sha256=gDEs-MUaCvuJqPs9upiRg8cs2vWFY7wOTvUHfFC2TEU,17046
65
65
  diffusers/models/autoencoders/autoencoder_tiny.py,sha256=7wglKu1FYGgnWHdHeVu8N_OxerqImQWCoyaVwlQzrZ8,15992
@@ -67,8 +67,8 @@ diffusers/models/autoencoders/consistency_decoder_vae.py,sha256=Be_o13r7odf6wgoc
67
67
  diffusers/models/autoencoders/vae.py,sha256=Xzj7pt2H2D5AnILpzjwCyx29B70RqK-muZZBdafE6ZE,36545
68
68
  diffusers/models/autoencoders/vq_model.py,sha256=VXU4jgIIH-60mIeZB6t8oa1F9AvMSCLo-nv-Ee2Ec4Q,7812
69
69
  diffusers/models/transformers/__init__.py,sha256=DPueInTLFJNWNLnRxt4119QrDusQlEVC2QV3IUwIJ_o,953
70
- diffusers/models/transformers/auraflow_transformer_2d.py,sha256=1rgyxpN68XLGCs8c2ewSFMlAy4OnzOxEBNIdJ8hBmhg,21798
71
- diffusers/models/transformers/cogvideox_transformer_3d.py,sha256=tATWmnV4bHGmue_Q4_HtVhBl1P3dBFFeyWXlrskuYbA,15027
70
+ diffusers/models/transformers/auraflow_transformer_2d.py,sha256=-Rk6U95hQC6EgVzRhH_33JmjODcj4Jfng6AG7n9Hm6U,22754
71
+ diffusers/models/transformers/cogvideox_transformer_3d.py,sha256=wZzcmL8KC7AHOaUMvUZX2XpM8QSNEbaN3mCmSfiqQmA,20898
72
72
  diffusers/models/transformers/dit_transformer_2d.py,sha256=o3MT0w2m4BrdGp0KUonm9QqhVpNVzYzRyKuuPnH02Nc,11158
73
73
  diffusers/models/transformers/dual_transformer_2d.py,sha256=TEgdpVW9itJ97YgslzKnYWg-2V4Oq7AMHipMxON-72Y,7711
74
74
  diffusers/models/transformers/hunyuan_transformer_2d.py,sha256=CUzxabgvxLrJ0aOzgd7JEKwP9nK7TbZ3SJ-LHkDZ6Q4,24234
@@ -130,7 +130,7 @@ diffusers/pipelines/blip_diffusion/modeling_blip2.py,sha256=IvMpb_5bl8PKmxL11-l4
130
130
  diffusers/pipelines/blip_diffusion/modeling_ctx_clip.py,sha256=7T17m5qR9m6XUEVuOlbptERKR_b4a5lt8PvslJPUy-c,9002
131
131
  diffusers/pipelines/blip_diffusion/pipeline_blip_diffusion.py,sha256=kBof-UrMvpKaANzu_5pPYOgr56ZajgJA-XdzY9AAcHo,15001
132
132
  diffusers/pipelines/cogvideo/__init__.py,sha256=jNAtMQxLZB0Xw0w3S9s4BgqFtFERiwNlBEvpVCXFmqw,1298
133
- diffusers/pipelines/cogvideo/pipeline_cogvideox.py,sha256=LqY7ym2_lmz-33prOZBkXlrW3Hcru0kYbQJf7JahmJY,33531
133
+ diffusers/pipelines/cogvideo/pipeline_cogvideox.py,sha256=lK5hGv31m9AsbZlQyGgSXJI-tXgPwodOHd2i4PpKkPA,35930
134
134
  diffusers/pipelines/consistency_models/__init__.py,sha256=q_nrLK9DH0_kLcLmRIvgvLP-vDVwloC3lBus776596c,484
135
135
  diffusers/pipelines/consistency_models/pipeline_consistency_models.py,sha256=EDnYrtJ-CGVgr1bjRSaCzAx2h_tIGdF47BSZt3HvYtQ,12368
136
136
  diffusers/pipelines/controlnet/__init__.py,sha256=V5lvvD6DALNY3InsdwVmRz65_ZlWM-mPoATmu-yxCtk,3483
@@ -209,7 +209,7 @@ diffusers/pipelines/deprecated/vq_diffusion/pipeline_vq_diffusion.py,sha256=YSYu
209
209
  diffusers/pipelines/dit/__init__.py,sha256=w6yUFMbGzaUGPKpLfEfvHlYmrKD0UErczwsHDaDtLuQ,408
210
210
  diffusers/pipelines/dit/pipeline_dit.py,sha256=hrLURHV8-ujtNF6t-nrYXVfARyVKh-_OfO9jAtaWUS0,9949
211
211
  diffusers/pipelines/flux/__init__.py,sha256=hiwnaba-laO3e2Wgh9dyzMWowHDGhghuQc5ZJKjCg3U,1457
212
- diffusers/pipelines/flux/pipeline_flux.py,sha256=ho1ER7DDNmGzdl1iQ0DjcXMkAgh6PWpvjSdjHkepf98,34420
212
+ diffusers/pipelines/flux/pipeline_flux.py,sha256=rvUztMJh55AQYzrIDPOdbic6asc9da3HJ_iZBYoI-Mg,34417
213
213
  diffusers/pipelines/flux/pipeline_output.py,sha256=zKVpr6EHsvT7ADxNkvdZLv9519JPMThZEwxj9bvx-8g,598
214
214
  diffusers/pipelines/hunyuandit/__init__.py,sha256=Zby0yEsLNAoa4cf6W92QXIzyGoijI54xXRVhmrHGHsc,1302
215
215
  diffusers/pipelines/hunyuandit/pipeline_hunyuandit.py,sha256=eq5LVU3J22-f4ahz3Erij63DZf7bSjh6uhIlCXtzx5Y,42835
@@ -451,10 +451,10 @@ diffusers/utils/dummy_torch_and_transformers_and_sentencepiece_objects.py,sha256
451
451
  diffusers/utils/dummy_torch_and_transformers_objects.py,sha256=SSjaTUruWwsbzR6pLv_5OU58YCGzq79gq7wW2Y9gSsY,61518
452
452
  diffusers/utils/dummy_transformers_and_torch_and_note_seq_objects.py,sha256=z-JrPgPo2dWv-buMytUqBd6QqEx8Uha6M1cKa6gR4Dc,621
453
453
  diffusers/utils/dynamic_modules_utils.py,sha256=WIsja-XIYgTXQ9-KK85uEU0l3rd_6yelUQCmb4nt0wU,19601
454
- diffusers/utils/export_utils.py,sha256=sPI6V4sX_2XZ3xXR1OBPAIiPS835NVMhlLHpuosxDKs,4412
454
+ diffusers/utils/export_utils.py,sha256=2WSyPTf8oBmjx9cVI50AHe5LL72cvVYhPf_HpOIn_mU,6299
455
455
  diffusers/utils/hub_utils.py,sha256=EkQA7bmC6fCwAHuDhocjO5HEqmDDeWhYgf7VSEH_RTo,25966
456
- diffusers/utils/import_utils.py,sha256=b9IeqrbBk6yn3ALWnRQ4YHa2BMp9SVfTFFSGtym9hF4,29276
457
- diffusers/utils/loading_utils.py,sha256=8Nql6hZqYdVWMU_gbY-KYp6KVhIjQ0SbV9dz-MtxIfo,3867
456
+ diffusers/utils/import_utils.py,sha256=BzTtGUO9giedRU_r2UmPtRpE2mqjvuxxd4BkwQQioV4,29942
457
+ diffusers/utils/loading_utils.py,sha256=nEuLggTwPb_ixgLIaA12L0o2cj1fEs86yWE81H4xzOw,4025
458
458
  diffusers/utils/logging.py,sha256=9ghwwrmW92edOfS-FSFbRfVHO6EQXlDWPidfBag-JsI,9492
459
459
  diffusers/utils/model_card_template.md,sha256=ZhGhzjnMT2oPLbHnC0UYRNEpVC-okH-MLKjvkYsh-Ds,550
460
460
  diffusers/utils/outputs.py,sha256=hL1yMK86ota2SdZhyiWSzvfANjaO8pU7Hz1w81_Vmr8,4953
@@ -464,9 +464,9 @@ diffusers/utils/state_dict_utils.py,sha256=NsWzyX4eqKCfjLjgChQnFSf7nSQz1XFHgINYB
464
464
  diffusers/utils/testing_utils.py,sha256=16BNdTHQp9bJRkDi2iJa61i4ANC4875fjloTVmDIZ1w,36954
465
465
  diffusers/utils/torch_utils.py,sha256=6e6cJmPMbkEqXXJLlcKuVz0zZF8fIc7dF-azq-_6-Xw,6234
466
466
  diffusers/utils/versions.py,sha256=-e7XW1TzZ-tsRo9PMQHp-hNGYHuVDFzLtwg3uAJzqdI,4333
467
- diffusers-0.30.0.dist-info/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
468
- diffusers-0.30.0.dist-info/METADATA,sha256=kxFxUGTRQFO8TReJ-HCE7QtaJpEaMpQtpainaVpuJMI,18858
469
- diffusers-0.30.0.dist-info/WHEEL,sha256=R0nc6qTxuoLk7ShA2_Y-UWkN8ZdfDBG2B6Eqpz2WXbs,91
470
- diffusers-0.30.0.dist-info/entry_points.txt,sha256=_1bvshKV_6_b63_FAkcUs9W6tUKGeIoQ3SHEZsovEWs,72
471
- diffusers-0.30.0.dist-info/top_level.txt,sha256=axJl2884vMSvhzrFrSoht36QXA_6gZN9cKtg4xOO72o,10
472
- diffusers-0.30.0.dist-info/RECORD,,
467
+ diffusers-0.30.2.dist-info/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
468
+ diffusers-0.30.2.dist-info/METADATA,sha256=5w7r16D1QCCi_8ZB1omljebUoUFZe7rLCC22aqXsItA,18858
469
+ diffusers-0.30.2.dist-info/WHEEL,sha256=UvcQYKBHoFqaQd6LKyqHw9fxEolWLQnlzP0h_LgJAfI,91
470
+ diffusers-0.30.2.dist-info/entry_points.txt,sha256=_1bvshKV_6_b63_FAkcUs9W6tUKGeIoQ3SHEZsovEWs,72
471
+ diffusers-0.30.2.dist-info/top_level.txt,sha256=axJl2884vMSvhzrFrSoht36QXA_6gZN9cKtg4xOO72o,10
472
+ diffusers-0.30.2.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (72.1.0)
2
+ Generator: setuptools (74.0.0)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5