
import functools
import operator

from ...configuration_utils import PretrainedConfig
from ...utils import logging


A		: str								=     logging.get_logger(__name__)

A		: Any								=     {
    '''microsoft/unispeech-sat-base-100h-libri-ft''': (
        '''https://huggingface.co/microsoft/unispeech-sat-base-100h-libri-ft/resolve/main/config.json'''
    ),
    # See all UniSpeechSat models at https://huggingface.co/models?filter=unispeech_sat
}



class    a_ (			_a    ):
			a	:			int					   =							'''unispeech-sat'''






			def __init__(      self				,			__UpperCamelCase=32				,			__UpperCamelCase=768				,			__UpperCamelCase=12				,			__UpperCamelCase=12				,			__UpperCamelCase=3_072				,			__UpperCamelCase="gelu"				,			__UpperCamelCase=0.1				,			__UpperCamelCase=0.1				,			__UpperCamelCase=0.1				,			__UpperCamelCase=0.0				,			__UpperCamelCase=0.0				,			__UpperCamelCase=0.1				,			__UpperCamelCase=0.1				,			__UpperCamelCase=0.02				,			__UpperCamelCase=1E-5				,			__UpperCamelCase="group"				,			__UpperCamelCase="gelu"				,			__UpperCamelCase=(512, 512, 512, 512, 512, 512, 512)				,			__UpperCamelCase=(5, 2, 2, 2, 2, 2, 2)				,			__UpperCamelCase=(10, 3, 3, 3, 3, 2, 2)				,			__UpperCamelCase=False				,			__UpperCamelCase=128				,			__UpperCamelCase=16				,			__UpperCamelCase=False				,			__UpperCamelCase=True				,			__UpperCamelCase=0.05				,			__UpperCamelCase=10				,			__UpperCamelCase=2				,			__UpperCamelCase=0.0				,			__UpperCamelCase=10				,			__UpperCamelCase=0				,			__UpperCamelCase=320				,			__UpperCamelCase=2				,			__UpperCamelCase=0.1				,			__UpperCamelCase=100				,			__UpperCamelCase=256				,			__UpperCamelCase=256				,			__UpperCamelCase=0.1				,			__UpperCamelCase="mean"				,			__UpperCamelCase=False				,			__UpperCamelCase=False				,			__UpperCamelCase=256				,			__UpperCamelCase=(512, 512, 512, 512, 1_500)				,			__UpperCamelCase=(5, 3, 3, 1, 1)				,			__UpperCamelCase=(1, 2, 3, 1, 1)				,			__UpperCamelCase=512				,			__UpperCamelCase=0				,			__UpperCamelCase=1				,			__UpperCamelCase=2				,			__UpperCamelCase=504				,			**__UpperCamelCase				,			):
									super().__init__(**__UpperCamelCase				,			pad_token_id=__UpperCamelCase				,			bos_token_id=__UpperCamelCase				,			eos_token_id=__UpperCamelCase  )
									_lowercase					       =					hidden_size
									_lowercase					       =					feat_extract_norm
									_lowercase					       =					feat_extract_activation
									_lowercase					       =					list(__UpperCamelCase  )
									_lowercase					       =					list(__UpperCamelCase  )
									_lowercase					       =					list(__UpperCamelCase  )
									_lowercase					       =					conv_bias
									_lowercase					       =					num_conv_pos_embeddings
									_lowercase					       =					num_conv_pos_embedding_groups
									_lowercase					       =					len(self.conv_dim  )
									_lowercase					       =					num_hidden_layers
									_lowercase					       =					intermediate_size
									_lowercase					       =					hidden_act
									_lowercase					       =					num_attention_heads
									_lowercase					       =					hidden_dropout
									_lowercase					       =					attention_dropout
									_lowercase					       =					activation_dropout
									_lowercase					       =					feat_proj_dropout
									_lowercase					       =					final_dropout
									_lowercase					       =					layerdrop
									_lowercase					       =					layer_norm_eps
									_lowercase					       =					initializer_range
									_lowercase					       =					vocab_size
									_lowercase					       =					num_clusters
									_lowercase					       =					do_stable_layer_norm
									_lowercase					       =					use_weighted_layer_sum

									if (
									    (len(self.conv_stride  ) != self.num_feat_extract_layers)
									    or (len(self.conv_kernel  ) != self.num_feat_extract_layers)
									    or (len(self.conv_dim  ) != self.num_feat_extract_layers)
									):
															raise ValueError(
															    """Configuration for convolutional layers is incorrect. It is required that `len(config.conv_dim)` =="""
															    """ `len(config.conv_stride)` == `len(config.conv_kernel)`, but is `len(config.conv_dim) ="""
															    f""" {len(self.conv_dim  )}`, `len(config.conv_stride) = {len(self.conv_stride  )}`,"""
															    f""" `len(config.conv_kernel) = {len(self.conv_kernel  )}`."""  )

									# fine-tuning config parameters for SpecAugment: https://arxiv.org/abs/1904.08779
									_lowercase					       =					apply_spec_augment
									_lowercase					       =					mask_time_prob
									_lowercase					       =					mask_time_length
									_lowercase					       =					mask_time_min_masks
									_lowercase					       =					mask_feature_prob
									_lowercase					       =					mask_feature_length
									_lowercase					       =					mask_feature_min_masks

									# parameters for pretraining with codevector quantized representations
									_lowercase					       =					num_codevectors_per_group
									_lowercase					       =					num_codevector_groups
									_lowercase					       =					contrastive_logits_temperature
									_lowercase					       =					feat_quantizer_dropout
									_lowercase					       =					num_negatives
									_lowercase					       =					codevector_dim
									_lowercase					       =					proj_codevector_dim
									_lowercase					       =					diversity_loss_weight

									# ctc loss
									_lowercase					       =					ctc_loss_reduction
									_lowercase					       =					ctc_zero_infinity

									# SequenceClassification-specific parameter. Feel free to ignore for other classes.
									_lowercase					       =					classifier_proj_size

									# XVector-specific parameters. Feel free to ignore for other classes.
									_lowercase					       =					list(__UpperCamelCase  )
									_lowercase					       =					list(__UpperCamelCase  )
									_lowercase					       =					list(__UpperCamelCase  )
									_lowercase					       =					xvector_output_dim






			@property
			def    UpperCamelCase_				(      self  ):
									return functools.reduce(operator.mul				,			self.conv_stride				,			1  )

