




"""simple docstring"""






import numpy as np
import torch
import torch.nn as nn
from transformers import CLIPConfig, CLIPVisionModelWithProjection, PreTrainedModel

from ...utils import logging


lowercase__     						=						logging.get_logger(__name__)






class lowerCAmelCase__	(     lowercase						):






			'''simple docstring'''



			lowerCamelCase__      =			CLIPConfig

			lowerCamelCase__      =			["""CLIPEncoderLayer"""]
			def __init__(  self  ,      lowercase  ):
							super().__init__(lowercase  )

							_lowerCamelCase     :			List[str]    =    CLIPVisionModelWithProjection(config.vision_config  )

							_lowerCamelCase     :			List[Any]    =    nn.Linear(config.vision_config.projection_dim  ,      1  )
							_lowerCamelCase     :			Dict    =    nn.Linear(config.vision_config.projection_dim  ,      1  )






			@torch.no_grad()
			def 					A_    (  self  ,      lowercase  ,      lowercase  ,      lowercase=0.5  ,      lowercase=0.5  ):
							_lowerCamelCase     :			Dict    =    self.vision_model(lowercase  )[0]

							_lowerCamelCase     :			Any    =    self.p_head(lowercase  )
							_lowerCamelCase     :			str    =    nsfw_detected.flatten()
							_lowerCamelCase     :			int    =    nsfw_detected > p_threshold
							_lowerCamelCase     :			Union[str, Any]    =    nsfw_detected.tolist()

							if any(lowercase  ):
											logger.warning(
											    'Potential NSFW content was detected in one or more images. A black image will be returned instead.'
											    ' Try again with a different prompt and/or seed.'  )

							for idx, nsfw_detected_ in enumerate(lowercase  ):
											if nsfw_detected_:
															_lowerCamelCase     :			Dict    =    np.zeros(images[idx].shape  )

							_lowerCamelCase     :			Dict    =    self.w_head(lowercase  )
							_lowerCamelCase     :			Tuple    =    watermark_detected.flatten()
							_lowerCamelCase     :			Dict    =    watermark_detected > w_threshold
							_lowerCamelCase     :			Dict    =    watermark_detected.tolist()

							if any(lowercase  ):
											logger.warning(
											    'Potential watermarked content was detected in one or more images. A black image will be returned instead.'
											    ' Try again with a different prompt and/or seed.'  )

							for idx, watermark_detected_ in enumerate(lowercase  ):
											if watermark_detected_:
															_lowerCamelCase     :			List[str]    =    np.zeros(images[idx].shape  )

							return images, nsfw_detected, watermark_detected

from math import cos, sin, sqrt, tau

from audio_filters.iir_filter import IIRFilter


def     __lowerCAmelCase			(			a__						,    a__						,    a__ = 1 / sqrt(2  )  )       ->  IIRFilter:
				__a										=    tau * frequency / samplerate
				__a										=    sin(a__  )
				__a										=    cos(a__  )
				__a										=    _sin / (2 * q_factor)

				__a										=    (1 - _cos) / 2
				__a										=    1 - _cos

				__a										=    1 + alpha
				__a										=    -2 * _cos
				__a										=    1 - alpha

				__a										=    IIRFilter(2  )
				filt.set_coefficients([aa, aa, aa]						,    [ba, ba, ba]  )
				return filt


def     __lowerCAmelCase			(			a__						,    a__						,    a__ = 1 / sqrt(2  )  )       ->  IIRFilter:
				__a										=    tau * frequency / samplerate
				__a										=    sin(a__  )
				__a										=    cos(a__  )
				__a										=    _sin / (2 * q_factor)

				__a										=    (1 + _cos) / 2
				__a										=    -1 - _cos

				__a										=    1 + alpha
				__a										=    -2 * _cos
				__a										=    1 - alpha

				__a										=    IIRFilter(2  )
				filt.set_coefficients([aa, aa, aa]						,    [ba, ba, ba]  )
				return filt


