code: def check_inputs(
      self,
      prompt,
      image,
      original_image,
      batch_size,
      callback_steps,
      negative_prompt=None,
      prompt_embeds=None,
      negative_prompt_embeds=None,
  ):
      if (callback_steps is None) or (
          callback_steps is not None
          and (
              not isinstance(callback_steps, int) or callback_steps <= 0
          )
      ):
          raise ValueError(
              f"`callback_steps` has to be a positive integer but is {callback_steps} of type"
              f" {type(callback_steps)}."
          )
  
      if prompt is not None and prompt_embeds is not None:
          raise ValueError(
              f"Cannot forward both `prompt`: {prompt} and `prompt_embeds`: {prompt_embeds}. Please make sure to"
              " only forward one of the two."
          )
      elif prompt is None and prompt_embeds is None:
          raise ValueError(
              "Provide either `prompt` or `prompt_embeds`. Cannot leave both `prompt` and `prompt_embeds` undefined."
          )
      elif prompt is not None and (
          not isinstance(prompt, str) and not isinstance(prompt, list)
      ):
          raise ValueError(
              f"`prompt` has to be of type `str` or `list` but is {type(prompt)}"
          )
  
      if (
          negative_prompt is not None
          and negative_prompt_embeds is not None
      ):
          raise ValueError(
              f"Cannot forward both `negative_prompt`: {negative_prompt} and `negative_prompt_embeds`:"
              f" {negative_prompt_embeds}. Please make sure to only forward one of the two."
          )
  
      if (
          prompt_embeds is not None
          and negative_prompt_embeds is not None
      ):
          if prompt_embeds.shape != negative_prompt_embeds.shape:
              raise ValueError(
                  "`prompt_embeds` and `negative_prompt_embeds` must have the same shape when passed directly, but"
                  f" got: `prompt_embeds` {prompt_embeds.shape} != `negative_prompt_embeds`"
                  f" {negative_prompt_embeds.shape}."
              )
  
      # image
  
      if isinstance(image, list):
          check_image_type = image[0]
      else:
          check_image_type = image
  
      if (
          not isinstance(check_image_type, torch.Tensor)
          and not isinstance(check_image_type, PIL.Image.Image)
          and not isinstance(check_image_type, np.ndarray)
      ):
          raise ValueError(
              "`image` has to be of type `torch.FloatTensor`, `PIL.Image.Image`, `np.ndarray`, or List[...] but is"
              f" {type(check_image_type)}"
          )
  
      if isinstance(image, list):
          image_batch_size = len(image)
      elif isinstance(image, torch.Tensor):
          image_batch_size = image.shape[0]
      elif isinstance(image, PIL.Image.Image):
          image_batch_size = 1
      elif isinstance(image, np.ndarray):
          image_batch_size = image.shape[0]
      else:
          assert False
  
      if batch_size != image_batch_size:
          raise ValueError(
              f"image batch size: {image_batch_size} must be same as prompt batch size {batch_size}"
          )
  
      # original_image
  
      if isinstance(original_image, list):
          check_image_type = original_image[0]
      else:
          check_image_type = original_image
  
      if (
          not isinstance(check_image_type, torch.Tensor)
          and not isinstance(check_image_type, PIL.Image.Image)
          and not isinstance(check_image_type, np.ndarray)
      ):
          raise ValueError(
              "`original_image` has to be of type `torch.FloatTensor`, `PIL.Image.Image`, `np.ndarray`, or List[...] but is"
              f" {type(check_image_type)}"
          )
  
      if isinstance(original_image, list):
          image_batch_size = len(original_image)
      elif isinstance(original_image, torch.Tensor):
          image_batch_size = original_image.shape[0]
      elif isinstance(original_image, PIL.Image.Image):
          image_batch_size = 1
      elif isinstance(original_image, np.ndarray):
          image_batch_size = original_image.shape[0]
      else:
          assert False
  
      if batch_size != image_batch_size:
          raise ValueError(
              f"original_image batch size: {image_batch_size} must be same as prompt batch size {batch_size}"
          )
  
imports: import html
  import inspect
  import re
  import urllib.parse
  from typing import Any, Callable, Dict, List, Optional, Union
  import numpy
  import PIL.Image
  import torch
  import torch.nn.functional
  from transformers import CLIPImageProcessor, T5EncoderModel, T5Tokenizer
  from ...loaders import LoraLoaderMixin
  from ...models import UNet2DConditionModel
  from ...schedulers import DDPMScheduler
  from ...utils import BACKENDS_MAPPING, PIL_INTERPOLATION, is_accelerate_available, is_bs4_available, is_ftfy_available, logging, replace_example_docstring
  from ...utils.torch_utils import randn_tensor
  from ..pipeline_utils import DiffusionPipeline
  from .pipeline_output import IFPipelineOutput
  from .safety_checker import IFSafetyChecker
  from .watermark import IFWatermarker
label_desc: Use image node_id 8 for calling the IFImg2ImgSuperResolutionPipeline obj's underlying member method code with example usage: obj.check_inputs(prompt, image, original_image, batch_size, callback_steps, negative_prompt, prompt_embeds, negative_prompt_embeds) without return types