
'''simple docstring'''
from typing import TYPE_CHECKING

from ...utils import (
    OptionalDependencyNotAvailable,
    _LazyModule,
    is_tf_available,
    is_torch_available,
    is_vision_available,
)


__lowerCAmelCase												=	{
    'configuration_blip': [
        'BLIP_PRETRAINED_CONFIG_ARCHIVE_MAP',
        'BlipConfig',
        'BlipTextConfig',
        'BlipVisionConfig',
    ],
    'processing_blip': ['BlipProcessor'],
}

try:
				if not is_vision_available():
								raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
				pass
else:
				__lowerCAmelCase												=	['BlipImageProcessor']


try:
				if not is_torch_available():
								raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
				pass
else:
				__lowerCAmelCase												=	[
				    'BLIP_PRETRAINED_MODEL_ARCHIVE_LIST',
				    'BlipModel',
				    'BlipPreTrainedModel',
				    'BlipForConditionalGeneration',
				    'BlipForQuestionAnswering',
				    'BlipVisionModel',
				    'BlipTextModel',
				    'BlipForImageTextRetrieval',
				]

try:
				if not is_tf_available():
								raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
				pass
else:
				__lowerCAmelCase												=	[
				    'TF_BLIP_PRETRAINED_MODEL_ARCHIVE_LIST',
				    'TFBlipModel',
				    'TFBlipPreTrainedModel',
				    'TFBlipForConditionalGeneration',
				    'TFBlipForQuestionAnswering',
				    'TFBlipVisionModel',
				    'TFBlipTextModel',
				    'TFBlipForImageTextRetrieval',
				]

if TYPE_CHECKING:
				from .configuration_blip import BLIP_PRETRAINED_CONFIG_ARCHIVE_MAP, BlipConfig, BlipTextConfig, BlipVisionConfig
				from .processing_blip import BlipProcessor

				try:
								if not is_vision_available():
												raise OptionalDependencyNotAvailable()
				except OptionalDependencyNotAvailable:
								pass
				else:
								from .image_processing_blip import BlipImageProcessor

				try:
								if not is_torch_available():
												raise OptionalDependencyNotAvailable()
				except OptionalDependencyNotAvailable:
								pass
				else:
								from .modeling_blip import (
								    BLIP_PRETRAINED_MODEL_ARCHIVE_LIST,
								    BlipForConditionalGeneration,
								    BlipForImageTextRetrieval,
								    BlipForQuestionAnswering,
								    BlipModel,
								    BlipPreTrainedModel,
								    BlipTextModel,
								    BlipVisionModel,
								)

				try:
								if not is_tf_available():
												raise OptionalDependencyNotAvailable()
				except OptionalDependencyNotAvailable:
								pass
				else:
								from .modeling_tf_blip import (
								    TF_BLIP_PRETRAINED_MODEL_ARCHIVE_LIST,
								    TFBlipForConditionalGeneration,
								    TFBlipForImageTextRetrieval,
								    TFBlipForQuestionAnswering,
								    TFBlipModel,
								    TFBlipPreTrainedModel,
								    TFBlipTextModel,
								    TFBlipVisionModel,
								)

else:
				import sys

				__lowerCAmelCase												=	_LazyModule(__name__, globals()['__file__'], _import_structure, module_spec=__spec__)

'''simple docstring'''
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