

'''simple docstring'''





import gc
import random
import unittest

import numpy as np
import torch
from transformers import CLIPTextConfig, CLIPTextModel, CLIPTokenizer

import diffusers
from diffusers import (
    AutoencoderKL,
    EulerDiscreteScheduler,
    StableDiffusionLatentUpscalePipeline,
    StableDiffusionPipeline,
    UNetaDConditionModel,
)
from diffusers.schedulers import KarrasDiffusionSchedulers
from diffusers.utils import floats_tensor, load_image, load_numpy, slow, torch_device
from diffusers.utils.testing_utils import enable_full_determinism, require_torch_gpu

from ..pipeline_params import TEXT_GUIDED_IMAGE_VARIATION_BATCH_PARAMS, TEXT_GUIDED_IMAGE_VARIATION_PARAMS
from ..test_pipelines_common import PipelineKarrasSchedulerTesterMixin, PipelineLatentTesterMixin, PipelineTesterMixin


enable_full_determinism()


def 					_UpperCAmelCase       (  _SCREAMING_SNAKE_CASE					:		str       ):





    """simple docstring"""


    SCREAMING_SNAKE_CASE_									=						[tensor.shape for tensor in tensor_list]
    return all(shape == shapes[0] for shape in shapes[1:]       )



class       __snake_case  (    lowerCAmelCase__     , lowerCAmelCase__     , lowerCAmelCase__     , unittest.TestCase       ):
  __lowerCAmelCase     :	Union[str, Any]						 =  StableDiffusionLatentUpscalePipeline
  __lowerCAmelCase     :	Optional[int]						 =  TEXT_GUIDED_IMAGE_VARIATION_PARAMS - {
      "height",
      "width",
      "cross_attention_kwargs",
      "negative_prompt_embeds",
      "prompt_embeds",
  }
  __lowerCAmelCase     :	List[str]						 =  PipelineTesterMixin.required_optional_params - {"num_images_per_prompt"}
  __lowerCAmelCase     :	Optional[Any]						 =  TEXT_GUIDED_IMAGE_VARIATION_BATCH_PARAMS
  __lowerCAmelCase     :	Optional[Any]						 =  frozenset(
      []       )  # TO-DO: update image_params once pipeline is refactored with VaeImageProcessor.preprocess
  __lowerCAmelCase     :	Any						 =  frozenset([]       )

  __lowerCAmelCase     :	Optional[int]						 =  True

  @property
  def 						lowerCAmelCase__     (					self):
      SCREAMING_SNAKE_CASE_									=						1
      SCREAMING_SNAKE_CASE_									=						4
      SCREAMING_SNAKE_CASE_									=						(16, 16)

      SCREAMING_SNAKE_CASE_									=						floats_tensor((batch_size, num_channels) + sizes						,		rng=random.Random(0)).to(UpperCamelCase_)
      return image

  def 						lowerCAmelCase__     (					self):
      torch.manual_seed(0)
      SCREAMING_SNAKE_CASE_									=						UNetaDConditionModel(
          act_fn='gelu'						,		attention_head_dim=8						,		norm_num_groups=UpperCamelCase_						,		block_out_channels=[32, 32, 64, 64]						,		time_cond_proj_dim=160						,		conv_in_kernel=1						,		conv_out_kernel=1						,		cross_attention_dim=32						,		down_block_types=(
              'KDownBlock2D',
              'KCrossAttnDownBlock2D',
              'KCrossAttnDownBlock2D',
              'KCrossAttnDownBlock2D',
          )						,		in_channels=8						,		mid_block_type=UpperCamelCase_						,		only_cross_attention=UpperCamelCase_						,		out_channels=5						,		resnet_time_scale_shift='scale_shift'						,		time_embedding_type='fourier'						,		timestep_post_act='gelu'						,		up_block_types=('KCrossAttnUpBlock2D', 'KCrossAttnUpBlock2D', 'KCrossAttnUpBlock2D', 'KUpBlock2D')						,		)
      SCREAMING_SNAKE_CASE_									=						AutoencoderKL(
          block_out_channels=[32, 32, 64, 64]						,		in_channels=3						,		out_channels=3						,		down_block_types=[
              'DownEncoderBlock2D',
              'DownEncoderBlock2D',
              'DownEncoderBlock2D',
              'DownEncoderBlock2D',
          ]						,		up_block_types=['UpDecoderBlock2D', 'UpDecoderBlock2D', 'UpDecoderBlock2D', 'UpDecoderBlock2D']						,		latent_channels=4						,		)
      SCREAMING_SNAKE_CASE_									=						EulerDiscreteScheduler(prediction_type='sample')
      SCREAMING_SNAKE_CASE_									=						CLIPTextConfig(
          bos_token_id=0						,		eos_token_id=2						,		hidden_size=32						,		intermediate_size=37						,		layer_norm_eps=1E-05						,		num_attention_heads=4						,		num_hidden_layers=5						,		pad_token_id=1						,		vocab_size=1000						,		hidden_act='quick_gelu'						,		projection_dim=512						,		)
      SCREAMING_SNAKE_CASE_									=						CLIPTextModel(UpperCamelCase_)
      SCREAMING_SNAKE_CASE_									=						CLIPTokenizer.from_pretrained('hf-internal-testing/tiny-random-clip')

      SCREAMING_SNAKE_CASE_									=						{
          "unet": model.eval(),
          "vae": vae.eval(),
          "scheduler": scheduler,
          "text_encoder": text_encoder,
          "tokenizer": tokenizer,
      }

      return components

  def 						lowerCAmelCase__     (					self						,		_A						,		_A=0):
      if str(UpperCamelCase_).startswith('mps'):
          SCREAMING_SNAKE_CASE_									=						torch.manual_seed(UpperCamelCase_)
      else:
          SCREAMING_SNAKE_CASE_									=						torch.Generator(device=UpperCamelCase_).manual_seed(UpperCamelCase_)
      SCREAMING_SNAKE_CASE_									=						{
          "prompt": "A painting of a squirrel eating a burger",
          "image": self.dummy_image.cpu(),
          "generator": generator,
          "num_inference_steps": 2,
          "output_type": "numpy",
      }
      return inputs

  def 						lowerCAmelCase__     (					self):
      SCREAMING_SNAKE_CASE_									=						"cpu"

      SCREAMING_SNAKE_CASE_									=						self.get_dummy_components()
      SCREAMING_SNAKE_CASE_									=						self.pipeline_class(**UpperCamelCase_)
      pipe.to(UpperCamelCase_)
      pipe.set_progress_bar_config(disable=UpperCamelCase_)

      SCREAMING_SNAKE_CASE_									=						self.get_dummy_inputs(UpperCamelCase_)
      SCREAMING_SNAKE_CASE_									=						pipe(**UpperCamelCase_).images
      SCREAMING_SNAKE_CASE_									=						image[0, -3:, -3:, -1]

      self.assertEqual(image.shape						,		(1, 256, 256, 3))
      SCREAMING_SNAKE_CASE_									=						np.array(
          [0.4_7_2_2_2_4_1_2, 0.4_1_9_2_1_6_3_3, 0.4_4_7_1_7_4_3_4, 0.4_6_8_7_4_1_9_2, 0.4_2_5_8_8_2_5_8, 0.4_6_1_5_0_7_2_6, 0.4_6_7_7_5_3_4, 0.4_5_5_8_3_8_3_2, 0.4_8_5_7_9_0_5_5])
      SCREAMING_SNAKE_CASE_									=						np.abs(image_slice.flatten() - expected_slice).max()
      self.assertLessEqual(UpperCamelCase_						,		1E-3)

  def 						lowerCAmelCase__     (					self):
      super().test_attention_slicing_forward_pass(expected_max_diff=7E-3)

  def 						lowerCAmelCase__     (					self):
      super().test_cpu_offload_forward_pass(expected_max_diff=3E-3)

  def 						lowerCAmelCase__     (					self):
      super().test_dict_tuple_outputs_equivalent(expected_max_difference=3E-3)

  def 						lowerCAmelCase__     (					self):
      super().test_inference_batch_single_identical(expected_max_diff=7E-3)

  def 						lowerCAmelCase__     (					self):
      super().test_pt_np_pil_outputs_equivalent(expected_max_diff=3E-3)

  def 						lowerCAmelCase__     (					self):
      super().test_save_load_local(expected_max_difference=3E-3)

  def 						lowerCAmelCase__     (					self):
      super().test_save_load_optional_components(expected_max_difference=3E-3)


  def 						lowerCAmelCase__     (					self):
      SCREAMING_SNAKE_CASE_									=						[
          "DDIMScheduler",
          "DDPMScheduler",
          "PNDMScheduler",
          "HeunDiscreteScheduler",
          "EulerAncestralDiscreteScheduler",
          "KDPM2DiscreteScheduler",
          "KDPM2AncestralDiscreteScheduler",
          "DPMSolverSDEScheduler",
      ]
      SCREAMING_SNAKE_CASE_									=						self.get_dummy_components()
      SCREAMING_SNAKE_CASE_									=						self.pipeline_class(**UpperCamelCase_)

      # make sure that PNDM does not need warm-up
      pipe.scheduler.register_to_config(skip_prk_steps=UpperCamelCase_)

      pipe.to(UpperCamelCase_)
      pipe.set_progress_bar_config(disable=UpperCamelCase_)
      SCREAMING_SNAKE_CASE_									=						self.get_dummy_inputs(UpperCamelCase_)
      SCREAMING_SNAKE_CASE_									=						2

      SCREAMING_SNAKE_CASE_									=						[]
      for scheduler_enum in KarrasDiffusionSchedulers:
          if scheduler_enum.name in skip_schedulers:
              # no sigma schedulers are not supported
              # no schedulers
              continue

          SCREAMING_SNAKE_CASE_									=						getattr(UpperCamelCase_						,		scheduler_enum.name)
          SCREAMING_SNAKE_CASE_									=						scheduler_cls.from_config(pipe.scheduler.config)
          SCREAMING_SNAKE_CASE_									=						pipe(**UpperCamelCase_)[0]
          outputs.append(UpperCamelCase_)

      assert check_same_shape(UpperCamelCase_)






