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.
- diffusers/__init__.py +97 -4
- diffusers/callbacks.py +56 -3
- diffusers/configuration_utils.py +13 -1
- diffusers/image_processor.py +282 -71
- diffusers/loaders/__init__.py +24 -3
- diffusers/loaders/ip_adapter.py +543 -16
- diffusers/loaders/lora_base.py +138 -125
- diffusers/loaders/lora_conversion_utils.py +647 -0
- diffusers/loaders/lora_pipeline.py +2216 -230
- diffusers/loaders/peft.py +380 -0
- diffusers/loaders/single_file_model.py +71 -4
- diffusers/loaders/single_file_utils.py +597 -10
- diffusers/loaders/textual_inversion.py +5 -3
- diffusers/loaders/transformer_flux.py +181 -0
- diffusers/loaders/transformer_sd3.py +89 -0
- diffusers/loaders/unet.py +56 -12
- diffusers/models/__init__.py +49 -12
- diffusers/models/activations.py +22 -9
- diffusers/models/adapter.py +53 -53
- diffusers/models/attention.py +98 -13
- diffusers/models/attention_flax.py +1 -1
- diffusers/models/attention_processor.py +2160 -346
- diffusers/models/autoencoders/__init__.py +5 -0
- diffusers/models/autoencoders/autoencoder_dc.py +620 -0
- diffusers/models/autoencoders/autoencoder_kl.py +73 -12
- diffusers/models/autoencoders/autoencoder_kl_allegro.py +1149 -0
- diffusers/models/autoencoders/autoencoder_kl_cogvideox.py +213 -105
- diffusers/models/autoencoders/autoencoder_kl_hunyuan_video.py +1176 -0
- diffusers/models/autoencoders/autoencoder_kl_ltx.py +1338 -0
- diffusers/models/autoencoders/autoencoder_kl_mochi.py +1166 -0
- diffusers/models/autoencoders/autoencoder_kl_temporal_decoder.py +3 -10
- diffusers/models/autoencoders/autoencoder_tiny.py +4 -2
- diffusers/models/autoencoders/vae.py +18 -5
- diffusers/models/controlnet.py +47 -802
- diffusers/models/controlnet_flux.py +70 -0
- diffusers/models/controlnet_sd3.py +26 -376
- diffusers/models/controlnet_sparsectrl.py +46 -719
- diffusers/models/controlnets/__init__.py +23 -0
- diffusers/models/controlnets/controlnet.py +872 -0
- diffusers/models/{controlnet_flax.py → controlnets/controlnet_flax.py} +5 -5
- diffusers/models/controlnets/controlnet_flux.py +536 -0
- diffusers/models/{controlnet_hunyuan.py → controlnets/controlnet_hunyuan.py} +7 -7
- diffusers/models/controlnets/controlnet_sd3.py +489 -0
- diffusers/models/controlnets/controlnet_sparsectrl.py +788 -0
- diffusers/models/controlnets/controlnet_union.py +832 -0
- diffusers/models/{controlnet_xs.py → controlnets/controlnet_xs.py} +14 -13
- diffusers/models/controlnets/multicontrolnet.py +183 -0
- diffusers/models/embeddings.py +996 -92
- diffusers/models/embeddings_flax.py +23 -9
- diffusers/models/model_loading_utils.py +264 -14
- diffusers/models/modeling_flax_utils.py +1 -1
- diffusers/models/modeling_utils.py +334 -51
- diffusers/models/normalization.py +157 -13
- diffusers/models/transformers/__init__.py +6 -0
- diffusers/models/transformers/auraflow_transformer_2d.py +3 -2
- diffusers/models/transformers/cogvideox_transformer_3d.py +69 -13
- diffusers/models/transformers/dit_transformer_2d.py +1 -1
- diffusers/models/transformers/latte_transformer_3d.py +4 -4
- diffusers/models/transformers/pixart_transformer_2d.py +10 -2
- diffusers/models/transformers/sana_transformer.py +488 -0
- diffusers/models/transformers/stable_audio_transformer.py +1 -1
- diffusers/models/transformers/transformer_2d.py +1 -1
- diffusers/models/transformers/transformer_allegro.py +422 -0
- diffusers/models/transformers/transformer_cogview3plus.py +386 -0
- diffusers/models/transformers/transformer_flux.py +189 -51
- diffusers/models/transformers/transformer_hunyuan_video.py +789 -0
- diffusers/models/transformers/transformer_ltx.py +469 -0
- diffusers/models/transformers/transformer_mochi.py +499 -0
- diffusers/models/transformers/transformer_sd3.py +112 -18
- diffusers/models/transformers/transformer_temporal.py +1 -1
- diffusers/models/unets/unet_1d_blocks.py +1 -1
- diffusers/models/unets/unet_2d.py +8 -1
- diffusers/models/unets/unet_2d_blocks.py +88 -21
- diffusers/models/unets/unet_2d_condition.py +9 -9
- diffusers/models/unets/unet_3d_blocks.py +9 -7
- diffusers/models/unets/unet_motion_model.py +46 -68
- diffusers/models/unets/unet_spatio_temporal_condition.py +23 -0
- diffusers/models/unets/unet_stable_cascade.py +2 -2
- diffusers/models/unets/uvit_2d.py +1 -1
- diffusers/models/upsampling.py +14 -6
- diffusers/pipelines/__init__.py +69 -6
- diffusers/pipelines/allegro/__init__.py +48 -0
- diffusers/pipelines/allegro/pipeline_allegro.py +938 -0
- diffusers/pipelines/allegro/pipeline_output.py +23 -0
- diffusers/pipelines/animatediff/__init__.py +2 -0
- diffusers/pipelines/animatediff/pipeline_animatediff.py +45 -21
- diffusers/pipelines/animatediff/pipeline_animatediff_controlnet.py +52 -22
- diffusers/pipelines/animatediff/pipeline_animatediff_sdxl.py +18 -4
- diffusers/pipelines/animatediff/pipeline_animatediff_sparsectrl.py +3 -1
- diffusers/pipelines/animatediff/pipeline_animatediff_video2video.py +104 -72
- diffusers/pipelines/animatediff/pipeline_animatediff_video2video_controlnet.py +1341 -0
- diffusers/pipelines/audioldm2/modeling_audioldm2.py +3 -3
- diffusers/pipelines/aura_flow/pipeline_aura_flow.py +2 -9
- diffusers/pipelines/auto_pipeline.py +88 -10
- diffusers/pipelines/blip_diffusion/modeling_blip2.py +1 -1
- diffusers/pipelines/cogvideo/__init__.py +2 -0
- diffusers/pipelines/cogvideo/pipeline_cogvideox.py +80 -39
- diffusers/pipelines/cogvideo/pipeline_cogvideox_fun_control.py +825 -0
- diffusers/pipelines/cogvideo/pipeline_cogvideox_image2video.py +108 -50
- diffusers/pipelines/cogvideo/pipeline_cogvideox_video2video.py +89 -50
- diffusers/pipelines/cogview3/__init__.py +47 -0
- diffusers/pipelines/cogview3/pipeline_cogview3plus.py +674 -0
- diffusers/pipelines/cogview3/pipeline_output.py +21 -0
- diffusers/pipelines/controlnet/__init__.py +86 -80
- diffusers/pipelines/controlnet/multicontrolnet.py +7 -178
- diffusers/pipelines/controlnet/pipeline_controlnet.py +20 -3
- diffusers/pipelines/controlnet/pipeline_controlnet_img2img.py +9 -2
- diffusers/pipelines/controlnet/pipeline_controlnet_inpaint.py +9 -2
- diffusers/pipelines/controlnet/pipeline_controlnet_inpaint_sd_xl.py +37 -15
- diffusers/pipelines/controlnet/pipeline_controlnet_sd_xl.py +12 -4
- diffusers/pipelines/controlnet/pipeline_controlnet_sd_xl_img2img.py +9 -4
- diffusers/pipelines/controlnet/pipeline_controlnet_union_inpaint_sd_xl.py +1790 -0
- diffusers/pipelines/controlnet/pipeline_controlnet_union_sd_xl.py +1501 -0
- diffusers/pipelines/controlnet/pipeline_controlnet_union_sd_xl_img2img.py +1627 -0
- diffusers/pipelines/controlnet_hunyuandit/pipeline_hunyuandit_controlnet.py +22 -4
- diffusers/pipelines/controlnet_sd3/__init__.py +4 -0
- diffusers/pipelines/controlnet_sd3/pipeline_stable_diffusion_3_controlnet.py +56 -20
- diffusers/pipelines/controlnet_sd3/pipeline_stable_diffusion_3_controlnet_inpainting.py +1153 -0
- diffusers/pipelines/ddpm/pipeline_ddpm.py +2 -2
- diffusers/pipelines/deepfloyd_if/pipeline_output.py +6 -5
- diffusers/pipelines/deprecated/alt_diffusion/pipeline_alt_diffusion.py +16 -4
- diffusers/pipelines/deprecated/alt_diffusion/pipeline_alt_diffusion_img2img.py +1 -1
- diffusers/pipelines/deprecated/versatile_diffusion/modeling_text_unet.py +32 -9
- diffusers/pipelines/flux/__init__.py +23 -1
- diffusers/pipelines/flux/modeling_flux.py +47 -0
- diffusers/pipelines/flux/pipeline_flux.py +256 -48
- diffusers/pipelines/flux/pipeline_flux_control.py +889 -0
- diffusers/pipelines/flux/pipeline_flux_control_img2img.py +945 -0
- diffusers/pipelines/flux/pipeline_flux_control_inpaint.py +1141 -0
- diffusers/pipelines/flux/pipeline_flux_controlnet.py +1006 -0
- diffusers/pipelines/flux/pipeline_flux_controlnet_image_to_image.py +998 -0
- diffusers/pipelines/flux/pipeline_flux_controlnet_inpainting.py +1204 -0
- diffusers/pipelines/flux/pipeline_flux_fill.py +969 -0
- diffusers/pipelines/flux/pipeline_flux_img2img.py +856 -0
- diffusers/pipelines/flux/pipeline_flux_inpaint.py +1022 -0
- diffusers/pipelines/flux/pipeline_flux_prior_redux.py +492 -0
- diffusers/pipelines/flux/pipeline_output.py +16 -0
- diffusers/pipelines/free_noise_utils.py +365 -5
- diffusers/pipelines/hunyuan_video/__init__.py +48 -0
- diffusers/pipelines/hunyuan_video/pipeline_hunyuan_video.py +687 -0
- diffusers/pipelines/hunyuan_video/pipeline_output.py +20 -0
- diffusers/pipelines/hunyuandit/pipeline_hunyuandit.py +20 -4
- diffusers/pipelines/kandinsky/pipeline_kandinsky_combined.py +9 -9
- diffusers/pipelines/kandinsky2_2/pipeline_kandinsky2_2_combined.py +2 -2
- diffusers/pipelines/kolors/pipeline_kolors.py +1 -1
- diffusers/pipelines/kolors/pipeline_kolors_img2img.py +14 -11
- diffusers/pipelines/kolors/text_encoder.py +2 -2
- diffusers/pipelines/kolors/tokenizer.py +4 -0
- diffusers/pipelines/latent_consistency_models/pipeline_latent_consistency_img2img.py +1 -1
- diffusers/pipelines/latent_consistency_models/pipeline_latent_consistency_text2img.py +1 -1
- diffusers/pipelines/latent_diffusion/pipeline_latent_diffusion.py +1 -1
- diffusers/pipelines/latte/pipeline_latte.py +2 -2
- diffusers/pipelines/ledits_pp/pipeline_leditspp_stable_diffusion.py +15 -3
- diffusers/pipelines/ledits_pp/pipeline_leditspp_stable_diffusion_xl.py +15 -3
- diffusers/pipelines/ltx/__init__.py +50 -0
- diffusers/pipelines/ltx/pipeline_ltx.py +789 -0
- diffusers/pipelines/ltx/pipeline_ltx_image2video.py +885 -0
- diffusers/pipelines/ltx/pipeline_output.py +20 -0
- diffusers/pipelines/lumina/pipeline_lumina.py +3 -10
- diffusers/pipelines/mochi/__init__.py +48 -0
- diffusers/pipelines/mochi/pipeline_mochi.py +748 -0
- diffusers/pipelines/mochi/pipeline_output.py +20 -0
- diffusers/pipelines/pag/__init__.py +13 -0
- diffusers/pipelines/pag/pag_utils.py +8 -2
- diffusers/pipelines/pag/pipeline_pag_controlnet_sd.py +2 -3
- diffusers/pipelines/pag/pipeline_pag_controlnet_sd_inpaint.py +1543 -0
- diffusers/pipelines/pag/pipeline_pag_controlnet_sd_xl.py +3 -5
- diffusers/pipelines/pag/pipeline_pag_controlnet_sd_xl_img2img.py +1683 -0
- diffusers/pipelines/pag/pipeline_pag_hunyuandit.py +22 -6
- diffusers/pipelines/pag/pipeline_pag_kolors.py +1 -1
- diffusers/pipelines/pag/pipeline_pag_pixart_sigma.py +7 -14
- diffusers/pipelines/pag/pipeline_pag_sana.py +886 -0
- diffusers/pipelines/pag/pipeline_pag_sd.py +18 -6
- diffusers/pipelines/pag/pipeline_pag_sd_3.py +18 -9
- diffusers/pipelines/pag/pipeline_pag_sd_3_img2img.py +1058 -0
- diffusers/pipelines/pag/pipeline_pag_sd_animatediff.py +5 -1
- diffusers/pipelines/pag/pipeline_pag_sd_img2img.py +1094 -0
- diffusers/pipelines/pag/pipeline_pag_sd_inpaint.py +1356 -0
- diffusers/pipelines/pag/pipeline_pag_sd_xl.py +18 -6
- diffusers/pipelines/pag/pipeline_pag_sd_xl_img2img.py +31 -16
- diffusers/pipelines/pag/pipeline_pag_sd_xl_inpaint.py +42 -19
- diffusers/pipelines/pia/pipeline_pia.py +2 -0
- diffusers/pipelines/pipeline_flax_utils.py +1 -1
- diffusers/pipelines/pipeline_loading_utils.py +250 -31
- diffusers/pipelines/pipeline_utils.py +158 -186
- diffusers/pipelines/pixart_alpha/pipeline_pixart_alpha.py +7 -14
- diffusers/pipelines/pixart_alpha/pipeline_pixart_sigma.py +7 -14
- diffusers/pipelines/sana/__init__.py +47 -0
- diffusers/pipelines/sana/pipeline_output.py +21 -0
- diffusers/pipelines/sana/pipeline_sana.py +884 -0
- diffusers/pipelines/stable_audio/pipeline_stable_audio.py +12 -1
- diffusers/pipelines/stable_cascade/pipeline_stable_cascade.py +35 -3
- diffusers/pipelines/stable_cascade/pipeline_stable_cascade_prior.py +2 -2
- diffusers/pipelines/stable_diffusion/pipeline_stable_diffusion.py +46 -9
- diffusers/pipelines/stable_diffusion/pipeline_stable_diffusion_img2img.py +1 -1
- diffusers/pipelines/stable_diffusion/pipeline_stable_diffusion_inpaint.py +1 -1
- diffusers/pipelines/stable_diffusion/pipeline_stable_diffusion_latent_upscale.py +241 -81
- diffusers/pipelines/stable_diffusion_3/pipeline_stable_diffusion_3.py +228 -23
- diffusers/pipelines/stable_diffusion_3/pipeline_stable_diffusion_3_img2img.py +82 -13
- diffusers/pipelines/stable_diffusion_3/pipeline_stable_diffusion_3_inpaint.py +60 -11
- diffusers/pipelines/stable_diffusion_gligen/pipeline_stable_diffusion_gligen_text_image.py +11 -1
- diffusers/pipelines/stable_diffusion_k_diffusion/pipeline_stable_diffusion_k_diffusion.py +1 -1
- diffusers/pipelines/stable_diffusion_ldm3d/pipeline_stable_diffusion_ldm3d.py +16 -4
- diffusers/pipelines/stable_diffusion_panorama/pipeline_stable_diffusion_panorama.py +16 -4
- diffusers/pipelines/stable_diffusion_xl/pipeline_stable_diffusion_xl.py +16 -12
- diffusers/pipelines/stable_diffusion_xl/pipeline_stable_diffusion_xl_img2img.py +29 -22
- diffusers/pipelines/stable_diffusion_xl/pipeline_stable_diffusion_xl_inpaint.py +29 -22
- diffusers/pipelines/stable_video_diffusion/pipeline_stable_video_diffusion.py +1 -1
- diffusers/pipelines/t2i_adapter/pipeline_stable_diffusion_adapter.py +1 -1
- diffusers/pipelines/t2i_adapter/pipeline_stable_diffusion_xl_adapter.py +16 -4
- diffusers/pipelines/text_to_video_synthesis/pipeline_text_to_video_zero_sdxl.py +15 -3
- diffusers/pipelines/unidiffuser/modeling_uvit.py +2 -2
- diffusers/pipelines/wuerstchen/modeling_wuerstchen_prior.py +1 -1
- diffusers/quantizers/__init__.py +16 -0
- diffusers/quantizers/auto.py +139 -0
- diffusers/quantizers/base.py +233 -0
- diffusers/quantizers/bitsandbytes/__init__.py +2 -0
- diffusers/quantizers/bitsandbytes/bnb_quantizer.py +561 -0
- diffusers/quantizers/bitsandbytes/utils.py +306 -0
- diffusers/quantizers/gguf/__init__.py +1 -0
- diffusers/quantizers/gguf/gguf_quantizer.py +159 -0
- diffusers/quantizers/gguf/utils.py +456 -0
- diffusers/quantizers/quantization_config.py +669 -0
- diffusers/quantizers/torchao/__init__.py +15 -0
- diffusers/quantizers/torchao/torchao_quantizer.py +285 -0
- diffusers/schedulers/scheduling_ddim.py +4 -1
- diffusers/schedulers/scheduling_ddim_cogvideox.py +4 -1
- diffusers/schedulers/scheduling_ddim_parallel.py +4 -1
- diffusers/schedulers/scheduling_ddpm.py +6 -7
- diffusers/schedulers/scheduling_ddpm_parallel.py +6 -7
- diffusers/schedulers/scheduling_deis_multistep.py +102 -6
- diffusers/schedulers/scheduling_dpmsolver_multistep.py +113 -6
- diffusers/schedulers/scheduling_dpmsolver_multistep_inverse.py +111 -5
- diffusers/schedulers/scheduling_dpmsolver_sde.py +125 -10
- diffusers/schedulers/scheduling_dpmsolver_singlestep.py +126 -7
- diffusers/schedulers/scheduling_edm_euler.py +8 -6
- diffusers/schedulers/scheduling_euler_ancestral_discrete.py +4 -1
- diffusers/schedulers/scheduling_euler_discrete.py +92 -7
- diffusers/schedulers/scheduling_flow_match_euler_discrete.py +153 -6
- diffusers/schedulers/scheduling_flow_match_heun_discrete.py +4 -5
- diffusers/schedulers/scheduling_heun_discrete.py +114 -8
- diffusers/schedulers/scheduling_k_dpm_2_ancestral_discrete.py +116 -11
- diffusers/schedulers/scheduling_k_dpm_2_discrete.py +110 -8
- diffusers/schedulers/scheduling_lcm.py +2 -6
- diffusers/schedulers/scheduling_lms_discrete.py +76 -1
- diffusers/schedulers/scheduling_repaint.py +1 -1
- diffusers/schedulers/scheduling_sasolver.py +102 -6
- diffusers/schedulers/scheduling_tcd.py +2 -6
- diffusers/schedulers/scheduling_unclip.py +4 -1
- diffusers/schedulers/scheduling_unipc_multistep.py +127 -5
- diffusers/training_utils.py +63 -19
- diffusers/utils/__init__.py +7 -1
- diffusers/utils/constants.py +1 -0
- diffusers/utils/dummy_pt_objects.py +240 -0
- diffusers/utils/dummy_torch_and_transformers_objects.py +435 -0
- diffusers/utils/dynamic_modules_utils.py +3 -3
- diffusers/utils/hub_utils.py +44 -40
- diffusers/utils/import_utils.py +98 -8
- diffusers/utils/loading_utils.py +28 -4
- diffusers/utils/peft_utils.py +6 -3
- diffusers/utils/testing_utils.py +115 -1
- diffusers/utils/torch_utils.py +3 -0
- {diffusers-0.30.3.dist-info → diffusers-0.32.0.dist-info}/METADATA +73 -72
- {diffusers-0.30.3.dist-info → diffusers-0.32.0.dist-info}/RECORD +268 -193
- {diffusers-0.30.3.dist-info → diffusers-0.32.0.dist-info}/WHEEL +1 -1
- {diffusers-0.30.3.dist-info → diffusers-0.32.0.dist-info}/LICENSE +0 -0
- {diffusers-0.30.3.dist-info → diffusers-0.32.0.dist-info}/entry_points.txt +0 -0
- {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.
|
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.
|
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.
|
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:
|
diffusers/utils/hub_utils.py
CHANGED
@@ -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
|
-
|
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
|
-
|
460
|
-
|
461
|
-
|
462
|
-
|
463
|
-
|
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"
|
491
|
-
"
|
492
|
-
)
|
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
|
-
|
495
|
-
|
496
|
-
|
497
|
-
|
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
|
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`).
|