diffusers 0.30.3__py3-none-any.whl → 0.32.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (268) hide show
  1. diffusers/__init__.py +97 -4
  2. diffusers/callbacks.py +56 -3
  3. diffusers/configuration_utils.py +13 -1
  4. diffusers/image_processor.py +282 -71
  5. diffusers/loaders/__init__.py +24 -3
  6. diffusers/loaders/ip_adapter.py +543 -16
  7. diffusers/loaders/lora_base.py +138 -125
  8. diffusers/loaders/lora_conversion_utils.py +647 -0
  9. diffusers/loaders/lora_pipeline.py +2216 -230
  10. diffusers/loaders/peft.py +380 -0
  11. diffusers/loaders/single_file_model.py +71 -4
  12. diffusers/loaders/single_file_utils.py +597 -10
  13. diffusers/loaders/textual_inversion.py +5 -3
  14. diffusers/loaders/transformer_flux.py +181 -0
  15. diffusers/loaders/transformer_sd3.py +89 -0
  16. diffusers/loaders/unet.py +56 -12
  17. diffusers/models/__init__.py +49 -12
  18. diffusers/models/activations.py +22 -9
  19. diffusers/models/adapter.py +53 -53
  20. diffusers/models/attention.py +98 -13
  21. diffusers/models/attention_flax.py +1 -1
  22. diffusers/models/attention_processor.py +2160 -346
  23. diffusers/models/autoencoders/__init__.py +5 -0
  24. diffusers/models/autoencoders/autoencoder_dc.py +620 -0
  25. diffusers/models/autoencoders/autoencoder_kl.py +73 -12
  26. diffusers/models/autoencoders/autoencoder_kl_allegro.py +1149 -0
  27. diffusers/models/autoencoders/autoencoder_kl_cogvideox.py +213 -105
  28. diffusers/models/autoencoders/autoencoder_kl_hunyuan_video.py +1176 -0
  29. diffusers/models/autoencoders/autoencoder_kl_ltx.py +1338 -0
  30. diffusers/models/autoencoders/autoencoder_kl_mochi.py +1166 -0
  31. diffusers/models/autoencoders/autoencoder_kl_temporal_decoder.py +3 -10
  32. diffusers/models/autoencoders/autoencoder_tiny.py +4 -2
  33. diffusers/models/autoencoders/vae.py +18 -5
  34. diffusers/models/controlnet.py +47 -802
  35. diffusers/models/controlnet_flux.py +70 -0
  36. diffusers/models/controlnet_sd3.py +26 -376
  37. diffusers/models/controlnet_sparsectrl.py +46 -719
  38. diffusers/models/controlnets/__init__.py +23 -0
  39. diffusers/models/controlnets/controlnet.py +872 -0
  40. diffusers/models/{controlnet_flax.py → controlnets/controlnet_flax.py} +5 -5
  41. diffusers/models/controlnets/controlnet_flux.py +536 -0
  42. diffusers/models/{controlnet_hunyuan.py → controlnets/controlnet_hunyuan.py} +7 -7
  43. diffusers/models/controlnets/controlnet_sd3.py +489 -0
  44. diffusers/models/controlnets/controlnet_sparsectrl.py +788 -0
  45. diffusers/models/controlnets/controlnet_union.py +832 -0
  46. diffusers/models/{controlnet_xs.py → controlnets/controlnet_xs.py} +14 -13
  47. diffusers/models/controlnets/multicontrolnet.py +183 -0
  48. diffusers/models/embeddings.py +996 -92
  49. diffusers/models/embeddings_flax.py +23 -9
  50. diffusers/models/model_loading_utils.py +264 -14
  51. diffusers/models/modeling_flax_utils.py +1 -1
  52. diffusers/models/modeling_utils.py +334 -51
  53. diffusers/models/normalization.py +157 -13
  54. diffusers/models/transformers/__init__.py +6 -0
  55. diffusers/models/transformers/auraflow_transformer_2d.py +3 -2
  56. diffusers/models/transformers/cogvideox_transformer_3d.py +69 -13
  57. diffusers/models/transformers/dit_transformer_2d.py +1 -1
  58. diffusers/models/transformers/latte_transformer_3d.py +4 -4
  59. diffusers/models/transformers/pixart_transformer_2d.py +10 -2
  60. diffusers/models/transformers/sana_transformer.py +488 -0
  61. diffusers/models/transformers/stable_audio_transformer.py +1 -1
  62. diffusers/models/transformers/transformer_2d.py +1 -1
  63. diffusers/models/transformers/transformer_allegro.py +422 -0
  64. diffusers/models/transformers/transformer_cogview3plus.py +386 -0
  65. diffusers/models/transformers/transformer_flux.py +189 -51
  66. diffusers/models/transformers/transformer_hunyuan_video.py +789 -0
  67. diffusers/models/transformers/transformer_ltx.py +469 -0
  68. diffusers/models/transformers/transformer_mochi.py +499 -0
  69. diffusers/models/transformers/transformer_sd3.py +112 -18
  70. diffusers/models/transformers/transformer_temporal.py +1 -1
  71. diffusers/models/unets/unet_1d_blocks.py +1 -1
  72. diffusers/models/unets/unet_2d.py +8 -1
  73. diffusers/models/unets/unet_2d_blocks.py +88 -21
  74. diffusers/models/unets/unet_2d_condition.py +9 -9
  75. diffusers/models/unets/unet_3d_blocks.py +9 -7
  76. diffusers/models/unets/unet_motion_model.py +46 -68
  77. diffusers/models/unets/unet_spatio_temporal_condition.py +23 -0
  78. diffusers/models/unets/unet_stable_cascade.py +2 -2
  79. diffusers/models/unets/uvit_2d.py +1 -1
  80. diffusers/models/upsampling.py +14 -6
  81. diffusers/pipelines/__init__.py +69 -6
  82. diffusers/pipelines/allegro/__init__.py +48 -0
  83. diffusers/pipelines/allegro/pipeline_allegro.py +938 -0
  84. diffusers/pipelines/allegro/pipeline_output.py +23 -0
  85. diffusers/pipelines/animatediff/__init__.py +2 -0
  86. diffusers/pipelines/animatediff/pipeline_animatediff.py +45 -21
  87. diffusers/pipelines/animatediff/pipeline_animatediff_controlnet.py +52 -22
  88. diffusers/pipelines/animatediff/pipeline_animatediff_sdxl.py +18 -4
  89. diffusers/pipelines/animatediff/pipeline_animatediff_sparsectrl.py +3 -1
  90. diffusers/pipelines/animatediff/pipeline_animatediff_video2video.py +104 -72
  91. diffusers/pipelines/animatediff/pipeline_animatediff_video2video_controlnet.py +1341 -0
  92. diffusers/pipelines/audioldm2/modeling_audioldm2.py +3 -3
  93. diffusers/pipelines/aura_flow/pipeline_aura_flow.py +2 -9
  94. diffusers/pipelines/auto_pipeline.py +88 -10
  95. diffusers/pipelines/blip_diffusion/modeling_blip2.py +1 -1
  96. diffusers/pipelines/cogvideo/__init__.py +2 -0
  97. diffusers/pipelines/cogvideo/pipeline_cogvideox.py +80 -39
  98. diffusers/pipelines/cogvideo/pipeline_cogvideox_fun_control.py +825 -0
  99. diffusers/pipelines/cogvideo/pipeline_cogvideox_image2video.py +108 -50
  100. diffusers/pipelines/cogvideo/pipeline_cogvideox_video2video.py +89 -50
  101. diffusers/pipelines/cogview3/__init__.py +47 -0
  102. diffusers/pipelines/cogview3/pipeline_cogview3plus.py +674 -0
  103. diffusers/pipelines/cogview3/pipeline_output.py +21 -0
  104. diffusers/pipelines/controlnet/__init__.py +86 -80
  105. diffusers/pipelines/controlnet/multicontrolnet.py +7 -178
  106. diffusers/pipelines/controlnet/pipeline_controlnet.py +20 -3
  107. diffusers/pipelines/controlnet/pipeline_controlnet_img2img.py +9 -2
  108. diffusers/pipelines/controlnet/pipeline_controlnet_inpaint.py +9 -2
  109. diffusers/pipelines/controlnet/pipeline_controlnet_inpaint_sd_xl.py +37 -15
  110. diffusers/pipelines/controlnet/pipeline_controlnet_sd_xl.py +12 -4
  111. diffusers/pipelines/controlnet/pipeline_controlnet_sd_xl_img2img.py +9 -4
  112. diffusers/pipelines/controlnet/pipeline_controlnet_union_inpaint_sd_xl.py +1790 -0
  113. diffusers/pipelines/controlnet/pipeline_controlnet_union_sd_xl.py +1501 -0
  114. diffusers/pipelines/controlnet/pipeline_controlnet_union_sd_xl_img2img.py +1627 -0
  115. diffusers/pipelines/controlnet_hunyuandit/pipeline_hunyuandit_controlnet.py +22 -4
  116. diffusers/pipelines/controlnet_sd3/__init__.py +4 -0
  117. diffusers/pipelines/controlnet_sd3/pipeline_stable_diffusion_3_controlnet.py +56 -20
  118. diffusers/pipelines/controlnet_sd3/pipeline_stable_diffusion_3_controlnet_inpainting.py +1153 -0
  119. diffusers/pipelines/ddpm/pipeline_ddpm.py +2 -2
  120. diffusers/pipelines/deepfloyd_if/pipeline_output.py +6 -5
  121. diffusers/pipelines/deprecated/alt_diffusion/pipeline_alt_diffusion.py +16 -4
  122. diffusers/pipelines/deprecated/alt_diffusion/pipeline_alt_diffusion_img2img.py +1 -1
  123. diffusers/pipelines/deprecated/versatile_diffusion/modeling_text_unet.py +32 -9
  124. diffusers/pipelines/flux/__init__.py +23 -1
  125. diffusers/pipelines/flux/modeling_flux.py +47 -0
  126. diffusers/pipelines/flux/pipeline_flux.py +256 -48
  127. diffusers/pipelines/flux/pipeline_flux_control.py +889 -0
  128. diffusers/pipelines/flux/pipeline_flux_control_img2img.py +945 -0
  129. diffusers/pipelines/flux/pipeline_flux_control_inpaint.py +1141 -0
  130. diffusers/pipelines/flux/pipeline_flux_controlnet.py +1006 -0
  131. diffusers/pipelines/flux/pipeline_flux_controlnet_image_to_image.py +998 -0
  132. diffusers/pipelines/flux/pipeline_flux_controlnet_inpainting.py +1204 -0
  133. diffusers/pipelines/flux/pipeline_flux_fill.py +969 -0
  134. diffusers/pipelines/flux/pipeline_flux_img2img.py +856 -0
  135. diffusers/pipelines/flux/pipeline_flux_inpaint.py +1022 -0
  136. diffusers/pipelines/flux/pipeline_flux_prior_redux.py +492 -0
  137. diffusers/pipelines/flux/pipeline_output.py +16 -0
  138. diffusers/pipelines/free_noise_utils.py +365 -5
  139. diffusers/pipelines/hunyuan_video/__init__.py +48 -0
  140. diffusers/pipelines/hunyuan_video/pipeline_hunyuan_video.py +687 -0
  141. diffusers/pipelines/hunyuan_video/pipeline_output.py +20 -0
  142. diffusers/pipelines/hunyuandit/pipeline_hunyuandit.py +20 -4
  143. diffusers/pipelines/kandinsky/pipeline_kandinsky_combined.py +9 -9
  144. diffusers/pipelines/kandinsky2_2/pipeline_kandinsky2_2_combined.py +2 -2
  145. diffusers/pipelines/kolors/pipeline_kolors.py +1 -1
  146. diffusers/pipelines/kolors/pipeline_kolors_img2img.py +14 -11
  147. diffusers/pipelines/kolors/text_encoder.py +2 -2
  148. diffusers/pipelines/kolors/tokenizer.py +4 -0
  149. diffusers/pipelines/latent_consistency_models/pipeline_latent_consistency_img2img.py +1 -1
  150. diffusers/pipelines/latent_consistency_models/pipeline_latent_consistency_text2img.py +1 -1
  151. diffusers/pipelines/latent_diffusion/pipeline_latent_diffusion.py +1 -1
  152. diffusers/pipelines/latte/pipeline_latte.py +2 -2
  153. diffusers/pipelines/ledits_pp/pipeline_leditspp_stable_diffusion.py +15 -3
  154. diffusers/pipelines/ledits_pp/pipeline_leditspp_stable_diffusion_xl.py +15 -3
  155. diffusers/pipelines/ltx/__init__.py +50 -0
  156. diffusers/pipelines/ltx/pipeline_ltx.py +789 -0
  157. diffusers/pipelines/ltx/pipeline_ltx_image2video.py +885 -0
  158. diffusers/pipelines/ltx/pipeline_output.py +20 -0
  159. diffusers/pipelines/lumina/pipeline_lumina.py +3 -10
  160. diffusers/pipelines/mochi/__init__.py +48 -0
  161. diffusers/pipelines/mochi/pipeline_mochi.py +748 -0
  162. diffusers/pipelines/mochi/pipeline_output.py +20 -0
  163. diffusers/pipelines/pag/__init__.py +13 -0
  164. diffusers/pipelines/pag/pag_utils.py +8 -2
  165. diffusers/pipelines/pag/pipeline_pag_controlnet_sd.py +2 -3
  166. diffusers/pipelines/pag/pipeline_pag_controlnet_sd_inpaint.py +1543 -0
  167. diffusers/pipelines/pag/pipeline_pag_controlnet_sd_xl.py +3 -5
  168. diffusers/pipelines/pag/pipeline_pag_controlnet_sd_xl_img2img.py +1683 -0
  169. diffusers/pipelines/pag/pipeline_pag_hunyuandit.py +22 -6
  170. diffusers/pipelines/pag/pipeline_pag_kolors.py +1 -1
  171. diffusers/pipelines/pag/pipeline_pag_pixart_sigma.py +7 -14
  172. diffusers/pipelines/pag/pipeline_pag_sana.py +886 -0
  173. diffusers/pipelines/pag/pipeline_pag_sd.py +18 -6
  174. diffusers/pipelines/pag/pipeline_pag_sd_3.py +18 -9
  175. diffusers/pipelines/pag/pipeline_pag_sd_3_img2img.py +1058 -0
  176. diffusers/pipelines/pag/pipeline_pag_sd_animatediff.py +5 -1
  177. diffusers/pipelines/pag/pipeline_pag_sd_img2img.py +1094 -0
  178. diffusers/pipelines/pag/pipeline_pag_sd_inpaint.py +1356 -0
  179. diffusers/pipelines/pag/pipeline_pag_sd_xl.py +18 -6
  180. diffusers/pipelines/pag/pipeline_pag_sd_xl_img2img.py +31 -16
  181. diffusers/pipelines/pag/pipeline_pag_sd_xl_inpaint.py +42 -19
  182. diffusers/pipelines/pia/pipeline_pia.py +2 -0
  183. diffusers/pipelines/pipeline_flax_utils.py +1 -1
  184. diffusers/pipelines/pipeline_loading_utils.py +250 -31
  185. diffusers/pipelines/pipeline_utils.py +158 -186
  186. diffusers/pipelines/pixart_alpha/pipeline_pixart_alpha.py +7 -14
  187. diffusers/pipelines/pixart_alpha/pipeline_pixart_sigma.py +7 -14
  188. diffusers/pipelines/sana/__init__.py +47 -0
  189. diffusers/pipelines/sana/pipeline_output.py +21 -0
  190. diffusers/pipelines/sana/pipeline_sana.py +884 -0
  191. diffusers/pipelines/stable_audio/pipeline_stable_audio.py +12 -1
  192. diffusers/pipelines/stable_cascade/pipeline_stable_cascade.py +35 -3
  193. diffusers/pipelines/stable_cascade/pipeline_stable_cascade_prior.py +2 -2
  194. diffusers/pipelines/stable_diffusion/pipeline_stable_diffusion.py +46 -9
  195. diffusers/pipelines/stable_diffusion/pipeline_stable_diffusion_img2img.py +1 -1
  196. diffusers/pipelines/stable_diffusion/pipeline_stable_diffusion_inpaint.py +1 -1
  197. diffusers/pipelines/stable_diffusion/pipeline_stable_diffusion_latent_upscale.py +241 -81
  198. diffusers/pipelines/stable_diffusion_3/pipeline_stable_diffusion_3.py +228 -23
  199. diffusers/pipelines/stable_diffusion_3/pipeline_stable_diffusion_3_img2img.py +82 -13
  200. diffusers/pipelines/stable_diffusion_3/pipeline_stable_diffusion_3_inpaint.py +60 -11
  201. diffusers/pipelines/stable_diffusion_gligen/pipeline_stable_diffusion_gligen_text_image.py +11 -1
  202. diffusers/pipelines/stable_diffusion_k_diffusion/pipeline_stable_diffusion_k_diffusion.py +1 -1
  203. diffusers/pipelines/stable_diffusion_ldm3d/pipeline_stable_diffusion_ldm3d.py +16 -4
  204. diffusers/pipelines/stable_diffusion_panorama/pipeline_stable_diffusion_panorama.py +16 -4
  205. diffusers/pipelines/stable_diffusion_xl/pipeline_stable_diffusion_xl.py +16 -12
  206. diffusers/pipelines/stable_diffusion_xl/pipeline_stable_diffusion_xl_img2img.py +29 -22
  207. diffusers/pipelines/stable_diffusion_xl/pipeline_stable_diffusion_xl_inpaint.py +29 -22
  208. diffusers/pipelines/stable_video_diffusion/pipeline_stable_video_diffusion.py +1 -1
  209. diffusers/pipelines/t2i_adapter/pipeline_stable_diffusion_adapter.py +1 -1
  210. diffusers/pipelines/t2i_adapter/pipeline_stable_diffusion_xl_adapter.py +16 -4
  211. diffusers/pipelines/text_to_video_synthesis/pipeline_text_to_video_zero_sdxl.py +15 -3
  212. diffusers/pipelines/unidiffuser/modeling_uvit.py +2 -2
  213. diffusers/pipelines/wuerstchen/modeling_wuerstchen_prior.py +1 -1
  214. diffusers/quantizers/__init__.py +16 -0
  215. diffusers/quantizers/auto.py +139 -0
  216. diffusers/quantizers/base.py +233 -0
  217. diffusers/quantizers/bitsandbytes/__init__.py +2 -0
  218. diffusers/quantizers/bitsandbytes/bnb_quantizer.py +561 -0
  219. diffusers/quantizers/bitsandbytes/utils.py +306 -0
  220. diffusers/quantizers/gguf/__init__.py +1 -0
  221. diffusers/quantizers/gguf/gguf_quantizer.py +159 -0
  222. diffusers/quantizers/gguf/utils.py +456 -0
  223. diffusers/quantizers/quantization_config.py +669 -0
  224. diffusers/quantizers/torchao/__init__.py +15 -0
  225. diffusers/quantizers/torchao/torchao_quantizer.py +285 -0
  226. diffusers/schedulers/scheduling_ddim.py +4 -1
  227. diffusers/schedulers/scheduling_ddim_cogvideox.py +4 -1
  228. diffusers/schedulers/scheduling_ddim_parallel.py +4 -1
  229. diffusers/schedulers/scheduling_ddpm.py +6 -7
  230. diffusers/schedulers/scheduling_ddpm_parallel.py +6 -7
  231. diffusers/schedulers/scheduling_deis_multistep.py +102 -6
  232. diffusers/schedulers/scheduling_dpmsolver_multistep.py +113 -6
  233. diffusers/schedulers/scheduling_dpmsolver_multistep_inverse.py +111 -5
  234. diffusers/schedulers/scheduling_dpmsolver_sde.py +125 -10
  235. diffusers/schedulers/scheduling_dpmsolver_singlestep.py +126 -7
  236. diffusers/schedulers/scheduling_edm_euler.py +8 -6
  237. diffusers/schedulers/scheduling_euler_ancestral_discrete.py +4 -1
  238. diffusers/schedulers/scheduling_euler_discrete.py +92 -7
  239. diffusers/schedulers/scheduling_flow_match_euler_discrete.py +153 -6
  240. diffusers/schedulers/scheduling_flow_match_heun_discrete.py +4 -5
  241. diffusers/schedulers/scheduling_heun_discrete.py +114 -8
  242. diffusers/schedulers/scheduling_k_dpm_2_ancestral_discrete.py +116 -11
  243. diffusers/schedulers/scheduling_k_dpm_2_discrete.py +110 -8
  244. diffusers/schedulers/scheduling_lcm.py +2 -6
  245. diffusers/schedulers/scheduling_lms_discrete.py +76 -1
  246. diffusers/schedulers/scheduling_repaint.py +1 -1
  247. diffusers/schedulers/scheduling_sasolver.py +102 -6
  248. diffusers/schedulers/scheduling_tcd.py +2 -6
  249. diffusers/schedulers/scheduling_unclip.py +4 -1
  250. diffusers/schedulers/scheduling_unipc_multistep.py +127 -5
  251. diffusers/training_utils.py +63 -19
  252. diffusers/utils/__init__.py +7 -1
  253. diffusers/utils/constants.py +1 -0
  254. diffusers/utils/dummy_pt_objects.py +240 -0
  255. diffusers/utils/dummy_torch_and_transformers_objects.py +435 -0
  256. diffusers/utils/dynamic_modules_utils.py +3 -3
  257. diffusers/utils/hub_utils.py +44 -40
  258. diffusers/utils/import_utils.py +98 -8
  259. diffusers/utils/loading_utils.py +28 -4
  260. diffusers/utils/peft_utils.py +6 -3
  261. diffusers/utils/testing_utils.py +115 -1
  262. diffusers/utils/torch_utils.py +3 -0
  263. {diffusers-0.30.3.dist-info → diffusers-0.32.0.dist-info}/METADATA +73 -72
  264. {diffusers-0.30.3.dist-info → diffusers-0.32.0.dist-info}/RECORD +268 -193
  265. {diffusers-0.30.3.dist-info → diffusers-0.32.0.dist-info}/WHEEL +1 -1
  266. {diffusers-0.30.3.dist-info → diffusers-0.32.0.dist-info}/LICENSE +0 -0
  267. {diffusers-0.30.3.dist-info → diffusers-0.32.0.dist-info}/entry_points.txt +0 -0
  268. {diffusers-0.30.3.dist-info → diffusers-0.32.0.dist-info}/top_level.txt +0 -0
