code: def _side_to_image_size(
      side_size: int, aspect_ratio: float, side: str = "short"
  ) -> Tuple[int, int]:
      if side not in ("short", "long", "vert", "horz"):
          raise ValueError(
              f"side can be one of 'short', 'long', 'vert', and 'horz'. Got '{side}'"
          )
      if side == "vert":
          return side_size, int(side_size * aspect_ratio)
      if side == "horz":
          return int(side_size / aspect_ratio), side_size
      if (side == "short") ^ (aspect_ratio < 1.0):
          return side_size, int(side_size * aspect_ratio)
      return int(side_size / aspect_ratio), side_size
  
imports: from typing import Optional, Tuple, Union
  import torch
  from torch import nn
  from kornia.core import ones, ones_like, zeros
  from kornia.filters import gaussian_blur2d
  from kornia.utils import _extract_device_dtype
  from kornia.utils.image import perform_keep_shape_image
  from kornia.utils.misc import eye_like
  from .imgwarp import get_affine_matrix2d, get_projective_transform, get_rotation_matrix2d, warp_affine, warp_affine3d
label_desc: Use image node_id 15 for calling a global function with example usage: _side_to_image_size(side_size, aspect_ratio, side) and returns: int,  side_size, side_size,  int, int,  side_size, side_size,  int