@require_torch_gpu
@slow
class       __snake_case  (    unittest.TestCase       ):

  def 						lowerCAmelCase__     (					self):
      super().tearDown()
      gc.collect()
      torch.cuda.empty_cache()

  def 						lowerCAmelCase__     (					self):
      SCREAMING_SNAKE_CASE_									=						torch.manual_seed(33)

      SCREAMING_SNAKE_CASE_									=						StableDiffusionPipeline.from_pretrained('CompVis/stable-diffusion-v1-4'						,		torch_dtype=torch.floataa)
      pipe.to('cuda')

      SCREAMING_SNAKE_CASE_									=						StableDiffusionLatentUpscalePipeline.from_pretrained(
          'stabilityai/sd-x2-latent-upscaler'						,		torch_dtype=torch.floataa)
      upscaler.to('cuda')

      SCREAMING_SNAKE_CASE_									=						"a photo of an astronaut high resolution, unreal engine, ultra realistic"

      SCREAMING_SNAKE_CASE_									=						pipe(UpperCamelCase_						,		generator=UpperCamelCase_						,		output_type='latent').images

      SCREAMING_SNAKE_CASE_									=						upscaler(
          prompt=UpperCamelCase_						,		image=UpperCamelCase_						,		num_inference_steps=20						,		guidance_scale=0						,		generator=UpperCamelCase_						,		output_type='np'						,		).images[0]

      SCREAMING_SNAKE_CASE_									=						load_numpy(
          'https://huggingface.co/datasets/hf-internal-testing/diffusers-images/resolve/main/latent-upscaler/astronaut_1024.npy')
      assert np.abs((expected_image - image).mean()) < 5E-2


  def 						lowerCAmelCase__     (					self):
      SCREAMING_SNAKE_CASE_									=						torch.manual_seed(33)

      SCREAMING_SNAKE_CASE_									=						StableDiffusionLatentUpscalePipeline.from_pretrained(
          'stabilityai/sd-x2-latent-upscaler'						,		torch_dtype=torch.floataa)
      upscaler.to('cuda')

      SCREAMING_SNAKE_CASE_									=						"the temple of fire by Ross Tran and Gerardo Dottori, oil on canvas"

      SCREAMING_SNAKE_CASE_									=						load_image(
          'https://huggingface.co/datasets/hf-internal-testing/diffusers-images/resolve/main/latent-upscaler/fire_temple_512.png')

      SCREAMING_SNAKE_CASE_									=						upscaler(
          prompt=UpperCamelCase_						,		image=UpperCamelCase_						,		num_inference_steps=20						,		guidance_scale=0						,		generator=UpperCamelCase_						,		output_type='np'						,		).images[0]

      SCREAMING_SNAKE_CASE_									=						load_numpy(
          'https://huggingface.co/datasets/hf-internal-testing/diffusers-images/resolve/main/latent-upscaler/fire_temple_1024.npy')
      assert np.abs((expected_image - image).max()) < 5E-2





