__init__.py 9.35 KB
Newer Older
1
# Copyright 2024 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["autoencoders.autoencoder_asym_kl"] = ["AsymmetricAutoencoderKL"]
30
    _import_structure["autoencoders.autoencoder_dc"] = ["AutoencoderDC"]
31
    _import_structure["autoencoders.autoencoder_kl"] = ["AutoencoderKL"]
Aryan's avatar
Aryan committed
32
    _import_structure["autoencoders.autoencoder_kl_allegro"] = ["AutoencoderKLAllegro"]
33
    _import_structure["autoencoders.autoencoder_kl_cogvideox"] = ["AutoencoderKLCogVideoX"]
Aryan's avatar
Aryan committed
34
    _import_structure["autoencoders.autoencoder_kl_hunyuan_video"] = ["AutoencoderKLHunyuanVideo"]
Aryan's avatar
Aryan committed
35
    _import_structure["autoencoders.autoencoder_kl_ltx"] = ["AutoencoderKLLTXVideo"]
36
    _import_structure["autoencoders.autoencoder_kl_magvit"] = ["AutoencoderKLMagvit"]
Aryan's avatar
Aryan committed
37
    _import_structure["autoencoders.autoencoder_kl_mochi"] = ["AutoencoderKLMochi"]
38
    _import_structure["autoencoders.autoencoder_kl_temporal_decoder"] = ["AutoencoderKLTemporalDecoder"]
39
    _import_structure["autoencoders.autoencoder_kl_wan"] = ["AutoencoderKLWan"]
40
    _import_structure["autoencoders.autoencoder_oobleck"] = ["AutoencoderOobleck"]
41
42
    _import_structure["autoencoders.autoencoder_tiny"] = ["AutoencoderTiny"]
    _import_structure["autoencoders.consistency_decoder_vae"] = ["ConsistencyDecoderVAE"]
43
    _import_structure["autoencoders.vq_model"] = ["VQModel"]
44
    _import_structure["cache_utils"] = ["CacheMixin"]
45
46
47
48
49
50
51
52
    _import_structure["controlnets.controlnet"] = ["ControlNetModel"]
    _import_structure["controlnets.controlnet_flux"] = ["FluxControlNetModel", "FluxMultiControlNetModel"]
    _import_structure["controlnets.controlnet_hunyuan"] = [
        "HunyuanDiT2DControlNetModel",
        "HunyuanDiT2DMultiControlNetModel",
    ]
    _import_structure["controlnets.controlnet_sd3"] = ["SD3ControlNetModel", "SD3MultiControlNetModel"]
    _import_structure["controlnets.controlnet_sparsectrl"] = ["SparseControlNetModel"]
hlky's avatar
hlky committed
53
    _import_structure["controlnets.controlnet_union"] = ["ControlNetUnionModel"]
54
55
    _import_structure["controlnets.controlnet_xs"] = ["ControlNetXSAdapter", "UNetControlNetXSModel"]
    _import_structure["controlnets.multicontrolnet"] = ["MultiControlNetModel"]
56
    _import_structure["controlnets.multicontrolnet_union"] = ["MultiControlNetUnionModel"]
57
    _import_structure["embeddings"] = ["ImageProjection"]
58
    _import_structure["modeling_utils"] = ["ModelMixin"]
Sayak Paul's avatar
Sayak Paul committed
59
    _import_structure["transformers.auraflow_transformer_2d"] = ["AuraFlowTransformer2DModel"]
60
    _import_structure["transformers.cogvideox_transformer_3d"] = ["CogVideoXTransformer3DModel"]
Shenghai Yuan's avatar
Shenghai Yuan committed
61
    _import_structure["transformers.consisid_transformer_3d"] = ["ConsisIDTransformer3DModel"]
62
    _import_structure["transformers.dit_transformer_2d"] = ["DiTTransformer2DModel"]
63
    _import_structure["transformers.dual_transformer_2d"] = ["DualTransformer2DModel"]