@@ -2,6 +2,21 @@
2
2
  from ..utils import DummyObject, requires_backends
3
3
 
4
4
 
5
+ class AllegroPipeline(metaclass=DummyObject):
6
+ _backends = ["torch", "transformers"]
7
+
8
+ def __init__(self, *args, **kwargs):
9
+ requires_backends(self, ["torch", "transformers"])
10
+
11
+ @classmethod
12
+ def from_config(cls, *args, **kwargs):
13
+ requires_backends(cls, ["torch", "transformers"])
14
+
15
+ @classmethod
16
+ def from_pretrained(cls, *args, **kwargs):
17
+ requires_backends(cls, ["torch", "transformers"])
18
+
19
+
5
20
  class AltDiffusionImg2ImgPipeline(metaclass=DummyObject):
6
21
  _backends = ["torch", "transformers"]
7
22
 
@@ -152,6 +167,21 @@ class AnimateDiffSparseControlNetPipeline(metaclass=DummyObject):
152
167
  requires_backends(cls, ["torch", "transformers"])
153
168
 
154
169
 
170
+ class AnimateDiffVideoToVideoControlNetPipeline(metaclass=DummyObject):
171
+ _backends = ["torch", "transformers"]
172
+
173
+ def __init__(self, *args, **kwargs):
174
+ requires_backends(self, ["torch", "transformers"])
175
+
176
+ @classmethod
177
+ def from_config(cls, *args, **kwargs):
178
+ requires_backends(cls, ["torch", "transformers"])
179
+
180
+ @classmethod
181
+ def from_pretrained(cls, *args, **kwargs):
182
+ requires_backends(cls, ["torch", "transformers"])
183
+
184
+
155
185
  class AnimateDiffVideoToVideoPipeline(metaclass=DummyObject):
