__init__.py 11 KB
Newer Older
Aryan's avatar
Aryan committed
1
# Copyright 2025 The HuggingFace Team. All rights reserved.
2
3
4
5
6
7
8
9
10
11
12
13
14
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

15
16
from typing import TYPE_CHECKING

Suraj Patil's avatar
Suraj Patil committed
17
18
19
20
21
22
from ..utils import (
    DIFFUSERS_SLOW_IMPORT,
    _LazyModule,
    is_flax_available,
    is_torch_available,
)
23
24


Dhruv Nair's avatar
Dhruv Nair committed
25
26
_import_structure = {}

27
if is_torch_available():
Dhruv Nair's avatar
Dhruv Nair committed
28
    _import_structure["adapter"] = ["MultiAdapter", "T2IAdapter"]
29
    _import_structure["attention_dispatch"] = ["AttentionBackendName", "attention_backend"]
30
    _import_structure["auto_model"] = ["AutoModel"]
31
    _import_structure["autoencoders.autoencoder_asym_kl"] = ["AsymmetricAutoencoderKL"]
32
    _import_structure["autoencoders.autoencoder_dc"] = ["AutoencoderDC"]
33
    _import_structure["autoencoders.autoencoder_kl"] = ["AutoencoderKL"]
Aryan's avatar
Aryan committed
34
    _import_structure["autoencoders.autoencoder_kl_allegro"] = ["AutoencoderKLAllegro"]
35
    _import_structure["autoencoders.autoencoder_kl_cogvideox"] = ["AutoencoderKLCogVideoX"]
Aryan's avatar
Aryan committed
36
    _import_structure["autoencoders.autoencoder_kl_cosmos"] = ["AutoencoderKLCosmos"]
Aryan's avatar
Aryan committed
37
    _import_structure["autoencoders.autoencoder_kl_hunyuan_video"] = ["AutoencoderKLHunyuanVideo"]
Aryan's avatar
Aryan committed
38
    _import_structure["autoencoders.autoencoder_kl_ltx"] = ["AutoencoderKLLTXVideo"]
39
    _import_structure["autoencoders.autoencoder_kl_magvit"] = ["AutoencoderKLMagvit"]
Aryan's avatar
Aryan committed
40
    _import_structure["autoencoders.autoencoder_kl_mochi"] = ["AutoencoderKLMochi"]
naykun's avatar
naykun committed
41
    _import_structure["autoencoders.autoencoder_kl_qwenimage"] = ["AutoencoderKLQwenImage"]
42
    _import_structure["autoencoders.autoencoder_kl_temporal_decoder"] = ["AutoencoderKLTemporalDecoder"]
43
    _import_structure["autoencoders.autoencoder_kl_wan"] = ["AutoencoderKLWan"]
44
    _import_structure["autoencoders.autoencoder_oobleck"] = ["AutoencoderOobleck"]
45
46
    _import_structure["autoencoders.autoencoder_tiny"] = ["AutoencoderTiny"]
    _import_structure["autoencoders.consistency_decoder_vae"] = ["ConsistencyDecoderVAE"]
47
    _import_structure["autoencoders.vq_model"] = ["VQModel"]
48
    _import_structure["cache_utils"] = ["CacheMixin"]
49
50
51
52
53
54
    _import_structure["controlnets.controlnet"] = ["ControlNetModel"]
    _import_structure["controlnets.controlnet_flux"] = ["FluxControlNetModel", "FluxMultiControlNetModel"]
    _import_structure["controlnets.controlnet_hunyuan"] = [
        "HunyuanDiT2DControlNetModel",
        "HunyuanDiT2DMultiControlNetModel",
    ]
55
    _import_structure["controlnets.controlnet_sana"] = ["SanaControlNetModel"]
56
57
    _import_structure["controlnets.controlnet_sd3"] = ["SD3ControlNetModel", "SD3MultiControlNetModel"]
    _import_structure["controlnets.controlnet_sparsectrl"] = ["SparseControlNetModel"]