def     __lowerCAmelCase			(			a__						,    a__						,    a__ = 1 / sqrt(2  )  )       ->  IIRFilter:
				__a										=    tau * frequency / samplerate
				__a										=    sin(a__  )
				__a										=    cos(a__  )
				__a										=    _sin / (2 * q_factor)

				__a										=    _sin / 2
				__a										=    0
				__a										=    -ba

				__a										=    1 + alpha
				__a										=    -2 * _cos
				__a										=    1 - alpha

				__a										=    IIRFilter(2  )
				filt.set_coefficients([aa, aa, aa]						,    [ba, ba, ba]  )
				return filt


def     __lowerCAmelCase			(			a__						,    a__						,    a__ = 1 / sqrt(2  )  )       ->  IIRFilter:
				__a										=    tau * frequency / samplerate
				__a										=    sin(a__  )
				__a										=    cos(a__  )
				__a										=    _sin / (2 * q_factor)

				__a										=    1 - alpha
				__a										=    -2 * _cos
				__a										=    1 + alpha

				__a										=    IIRFilter(2  )
				filt.set_coefficients([ba, ba, ba]						,    [ba, ba, ba]  )
				return filt


def     __lowerCAmelCase			(			a__						,    a__						,    a__						,    a__ = 1 / sqrt(2  )						,    )       ->  IIRFilter:
				__a										=    tau * frequency / samplerate
				__a										=    sin(a__  )
				__a										=    cos(a__  )
				__a										=    _sin / (2 * q_factor)
				__a										=    10 ** (gain_db / 40)

				__a										=    1 + alpha * big_a
				__a										=    -2 * _cos
				__a										=    1 - alpha * big_a
				__a										=    1 + alpha / big_a
				__a										=    -2 * _cos
				__a										=    1 - alpha / big_a

				__a										=    IIRFilter(2  )
				filt.set_coefficients([aa, aa, aa]						,    [ba, ba, ba]  )
				return filt


def     __lowerCAmelCase			(			a__						,    a__						,    a__						,    a__ = 1 / sqrt(2  )						,    )       ->  IIRFilter:
				__a										=    tau * frequency / samplerate
				__a										=    sin(a__  )
				__a										=    cos(a__  )
				__a										=    _sin / (2 * q_factor)
				__a										=    10 ** (gain_db / 40)
				__a										=    (big_a + 1) - (big_a - 1) * _cos
				__a										=    (big_a + 1) + (big_a - 1) * _cos
				__a										=    (big_a - 1) - (big_a + 1) * _cos
				__a										=    (big_a - 1) + (big_a + 1) * _cos
				__a										=    2 * sqrt(a__  ) * alpha

				__a										=    big_a * (pmc + aaa)
				__a										=    2 * big_a * mpc
				__a										=    big_a * (pmc - aaa)
				__a										=    ppmc + aaa
				__a										=    -2 * pmpc
				__a										=    ppmc - aaa

				__a										=    IIRFilter(2  )
				filt.set_coefficients([aa, aa, aa]						,    [ba, ba, ba]  )
				return filt






def     __lowerCAmelCase			(			a__						,    a__						,    a__						,    a__ = 1 / sqrt(2  )						,    )       ->  IIRFilter:
				__a										=    tau * frequency / samplerate
				__a										=    sin(a__  )
				__a										=    cos(a__  )
				__a										=    _sin / (2 * q_factor)
				__a										=    10 ** (gain_db / 40)
				__a										=    (big_a + 1) - (big_a - 1) * _cos
				__a										=    (big_a + 1) + (big_a - 1) * _cos
				__a										=    (big_a - 1) - (big_a + 1) * _cos
				__a										=    (big_a - 1) + (big_a + 1) * _cos
				__a										=    2 * sqrt(a__  ) * alpha

				__a										=    big_a * (ppmc + aaa)
				__a										=    -2 * big_a * pmpc
				__a										=    big_a * (ppmc - aaa)
				__a										=    pmc + aaa
				__a										=    2 * mpc
				__a										=    pmc - aaa

				__a										=    IIRFilter(2  )
				filt.set_coefficients([aa, aa, aa]						,    [ba, ba, ba]  )
				return filt