156
186
  _backends = ["torch", "transformers"]
157
187
 
@@ -257,6 +287,21 @@ class CLIPImageProjection(metaclass=DummyObject):
257
287
  requires_backends(cls, ["torch", "transformers"])
258
288
 
259
289
 
290
+ class CogVideoXFunControlPipeline(metaclass=DummyObject):
291
+ _backends = ["torch", "transformers"]
292
+
293
+ def __init__(self, *args, **kwargs):
294
+ requires_backends(self, ["torch", "transformers"])
295
+
296
+ @classmethod
297
+ def from_config(cls, *args, **kwargs):
298
+ requires_backends(cls, ["torch", "transformers"])
299
+
300
+ @classmethod
301
+ def from_pretrained(cls, *args, **kwargs):
302
+ requires_backends(cls, ["torch", "transformers"])
303
+
304
+
260
305
  class CogVideoXImageToVideoPipeline(metaclass=DummyObject):
261
306
  _backends = ["torch", "transformers"]
262
307
 
@@ -302,6 +347,21 @@ class CogVideoXVideoToVideoPipeline(metaclass=DummyObject):
302
347
  requires_backends(cls, ["torch", "transformers"])
303
348
 
304
349
 
350
+ class CogView3PlusPipeline(metaclass=DummyObject):
351
+ _backends = ["torch", "transformers"]
352
+
353
+ def __init__(self, *args, **kwargs):
354
+ requires_backends(self, ["torch", "transformers"])
355
+
356
+ @classmethod
357
+ def from_config(cls, *args, **kwargs):
358
+ requires_backends(cls, ["torch", "transformers"])
359
+
360
+ @classmethod
361
+ def from_pretrained(cls, *args, **kwargs):
362
+ requires_backends(cls, ["torch", "transformers"])
363
+
364
+
305
365
  class CycleDiffusionPipeline(metaclass=DummyObject):