hlky's avatar
hlky committed
58
    _import_structure["controlnets.controlnet_union"] = ["ControlNetUnionModel"]
59
60
    _import_structure["controlnets.controlnet_xs"] = ["ControlNetXSAdapter", "UNetControlNetXSModel"]
    _import_structure["controlnets.multicontrolnet"] = ["MultiControlNetModel"]
61
    _import_structure["controlnets.multicontrolnet_union"] = ["MultiControlNetUnionModel"]
62
    _import_structure["embeddings"] = ["ImageProjection"]
63
    _import_structure["modeling_utils"] = ["ModelMixin"]
Sayak Paul's avatar
Sayak Paul committed
64
    _import_structure["transformers.auraflow_transformer_2d"] = ["AuraFlowTransformer2DModel"]
65
    _import_structure["transformers.cogvideox_transformer_3d"] = ["CogVideoXTransformer3DModel"]
Shenghai Yuan's avatar
Shenghai Yuan committed
66
    _import_structure["transformers.consisid_transformer_3d"] = ["ConsisIDTransformer3DModel"]
67
    _import_structure["transformers.dit_transformer_2d"] = ["DiTTransformer2DModel"]
68
    _import_structure["transformers.dual_transformer_2d"] = ["DualTransformer2DModel"]
69
    _import_structure["transformers.hunyuan_transformer_2d"] = ["HunyuanDiT2DModel"]
70
    _import_structure["transformers.latte_transformer_3d"] = ["LatteTransformer3DModel"]
71
    _import_structure["transformers.lumina_nextdit2d"] = ["LuminaNextDiT2DModel"]
72
    _import_structure["transformers.pixart_transformer_2d"] = ["PixArtTransformer2DModel"]
73
    _import_structure["transformers.prior_transformer"] = ["PriorTransformer"]
74
    _import_structure["transformers.sana_transformer"] = ["SanaTransformer2DModel"]
75
    _import_structure["transformers.stable_audio_transformer"] = ["StableAudioDiTModel"]
76
77
    _import_structure["transformers.t5_film_transformer"] = ["T5FilmDecoder"]
    _import_structure["transformers.transformer_2d"] = ["Transformer2DModel"]
Aryan's avatar
Aryan committed
78
    _import_structure["transformers.transformer_allegro"] = ["AllegroTransformer3DModel"]
galbria's avatar
galbria committed
79
    _import_structure["transformers.transformer_bria"] = ["BriaTransformer2DModel"]
Edna's avatar
Edna committed
80
    _import_structure["transformers.transformer_chroma"] = ["ChromaTransformer2DModel"]
Yuxuan.Zhang's avatar
Yuxuan.Zhang committed
81
    _import_structure["transformers.transformer_cogview3plus"] = ["CogView3PlusTransformer2DModel"]
82
    _import_structure["transformers.transformer_cogview4"] = ["CogView4Transformer2DModel"]
Aryan's avatar
Aryan committed
83
    _import_structure["transformers.transformer_cosmos"] = ["CosmosTransformer3DModel"]
84
    _import_structure["transformers.transformer_easyanimate"] = ["EasyAnimateTransformer3DModel"]
Sayak Paul's avatar
Sayak Paul committed
85
    _import_structure["transformers.transformer_flux"] = ["FluxTransformer2DModel"]
hlky's avatar
hlky committed
86
    _import_structure["transformers.transformer_hidream_image"] = ["HiDreamImageTransformer2DModel"]
Aryan's avatar
Aryan committed
87
    _import_structure["transformers.transformer_hunyuan_video"] = ["HunyuanVideoTransformer3DModel"]
Aryan's avatar
Aryan committed
88
    _import_structure["transformers.transformer_hunyuan_video_framepack"] = ["HunyuanVideoFramepackTransformer3DModel"]
Aryan's avatar
Aryan committed
89
    _import_structure["transformers.transformer_ltx"] = ["LTXVideoTransformer3DModel"]
