code: def get_model_from_type(
      model_type: CameraModelType, image_size: ImageSize, params: Tensor
  ) -> CameraModelVariants:
      if model_type == CameraModelType.PINHOLE:
          return PinholeModel(image_size, params)
      elif model_type == CameraModelType.BROWN_CONRADY:
          return BrownConradyModel(image_size, params)
      elif model_type == CameraModelType.KANNALA_BRANDT_K3:
          return KannalaBrandtK3(image_size, params)
      elif model_type == CameraModelType.ORTHOGRAPHIC:
          return Orthographic(image_size, params)
      else:
          raise ValueError("Invalid Camera Model Type")
  
imports: from __future__ import annotations
  from enum import Enum
  from typing import Any, Union
  from kornia.core import Tensor, stack, zeros_like
  from kornia.geometry.vector import Vector2, Vector3
  from kornia.image import ImageSize
  from kornia.sensors.camera.distortion_model import AffineTransform, BrownConradyTransform, KannalaBrandtK3Transform
  from kornia.sensors.camera.projection_model import OrthographicProjection, Z1Projection
label_desc: Use image node_id 1 for calling a global function with example usage: get_model_from_type(model_type, image_size, params) and returns: PinholeModel, BrownConradyModel, KannalaBrandtK3, Orthographic