






"""simple docstring"""



from typing import List

import PIL
import torch
from PIL import Image

from ...configuration_utils import ConfigMixin
from ...models.modeling_utils import ModelMixin
from ...utils import PIL_INTERPOLATION





class  a_	(			_A       ,						_A							):




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

							self.register_buffer('''watermark_image'''   ,						torch.zeros((62, 62, 4)       )       )
							lowercase_			:			Dict								=       None






					def   A  (    self					:						List[str]   ,						A					:						List[PIL.Image.Image]   ,						A					:						Any=None       )  ->  List[Any]:
							# copied from https://github.com/deep-floyd/IF/blob/b77482e36ca2031cb94dbca1001fc1e6400bf4ab/deepfloyd_if/modules/base.py#L287

							lowercase_			:			Any								=       images[0].height
							lowercase_			:			Tuple								=       images[0].width

							lowercase_			:			List[Any]								=       sample_size or h

							lowercase_			:			List[str]								=       min(h / sample_size   ,						w / sample_size       )
							lowercase_			:			Optional[Any]								=       (int(h / coef       ), int(w / coef       )) if coef < 1 else (h, w)

							lowercase_			:			str								=       10_24**2, img_w * img_h
							lowercase_			:			str								=       (Sa / Sa) ** 0.5
							lowercase_			:			List[Any]								=       int(K * 62       ), img_w - int(14 * K       ), img_h - int(14 * K       )

							if self.watermark_image_as_pil is None:
									lowercase_			:			Dict								=       self.watermark_image.to(torch.uinta       ).cpu().numpy()
									lowercase_			:			Union[str, Any]								=       Image.fromarray(A   ,						mode='''RGBA'''       )
									lowercase_			:			Optional[Any]								=       watermark_image

							lowercase_			:			int								=       self.watermark_image_as_pil.resize(
							    (wm_size, wm_size)   ,						PIL_INTERPOLATION['''bicubic''']   ,						reducing_gap=A       )

							for pil_img in images:
									pil_img.paste(A   ,						box=(wm_x - wm_size, wm_y - wm_size, wm_x, wm_y)   ,						mask=wm_img.split()[-1]       )

							return images











"""simple docstring"""



from typing import TYPE_CHECKING

from ...utils import OptionalDependencyNotAvailable, _LazyModule, is_tokenizers_available, is_torch_available


__A		:	Any      =		{
    '''configuration_realm''': ['''REALM_PRETRAINED_CONFIG_ARCHIVE_MAP''', '''RealmConfig'''],
    '''tokenization_realm''': ['''RealmTokenizer'''],
}

try:
						if not is_tokenizers_available():
												raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
						pass
else:
						__A		:	Tuple      =		['''RealmTokenizerFast''']

try:
						if not is_torch_available():
												raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
						pass
else:
						__A		:	Optional[int]      =		[
						    '''REALM_PRETRAINED_MODEL_ARCHIVE_LIST''',
						    '''RealmEmbedder''',
						    '''RealmForOpenQA''',
						    '''RealmKnowledgeAugEncoder''',
						    '''RealmPreTrainedModel''',
						    '''RealmReader''',
						    '''RealmScorer''',
						    '''load_tf_weights_in_realm''',
						]
						__A		:	Union[str, Any]      =		['''RealmRetriever''']


if TYPE_CHECKING:
						from .configuration_realm import REALM_PRETRAINED_CONFIG_ARCHIVE_MAP, RealmConfig
						from .tokenization_realm import RealmTokenizer

						try:
												if not is_tokenizers_available():
																		raise OptionalDependencyNotAvailable()
						except OptionalDependencyNotAvailable:
												pass
						else:
												from .tokenization_realm import RealmTokenizerFast

						try:
												if not is_torch_available():
																		raise OptionalDependencyNotAvailable()
						except OptionalDependencyNotAvailable:
												pass
						else:
												from .modeling_realm import (
												    REALM_PRETRAINED_MODEL_ARCHIVE_LIST,
												    RealmEmbedder,
												    RealmForOpenQA,
												    RealmKnowledgeAugEncoder,
												    RealmPreTrainedModel,
												    RealmReader,
												    RealmScorer,
												    load_tf_weights_in_realm,
												)
												from .retrieval_realm import RealmRetriever


else:
						import sys

						__A		:	Optional[int]      =		_LazyModule(__name__, globals()['''__file__'''], _import_structure, module_spec=__spec__)



