code: def postprocess(
      self,
      image: np.ndarray,
      output_type: str = "pil",
      do_denormalize: Optional[List[bool]] = None,
  ):
      if not isinstance(image, np.ndarray):
          raise ValueError(
              f"Input for postprocessing is in incorrect format: {type(image)}. We only support np array"
          )
      if output_type not in ["latent", "np", "pil"]:
          deprecation_message = (
              f"the output_type {output_type} is outdated and has been set to `np`. Please make sure to set it to one of these instead: "
              "`pil`, `np`, `pt`, `latent`"
          )
          warnings.warn(deprecation_message, FutureWarning)
          output_type = "np"
  
      if output_type == "latent":
          return image
  
      if do_denormalize is None:
          do_denormalize = [self.config.do_normalize] * image.shape[0]
  
      image = np.stack(
          [
              self.denormalize(image[i])
              if do_denormalize[i]
              else image[i]
              for i in range(image.shape[0])
          ],
          axis=0,
      )
  
      image = image.transpose((0, 2, 3, 1))
  
      if output_type == "pil":
          image = self.numpy_to_pil(image)
  
      return image
  
imports: import warnings
  from typing import List, Optional, Union
  import numpy
  import PIL
  import torch
  from diffusers import ConfigMixin
  from diffusers.image_processor import VaeImageProcessor
  from diffusers.utils.pil_utils import PIL_INTERPOLATION
  from PIL import Image
  from tqdm.auto import tqdm
label_desc: Use image node_id 3 for calling the VaeImageProcessor obj's underlying member method code with example usage: obj.postprocess(image, output_type, do_denormalize) and returns: image, image