import unittest

import numpy as np
from datasets import load_dataset

from transformers.testing_utils import require_torch, require_vision
from transformers.utils import is_torch_available, is_vision_available

from ...test_image_processing_common import ImageProcessingSavingTestMixin, prepare_image_inputs


if is_torch_available():
       import torch

if is_vision_available():
       from PIL import Image

       from transformers import BeitImageProcessor



class       __snake_case  (    unittest.TestCase       ):

  def __init__(					self						,		_A						,		_A=7						,		_A=3						,		_A=18						,		_A=30						,		_A=400						,		_A=True						,		_A=None						,		_A=True						,		_A=None						,		_A=True						,		_A=[0.5, 0.5, 0.5]						,		_A=[0.5, 0.5, 0.5]						,		_A=False						,		):
      SCREAMING_SNAKE_CASE_									=						size if size is not None else {'height': 20, 'width': 20}
      SCREAMING_SNAKE_CASE_									=						crop_size if crop_size is not None else {'height': 18, 'width': 18}
      SCREAMING_SNAKE_CASE_									=						parent
      SCREAMING_SNAKE_CASE_									=						batch_size
      SCREAMING_SNAKE_CASE_									=						num_channels
      SCREAMING_SNAKE_CASE_									=						image_size
      SCREAMING_SNAKE_CASE_									=						min_resolution
      SCREAMING_SNAKE_CASE_									=						max_resolution
      SCREAMING_SNAKE_CASE_									=						do_resize
      SCREAMING_SNAKE_CASE_									=						size
      SCREAMING_SNAKE_CASE_									=						do_center_crop
      SCREAMING_SNAKE_CASE_									=						crop_size
      SCREAMING_SNAKE_CASE_									=						do_normalize
      SCREAMING_SNAKE_CASE_									=						image_mean
      SCREAMING_SNAKE_CASE_									=						image_std
      SCREAMING_SNAKE_CASE_									=						do_reduce_labels


  def 						lowerCAmelCase__     (					self):
      return {
          "do_resize": self.do_resize,
          "size": self.size,
          "do_center_crop": self.do_center_crop,
          "crop_size": self.crop_size,
          "do_normalize": self.do_normalize,
          "image_mean": self.image_mean,
          "image_std": self.image_std,
          "do_reduce_labels": self.do_reduce_labels,
      }






