"""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"""





import torch

from transformers import PreTrainedModel

from .custom_configuration import CustomConfig, NoSuperInitConfig


class 					UpperCAmelCase_     (   _a):
      lowerCamelCase__		:   List[str]			  =  CustomConfig


      def __init__(       self		,      a							)	-> Optional[int]:
             super().__init__(a							)
             lowercase__      :		Any          =     torch.nn.Linear(config.hidden_size		,      config.hidden_size							)


      def 		_UpperCAmelCase	(       self		,      a							)	-> Union[str, Any]:
             return self.linear(a							)


      def 		_UpperCAmelCase	(       self		,      a							)	-> Tuple:
             pass





class 					UpperCAmelCase_     (   _a):
      lowerCamelCase__		:   Optional[int]			  =  NoSuperInitConfig


      def __init__(       self		,      a							)	-> int:
             super().__init__(a							)
             lowercase__      :		List[Any]          =     torch.nn.Linear(config.attribute		,      config.attribute							)


      def 		_UpperCAmelCase	(       self		,      a							)	-> Optional[int]:
             return self.linear(a							)


      def 		_UpperCAmelCase	(       self		,      a							)	-> Optional[Any]:
             pass