306
366
  _backends = ["torch", "transformers"]
307
367
 
@@ -317,6 +377,141 @@ class CycleDiffusionPipeline(metaclass=DummyObject):
317
377
  requires_backends(cls, ["torch", "transformers"])
318
378
 
319
379
 
380
+ class FluxControlImg2ImgPipeline(metaclass=DummyObject):
381
+ _backends = ["torch", "transformers"]
382
+
383
+ def __init__(self, *args, **kwargs):
384
+ requires_backends(self, ["torch", "transformers"])
385
+
386
+ @classmethod
387
+ def from_config(cls, *args, **kwargs):
388
+ requires_backends(cls, ["torch", "transformers"])
389
+
390
+ @classmethod
391
+ def from_pretrained(cls, *args, **kwargs):
392
+ requires_backends(cls, ["torch", "transformers"])
393
+
394
+
395
+ class FluxControlInpaintPipeline(metaclass=DummyObject):
396
+ _backends = ["torch", "transformers"]
397
+
398
+ def __init__(self, *args, **kwargs):
399
+ requires_backends(self, ["torch", "transformers"])
400
+
401
+ @classmethod
402
+ def from_config(cls, *args, **kwargs):
403
+ requires_backends(cls, ["torch", "transformers"])
404
+
405
+ @classmethod
406
+ def from_pretrained(cls, *args, **kwargs):
407
+ requires_backends(cls, ["torch", "transformers"])
408
+
409
+
410
+ class FluxControlNetImg2ImgPipeline(metaclass=DummyObject):
411
+ _backends = ["torch", "transformers"]
412
+
413
+ def __init__(self, *args, **kwargs):
414
+ requires_backends(self, ["torch", "transformers"])
415
+
416
+ @classmethod
417
+ def from_config(cls, *args, **kwargs):
418
+ requires_backends(cls, ["torch", "transformers"])
419
+
420
+ @classmethod
421
+ def from_pretrained(cls, *args, **kwargs):
422
+ requires_backends(cls, ["torch", "transformers"])
423
+
424
+
425
+ class FluxControlNetInpaintPipeline(metaclass=DummyObject):
426
+ _backends = ["torch", "transformers"]
427
+
428
+ def __init__(self, *args, **kwargs):
429
+ requires_backends(self, ["torch", "transformers"])
430
+
431
+ @classmethod
432
+ def from_config(cls, *args, **kwargs):
433
+ requires_backends(cls, ["torch", "transformers"])
434
+
435
+ @classmethod
436
+ def from_pretrained(cls, *args, **kwargs):
437
+ requires_backends(cls, ["torch", "transformers"])
438
+
439
+
440
+ class FluxControlNetPipeline(metaclass=DummyObject):
441
+ _backends = ["torch", "transformers"]
442
+
443
+ def __init__(self, *args, **kwargs):
444
+ requires_backends(self, ["torch", "transformers"])
445
+
446
+ @classmethod
447
+ def from_config(cls, *args, **kwargs):
448
+ requires_backends(cls, ["torch", "transformers"])
449
+
450
+ @classmethod
451
+ def from_pretrained(cls, *args, **kwargs):
452
+ requires_backends(cls, ["torch", "transformers"])
453
+
454
+
455
+ class FluxControlPipeline(metaclass=DummyObject):
456
+ _backends = ["torch", "transformers"]
457
+
458
+ def __init__(self, *args, **kwargs):
459
+ requires_backends(self, ["torch", "transformers"])
460
+
461
+ @classmethod
462
+ def from_config(cls, *args, **kwargs):
463
+ requires_backends(cls, ["torch", "transformers"])
464
+
465
+ @classmethod
466
+ def from_pretrained(cls, *args, **kwargs):
467
+ requires_backends(cls, ["torch", "transformers"])
468
+
469
+
470
+ class FluxFillPipeline(metaclass=DummyObject):
471
+ _backends = ["torch", "transformers"]
472
+
473
+ def __init__(self, *args, **kwargs):
474
+ requires_backends(self, ["torch", "transformers"])
475
+
476
+ @classmethod
477
+ def from_config(cls, *args, **kwargs):
478
+ requires_backends(cls, ["torch", "transformers"])
479
+
480
+ @classmethod
481
+ def from_pretrained(cls, *args, **kwargs):
482
+ requires_backends(cls, ["torch", "transformers"])
483
+
484
+
485
+ class FluxImg2ImgPipeline(metaclass=DummyObject):
486
+ _backends = ["torch", "transformers"]
487
+
488
+ def __init__(self, *args, **kwargs):
489
+ requires_backends(self, ["torch", "transformers"])
490
+
491
+ @classmethod
492
+ def from_config(cls, *args, **kwargs):
493
+ requires_backends(cls, ["torch", "transformers"])
494
+
495
+ @classmethod
496
+ def from_pretrained(cls, *args, **kwargs):
497
+ requires_backends(cls, ["torch", "transformers"])
498
+
499
+
500
+ class FluxInpaintPipeline(metaclass=DummyObject):
501
+ _backends = ["torch", "transformers"]
502
+
503
+ def __init__(self, *args, **kwargs):
504
+ requires_backends(self, ["torch", "transformers"])
505
+
506
+ @classmethod
507
+ def from_config(cls, *args, **kwargs):
508
+ requires_backends(cls, ["torch", "transformers"])
509
+
510
+ @classmethod
511
+ def from_pretrained(cls, *args, **kwargs):
512
+ requires_backends(cls, ["torch", "transformers"])
513
+
514
+
320
515
  class FluxPipeline(metaclass=DummyObject):
