






"""simple docstring"""


import math
import os

import cva
import numpy as np

lowercase_								=	255.0



def    lowerCAmelCase							(       __UpperCamelCase						,			__UpperCamelCase					):




  """simple docstring"""







  __A		     =					np.mean((original - contrast) ** 2					)
  if mse == 0:
    return 1_0_0

  return 2_0 * math.logaa(PIXEL_MAX / math.sqrt(__UpperCamelCase					)					)



def    lowerCAmelCase							(       ):




  """simple docstring"""







  __A		     =					os.path.dirname(os.path.realpath(__UpperCamelCase					)					)
  # Loading images (original image and compressed image)
  __A		     =					cva.imread(os.path.join(__UpperCamelCase						,			'''image_data/original_image.png'''					)					)
  __A		     =					cva.imread(os.path.join(__UpperCamelCase						,			'''image_data/compressed_image.png'''					)						,			1					)

  __A		     =					cva.imread(os.path.join(__UpperCamelCase						,			'''image_data/PSNR-example-base.png'''					)					)
  __A		     =					cva.imread(
      os.path.join(__UpperCamelCase						,			'''image_data/PSNR-example-comp-10.jpg'''					)						,			1					)

  # Value expected: 29.73dB
  print('''-- First Test --'''					)
  print(f'PSNR value is {peak_signal_to_noise_ratio(__UpperCamelCase						,			__UpperCamelCase					)} dB'					)

  # # Value expected: 31.53dB (Wikipedia Example)
  print('''\n-- Second Test --'''					)
  print(f'PSNR value is {peak_signal_to_noise_ratio(__UpperCamelCase						,			__UpperCamelCase					)} dB'					)


if __name__ == "__main__":
       main()








'''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    a__					(			__A   ):







				"""simple docstring"""



				__UpperCamelCase     :		Tuple						=						{
				    'sld_warmup_steps': 15,
				    'sld_guidance_scale': 20,
				    'sld_threshold': 0.0,
				    'sld_momentum_scale': 0.0,
				    'sld_mom_beta': 0.0,
				}
				__UpperCamelCase     :		Optional[Any]						=						{
				    'sld_warmup_steps': 10,
				    'sld_guidance_scale': 1_000,
				    'sld_threshold': 0.01,
				    'sld_momentum_scale': 0.3,
				    'sld_mom_beta': 0.4,
				}
				__UpperCamelCase     :		Tuple						=						{
				    'sld_warmup_steps': 7,
				    'sld_guidance_scale': 2_000,
				    'sld_threshold': 0.025,
				    'sld_momentum_scale': 0.5,
				    'sld_mom_beta': 0.7,
				}
				__UpperCamelCase     :		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    a__					(			__A   ):







				"""simple docstring"""



				__UpperCamelCase     :		Union[List[PIL.Image.Image], np.ndarray]
				__UpperCamelCase     :		Optional[List[bool]]
				__UpperCamelCase     :		Optional[Union[List[PIL.Image.Image], np.ndarray]]
				__UpperCamelCase     :		Optional[str]


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