64
    _import_structure["transformers.hunyuan_transformer_2d"] = ["HunyuanDiT2DModel"]
65
    _import_structure["transformers.latte_transformer_3d"] = ["LatteTransformer3DModel"]
66
    _import_structure["transformers.lumina_nextdit2d"] = ["LuminaNextDiT2DModel"]
67
    _import_structure["transformers.pixart_transformer_2d"] = ["PixArtTransformer2DModel"]
68
    _import_structure["transformers.prior_transformer"] = ["PriorTransformer"]
69
    _import_structure["transformers.sana_transformer"] = ["SanaTransformer2DModel"]
70
    _import_structure["transformers.stable_audio_transformer"] = ["StableAudioDiTModel"]
71
72
    _import_structure["transformers.t5_film_transformer"] = ["T5FilmDecoder"]
    _import_structure["transformers.transformer_2d"] = ["Transformer2DModel"]
Aryan's avatar
Aryan committed
73
    _import_structure["transformers.transformer_allegro"] = ["AllegroTransformer3DModel"]
Yuxuan.Zhang's avatar
Yuxuan.Zhang committed
74
    _import_structure["transformers.transformer_cogview3plus"] = ["CogView3PlusTransformer2DModel"]
75
    _import_structure["transformers.transformer_cogview4"] = ["CogView4Transformer2DModel"]
76
    _import_structure["transformers.transformer_easyanimate"] = ["EasyAnimateTransformer3DModel"]
Sayak Paul's avatar
Sayak Paul committed
77
    _import_structure["transformers.transformer_flux"] = ["FluxTransformer2DModel"]
Aryan's avatar
Aryan committed
78
    _import_structure["transformers.transformer_hunyuan_video"] = ["HunyuanVideoTransformer3DModel"]
Aryan's avatar
Aryan committed
79
    _import_structure["transformers.transformer_ltx"] = ["LTXVideoTransformer3DModel"]
Le Zhuo's avatar
Le Zhuo committed
80
    _import_structure["transformers.transformer_lumina2"] = ["Lumina2Transformer2DModel"]
Aryan's avatar
Aryan committed
81
    _import_structure["transformers.transformer_mochi"] = ["MochiTransformer3DModel"]
Shitao Xiao's avatar
Shitao Xiao committed
82
    _import_structure["transformers.transformer_omnigen"] = ["OmniGenTransformer2DModel"]
Dhruv Nair's avatar
Dhruv Nair committed
83
    _import_structure["transformers.transformer_sd3"] = ["SD3Transformer2DModel"]
84
    _import_structure["transformers.transformer_temporal"] = ["TransformerTemporalModel"]
85
    _import_structure["transformers.transformer_wan"] = ["WanTransformer3DModel"]
86
87
88
89
    _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"]
90
    _import_structure["unets.unet_i2vgen_xl"] = ["I2VGenXLUNet"]
91
92
93
    _import_structure["unets.unet_kandinsky3"] = ["Kandinsky3UNet"]
    _import_structure["unets.unet_motion_model"] = ["MotionAdapter", "UNetMotionModel"]
    _import_structure["unets.unet_spatio_temporal_condition"] = ["UNetSpatioTemporalConditionModel"]
94
    _import_structure["unets.unet_stable_cascade"] = ["StableCascadeUNet"]
95
    _import_structure["unets.uvit_2d"] = ["UVit2DModel"]
96
97

if is_flax_available():
98
    _import_structure["controlnets.controlnet_flax"] = ["FlaxControlNetModel"]
99
    _import_structure["unets.unet_2d_condition_flax"] = ["FlaxUNet2DConditionModel"]
Dhruv Nair's avatar
Dhruv Nair committed
100
101
102
    _import_structure["vae_flax"] = ["FlaxAutoencoderKL"]


103
if TYPE_CHECKING or DIFFUSERS_SLOW_IMPORT:
104
105
    if is_torch_available():
        from .adapter import MultiAdapter, T2IAdapter
