"""simple docstring"""





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 					UpperCAmelCase_     (   _a):
      lowerCamelCase__		:   Optional[int]			  =  {
          "sld_warmup_steps": 1_5,
          "sld_guidance_scale": 2_0,
          "sld_threshold": 0.0,
          "sld_momentum_scale": 0.0,
          "sld_mom_beta": 0.0,
      }
      lowerCamelCase__		:   List[str]			  =  {
          "sld_warmup_steps": 1_0,
          "sld_guidance_scale": 1_0_0_0,
          "sld_threshold": 0.01,
          "sld_momentum_scale": 0.3,
          "sld_mom_beta": 0.4,
      }
      lowerCamelCase__		:   str			  =  {
          "sld_warmup_steps": 7,
          "sld_guidance_scale": 2_0_0_0,
          "sld_threshold": 0.025,
          "sld_momentum_scale": 0.5,
          "sld_mom_beta": 0.7,
      }
      lowerCamelCase__		:   Optional[Any]			  =  {
          "sld_warmup_steps": 0,
          "sld_guidance_scale": 5_0_0_0,
          "sld_threshold": 1.0,
          "sld_momentum_scale": 0.5,
          "sld_mom_beta": 0.7,
      }





@dataclass
class 					UpperCAmelCase_     (   _a):
      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


"""simple docstring"""





from ..utils import DummyObject, requires_backends


class 					UpperCAmelCase_     (   metaclass=_a):
      lowerCamelCase__		:   List[str]			  =  ["torch", "transformers", "k_diffusion"]


      def __init__(       self		,      *a		,      **a							)	-> Dict:
             requires_backends(self		,      ['torch', 'transformers', 'k_diffusion']							)


      @classmethod
      def 		_UpperCAmelCase	(       cls		,      *a		,      **a							)	-> Tuple:
             requires_backends(cls		,      ['torch', 'transformers', 'k_diffusion']							)


      @classmethod
      def 		_UpperCAmelCase	(       cls		,      *a		,      **a							)	-> Any:
             requires_backends(cls		,      ['torch', 'transformers', 'k_diffusion']							)