321
516
  _backends = ["torch", "transformers"]
322
517
 
@@ -332,6 +527,21 @@ class FluxPipeline(metaclass=DummyObject):
332
527
  requires_backends(cls, ["torch", "transformers"])
333
528
 
334
529
 
530
+ class FluxPriorReduxPipeline(metaclass=DummyObject):
531
+ _backends = ["torch", "transformers"]
532
+
533
+ def __init__(self, *args, **kwargs):
534
+ requires_backends(self, ["torch", "transformers"])
535
+
536
+ @classmethod
537
+ def from_config(cls, *args, **kwargs):
538
+ requires_backends(cls, ["torch", "transformers"])
539
+
540
+ @classmethod
541
+ def from_pretrained(cls, *args, **kwargs):
542
+ requires_backends(cls, ["torch", "transformers"])
543
+
544
+
335
545
  class HunyuanDiTControlNetPipeline(metaclass=DummyObject):
336
546
  _backends = ["torch", "transformers"]
337
547
 
@@ -377,6 +587,21 @@ class HunyuanDiTPipeline(metaclass=DummyObject):
377
587
  requires_backends(cls, ["torch", "transformers"])
378
588
 
379
589
 
590
+ class HunyuanVideoPipeline(metaclass=DummyObject):
591
+ _backends = ["torch", "transformers"]
592
+
593
+ def __init__(self, *args, **kwargs):
594
+ requires_backends(self, ["torch", "transformers"])
595
+
596
+ @classmethod
597
+ def from_config(cls, *args, **kwargs):
598
+ requires_backends(cls, ["torch", "transformers"])
599
+
600
+ @classmethod
601
+ def from_pretrained(cls, *args, **kwargs):
602
+ requires_backends(cls, ["torch", "transformers"])
603
+
604
+
380
605
  class I2VGenXLPipeline(metaclass=DummyObject):
