


from typing import TYPE_CHECKING

from ...utils import OptionalDependencyNotAvailable, _LazyModule, is_torch_available, is_vision_available


snake_case    :   Optional[int]	    = {
    '''configuration_bridgetower''': [
        '''BRIDGETOWER_PRETRAINED_CONFIG_ARCHIVE_MAP''',
        '''BridgeTowerConfig''',
        '''BridgeTowerTextConfig''',
        '''BridgeTowerVisionConfig''',
    ],
    '''processing_bridgetower''': ['''BridgeTowerProcessor'''],
}

try:
     if not is_vision_available():
          raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
     pass
else:
     snake_case    :   Optional[int]	    = ['''BridgeTowerImageProcessor''']

try:
     if not is_torch_available():
          raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
     pass
else:
     snake_case    :   Any	    = [
         '''BRIDGETOWER_PRETRAINED_MODEL_ARCHIVE_LIST''',
         '''BridgeTowerForContrastiveLearning''',
         '''BridgeTowerForImageAndTextRetrieval''',
         '''BridgeTowerForMaskedLM''',
         '''BridgeTowerModel''',
         '''BridgeTowerPreTrainedModel''',
     ]


if TYPE_CHECKING:
     from .configuration_bridgetower import (
         BRIDGETOWER_PRETRAINED_CONFIG_ARCHIVE_MAP,
         BridgeTowerConfig,
         BridgeTowerTextConfig,
         BridgeTowerVisionConfig,
     )
     from .processing_bridgetower import BridgeTowerProcessor

     try:
          if not is_vision_available():
               raise OptionalDependencyNotAvailable()
     except OptionalDependencyNotAvailable:
          pass
     else:
          from .image_processing_bridgetower import BridgeTowerImageProcessor

     try:
          if not is_torch_available():
               raise OptionalDependencyNotAvailable()
     except OptionalDependencyNotAvailable:
          pass
     else:
          from .modeling_bridgetower import (
              BRIDGETOWER_PRETRAINED_MODEL_ARCHIVE_LIST,
              BridgeTowerForContrastiveLearning,
              BridgeTowerForImageAndTextRetrieval,
              BridgeTowerForMaskedLM,
              BridgeTowerModel,
              BridgeTowerPreTrainedModel,
          )


else:
     import sys

     snake_case    :   Tuple	    = _LazyModule(__name__, globals()['''__file__'''], _import_structure)









from ...utils import (
    OptionalDependencyNotAvailable,
    is_flax_available,
    is_torch_available,
    is_transformers_available,
)


try:
     if not (is_transformers_available() and is_torch_available()):
          raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
     from ...utils.dummy_torch_and_transformers_objects import *  # noqa F403
else:
     from .multicontrolnet import MultiControlNetModel
     from .pipeline_controlnet import StableDiffusionControlNetPipeline
     from .pipeline_controlnet_imgaimg import StableDiffusionControlNetImgaImgPipeline
     from .pipeline_controlnet_inpaint import StableDiffusionControlNetInpaintPipeline


if is_transformers_available() and is_flax_available():
     from .pipeline_flax_controlnet import FlaxStableDiffusionControlNetPipeline