106
107
        from .autoencoders import (
            AsymmetricAutoencoderKL,
108
            AutoencoderDC,
109
            AutoencoderKL,
Aryan's avatar
Aryan committed
110
            AutoencoderKLAllegro,
111
            AutoencoderKLCogVideoX,
Aryan's avatar
Aryan committed
112
            AutoencoderKLHunyuanVideo,
Aryan's avatar
Aryan committed
113
            AutoencoderKLLTXVideo,
114
            AutoencoderKLMagvit,
Aryan's avatar
Aryan committed
115
            AutoencoderKLMochi,
116
            AutoencoderKLTemporalDecoder,
117
            AutoencoderKLWan,
118
            AutoencoderOobleck,
119
120
            AutoencoderTiny,
            ConsistencyDecoderVAE,
121
            VQModel,
122
        )
123
        from .cache_utils import CacheMixin
124
125
        from .controlnets import (
            ControlNetModel,
hlky's avatar
hlky committed
126
            ControlNetUnionModel,
127
128
129
130
131
132
            ControlNetXSAdapter,
            FluxControlNetModel,
            FluxMultiControlNetModel,
            HunyuanDiT2DControlNetModel,
            HunyuanDiT2DMultiControlNetModel,
            MultiControlNetModel,
133
            MultiControlNetUnionModel,
134
135
136
137
138
            SD3ControlNetModel,
            SD3MultiControlNetModel,
            SparseControlNetModel,
            UNetControlNetXSModel,
        )
139
        from .embeddings import ImageProjection
140
        from .modeling_utils import ModelMixin
141
        from .transformers import (
Aryan's avatar
Aryan committed
142
            AllegroTransformer3DModel,
Sayak Paul's avatar
Sayak Paul committed
143
            AuraFlowTransformer2DModel,
144
            CogVideoXTransformer3DModel,
Yuxuan.Zhang's avatar
Yuxuan.Zhang committed
145
            CogView3PlusTransformer2DModel,
146
            CogView4Transformer2DModel,
Shenghai Yuan's avatar
Shenghai Yuan committed
147
            ConsisIDTransformer3DModel,
148
            DiTTransformer2DModel,
149
            DualTransformer2DModel,
150
            EasyAnimateTransformer3DModel,
Sayak Paul's avatar
Sayak Paul committed
151
            FluxTransformer2DModel,
152
            HunyuanDiT2DModel,
Aryan's avatar
Aryan committed
153
            HunyuanVideoTransformer3DModel,
154
            LatteTransformer3DModel,
Aryan's avatar
Aryan committed
155
            LTXVideoTransformer3DModel,
Le Zhuo's avatar
Le Zhuo committed
156
            Lumina2Transformer2DModel,
157
            LuminaNextDiT2DModel,
Aryan's avatar
Aryan committed
158
            MochiTransformer3DModel,
Shitao Xiao's avatar
Shitao Xiao committed
159
            OmniGenTransformer2DModel,
160
            PixArtTransformer2DModel,
161
            PriorTransformer,
162
            SanaTransformer2DModel,
Dhruv Nair's avatar
Dhruv Nair committed
163
            SD3Transformer2DModel,
164
            StableAudioDiTModel,
165
166
167
            T5FilmDecoder,
            Transformer2DModel,
            TransformerTemporalModel,
168
            WanTransformer3DModel,
169
        )
170
        from .unets import (
171
            I2VGenXLUNet,
172
173
            Kandinsky3UNet,
            MotionAdapter,
174
            StableCascadeUNet,
175
176
177
178
179
180
181
182
            UNet1DModel,
            UNet2DConditionModel,
            UNet2DModel,
            UNet3DConditionModel,
            UNetMotionModel,
            UNetSpatioTemporalConditionModel,
            UVit2DModel,
        )
183
184

    if is_flax_available():
185
        from .controlnets import FlaxControlNetModel
186
        from .unets import FlaxUNet2DConditionModel
187
188
189
190
        from .vae_flax import FlaxAutoencoderKL

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

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