diffusers 0.31.0__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 (214) hide show
  1. diffusers/__init__.py +66 -5
  2. diffusers/callbacks.py +56 -3
  3. diffusers/configuration_utils.py +1 -1
  4. diffusers/dependency_versions_table.py +1 -1
  5. diffusers/image_processor.py +25 -17
  6. diffusers/loaders/__init__.py +22 -3
  7. diffusers/loaders/ip_adapter.py +538 -15
  8. diffusers/loaders/lora_base.py +124 -118
  9. diffusers/loaders/lora_conversion_utils.py +318 -3
  10. diffusers/loaders/lora_pipeline.py +1688 -368
  11. diffusers/loaders/peft.py +379 -0
  12. diffusers/loaders/single_file_model.py +71 -4
  13. diffusers/loaders/single_file_utils.py +519 -9
  14. diffusers/loaders/textual_inversion.py +3 -3
  15. diffusers/loaders/transformer_flux.py +181 -0
  16. diffusers/loaders/transformer_sd3.py +89 -0
  17. diffusers/loaders/unet.py +17 -4
  18. diffusers/models/__init__.py +47 -14
  19. diffusers/models/activations.py +22 -9
  20. diffusers/models/attention.py +13 -4
  21. diffusers/models/attention_flax.py +1 -1
  22. diffusers/models/attention_processor.py +2059 -281
  23. diffusers/models/autoencoders/__init__.py +5 -0
  24. diffusers/models/autoencoders/autoencoder_dc.py +620 -0
  25. diffusers/models/autoencoders/autoencoder_kl.py +2 -1
  26. diffusers/models/autoencoders/autoencoder_kl_allegro.py +1149 -0
  27. diffusers/models/autoencoders/autoencoder_kl_cogvideox.py +36 -27
  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 +29 -495
  36. diffusers/models/controlnet_sd3.py +25 -379
  37. diffusers/models/controlnet_sparsectrl.py +46 -718
  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 +838 -43
  49. diffusers/models/model_loading_utils.py +88 -6
  50. diffusers/models/modeling_flax_utils.py +1 -1
  51. diffusers/models/modeling_utils.py +74 -28
  52. diffusers/models/normalization.py +78 -13
  53. diffusers/models/transformers/__init__.py +5 -0
  54. diffusers/models/transformers/auraflow_transformer_2d.py +2 -2
  55. diffusers/models/transformers/cogvideox_transformer_3d.py +46 -11
  56. diffusers/models/transformers/dit_transformer_2d.py +1 -1
  57. diffusers/models/transformers/latte_transformer_3d.py +4 -4
  58. diffusers/models/transformers/pixart_transformer_2d.py +1 -1
  59. diffusers/models/transformers/sana_transformer.py +488 -0
  60. diffusers/models/transformers/stable_audio_transformer.py +1 -1
  61. diffusers/models/transformers/transformer_2d.py +1 -1
  62. diffusers/models/transformers/transformer_allegro.py +422 -0
  63. diffusers/models/transformers/transformer_cogview3plus.py +1 -1
  64. diffusers/models/transformers/transformer_flux.py +30 -9
  65. diffusers/models/transformers/transformer_hunyuan_video.py +789 -0
  66. diffusers/models/transformers/transformer_ltx.py +469 -0
  67. diffusers/models/transformers/transformer_mochi.py +499 -0
  68. diffusers/models/transformers/transformer_sd3.py +105 -17
  69. diffusers/models/transformers/transformer_temporal.py +1 -1
  70. diffusers/models/unets/unet_1d_blocks.py +1 -1
  71. diffusers/models/unets/unet_2d.py +8 -1
  72. diffusers/models/unets/unet_2d_blocks.py +88 -21
  73. diffusers/models/unets/unet_2d_condition.py +1 -1
  74. diffusers/models/unets/unet_3d_blocks.py +9 -7
  75. diffusers/models/unets/unet_motion_model.py +5 -5
  76. diffusers/models/unets/unet_spatio_temporal_condition.py +23 -0
  77. diffusers/models/unets/unet_stable_cascade.py +2 -2
  78. diffusers/models/unets/uvit_2d.py +1 -1
  79. diffusers/models/upsampling.py +8 -0
  80. diffusers/pipelines/__init__.py +34 -0
  81. diffusers/pipelines/allegro/__init__.py +48 -0
  82. diffusers/pipelines/allegro/pipeline_allegro.py +938 -0
  83. diffusers/pipelines/allegro/pipeline_output.py +23 -0
  84. diffusers/pipelines/animatediff/pipeline_animatediff_controlnet.py +8 -2
  85. diffusers/pipelines/animatediff/pipeline_animatediff_sparsectrl.py +1 -1
  86. diffusers/pipelines/animatediff/pipeline_animatediff_video2video.py +0 -6
  87. diffusers/pipelines/animatediff/pipeline_animatediff_video2video_controlnet.py +8 -8
  88. diffusers/pipelines/audioldm2/modeling_audioldm2.py +3 -3
  89. diffusers/pipelines/aura_flow/pipeline_aura_flow.py +1 -8
  90. diffusers/pipelines/auto_pipeline.py +53 -6
  91. diffusers/pipelines/blip_diffusion/modeling_blip2.py +1 -1
  92. diffusers/pipelines/cogvideo/pipeline_cogvideox.py +50 -22
  93. diffusers/pipelines/cogvideo/pipeline_cogvideox_fun_control.py +51 -20
  94. diffusers/pipelines/cogvideo/pipeline_cogvideox_image2video.py +69 -21
  95. diffusers/pipelines/cogvideo/pipeline_cogvideox_video2video.py +47 -21
  96. diffusers/pipelines/cogview3/pipeline_cogview3plus.py +1 -1
  97. diffusers/pipelines/controlnet/__init__.py +86 -80
  98. diffusers/pipelines/controlnet/multicontrolnet.py +7 -178
  99. diffusers/pipelines/controlnet/pipeline_controlnet.py +11 -2
  100. diffusers/pipelines/controlnet/pipeline_controlnet_img2img.py +1 -2
  101. diffusers/pipelines/controlnet/pipeline_controlnet_inpaint.py +1 -2
  102. diffusers/pipelines/controlnet/pipeline_controlnet_inpaint_sd_xl.py +1 -2
  103. diffusers/pipelines/controlnet/pipeline_controlnet_sd_xl.py +3 -3
  104. diffusers/pipelines/controlnet/pipeline_controlnet_sd_xl_img2img.py +1 -3
  105. diffusers/pipelines/controlnet/pipeline_controlnet_union_inpaint_sd_xl.py +1790 -0
  106. diffusers/pipelines/controlnet/pipeline_controlnet_union_sd_xl.py +1501 -0
  107. diffusers/pipelines/controlnet/pipeline_controlnet_union_sd_xl_img2img.py +1627 -0
  108. diffusers/pipelines/controlnet_hunyuandit/pipeline_hunyuandit_controlnet.py +5 -1
  109. diffusers/pipelines/controlnet_sd3/pipeline_stable_diffusion_3_controlnet.py +53 -19
  110. diffusers/pipelines/controlnet_sd3/pipeline_stable_diffusion_3_controlnet_inpainting.py +7 -7
  111. diffusers/pipelines/deprecated/versatile_diffusion/modeling_text_unet.py +31 -8
  112. diffusers/pipelines/flux/__init__.py +13 -1
  113. diffusers/pipelines/flux/modeling_flux.py +47 -0
  114. diffusers/pipelines/flux/pipeline_flux.py +204 -29
  115. diffusers/pipelines/flux/pipeline_flux_control.py +889 -0
  116. diffusers/pipelines/flux/pipeline_flux_control_img2img.py +945 -0
  117. diffusers/pipelines/flux/pipeline_flux_control_inpaint.py +1141 -0
  118. diffusers/pipelines/flux/pipeline_flux_controlnet.py +49 -27
  119. diffusers/pipelines/flux/pipeline_flux_controlnet_image_to_image.py +40 -30
  120. diffusers/pipelines/flux/pipeline_flux_controlnet_inpainting.py +78 -56
  121. diffusers/pipelines/flux/pipeline_flux_fill.py +969 -0
  122. diffusers/pipelines/flux/pipeline_flux_img2img.py +33 -27
  123. diffusers/pipelines/flux/pipeline_flux_inpaint.py +36 -29
  124. diffusers/pipelines/flux/pipeline_flux_prior_redux.py +492 -0
  125. diffusers/pipelines/flux/pipeline_output.py +16 -0
  126. diffusers/pipelines/hunyuan_video/__init__.py +48 -0
  127. diffusers/pipelines/hunyuan_video/pipeline_hunyuan_video.py +687 -0
  128. diffusers/pipelines/hunyuan_video/pipeline_output.py +20 -0
  129. diffusers/pipelines/hunyuandit/pipeline_hunyuandit.py +5 -1
  130. diffusers/pipelines/kandinsky/pipeline_kandinsky_combined.py +9 -9
  131. diffusers/pipelines/kolors/text_encoder.py +2 -2
  132. diffusers/pipelines/latent_diffusion/pipeline_latent_diffusion.py +1 -1
  133. diffusers/pipelines/ltx/__init__.py +50 -0
  134. diffusers/pipelines/ltx/pipeline_ltx.py +789 -0
  135. diffusers/pipelines/ltx/pipeline_ltx_image2video.py +885 -0
  136. diffusers/pipelines/ltx/pipeline_output.py +20 -0
  137. diffusers/pipelines/lumina/pipeline_lumina.py +1 -8
  138. diffusers/pipelines/mochi/__init__.py +48 -0
  139. diffusers/pipelines/mochi/pipeline_mochi.py +748 -0
  140. diffusers/pipelines/mochi/pipeline_output.py +20 -0
  141. diffusers/pipelines/pag/__init__.py +7 -0
  142. diffusers/pipelines/pag/pipeline_pag_controlnet_sd.py +1 -2
  143. diffusers/pipelines/pag/pipeline_pag_controlnet_sd_inpaint.py +1 -2
  144. diffusers/pipelines/pag/pipeline_pag_controlnet_sd_xl.py +1 -3
  145. diffusers/pipelines/pag/pipeline_pag_controlnet_sd_xl_img2img.py +1 -3
  146. diffusers/pipelines/pag/pipeline_pag_hunyuandit.py +5 -1
  147. diffusers/pipelines/pag/pipeline_pag_pixart_sigma.py +6 -13
  148. diffusers/pipelines/pag/pipeline_pag_sana.py +886 -0
  149. diffusers/pipelines/pag/pipeline_pag_sd_3.py +6 -6
  150. diffusers/pipelines/pag/pipeline_pag_sd_3_img2img.py +1058 -0
  151. diffusers/pipelines/pag/pipeline_pag_sd_img2img.py +3 -0
  152. diffusers/pipelines/pag/pipeline_pag_sd_inpaint.py +1356 -0
  153. diffusers/pipelines/pipeline_flax_utils.py +1 -1
  154. diffusers/pipelines/pipeline_loading_utils.py +25 -4
  155. diffusers/pipelines/pipeline_utils.py +35 -6
  156. diffusers/pipelines/pixart_alpha/pipeline_pixart_alpha.py +6 -13
  157. diffusers/pipelines/pixart_alpha/pipeline_pixart_sigma.py +6 -13
  158. diffusers/pipelines/sana/__init__.py +47 -0
  159. diffusers/pipelines/sana/pipeline_output.py +21 -0
  160. diffusers/pipelines/sana/pipeline_sana.py +884 -0
  161. diffusers/pipelines/stable_audio/pipeline_stable_audio.py +12 -1
  162. diffusers/pipelines/stable_diffusion/pipeline_stable_diffusion.py +18 -3
  163. diffusers/pipelines/stable_diffusion_3/pipeline_stable_diffusion_3.py +216 -20
  164. diffusers/pipelines/stable_diffusion_3/pipeline_stable_diffusion_3_img2img.py +62 -9
  165. diffusers/pipelines/stable_diffusion_3/pipeline_stable_diffusion_3_inpaint.py +57 -8
  166. diffusers/pipelines/stable_diffusion_gligen/pipeline_stable_diffusion_gligen_text_image.py +11 -1
  167. diffusers/pipelines/stable_diffusion_xl/pipeline_stable_diffusion_xl.py +0 -8
  168. diffusers/pipelines/stable_diffusion_xl/pipeline_stable_diffusion_xl_img2img.py +0 -8
  169. diffusers/pipelines/stable_diffusion_xl/pipeline_stable_diffusion_xl_inpaint.py +0 -8
  170. diffusers/pipelines/unidiffuser/modeling_uvit.py +2 -2
  171. diffusers/pipelines/wuerstchen/modeling_wuerstchen_prior.py +1 -1
  172. diffusers/quantizers/auto.py +14 -1
  173. diffusers/quantizers/bitsandbytes/bnb_quantizer.py +4 -1
  174. diffusers/quantizers/gguf/__init__.py +1 -0
  175. diffusers/quantizers/gguf/gguf_quantizer.py +159 -0
  176. diffusers/quantizers/gguf/utils.py +456 -0
  177. diffusers/quantizers/quantization_config.py +280 -2
  178. diffusers/quantizers/torchao/__init__.py +15 -0
  179. diffusers/quantizers/torchao/torchao_quantizer.py +285 -0
  180. diffusers/schedulers/scheduling_ddpm.py +2 -6
  181. diffusers/schedulers/scheduling_ddpm_parallel.py +2 -6
  182. diffusers/schedulers/scheduling_deis_multistep.py +28 -9
  183. diffusers/schedulers/scheduling_dpmsolver_multistep.py +35 -9
  184. diffusers/schedulers/scheduling_dpmsolver_multistep_inverse.py +35 -8
  185. diffusers/schedulers/scheduling_dpmsolver_sde.py +4 -4
  186. diffusers/schedulers/scheduling_dpmsolver_singlestep.py +48 -10
  187. diffusers/schedulers/scheduling_euler_discrete.py +4 -4
  188. diffusers/schedulers/scheduling_flow_match_euler_discrete.py +153 -6
  189. diffusers/schedulers/scheduling_heun_discrete.py +4 -4
  190. diffusers/schedulers/scheduling_k_dpm_2_ancestral_discrete.py +4 -4
  191. diffusers/schedulers/scheduling_k_dpm_2_discrete.py +4 -4
  192. diffusers/schedulers/scheduling_lcm.py +2 -6
  193. diffusers/schedulers/scheduling_lms_discrete.py +4 -4
  194. diffusers/schedulers/scheduling_repaint.py +1 -1
  195. diffusers/schedulers/scheduling_sasolver.py +28 -9
  196. diffusers/schedulers/scheduling_tcd.py +2 -6
  197. diffusers/schedulers/scheduling_unipc_multistep.py +53 -8
  198. diffusers/training_utils.py +16 -2
  199. diffusers/utils/__init__.py +5 -0
  200. diffusers/utils/constants.py +1 -0
  201. diffusers/utils/dummy_pt_objects.py +180 -0
  202. diffusers/utils/dummy_torch_and_transformers_objects.py +270 -0
  203. diffusers/utils/dynamic_modules_utils.py +3 -3
  204. diffusers/utils/hub_utils.py +31 -39
  205. diffusers/utils/import_utils.py +67 -0
  206. diffusers/utils/peft_utils.py +3 -0
  207. diffusers/utils/testing_utils.py +56 -1
  208. diffusers/utils/torch_utils.py +3 -0
  209. {diffusers-0.31.0.dist-info → diffusers-0.32.0.dist-info}/METADATA +69 -69
  210. {diffusers-0.31.0.dist-info → diffusers-0.32.0.dist-info}/RECORD +214 -162
  211. {diffusers-0.31.0.dist-info → diffusers-0.32.0.dist-info}/WHEEL +1 -1
  212. {diffusers-0.31.0.dist-info → diffusers-0.32.0.dist-info}/LICENSE +0 -0
  213. {diffusers-0.31.0.dist-info → diffusers-0.32.0.dist-info}/entry_points.txt +0 -0
  214. {diffusers-0.31.0.dist-info → diffusers-0.32.0.dist-info}/top_level.txt +0 -0