Le Zhuo's avatar
Le Zhuo committed
90
    _import_structure["transformers.transformer_lumina2"] = ["Lumina2Transformer2DModel"]
Aryan's avatar
Aryan committed
91
    _import_structure["transformers.transformer_mochi"] = ["MochiTransformer3DModel"]
Shitao Xiao's avatar
Shitao Xiao committed
92
    _import_structure["transformers.transformer_omnigen"] = ["OmniGenTransformer2DModel"]
naykun's avatar
naykun committed
93
    _import_structure["transformers.transformer_qwenimage"] = ["QwenImageTransformer2DModel"]
Dhruv Nair's avatar
Dhruv Nair committed
94
    _import_structure["transformers.transformer_sd3"] = ["SD3Transformer2DModel"]
95
    _import_structure["transformers.transformer_skyreels_v2"] = ["SkyReelsV2Transformer3DModel"]
96
    _import_structure["transformers.transformer_temporal"] = ["TransformerTemporalModel"]
97
    _import_structure["transformers.transformer_wan"] = ["WanTransformer3DModel"]
Aryan's avatar
Aryan committed
98
    _import_structure["transformers.transformer_wan_vace"] = ["WanVACETransformer3DModel"]
99
100
101
102
    _import_structure["unets.unet_1d"] = ["UNet1DModel"]
    _import_structure["unets.unet_2d"] = ["UNet2DModel"]
    _import_structure["unets.unet_2d_condition"] = ["UNet2DConditionModel"]
    _import_structure["unets.unet_3d_condition"] = ["UNet3DConditionModel"]
103
    _import_structure["unets.unet_i2vgen_xl"] = ["I2VGenXLUNet"]
104
105
106
    _import_structure["unets.unet_kandinsky3"] = ["Kandinsky3UNet"]
    _import_structure["unets.unet_motion_model"] = ["MotionAdapter", "UNetMotionModel"]
    _import_structure["unets.unet_spatio_temporal_condition"] = ["UNetSpatioTemporalConditionModel"]
107
    _import_structure["unets.unet_stable_cascade"] = ["StableCascadeUNet"]
108
    _import_structure["unets.uvit_2d"] = ["UVit2DModel"]
109
110

if is_flax_available():
111
    _import_structure["controlnets.controlnet_flax"] = ["FlaxControlNetModel"]
112
    _import_structure["unets.unet_2d_condition_flax"] = ["FlaxUNet2DConditionModel"]
Dhruv Nair's avatar
Dhruv Nair committed
113
114
115
    _import_structure["vae_flax"] = ["FlaxAutoencoderKL"]


116
if TYPE_CHECKING or DIFFUSERS_SLOW_IMPORT:
117
118
    if is_torch_available():
        from .adapter import MultiAdapter, T2IAdapter
119
        from .attention_dispatch import AttentionBackendName, attention_backend
hlky's avatar
hlky committed
120
        from .auto_model import AutoModel
121
122
        from .autoencoders import (
            AsymmetricAutoencoderKL,
123
            AutoencoderDC,
124
            AutoencoderKL,
Aryan's avatar
Aryan committed
125
            AutoencoderKLAllegro,
126
            AutoencoderKLCogVideoX,
Aryan's avatar
Aryan committed
127
            AutoencoderKLCosmos,
Aryan's avatar
Aryan committed
128
            AutoencoderKLHunyuanVideo,
Aryan's avatar
Aryan committed
129
            AutoencoderKLLTXVideo,
130
            AutoencoderKLMagvit,
Aryan's avatar
Aryan committed
131
            AutoencoderKLMochi,
naykun's avatar
naykun committed
132
            AutoencoderKLQwenImage,
133
            AutoencoderKLTemporalDecoder,
134
            AutoencoderKLWan,
135
            AutoencoderOobleck,
136
137
            AutoencoderTiny,
            ConsistencyDecoderVAE,
138
            VQModel,
139
        )
140
        from .cache_utils import CacheMixin
141
142
        from .controlnets import (
            ControlNetModel,
hlky's avatar
hlky committed
143
            ControlNetUnionModel,
144
145
146
147
148
149
            ControlNetXSAdapter,
            FluxControlNetModel,
            FluxMultiControlNetModel,
            HunyuanDiT2DControlNetModel,
            HunyuanDiT2DMultiControlNetModel,
            MultiControlNetModel,
150
            MultiControlNetUnionModel,
151
            SanaControlNetModel,
152
153
154
155
156
            SD3ControlNetModel,
            SD3MultiControlNetModel,
            SparseControlNetModel,
            UNetControlNetXSModel,
        )
157
        from .embeddings import ImageProjection
158
        from .modeling_utils import ModelMixin
159
        from .transformers import (
Aryan's avatar
Aryan committed
160
            AllegroTransformer3DModel,
Sayak Paul's avatar
Sayak Paul committed
161
            AuraFlowTransformer2DModel,
galbria's avatar
galbria committed
162
            BriaTransformer2DModel,
Edna's avatar
Edna committed
163
            ChromaTransformer2DModel,
164
            CogVideoXTransformer3DModel,
Yuxuan.Zhang's avatar
Yuxuan.Zhang committed
165
            CogView3PlusTransformer2DModel,
166
            CogView4Transformer2DModel,
Shenghai Yuan's avatar
Shenghai Yuan committed
167
            ConsisIDTransformer3DModel,
Aryan's avatar
Aryan committed
168
            CosmosTransformer3DModel,
169
            DiTTransformer2DModel,
170
            DualTransformer2DModel,
171
            EasyAnimateTransformer3DModel,
Sayak Paul's avatar
Sayak Paul committed
172
            FluxTransformer2DModel,
hlky's avatar
hlky committed
173
            HiDreamImageTransformer2DModel,
174
            HunyuanDiT2DModel,
Aryan's avatar
Aryan committed
175
            HunyuanVideoFramepackTransformer3DModel,
Aryan's avatar
Aryan committed
176
            HunyuanVideoTransformer3DModel,
177
            LatteTransformer3DModel,
Aryan's avatar
Aryan committed
178
            LTXVideoTransformer3DModel,
Le Zhuo's avatar
Le Zhuo committed
179
            Lumina2Transformer2DModel,
180
            LuminaNextDiT2DModel,
Aryan's avatar
Aryan committed
181
            MochiTransformer3DModel,
Shitao Xiao's avatar
Shitao Xiao committed
182
            OmniGenTransformer2DModel,
183
            PixArtTransformer2DModel,
184
            PriorTransformer,
naykun's avatar
naykun committed
185
            QwenImageTransformer2DModel,
186
            SanaTransformer2DModel,
Dhruv Nair's avatar
Dhruv Nair committed
187
            SD3Transformer2DModel,
188
            SkyReelsV2Transformer3DModel,
189
            StableAudioDiTModel,
190
191
192
            T5FilmDecoder,
            Transformer2DModel,
            TransformerTemporalModel,
193
            WanTransformer3DModel,
Aryan's avatar
Aryan committed
194
            WanVACETransformer3DModel,
195
        )
196
        from .unets import (
197
            I2VGenXLUNet,
198
199
            Kandinsky3UNet,
            MotionAdapter,
200
            StableCascadeUNet,
201
202
203
204
205
206
207
208
            UNet1DModel,
            UNet2DConditionModel,
            UNet2DModel,
            UNet3DConditionModel,
            UNetMotionModel,
            UNetSpatioTemporalConditionModel,
            UVit2DModel,
        )
209
210

    if is_flax_available():
211
        from .controlnets import FlaxControlNetModel
212
        from .unets import FlaxUNet2DConditionModel
213
214
215
216
        from .vae_flax import FlaxAutoencoderKL

else:
    import sys
Dhruv Nair's avatar
Dhruv Nair committed
217

218
    sys.modules[__name__] = _LazyModule(__name__, globals()["__file__"], _import_structure, module_spec=__spec__)