381
606
  _backends = ["torch", "transformers"]
382
607
 
@@ -872,6 +1097,36 @@ class LEditsPPPipelineStableDiffusionXL(metaclass=DummyObject):
872
1097
  requires_backends(cls, ["torch", "transformers"])
873
1098
 
874
1099
 
1100
+ class LTXImageToVideoPipeline(metaclass=DummyObject):
1101
+ _backends = ["torch", "transformers"]
1102
+
1103
+ def __init__(self, *args, **kwargs):
1104
+ requires_backends(self, ["torch", "transformers"])
1105
+
1106
+ @classmethod
1107
+ def from_config(cls, *args, **kwargs):
1108
+ requires_backends(cls, ["torch", "transformers"])
1109
+
1110
+ @classmethod
1111
+ def from_pretrained(cls, *args, **kwargs):
1112
+ requires_backends(cls, ["torch", "transformers"])
1113
+
1114
+
1115
+ class LTXPipeline(metaclass=DummyObject):
1116
+ _backends = ["torch", "transformers"]
1117
+
1118
+ def __init__(self, *args, **kwargs):
1119
+ requires_backends(self, ["torch", "transformers"])
1120
+
1121
+ @classmethod
1122
+ def from_config(cls, *args, **kwargs):
1123
+ requires_backends(cls, ["torch", "transformers"])
1124
+
1125
+ @classmethod
1126
+ def from_pretrained(cls, *args, **kwargs):
1127
+ requires_backends(cls, ["torch", "transformers"])
1128
+
1129
+
875
1130
  class LuminaText2ImgPipeline(metaclass=DummyObject):
876
1131
  _backends = ["torch", "transformers"]
877
1132
 
@@ -917,6 +1172,21 @@ class MarigoldNormalsPipeline(metaclass=DummyObject):
917
1172
  requires_backends(cls, ["torch", "transformers"])
918
1173
 
919
1174
 
1175
+ class MochiPipeline(metaclass=DummyObject):
1176
+ _backends = ["torch", "transformers"]
1177
+
1178
+ def __init__(self, *args, **kwargs):
1179
+ requires_backends(self, ["torch", "transformers"])
1180
+
1181
+ @classmethod
1182
+ def from_config(cls, *args, **kwargs):
1183
+ requires_backends(cls, ["torch", "transformers"])
1184
+
1185
+ @classmethod
1186
+ def from_pretrained(cls, *args, **kwargs):
1187
+ requires_backends(cls, ["torch", "transformers"])
1188
+
1189
+
920
1190
  class MusicLDMPipeline(metaclass=DummyObject):
921
1191
  _backends = ["torch", "transformers"]
922
1192
 
@@ -1007,6 +1277,51 @@ class PixArtSigmaPipeline(metaclass=DummyObject):
1007
1277
  requires_backends(cls, ["torch", "transformers"])
1008
1278
 
1009
1279
 
1280
+ class ReduxImageEncoder(metaclass=DummyObject):
1281
+ _backends = ["torch", "transformers"]
1282
+
1283
+ def __init__(self, *args, **kwargs):
1284
+ requires_backends(self, ["torch", "transformers"])
1285
+
1286
+ @classmethod
1287
+ def from_config(cls, *args, **kwargs):
1288
+ requires_backends(cls, ["torch", "transformers"])
1289
+
1290
+ @classmethod
1291
+ def from_pretrained(cls, *args, **kwargs):
1292
+ requires_backends(cls, ["torch", "transformers"])
1293
+
1294
+
1295
+ class SanaPAGPipeline(metaclass=DummyObject):
1296
+ _backends = ["torch", "transformers"]
1297
+
1298
+ def __init__(self, *args, **kwargs):
1299
+ requires_backends(self, ["torch", "transformers"])
1300
+
1301
+ @classmethod
1302
+ def from_config(cls, *args, **kwargs):
1303
+ requires_backends(cls, ["torch", "transformers"])
1304
+
1305
+ @classmethod
1306
+ def from_pretrained(cls, *args, **kwargs):
1307
+ requires_backends(cls, ["torch", "transformers"])
1308
+
1309
+
1310
+ class SanaPipeline(metaclass=DummyObject):
1311
+ _backends = ["torch", "transformers"]
1312
+
1313
+ def __init__(self, *args, **kwargs):
1314
+ requires_backends(self, ["torch", "transformers"])
1315
+
1316
+ @classmethod
1317
+ def from_config(cls, *args, **kwargs):
1318
+ requires_backends(cls, ["torch", "transformers"])
1319
+
1320
+ @classmethod
1321
+ def from_pretrained(cls, *args, **kwargs):
1322
+ requires_backends(cls, ["torch", "transformers"])
1323
+
1324
+
1010
1325
  class SemanticStableDiffusionPipeline(metaclass=DummyObject):
1011
1326
  _backends = ["torch", "transformers"]
1012
1327
 
@@ -1172,6 +1487,21 @@ class StableDiffusion3InpaintPipeline(metaclass=DummyObject):
1172
1487
  requires_backends(cls, ["torch", "transformers"])
1173
1488
 
1174
1489
 
1490
+ class StableDiffusion3PAGImg2ImgPipeline(metaclass=DummyObject):
1491
+ _backends = ["torch", "transformers"]
1492
+
1493
+ def __init__(self, *args, **kwargs):
1494
+ requires_backends(self, ["torch", "transformers"])
1495
+
1496
+ @classmethod
1497
+ def from_config(cls, *args, **kwargs):
1498
+ requires_backends(cls, ["torch", "transformers"])
1499
+
1500
+ @classmethod
1501
+ def from_pretrained(cls, *args, **kwargs):
1502
+ requires_backends(cls, ["torch", "transformers"])
1503
+
1504
+
1175
1505
  class StableDiffusion3PAGPipeline(metaclass=DummyObject):
1176
1506
  _backends = ["torch", "transformers"]
1177
1507
 
@@ -1262,6 +1592,21 @@ class StableDiffusionControlNetInpaintPipeline(metaclass=DummyObject):
1262
1592
  requires_backends(cls, ["torch", "transformers"])