@@ -23,6 +23,7 @@ from .constants import (
23
23
  DEPRECATED_REVISION_ARGS,
24
24
  DIFFUSERS_DYNAMIC_MODULE_NAME,
25
25
  FLAX_WEIGHTS_NAME,
26
+ GGUF_FILE_EXTENSION,
26
27
  HF_MODULES_CACHE,
27
28
  HUGGINGFACE_CO_RESOLVE_ENDPOINT,
28
29
  MIN_PEFT_VERSION,
@@ -66,6 +67,8 @@ from .import_utils import (
66
67
  is_bs4_available,
67
68
  is_flax_available,
68
69
  is_ftfy_available,
70
+ is_gguf_available,
71
+ is_gguf_version,
69
72
  is_google_colab,
70
73
  is_inflect_available,
71
74
  is_invisible_watermark_available,
@@ -86,6 +89,8 @@ from .import_utils import (
86
89
  is_torch_npu_available,
87
90
  is_torch_version,
88
91
  is_torch_xla_available,
92
+ is_torch_xla_version,
93
+ is_torchao_available,
89
94
  is_torchsde_available,
90
95
  is_torchvision_available,
91
96
  is_transformers_available,
@@ -34,6 +34,7 @@ ONNX_WEIGHTS_NAME = "model.onnx"
34
34
  SAFETENSORS_WEIGHTS_NAME = "diffusion_pytorch_model.safetensors"
35
35
  SAFE_WEIGHTS_INDEX_NAME = "diffusion_pytorch_model.safetensors.index.json"
36
36
  SAFETENSORS_FILE_EXTENSION = "safetensors"
37
+ GGUF_FILE_EXTENSION = "gguf"
37
38
  ONNX_EXTERNAL_WEIGHTS_NAME = "weights.pb"
38
39
  HUGGINGFACE_CO_RESOLVE_ENDPOINT = os.environ.get("HF_ENDPOINT", "https://huggingface.co")
39
40
  DIFFUSERS_DYNAMIC_MODULE_NAME = "diffusers_modules"
@@ -2,6 +2,21 @@
2
2
  from ..utils import DummyObject, requires_backends
3
3
 
4
4
 
5
+ class AllegroTransformer3DModel(metaclass=DummyObject):
6
+ _backends = ["torch"]
7
+
8
+ def __init__(self, *args, **kwargs):
9
+ requires_backends(self, ["torch"])
10
+
11
+ @classmethod
12
+ def from_config(cls, *args, **kwargs):
13
+ requires_backends(cls, ["torch"])
14
+
15
+ @classmethod
16
+ def from_pretrained(cls, *args, **kwargs):
17
+ requires_backends(cls, ["torch"])
18
+
19
+
5
20
  class AsymmetricAutoencoderKL(metaclass=DummyObject):
6
21
  _backends = ["torch"]
7
22
 
@@ -32,6 +47,21 @@ class AuraFlowTransformer2DModel(metaclass=DummyObject):
32
47
  requires_backends(cls, ["torch"])
33
48
 
34
49
 
50
+ class AutoencoderDC(metaclass=DummyObject):
51
+ _backends = ["torch"]
52
+
53
+ def __init__(self, *args, **kwargs):
54
+ requires_backends(self, ["torch"])
55
+
56
+ @classmethod
57
+ def from_config(cls, *args, **kwargs):
58
+ requires_backends(cls, ["torch"])
59
+
60
+ @classmethod
61
+ def from_pretrained(cls, *args, **kwargs):
62
+ requires_backends(cls, ["torch"])
63
+
64
+
35
65
  class AutoencoderKL(metaclass=DummyObject):
36
66
  _backends = ["torch"]
37
67
 
@@ -47,6 +77,21 @@ class AutoencoderKL(metaclass=DummyObject):
47
77
  requires_backends(cls, ["torch"])
48
78
 
49
79
 
80
+ class AutoencoderKLAllegro(metaclass=DummyObject):
81
+ _backends = ["torch"]
82
+
83
+ def __init__(self, *args, **kwargs):
84
+ requires_backends(self, ["torch"])
85
+
86
+ @classmethod
87
+ def from_config(cls, *args, **kwargs):
88
+ requires_backends(cls, ["torch"])
89
+
90
+ @classmethod
91
+ def from_pretrained(cls, *args, **kwargs):
92
+ requires_backends(cls, ["torch"])
93
+
94
+
50
95
  class AutoencoderKLCogVideoX(metaclass=DummyObject):
51
96
  _backends = ["torch"]
52
97
 
@@ -62,6 +107,51 @@ class AutoencoderKLCogVideoX(metaclass=DummyObject):
62
107
  requires_backends(cls, ["torch"])
63
108
 
64
109
 
110
+ class AutoencoderKLHunyuanVideo(metaclass=DummyObject):
111
+ _backends = ["torch"]
112
+
113
+ def __init__(self, *args, **kwargs):
114
+ requires_backends(self, ["torch"])
115
+
116
+ @classmethod
117
+ def from_config(cls, *args, **kwargs):
118
+ requires_backends(cls, ["torch"])
119
+
120
+ @classmethod
121
+ def from_pretrained(cls, *args, **kwargs):
122
+ requires_backends(cls, ["torch"])
123
+
124
+
125
+ class AutoencoderKLLTXVideo(metaclass=DummyObject):
126
+ _backends = ["torch"]
127
+
128
+ def __init__(self, *args, **kwargs):
129
+ requires_backends(self, ["torch"])
130
+
131
+ @classmethod
132
+ def from_config(cls, *args, **kwargs):
133
+ requires_backends(cls, ["torch"])
134
+
135
+ @classmethod
136
+ def from_pretrained(cls, *args, **kwargs):
137
+ requires_backends(cls, ["torch"])
138
+
139
+
140
+ class AutoencoderKLMochi(metaclass=DummyObject):
141
+ _backends = ["torch"]
142
+
143
+ def __init__(self, *args, **kwargs):
144
+ requires_backends(self, ["torch"])
145
+
146
+ @classmethod
147
+ def from_config(cls, *args, **kwargs):
148
+ requires_backends(cls, ["torch"])
149
+
150
+ @classmethod
151
+ def from_pretrained(cls, *args, **kwargs):
152
+ requires_backends(cls, ["torch"])
153
+
154
+
65
155
  class AutoencoderKLTemporalDecoder(metaclass=DummyObject):
66
156
  _backends = ["torch"]
67
157
 
@@ -167,6 +257,21 @@ class ControlNetModel(metaclass=DummyObject):
167
257
  requires_backends(cls, ["torch"])
168
258
 
169
259
 
260
+ class ControlNetUnionModel(metaclass=DummyObject):
261
+ _backends = ["torch"]
262
+
263
+ def __init__(self, *args, **kwargs):
264
+ requires_backends(self, ["torch"])
265
+
266
+ @classmethod
267
+ def from_config(cls, *args, **kwargs):
268
+ requires_backends(cls, ["torch"])
269
+
270
+ @classmethod
271
+ def from_pretrained(cls, *args, **kwargs):
272
+ requires_backends(cls, ["torch"])
273
+
274
+
170
275
  class ControlNetXSAdapter(metaclass=DummyObject):
171
276
  _backends = ["torch"]
172
277
 
@@ -287,6 +392,21 @@ class HunyuanDiT2DMultiControlNetModel(metaclass=DummyObject):
287
392
  requires_backends(cls, ["torch"])
288
393
 
289
394
 
395
+ class HunyuanVideoTransformer3DModel(metaclass=DummyObject):
396
+ _backends = ["torch"]
397
+
398
+ def __init__(self, *args, **kwargs):
399
+ requires_backends(self, ["torch"])
400
+
401
+ @classmethod
402
+ def from_config(cls, *args, **kwargs):
403
+ requires_backends(cls, ["torch"])
404
+
405
+ @classmethod
406
+ def from_pretrained(cls, *args, **kwargs):
407
+ requires_backends(cls, ["torch"])
408
+
409
+
290
410
  class I2VGenXLUNet(metaclass=DummyObject):
291
411
  _backends = ["torch"]
292
412
 
@@ -332,6 +452,21 @@ class LatteTransformer3DModel(metaclass=DummyObject):
332
452
  requires_backends(cls, ["torch"])
333
453
 
334
454
 
455
+ class LTXVideoTransformer3DModel(metaclass=DummyObject):
456
+ _backends = ["torch"]
457
+
458
+ def __init__(self, *args, **kwargs):
459
+ requires_backends(self, ["torch"])
460
+
461
+ @classmethod
462
+ def from_config(cls, *args, **kwargs):
463
+ requires_backends(cls, ["torch"])
464
+
465
+ @classmethod
466
+ def from_pretrained(cls, *args, **kwargs):
467
+ requires_backends(cls, ["torch"])
468
+
469
+
335
470
  class LuminaNextDiT2DModel(metaclass=DummyObject):
336
471
  _backends = ["torch"]
337
472
 
@@ -347,6 +482,21 @@ class LuminaNextDiT2DModel(metaclass=DummyObject):
347
482
  requires_backends(cls, ["torch"])
348
483
 
349
484
 
485
+ class MochiTransformer3DModel(metaclass=DummyObject):
486
+ _backends = ["torch"]
487
+
488
+ def __init__(self, *args, **kwargs):
489
+ requires_backends(self, ["torch"])
490
+
491
+ @classmethod
492
+ def from_config(cls, *args, **kwargs):
493
+ requires_backends(cls, ["torch"])
494
+
495
+ @classmethod
496
+ def from_pretrained(cls, *args, **kwargs):
497
+ requires_backends(cls, ["torch"])
498
+
499
+
350
500
  class ModelMixin(metaclass=DummyObject):
351
501
  _backends = ["torch"]
352
502
 
@@ -392,6 +542,21 @@ class MultiAdapter(metaclass=DummyObject):
392
542
  requires_backends(cls, ["torch"])
393
543
 
394
544
 
545
+ class MultiControlNetModel(metaclass=DummyObject):
546
+ _backends = ["torch"]
547
+
548
+ def __init__(self, *args, **kwargs):
549
+ requires_backends(self, ["torch"])
550
+
551
+ @classmethod
552
+ def from_config(cls, *args, **kwargs):
553
+ requires_backends(cls, ["torch"])
554
+
555
+ @classmethod
556
+ def from_pretrained(cls, *args, **kwargs):
557
+ requires_backends(cls, ["torch"])
558
+
559
+
395
560
  class PixArtTransformer2DModel(metaclass=DummyObject):
396
561
  _backends = ["torch"]
397
562
 
@@ -422,6 +587,21 @@ class PriorTransformer(metaclass=DummyObject):
422
587
  requires_backends(cls, ["torch"])
423
588
 
424
589
 
590
+ class SanaTransformer2DModel(metaclass=DummyObject):
591
+ _backends = ["torch"]
592
+
593
+ def __init__(self, *args, **kwargs):
594
+ requires_backends(self, ["torch"])
595
+
596
+ @classmethod
597
+ def from_config(cls, *args, **kwargs):
598
+ requires_backends(cls, ["torch"])
599
+
600
+ @classmethod
601
+ def from_pretrained(cls, *args, **kwargs):
602
+ requires_backends(cls, ["torch"])
603
+
604
+
425
605
  class SD3ControlNetModel(metaclass=DummyObject):
426
606
  _backends = ["torch"]
427
607
 
@@ -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
 
@@ -362,6 +377,36 @@ class CycleDiffusionPipeline(metaclass=DummyObject):
362
377
  requires_backends(cls, ["torch", "transformers"])
363
378
 
364
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
+
365
410
  class FluxControlNetImg2ImgPipeline(metaclass=DummyObject):
366
411
  _backends = ["torch", "transformers"]
367
412
 
@@ -407,6 +452,36 @@ class FluxControlNetPipeline(metaclass=DummyObject):
407
452
  requires_backends(cls, ["torch", "transformers"])
408
453
 
409
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
+
410
485
  class FluxImg2ImgPipeline(metaclass=DummyObject):
411
486
  _backends = ["torch", "transformers"]
412
487
 
@@ -452,6 +527,21 @@ class FluxPipeline(metaclass=DummyObject):
452
527
  requires_backends(cls, ["torch", "transformers"])
453
528
 
454
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
+
455
545
  class HunyuanDiTControlNetPipeline(metaclass=DummyObject):
456
546
  _backends = ["torch", "transformers"]
457
547
 
@@ -497,6 +587,21 @@ class HunyuanDiTPipeline(metaclass=DummyObject):
497
587
  requires_backends(cls, ["torch", "transformers"])
498
588
 
499
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
+
500
605
  class I2VGenXLPipeline(metaclass=DummyObject):
501
606
  _backends = ["torch", "transformers"]
502
607
 
@@ -992,6 +1097,36 @@ class LEditsPPPipelineStableDiffusionXL(metaclass=DummyObject):
992
1097
  requires_backends(cls, ["torch", "transformers"])
993
1098
 
994
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
+
995
1130
  class LuminaText2ImgPipeline(metaclass=DummyObject):
996
1131
  _backends = ["torch", "transformers"]
997
1132
 
@@ -1037,6 +1172,21 @@ class MarigoldNormalsPipeline(metaclass=DummyObject):
1037
1172
  requires_backends(cls, ["torch", "transformers"])
1038
1173
 
1039
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
+
1040
1190
  class MusicLDMPipeline(metaclass=DummyObject):
1041
1191
  _backends = ["torch", "transformers"]
1042
1192
 
@@ -1127,6 +1277,51 @@ class PixArtSigmaPipeline(metaclass=DummyObject):
1127
1277
  requires_backends(cls, ["torch", "transformers"])
1128
1278
 
1129
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
+
1130
1325
  class SemanticStableDiffusionPipeline(metaclass=DummyObject):
1131
1326
  _backends = ["torch", "transformers"]
1132
1327
 
@@ -1292,6 +1487,21 @@ class StableDiffusion3InpaintPipeline(metaclass=DummyObject):
1292
1487
  requires_backends(cls, ["torch", "transformers"])
1293
1488
 
1294
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
+
1295
1505
  class StableDiffusion3PAGPipeline(metaclass=DummyObject):
1296
1506
  _backends = ["torch", "transformers"]
1297
1507
 
@@ -1637,6 +1847,21 @@ class StableDiffusionPAGImg2ImgPipeline(metaclass=DummyObject):
1637
1847
  requires_backends(cls, ["torch", "transformers"])
1638
1848
 
1639
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
+
1640
1865
  class StableDiffusionPAGPipeline(metaclass=DummyObject):
1641
1866
  _backends = ["torch", "transformers"]
1642
1867
 
@@ -1847,6 +2072,51 @@ class StableDiffusionXLControlNetPipeline(metaclass=DummyObject):
1847
2072
  requires_backends(cls, ["torch", "transformers"])
1848
2073
 
1849
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
+
1850
2120
  class StableDiffusionXLControlNetXSPipeline(metaclass=DummyObject):
1851
2121
  _backends = ["torch", "transformers"]
1852
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: