




from __future__ import annotations

import unittest

from transformers import is_tf_available
from transformers.testing_utils import require_sentencepiece, require_tf, require_tokenizers, slow


if is_tf_available():
							import numpy as np
							import tensorflow as tf

							from transformers import TFCamembertModel




@require_tf
@require_sentencepiece
@require_tokenizers
class 		__A   (      unittest.TestCase      ):

						@slow
						def      A__    (		self :Any			):
										'''simple docstring'''

										__magic_name__						:						str										=TFCamembertModel.from_pretrained("""jplu/tf-camembert-base"""			)

										__magic_name__						:						Dict										=tf.convert_to_tensor(
										    [[5, 1_21, 11, 6_60, 16, 7_30, 2_55_43, 1_10, 83, 6]]     ,			dtype=tf.intaa     ,			)  # J'aime le camembert !"

										__magic_name__						:						Any										=model(__snake_case			)["""last_hidden_state"""]
										__magic_name__						:						Any										=tf.TensorShape((1, 10, 7_68)			)
										self.assertEqual(output.shape     ,			__snake_case			)
										# compare the actual values for a slice.
										__magic_name__						:						List[str]										=tf.convert_to_tensor(
										    [[[-0.0254, 0.0235, 0.1027], [0.0606, -0.1811, -0.0418], [-0.1561, -0.1127, 0.2687]]]     ,			dtype=tf.floataa     ,			)
										# camembert = torch.hub.load('pytorch/fairseq', 'camembert.v0')
										# camembert.eval()
										# expected_slice = roberta.model.forward(input_ids)[0][:, :3, :3].detach()

										self.assertTrue(np.allclose(output[:, :3, :3].numpy()     ,			expected_slice.numpy()     ,			atol=1E-4			)			)








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

from ...utils import logging


snake_case__				:	int					       =					logging.get_logger(__name__)





class   SCREAMING_SNAKE_CASE_			(a__						):




       '''simple docstring'''



       _a   							=							CLIPConfig

       _a   							=							["CLIPEncoderLayer"]



       def __init__(						self				:				Tuple		,				__a				:				CLIPConfig							)					->Union[str, Any]:
          super().__init__(__a							)

          lowerCamelCase_						:   List[Any]		= CLIPVisionModelWithProjection(config.vision_config							)

          lowerCamelCase_						:   int		= nn.Linear(config.vision_config.projection_dim		,				1							)
          lowerCamelCase_						:   int		= nn.Linear(config.vision_config.projection_dim		,				1							)




       @torch.no_grad()
       def 				_lowerCAmelCase							(						self				:				Dict		,				__a				:				List[Any]		,				__a				:				Tuple		,				__a				:				int=0.5		,				__a				:				Optional[Any]=0.5							)					->Union[str, Any]:
          lowerCamelCase_						:   Dict		= self.vision_model(__a							)[0]

          lowerCamelCase_						:   str		= self.p_head(__a							)
          lowerCamelCase_						:   Union[str, Any]		= nsfw_detected.flatten()
          lowerCamelCase_						:   Tuple		= nsfw_detected > p_threshold
          lowerCamelCase_						:   Dict		= nsfw_detected.tolist()

          if any(__a							):
             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(__a							):
             if nsfw_detected_:
                lowerCamelCase_						:   int		= np.zeros(images[idx].shape							)

          lowerCamelCase_						:   Union[str, Any]		= self.w_head(__a							)
          lowerCamelCase_						:   List[str]		= watermark_detected.flatten()
          lowerCamelCase_						:   Dict		= watermark_detected > w_threshold
          lowerCamelCase_						:   Optional[int]		= watermark_detected.tolist()

          if any(__a							):
             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(__a							):
             if watermark_detected_:
                lowerCamelCase_						:   Tuple		= np.zeros(images[idx].shape							)

          return images, nsfw_detected, watermark_detected