from dataclasses import dataclass
from typing import List, Optional, Union

import numpy as np
import PIL
from PIL import Image

from ...utils import (
    BaseOutput,
    OptionalDependencyNotAvailable,
    is_flax_available,
    is_k_diffusion_available,
    is_k_diffusion_version,
    is_onnx_available,
    is_torch_available,
    is_transformers_available,
    is_transformers_version,
)



@dataclass
class    a_ (			_a    ):
			a	:			Union[List[PIL.Image.Image], np.ndarray]
			a	:			Optional[List[bool]]


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 .pipeline_cycle_diffusion import CycleDiffusionPipeline
		from .pipeline_stable_diffusion import StableDiffusionPipeline
		from .pipeline_stable_diffusion_attend_and_excite import StableDiffusionAttendAndExcitePipeline
		from .pipeline_stable_diffusion_imgaimg import StableDiffusionImgaImgPipeline
		from .pipeline_stable_diffusion_inpaint import StableDiffusionInpaintPipeline
		from .pipeline_stable_diffusion_inpaint_legacy import StableDiffusionInpaintPipelineLegacy
		from .pipeline_stable_diffusion_instruct_pixapix import StableDiffusionInstructPixaPixPipeline
		from .pipeline_stable_diffusion_latent_upscale import StableDiffusionLatentUpscalePipeline
		from .pipeline_stable_diffusion_ldmad import StableDiffusionLDMaDPipeline
		from .pipeline_stable_diffusion_model_editing import StableDiffusionModelEditingPipeline
		from .pipeline_stable_diffusion_panorama import StableDiffusionPanoramaPipeline
		from .pipeline_stable_diffusion_paradigms import StableDiffusionParadigmsPipeline
		from .pipeline_stable_diffusion_sag import StableDiffusionSAGPipeline
		from .pipeline_stable_diffusion_upscale import StableDiffusionUpscalePipeline
		from .pipeline_stable_unclip import StableUnCLIPPipeline
		from .pipeline_stable_unclip_imgaimg import StableUnCLIPImgaImgPipeline
		from .safety_checker import StableDiffusionSafetyChecker
		from .stable_unclip_image_normalizer import StableUnCLIPImageNormalizer

try:
		if not (is_transformers_available() and is_torch_available() and is_transformers_version('''>=''', '''4.25.0''')):
				raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
		from ...utils.dummy_torch_and_transformers_objects import StableDiffusionImageVariationPipeline
else:
		from .pipeline_stable_diffusion_image_variation import StableDiffusionImageVariationPipeline


try:
		if not (is_transformers_available() and is_torch_available() and is_transformers_version('''>=''', '''4.26.0''')):
				raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
		from ...utils.dummy_torch_and_transformers_objects import (
		    StableDiffusionDepthaImgPipeline,
		    StableDiffusionDiffEditPipeline,
		    StableDiffusionPixaPixZeroPipeline,
		)
else:
		from .pipeline_stable_diffusion_depthaimg import StableDiffusionDepthaImgPipeline
		from .pipeline_stable_diffusion_diffedit import StableDiffusionDiffEditPipeline
		from .pipeline_stable_diffusion_pixapix_zero import StableDiffusionPixaPixZeroPipeline


try:
		if not (
		    is_torch_available()
		    and is_transformers_available()
		    and is_k_diffusion_available()
		    and is_k_diffusion_version('''>=''', '''0.0.12''')
		):
				raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
		from ...utils.dummy_torch_and_transformers_and_k_diffusion_objects import *  # noqa F403
else:
		from .pipeline_stable_diffusion_k_diffusion import StableDiffusionKDiffusionPipeline

try:
		if not (is_transformers_available() and is_onnx_available()):
				raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
		from ...utils.dummy_onnx_objects import *  # noqa F403
else:
		from .pipeline_onnx_stable_diffusion import OnnxStableDiffusionPipeline, StableDiffusionOnnxPipeline
		from .pipeline_onnx_stable_diffusion_imgaimg import OnnxStableDiffusionImgaImgPipeline
		from .pipeline_onnx_stable_diffusion_inpaint import OnnxStableDiffusionInpaintPipeline
		from .pipeline_onnx_stable_diffusion_inpaint_legacy import OnnxStableDiffusionInpaintPipelineLegacy
		from .pipeline_onnx_stable_diffusion_upscale import OnnxStableDiffusionUpscalePipeline

if is_transformers_available() and is_flax_available():
		import flax



		@flax.struct.dataclass
		class    a_ (			_a    ):
					a	:			np.ndarray
					a	:			List[bool]







		from ...schedulers.scheduling_pndm_flax import PNDMSchedulerState
		from .pipeline_flax_stable_diffusion import FlaxStableDiffusionPipeline
		from .pipeline_flax_stable_diffusion_imgaimg import FlaxStableDiffusionImgaImgPipeline
		from .pipeline_flax_stable_diffusion_inpaint import FlaxStableDiffusionInpaintPipeline
		from .safety_checker_flax import FlaxStableDiffusionSafetyChecker