1263
1593
 
1264
1594
 
1595
+ class StableDiffusionControlNetPAGInpaintPipeline(metaclass=DummyObject):
1596
+ _backends = ["torch", "transformers"]
1597
+
1598
+ def __init__(self, *args, **kwargs):
1599
+ requires_backends(self, ["torch", "transformers"])
1600
+
1601
+ @classmethod
1602
+ def from_config(cls, *args, **kwargs):
1603
+ requires_backends(cls, ["torch", "transformers"])
1604
+
1605
+ @classmethod
1606
+ def from_pretrained(cls, *args, **kwargs):
1607
+ requires_backends(cls, ["torch", "transformers"])
1608
+
1609
+
1265
1610
  class StableDiffusionControlNetPAGPipeline(metaclass=DummyObject):
1266
1611
  _backends = ["torch", "transformers"]
1267
1612
 
@@ -1487,6 +1832,36 @@ class StableDiffusionModelEditingPipeline(metaclass=DummyObject):
1487
1832
  requires_backends(cls, ["torch", "transformers"])
1488
1833
 
1489
1834
 
1835
+ class StableDiffusionPAGImg2ImgPipeline(metaclass=DummyObject):
1836
+ _backends = ["torch", "transformers"]
1837
+
1838
+ def __init__(self, *args, **kwargs):
1839
+ requires_backends(self, ["torch", "transformers"])
1840
+
1841
+ @classmethod
1842
+ def from_config(cls, *args, **kwargs):
1843
+ requires_backends(cls, ["torch", "transformers"])
1844
+
1845
+ @classmethod
1846
+ def from_pretrained(cls, *args, **kwargs):
1847
+ requires_backends(cls, ["torch", "transformers"])
1848
+
1849
+
1850
+ class StableDiffusionPAGInpaintPipeline(metaclass=DummyObject):
1851
+ _backends = ["torch", "transformers"]
1852
+
1853
+ def __init__(self, *args, **kwargs):
1854
+ requires_backends(self, ["torch", "transformers"])
1855
+
1856
+ @classmethod
1857
+ def from_config(cls, *args, **kwargs):
1858
+ requires_backends(cls, ["torch", "transformers"])
1859
+
1860
+ @classmethod
1861
+ def from_pretrained(cls, *args, **kwargs):
1862
+ requires_backends(cls, ["torch", "transformers"])
1863
+
1864
+
1490
1865
  class StableDiffusionPAGPipeline(metaclass=DummyObject):
1491
1866
  _backends = ["torch", "transformers"]
1492
1867
 
@@ -1652,6 +2027,21 @@ class StableDiffusionXLControlNetInpaintPipeline(metaclass=DummyObject):
1652
2027
  requires_backends(cls, ["torch", "transformers"])
1653
2028
 
1654
2029
 
2030
+ class StableDiffusionXLControlNetPAGImg2ImgPipeline(metaclass=DummyObject):
2031
+ _backends = ["torch", "transformers"]
2032
+
2033
+ def __init__(self, *args, **kwargs):
2034
+ requires_backends(self, ["torch", "transformers"])
2035
+
2036
+ @classmethod
2037
+ def from_config(cls, *args, **kwargs):
2038
+ requires_backends(cls, ["torch", "transformers"])
2039
+
2040
+ @classmethod
2041
+ def from_pretrained(cls, *args, **kwargs):
2042
+ requires_backends(cls, ["torch", "transformers"])
2043
+
2044
+
1655
2045
  class StableDiffusionXLControlNetPAGPipeline(metaclass=DummyObject):
1656
2046
  _backends = ["torch", "transformers"]
1657
2047
 
@@ -1682,6 +2072,51 @@ class StableDiffusionXLControlNetPipeline(metaclass=DummyObject):
1682
2072
  requires_backends(cls, ["torch", "transformers"])
1683
2073
 
1684
2074
 
2075
+ class StableDiffusionXLControlNetUnionImg2ImgPipeline(metaclass=DummyObject):
2076
+ _backends = ["torch", "transformers"]
2077
+
2078
+ def __init__(self, *args, **kwargs):
2079
+ requires_backends(self, ["torch", "transformers"])
2080
+
2081
+ @classmethod
2082
+ def from_config(cls, *args, **kwargs):
2083
+ requires_backends(cls, ["torch", "transformers"])
2084
+
2085
+ @classmethod
2086
+ def from_pretrained(cls, *args, **kwargs):
2087
+ requires_backends(cls, ["torch", "transformers"])
2088
+
2089
+
2090
+ class StableDiffusionXLControlNetUnionInpaintPipeline(metaclass=DummyObject):
2091
+ _backends = ["torch", "transformers"]
2092
+
2093
+ def __init__(self, *args, **kwargs):
2094
+ requires_backends(self, ["torch", "transformers"])
2095
+
2096
+ @classmethod
2097
+ def from_config(cls, *args, **kwargs):
2098
+ requires_backends(cls, ["torch", "transformers"])
2099
+
2100
+ @classmethod
2101
+ def from_pretrained(cls, *args, **kwargs):
2102
+ requires_backends(cls, ["torch", "transformers"])
2103
+
2104
+
2105
+ class StableDiffusionXLControlNetUnionPipeline(metaclass=DummyObject):
2106
+ _backends = ["torch", "transformers"]
2107
+
2108
+ def __init__(self, *args, **kwargs):
2109
+ requires_backends(self, ["torch", "transformers"])
2110
+
2111
+ @classmethod
2112
+ def from_config(cls, *args, **kwargs):
2113
+ requires_backends(cls, ["torch", "transformers"])
2114
+
2115
+ @classmethod
2116
+ def from_pretrained(cls, *args, **kwargs):
2117
+ requires_backends(cls, ["torch", "transformers"])
2118
+
2119
+
1685
2120
  class StableDiffusionXLControlNetXSPipeline(metaclass=DummyObject):
1686
2121
  _backends = ["torch", "transformers"]
1687
2122
 
