code: def band_part(input, num_lower, num_upper, name=None):
      m, n = ivy.meshgrid(
          ivy.arange(input.shape[-2]),
          ivy.arange(input.shape[-1]),
          indexing="ij",
      )
      mask = ((num_lower < 0) | ((m - n) <= num_lower)) & (
          (num_upper < 0) | ((n - m) <= num_upper)
      )
      return ivy.where(mask, input, ivy.zeros_like(input))
  
imports: import ivy
  from ivy.functional.frontends.tensorflow import check_tensorflow_casting
  from ivy.func_wrapper import with_unsupported_dtypes, with_supported_dtypes
  from ivy.functional.frontends.tensorflow.func_wrapper import to_ivy_arrays_and_back, handle_tf_dtype
  import ivy.functional.frontends.tensorflow
label_desc: Use image node_id 2 for calling a global function with example usage: band_part(input, num_lower, num_upper, name) and returns: ivy