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

import numpy as np
import PIL
from PIL import Image

from ...utils import BaseOutput, is_torch_available, is_transformers_available




@dataclass
class  __lowerCAmelCase	(							a_    ):



 '''simple docstring'''
 _lowerCamelCase    :						List[str]					     =			{
     'sld_warmup_steps': 15,
     'sld_guidance_scale': 20,
     'sld_threshold': 0.0,
     'sld_momentum_scale': 0.0,
     'sld_mom_beta': 0.0,
 }
 _lowerCamelCase    :						List[Any]					     =			{
     'sld_warmup_steps': 10,
     'sld_guidance_scale': 1_000,
     'sld_threshold': 0.01,
     'sld_momentum_scale': 0.3,
     'sld_mom_beta': 0.4,
 }
 _lowerCamelCase    :						Tuple					     =			{
     'sld_warmup_steps': 7,
     'sld_guidance_scale': 2_000,
     'sld_threshold': 0.025,
     'sld_momentum_scale': 0.5,
     'sld_mom_beta': 0.7,
 }
 _lowerCamelCase    :						List[str]					     =			{
     'sld_warmup_steps': 0,
     'sld_guidance_scale': 5_000,
     'sld_threshold': 1.0,
     'sld_momentum_scale': 0.5,
     'sld_mom_beta': 0.7,
 }







@dataclass
class  __lowerCAmelCase	(							a_    ):



 '''simple docstring'''
 _lowerCamelCase    :						Union[List[PIL.Image.Image], np.ndarray]
 _lowerCamelCase    :						Optional[List[bool]]
 _lowerCamelCase    :						Optional[Union[List[PIL.Image.Image], np.ndarray]]
 _lowerCamelCase    :						Optional[str]


if is_transformers_available() and is_torch_available():
 from .pipeline_stable_diffusion_safe import StableDiffusionPipelineSafe
 from .safety_checker import SafeStableDiffusionSafetyChecker




import unittest

from transformers import is_torch_available, load_tool

from .test_tools_common import ToolTesterMixin


if is_torch_available():
   import torch







class __snake_case							(		unittest.TestCase  ,						lowerCamelCase_						):




   def       __a		(       self     :							Dict ):



     """simple docstring"""






     SCREAMING_SNAKE_CASE__     				= load_tool("""speech-to-text""" )
     self.tool.setup()




   def       __a		(       self     :							Tuple ):



     """simple docstring"""






     SCREAMING_SNAKE_CASE__     				= self.tool(torch.ones(30_00 ) )
     self.assertEqual(_lowercase			,      """ you""" )




   def       __a		(       self     :							Any ):



     """simple docstring"""






     SCREAMING_SNAKE_CASE__     				= self.tool(audio=torch.ones(30_00 ) )
     self.assertEqual(_lowercase			,      """ you""" )
