
"""simple docstring"""




from ...configuration_utils import PretrainedConfig
from ...utils import logging


lowerCAmelCase__							=				logging.get_logger(__name__)

lowerCAmelCase__							=				{
    """google/realm-cc-news-pretrained-embedder""": (
        """https://huggingface.co/google/realm-cc-news-pretrained-embedder/resolve/main/config.json"""
    ),
    """google/realm-cc-news-pretrained-encoder""": (
        """https://huggingface.co/google/realm-cc-news-pretrained-encoder/resolve/main/config.json"""
    ),
    """google/realm-cc-news-pretrained-scorer""": (
        """https://huggingface.co/google/realm-cc-news-pretrained-scorer/resolve/main/config.json"""
    ),
    """google/realm-cc-news-pretrained-openqa""": (
        """https://huggingface.co/google/realm-cc-news-pretrained-openqa/aresolve/main/config.json"""
    ),
    """google/realm-orqa-nq-openqa""": """https://huggingface.co/google/realm-orqa-nq-openqa/resolve/main/config.json""",
    """google/realm-orqa-nq-reader""": """https://huggingface.co/google/realm-orqa-nq-reader/resolve/main/config.json""",
    """google/realm-orqa-wq-openqa""": """https://huggingface.co/google/realm-orqa-wq-openqa/resolve/main/config.json""",
    """google/realm-orqa-wq-reader""": """https://huggingface.co/google/realm-orqa-wq-reader/resolve/main/config.json""",
    # See all REALM models at https://huggingface.co/models?filter=realm
}





class  snake_case     (							snake_case_   ):
							UpperCAmelCase__						     =      """realm"""

							def __init__(self       ,       SCREAMING_SNAKE_CASE_=3_05_22       ,       SCREAMING_SNAKE_CASE_=7_68       ,       SCREAMING_SNAKE_CASE_=1_28       ,       SCREAMING_SNAKE_CASE_=12       ,       SCREAMING_SNAKE_CASE_=12       ,       SCREAMING_SNAKE_CASE_=8       ,       SCREAMING_SNAKE_CASE_=30_72       ,       SCREAMING_SNAKE_CASE_="gelu_new"       ,       SCREAMING_SNAKE_CASE_=0.1       ,       SCREAMING_SNAKE_CASE_=0.1       ,       SCREAMING_SNAKE_CASE_=5_12       ,       SCREAMING_SNAKE_CASE_=2       ,       SCREAMING_SNAKE_CASE_=0.02       ,       SCREAMING_SNAKE_CASE_=1e-1_2       ,       SCREAMING_SNAKE_CASE_=2_56       ,       SCREAMING_SNAKE_CASE_=10       ,       SCREAMING_SNAKE_CASE_=1e-3       ,       SCREAMING_SNAKE_CASE_=5       ,       SCREAMING_SNAKE_CASE_=3_20       ,       SCREAMING_SNAKE_CASE_=13_35_37_18       ,       SCREAMING_SNAKE_CASE_=50_00       ,       SCREAMING_SNAKE_CASE_=1       ,       SCREAMING_SNAKE_CASE_=0       ,       SCREAMING_SNAKE_CASE_=2       ,       **SCREAMING_SNAKE_CASE_       ,       ):

									"""simple docstring"""







									super().__init__(pad_token_id=SCREAMING_SNAKE_CASE_       ,       bos_token_id=SCREAMING_SNAKE_CASE_       ,       eos_token_id=SCREAMING_SNAKE_CASE_       ,       **SCREAMING_SNAKE_CASE_    )

									# Common config
									SCREAMING_SNAKE_CASE_						 = vocab_size
									SCREAMING_SNAKE_CASE_						 = max_position_embeddings
									SCREAMING_SNAKE_CASE_						 = hidden_size
									SCREAMING_SNAKE_CASE_						 = retriever_proj_size
									SCREAMING_SNAKE_CASE_						 = num_hidden_layers
									SCREAMING_SNAKE_CASE_						 = num_attention_heads
									SCREAMING_SNAKE_CASE_						 = num_candidates
									SCREAMING_SNAKE_CASE_						 = intermediate_size
									SCREAMING_SNAKE_CASE_						 = hidden_act
									SCREAMING_SNAKE_CASE_						 = hidden_dropout_prob
									SCREAMING_SNAKE_CASE_						 = attention_probs_dropout_prob
									SCREAMING_SNAKE_CASE_						 = initializer_range
									SCREAMING_SNAKE_CASE_						 = type_vocab_size
									SCREAMING_SNAKE_CASE_						 = layer_norm_eps

									# Reader config
									SCREAMING_SNAKE_CASE_						 = span_hidden_size
									SCREAMING_SNAKE_CASE_						 = max_span_width
									SCREAMING_SNAKE_CASE_						 = reader_layer_norm_eps
									SCREAMING_SNAKE_CASE_						 = reader_beam_size
									SCREAMING_SNAKE_CASE_						 = reader_seq_len

									# Retrieval config
									SCREAMING_SNAKE_CASE_						 = num_block_records
									SCREAMING_SNAKE_CASE_						 = searcher_beam_size

"""simple docstring"""




import gc
import tempfile
import unittest

import numpy as np
import torch

from diffusers import VersatileDiffusionPipeline
from diffusers.utils.testing_utils import load_image, nightly, require_torch_gpu, torch_device


lowerCAmelCase__							=				False





class  snake_case     (							unittest.TestCase   ):
							pass







@nightly
@require_torch_gpu
class  snake_case     (							unittest.TestCase   ):

							def _lowercase					(self    ):

									"""simple docstring"""







									super().tearDown()
									gc.collect()
									torch.cuda.empty_cache()

							def _lowercase					(self    ):

									"""simple docstring"""







									SCREAMING_SNAKE_CASE_						 = VersatileDiffusionPipeline.from_pretrained('''shi-labs/versatile-diffusion'''       ,       torch_dtype=torch.floataa    )
									pipe.to(SCREAMING_SNAKE_CASE_    )
									pipe.set_progress_bar_config(disable=SCREAMING_SNAKE_CASE_    )

									SCREAMING_SNAKE_CASE_						 = load_image(
									    '''https://huggingface.co/datasets/hf-internal-testing/diffusers-images/resolve/main/versatile_diffusion/benz.jpg'''    )

									SCREAMING_SNAKE_CASE_						 = torch.manual_seed(0    )
									SCREAMING_SNAKE_CASE_						 = pipe.dual_guided(
									    prompt='''first prompt'''       ,       image=SCREAMING_SNAKE_CASE_       ,       text_to_image_strength=0.75       ,       generator=SCREAMING_SNAKE_CASE_       ,       guidance_scale=7.5       ,       num_inference_steps=2       ,       output_type='''numpy'''       ,       ).images

									with tempfile.TemporaryDirectory() as tmpdirname:
											pipe.save_pretrained(SCREAMING_SNAKE_CASE_    )
											SCREAMING_SNAKE_CASE_						 = VersatileDiffusionPipeline.from_pretrained(SCREAMING_SNAKE_CASE_       ,       torch_dtype=torch.floataa    )
									pipe.to(SCREAMING_SNAKE_CASE_    )
									pipe.set_progress_bar_config(disable=SCREAMING_SNAKE_CASE_    )

									SCREAMING_SNAKE_CASE_						 = generator.manual_seed(0    )
									SCREAMING_SNAKE_CASE_						 = pipe.dual_guided(
									    prompt='''first prompt'''       ,       image=SCREAMING_SNAKE_CASE_       ,       text_to_image_strength=0.75       ,       generator=SCREAMING_SNAKE_CASE_       ,       guidance_scale=7.5       ,       num_inference_steps=2       ,       output_type='''numpy'''       ,       ).images

									assert np.abs(image - new_image    ).sum() < 1e-5, "Models don't have the same forward pass"







							def _lowercase					(self    ):

									"""simple docstring"""







									SCREAMING_SNAKE_CASE_						 = VersatileDiffusionPipeline.from_pretrained('''shi-labs/versatile-diffusion'''       ,       torch_dtype=torch.floataa    )
									pipe.to(SCREAMING_SNAKE_CASE_    )
									pipe.set_progress_bar_config(disable=SCREAMING_SNAKE_CASE_    )

									SCREAMING_SNAKE_CASE_						 = '''cyberpunk 2077'''
									SCREAMING_SNAKE_CASE_						 = load_image(
									    '''https://huggingface.co/datasets/hf-internal-testing/diffusers-images/resolve/main/versatile_diffusion/benz.jpg'''    )
									SCREAMING_SNAKE_CASE_						 = torch.manual_seed(0    )
									SCREAMING_SNAKE_CASE_						 = pipe.dual_guided(
									    prompt=SCREAMING_SNAKE_CASE_       ,       image=SCREAMING_SNAKE_CASE_       ,       text_to_image_strength=0.75       ,       generator=SCREAMING_SNAKE_CASE_       ,       guidance_scale=7.5       ,       num_inference_steps=50       ,       output_type='''numpy'''       ,       ).images

									SCREAMING_SNAKE_CASE_						 = image[0, 2_53:2_56, 2_53:2_56, -1]

									assert image.shape == (1, 5_12, 5_12, 3)
									SCREAMING_SNAKE_CASE_						 = np.array([0.14_48, 0.16_19, 0.17_41, 0.10_86, 0.11_47, 0.11_28, 0.11_99, 0.11_65, 0.10_01]    )

									assert np.abs(image_slice.flatten() - expected_slice    ).max() < 1e-1

									SCREAMING_SNAKE_CASE_						 = '''A painting of a squirrel eating a burger '''
									SCREAMING_SNAKE_CASE_						 = torch.manual_seed(0    )
									SCREAMING_SNAKE_CASE_						 = pipe.text_to_image(
									    prompt=SCREAMING_SNAKE_CASE_       ,       generator=SCREAMING_SNAKE_CASE_       ,       guidance_scale=7.5       ,       num_inference_steps=50       ,       output_type='''numpy'''    ).images

									SCREAMING_SNAKE_CASE_						 = image[0, 2_53:2_56, 2_53:2_56, -1]

									assert image.shape == (1, 5_12, 5_12, 3)
									SCREAMING_SNAKE_CASE_						 = np.array([0.33_67, 0.31_69, 0.26_56, 0.38_70, 0.47_90, 0.37_96, 0.40_09, 0.48_78, 0.47_78]    )

									assert np.abs(image_slice.flatten() - expected_slice    ).max() < 1e-1

									SCREAMING_SNAKE_CASE_						 = pipe.image_variation(SCREAMING_SNAKE_CASE_       ,       generator=SCREAMING_SNAKE_CASE_       ,       output_type='''numpy'''    ).images

									SCREAMING_SNAKE_CASE_						 = image[0, 2_53:2_56, 2_53:2_56, -1]

									assert image.shape == (1, 5_12, 5_12, 3)
									SCREAMING_SNAKE_CASE_						 = np.array([0.30_76, 0.31_23, 0.32_84, 0.37_82, 0.37_70, 0.38_94, 0.42_97, 0.43_31, 0.44_56]    )

									assert np.abs(image_slice.flatten() - expected_slice    ).max() < 1e-1