@@ -325,7 +325,7 @@ def get_cached_module_file(
325
325
  # We always copy local files (we could hash the file to see if there was a change, and give them the name of
326
326
  # that hash, to only copy when there is a modification but it seems overkill for now).
327
327
  # The only reason we do the copy is to avoid putting too many folders in sys.path.
328
- shutil.copy(resolved_module_file, submodule_path / module_file)
328
+ shutil.copyfile(resolved_module_file, submodule_path / module_file)
329
329
  for module_needed in modules_needed:
330
330
  if len(module_needed.split(".")) == 2:
331
331
  module_needed = "/".join(module_needed.split("."))
@@ -333,7 +333,7 @@ def get_cached_module_file(
333
333
  if not os.path.exists(submodule_path / module_folder):
334
334
  os.makedirs(submodule_path / module_folder)
335
335
  module_needed = f"{module_needed}.py"
336
- shutil.copy(os.path.join(pretrained_model_name_or_path, module_needed), submodule_path / module_needed)
336
+ shutil.copyfile(os.path.join(pretrained_model_name_or_path, module_needed), submodule_path / module_needed)
337
337
  else:
338
338
  # Get the commit hash
339
339
  # TODO: we will get this info in the etag soon, so retrieve it from there and not here.
@@ -350,7 +350,7 @@ def get_cached_module_file(
350
350
  module_folder = module_file.split("/")[0]
351
351
  if not os.path.exists(submodule_path / module_folder):
352
352
  os.makedirs(submodule_path / module_folder)
353
- shutil.copy(resolved_module_file, submodule_path / module_file)
353
+ shutil.copyfile(resolved_module_file, submodule_path / module_file)
354
354
 
355
355
  # Make sure we also have every file with relative
356
356
  for module_needed in modules_needed:
@@ -271,8 +271,7 @@ if cache_version < 1:
271
271
  def _add_variant(weights_name: str, variant: Optional[str] = None) -> str:
272
272
  if variant is not None:
273
273
  splits = weights_name.split(".")
274
- split_index = -2 if weights_name.endswith(".index.json") else -1
275
- splits = splits[:-split_index] + [variant] + splits[-split_index:]
274
+ splits = splits[:-1] + [variant] + splits[-1:]
276
275
  weights_name = ".".join(splits)
277
276
 
278
277
  return weights_name
@@ -456,52 +455,56 @@ def _get_checkpoint_shard_files(
456
455
  allow_patterns = [os.path.join(subfolder, p) for p in allow_patterns]
457
456
 
458
457
  ignore_patterns = ["*.json", "*.md"]
459
- if not local_files_only:
460
- # `model_info` call must guarded with the above condition.
461
- model_files_info = model_info(pretrained_model_name_or_path, revision=revision)
462
- for shard_file in original_shard_filenames:
463
- shard_file_present = any(shard_file in k.rfilename for k in model_files_info.siblings)
464
- if not shard_file_present:
465
- raise EnvironmentError(
466
- f"{shards_path} does not appear to have a file named {shard_file} which is "
467
- "required according to the checkpoint index."
468
- )
469
-
470
- try:
471
- # Load from URL
472
- cached_folder = snapshot_download(
473
- pretrained_model_name_or_path,
474
- cache_dir=cache_dir,
475
- proxies=proxies,
476
- local_files_only=local_files_only,
477
- token=token,
478
- revision=revision,
479
- allow_patterns=allow_patterns,
480
- ignore_patterns=ignore_patterns,
481
- user_agent=user_agent,
482
- )
483
- if subfolder is not None:
484
- cached_folder = os.path.join(cached_folder, subfolder)
485
-
486
- # We have already dealt with RepositoryNotFoundError and RevisionNotFoundError when getting the index, so
487
- # we don't have to catch them here. We have also dealt with EntryNotFoundError.
488
- except HTTPError as e:
458
+ # `model_info` call must guarded with the above condition.
459
+ model_files_info = model_info(pretrained_model_name_or_path, revision=revision, token=token)
460
+ for shard_file in original_shard_filenames:
461
+ shard_file_present = any(shard_file in k.rfilename for k in model_files_info.siblings)
462
+ if not shard_file_present:
489
463
  raise EnvironmentError(
490
- f"We couldn't connect to '{HUGGINGFACE_CO_RESOLVE_ENDPOINT}' to load {pretrained_model_name_or_path}. You should try"
491
- " again after checking your internet connection."
492
- ) from e
464
+ f"{shards_path} does not appear to have a file named {shard_file} which is "
465
+ "required according to the checkpoint index."
466
+ )
493
467
 
494
- # If `local_files_only=True`, `cached_folder` may not contain all the shard files.
495
- elif local_files_only:
496
- _check_if_shards_exist_locally(
497
- local_dir=cache_dir, subfolder=subfolder, original_shard_filenames=original_shard_filenames
468
+ try:
469
+ # Load from URL
470
+ cached_folder = snapshot_download(
471
+ pretrained_model_name_or_path,
472
+ cache_dir=cache_dir,
473
+ proxies=proxies,
474
+ local_files_only=local_files_only,
475
+ token=token,
476
+ revision=revision,
477
+ allow_patterns=allow_patterns,
478
+ ignore_patterns=ignore_patterns,
479
+ user_agent=user_agent,
498
480
  )
499
481
  if subfolder is not None:
500
482
  cached_folder = os.path.join(cached_folder, subfolder)
501
483
 
484
+ # We have already dealt with RepositoryNotFoundError and RevisionNotFoundError when getting the index, so
485
+ # we don't have to catch them here. We have also dealt with EntryNotFoundError.
486
+ except HTTPError as e:
487
+ raise EnvironmentError(
488
+ f"We couldn't connect to '{HUGGINGFACE_CO_RESOLVE_ENDPOINT}' to load {pretrained_model_name_or_path}. You should try"
489
+ " again after checking your internet connection."
490
+ ) from e
491
+
502
492
  return cached_folder, sharded_metadata
503
493
 
504
494
 
495
+ def _check_legacy_sharding_variant_format(folder: str = None, filenames: List[str] = None, variant: str = None):
496
+ if filenames and folder:
497
+ raise ValueError("Both `filenames` and `folder` cannot be provided.")
498
+ if not filenames:
499
+ filenames = []
500
+ for _, _, files in os.walk(folder):
501
+ for file in files:
502
+ filenames.append(os.path.basename(file))
503
+ transformers_index_format = r"\d{5}-of-\d{5}"
504
+ variant_file_re = re.compile(rf".*-{transformers_index_format}\.{variant}\.[a-z]+$")
505
+ return any(variant_file_re.match(f) is not None for f in filenames)
506
+
507
+
505
508
  class PushToHubMixin:
506
509
  """
507
510
  A Mixin to push a model, scheduler, or pipeline to the Hugging Face Hub.
@@ -552,7 +555,8 @@ class PushToHubMixin:
552
555
  commit_message (`str`, *optional*):
553
556
  Message to commit while pushing. Default to `"Upload {object}"`.
554
557
  private (`bool`, *optional*):
555
- Whether or not the repository created should be private.
558
+ Whether to make the repo private. If `None` (default), the repo will be public unless the
559
+ organization's default is private. This value is ignored if the repo already exists.
556
560
  token (`str`, *optional*):
557
561
  The token to use as HTTP bearer authorization for remote files. The token generated when running
558
562
  `huggingface-cli login` (stored in `~/.huggingface`).