def 					_UpperCAmelCase       (  ):





    """simple docstring"""


    SCREAMING_SNAKE_CASE_									=						load_dataset('hf-internal-testing/fixtures_ade20k' ,   split='test'       )

    SCREAMING_SNAKE_CASE_									=						Image.open(dataset[0]['file']       )
    SCREAMING_SNAKE_CASE_									=						Image.open(dataset[1]['file']       )

    return image, map


def 					_UpperCAmelCase       (  ):





    """simple docstring"""


    SCREAMING_SNAKE_CASE_									=						load_dataset('hf-internal-testing/fixtures_ade20k' ,   split='test'       )

    SCREAMING_SNAKE_CASE_									=						Image.open(ds[0]['file']       )
    SCREAMING_SNAKE_CASE_									=						Image.open(ds[1]['file']       )
    SCREAMING_SNAKE_CASE_									=						Image.open(ds[2]['file']       )
    SCREAMING_SNAKE_CASE_									=						Image.open(ds[3]['file']       )

    return [imagea, imagea], [mapa, mapa]





@require_torch
@require_vision
class       __snake_case  (    lowerCAmelCase__     , unittest.TestCase       ):
  __lowerCAmelCase     :	Union[str, Any]						 =  BeitImageProcessor if is_vision_available() else None

  def 						lowerCAmelCase__     (					self):
      SCREAMING_SNAKE_CASE_									=						BeitImageProcessingTester(self)

  @property
  def 						lowerCAmelCase__     (					self):
      return self.image_processor_tester.prepare_image_processor_dict()

  def 						lowerCAmelCase__     (					self):
      SCREAMING_SNAKE_CASE_									=						self.image_processing_class(**self.image_processor_dict)
      self.assertTrue(hasattr(_A						,		'do_resize'))
      self.assertTrue(hasattr(_A						,		'size'))
      self.assertTrue(hasattr(_A						,		'do_center_crop'))
      self.assertTrue(hasattr(_A						,		'center_crop'))
      self.assertTrue(hasattr(_A						,		'do_normalize'))
      self.assertTrue(hasattr(_A						,		'image_mean'))
      self.assertTrue(hasattr(_A						,		'image_std'))

  def 						lowerCAmelCase__     (					self):
      SCREAMING_SNAKE_CASE_									=						self.image_processing_class.from_dict(self.image_processor_dict)
      self.assertEqual(image_processor.size						,		{'height': 20, 'width': 20})
      self.assertEqual(image_processor.crop_size						,		{'height': 18, 'width': 18})
      self.assertEqual(image_processor.do_reduce_labels						,		_A)

      SCREAMING_SNAKE_CASE_									=						self.image_processing_class.from_dict(
          self.image_processor_dict						,		size=42						,		crop_size=84						,		reduce_labels=_A)
      self.assertEqual(image_processor.size						,		{'height': 42, 'width': 42})
      self.assertEqual(image_processor.crop_size						,		{'height': 84, 'width': 84})
      self.assertEqual(image_processor.do_reduce_labels						,		_A)

  def 						lowerCAmelCase__     (					self):
      pass

  def 						lowerCAmelCase__     (					self):
      # Initialize image_processing
      SCREAMING_SNAKE_CASE_									=						self.image_processing_class(**self.image_processor_dict)
      # create random PIL images
      SCREAMING_SNAKE_CASE_									=						prepare_image_inputs(self.image_processor_tester						,		equal_resolution=_A)
      for image in image_inputs:
          self.assertIsInstance(_A						,		Image.Image)

      # Test not batched input
      SCREAMING_SNAKE_CASE_									=						image_processing(image_inputs[0]						,		return_tensors='pt').pixel_values
      self.assertEqual(
          encoded_images.shape						,		(
              1,
              self.image_processor_tester.num_channels,
              self.image_processor_tester.crop_size['height'],
              self.image_processor_tester.crop_size['width'],
          )						,		)

      # Test batched
      SCREAMING_SNAKE_CASE_									=						image_processing(_A						,		return_tensors='pt').pixel_values
      self.assertEqual(
          encoded_images.shape						,		(
              self.image_processor_tester.batch_size,
              self.image_processor_tester.num_channels,
              self.image_processor_tester.crop_size['height'],
              self.image_processor_tester.crop_size['width'],
          )						,		)

  def 						lowerCAmelCase__     (					self):
      # Initialize image_processing
      SCREAMING_SNAKE_CASE_									=						self.image_processing_class(**self.image_processor_dict)
      # create random numpy tensors
      SCREAMING_SNAKE_CASE_									=						prepare_image_inputs(self.image_processor_tester						,		equal_resolution=_A						,		numpify=_A)
      for image in image_inputs:
          self.assertIsInstance(_A						,		np.ndarray)

      # Test not batched input
      SCREAMING_SNAKE_CASE_									=						image_processing(image_inputs[0]						,		return_tensors='pt').pixel_values
      self.assertEqual(
          encoded_images.shape						,		(
              1,
              self.image_processor_tester.num_channels,
              self.image_processor_tester.crop_size['height'],
              self.image_processor_tester.crop_size['width'],
          )						,		)

      # Test batched
      SCREAMING_SNAKE_CASE_									=						image_processing(_A						,		return_tensors='pt').pixel_values
      self.assertEqual(
          encoded_images.shape						,		(
              self.image_processor_tester.batch_size,
              self.image_processor_tester.num_channels,
              self.image_processor_tester.crop_size['height'],
              self.image_processor_tester.crop_size['width'],
          )						,		)

  def 						lowerCAmelCase__     (					self):
      # Initialize image_processing
      SCREAMING_SNAKE_CASE_									=						self.image_processing_class(**self.image_processor_dict)
      # create random PyTorch tensors
      SCREAMING_SNAKE_CASE_									=						prepare_image_inputs(self.image_processor_tester						,		equal_resolution=_A						,		torchify=_A)
      for image in image_inputs:
          self.assertIsInstance(_A						,		torch.Tensor)

      # Test not batched input
      SCREAMING_SNAKE_CASE_									=						image_processing(image_inputs[0]						,		return_tensors='pt').pixel_values
      self.assertEqual(
          encoded_images.shape						,		(
              1,
              self.image_processor_tester.num_channels,
              self.image_processor_tester.crop_size['height'],
              self.image_processor_tester.crop_size['width'],
          )						,		)

      # Test batched
      SCREAMING_SNAKE_CASE_									=						image_processing(_A						,		return_tensors='pt').pixel_values
      self.assertEqual(
          encoded_images.shape						,		(
              self.image_processor_tester.batch_size,
              self.image_processor_tester.num_channels,
              self.image_processor_tester.crop_size['height'],
              self.image_processor_tester.crop_size['width'],
          )						,		)

  def 						lowerCAmelCase__     (					self):
      # Initialize image_processing
      SCREAMING_SNAKE_CASE_									=						self.image_processing_class(**self.image_processor_dict)
      # create random PyTorch tensors
      SCREAMING_SNAKE_CASE_									=						prepare_image_inputs(self.image_processor_tester						,		equal_resolution=_A						,		torchify=_A)
      SCREAMING_SNAKE_CASE_									=						[]
      for image in image_inputs:
          self.assertIsInstance(_A						,		torch.Tensor)
          maps.append(torch.zeros(image.shape[-2:]).long())

      # Test not batched input
      SCREAMING_SNAKE_CASE_									=						image_processing(image_inputs[0]						,		maps[0]						,		return_tensors='pt')
      self.assertEqual(
          encoding['pixel_values'].shape						,		(
              1,
              self.image_processor_tester.num_channels,
              self.image_processor_tester.crop_size['height'],
              self.image_processor_tester.crop_size['width'],
          )						,		)
      self.assertEqual(
          encoding['labels'].shape						,		(
              1,
              self.image_processor_tester.crop_size['height'],
              self.image_processor_tester.crop_size['width'],
          )						,		)
      self.assertEqual(encoding['labels'].dtype						,		torch.long)
      self.assertTrue(encoding['labels'].min().item() >= 0)
      self.assertTrue(encoding['labels'].max().item() <= 255)

      # Test batched
      SCREAMING_SNAKE_CASE_									=						image_processing(_A						,		_A						,		return_tensors='pt')
      self.assertEqual(
          encoding['pixel_values'].shape						,		(
              self.image_processor_tester.batch_size,
              self.image_processor_tester.num_channels,
              self.image_processor_tester.crop_size['height'],
              self.image_processor_tester.crop_size['width'],
          )						,		)
      self.assertEqual(
          encoding['labels'].shape						,		(
              self.image_processor_tester.batch_size,
              self.image_processor_tester.crop_size['height'],
              self.image_processor_tester.crop_size['width'],
          )						,		)
      self.assertEqual(encoding['labels'].dtype						,		torch.long)
      self.assertTrue(encoding['labels'].min().item() >= 0)
      self.assertTrue(encoding['labels'].max().item() <= 255)

      # Test not batched input (PIL images)
      SCREAMING_SNAKE_CASE_							,			SCREAMING_SNAKE_CASE_									=						prepare_semantic_single_inputs()

      SCREAMING_SNAKE_CASE_									=						image_processing(_A						,		_A						,		return_tensors='pt')
      self.assertEqual(
          encoding['pixel_values'].shape						,		(
              1,
              self.image_processor_tester.num_channels,
              self.image_processor_tester.crop_size['height'],
              self.image_processor_tester.crop_size['width'],
          )						,		)
      self.assertEqual(
          encoding['labels'].shape						,		(
              1,
              self.image_processor_tester.crop_size['height'],
              self.image_processor_tester.crop_size['width'],
          )						,		)
      self.assertEqual(encoding['labels'].dtype						,		torch.long)
      self.assertTrue(encoding['labels'].min().item() >= 0)
      self.assertTrue(encoding['labels'].max().item() <= 255)

      # Test batched input (PIL images)
      SCREAMING_SNAKE_CASE_							,			SCREAMING_SNAKE_CASE_									=						prepare_semantic_batch_inputs()

      SCREAMING_SNAKE_CASE_									=						image_processing(_A						,		_A						,		return_tensors='pt')
      self.assertEqual(
          encoding['pixel_values'].shape						,		(
              2,
              self.image_processor_tester.num_channels,
              self.image_processor_tester.crop_size['height'],
              self.image_processor_tester.crop_size['width'],
          )						,		)
      self.assertEqual(
          encoding['labels'].shape						,		(
              2,
              self.image_processor_tester.crop_size['height'],
              self.image_processor_tester.crop_size['width'],
          )						,		)
      self.assertEqual(encoding['labels'].dtype						,		torch.long)
      self.assertTrue(encoding['labels'].min().item() >= 0)
      self.assertTrue(encoding['labels'].max().item() <= 255)


  def 						lowerCAmelCase__     (					self):
      # Initialize image_processing
      SCREAMING_SNAKE_CASE_									=						self.image_processing_class(**self.image_processor_dict)

      # ADE20k has 150 classes, and the background is included, so labels should be between 0 and 150
      SCREAMING_SNAKE_CASE_							,			SCREAMING_SNAKE_CASE_									=						prepare_semantic_single_inputs()
      SCREAMING_SNAKE_CASE_									=						image_processing(_A						,		_A						,		return_tensors='pt')
      self.assertTrue(encoding['labels'].min().item() >= 0)
      self.assertTrue(encoding['labels'].max().item() <= 150)

      SCREAMING_SNAKE_CASE_									=						True
      SCREAMING_SNAKE_CASE_									=						image_processing(_A						,		_A						,		return_tensors='pt')
      self.assertTrue(encoding['labels'].min().item() >= 0)
      self.assertTrue(encoding['labels'].max().item() <= 255)


