code: def inverse(
      self,
      *arg: DataType,
      module: Module,
      param: ParamItem,
      extra_args: Dict[DataKey, Dict[str, Any]],
      data_keys: Optional[
          Union[List[str], List[int], List[DataKey]]
      ] = None,
  ) -> Union[DataType, List[DataType]]:
      _data_keys = self.preproc_datakeys(data_keys)
      outputs = []
      for inp, dcate in zip(arg, _data_keys):
          op = self._get_op(dcate)
          extra_arg = extra_args[dcate] if dcate in extra_args else {}
          outputs.append(
              op.inverse(inp, module, param=param, extra_args=extra_arg)
          )
      if len(outputs) == 1 and isinstance(outputs, (list, tuple)):
          return outputs[0]
      return outputs
  
imports: from abc import ABCMeta, abstractmethod
  from typing import Any, Callable, Dict, Generic, List, Optional, Type, TypeVar, Union
  from typing_extensions import ParamSpec
  import kornia.augmentation
  from kornia.augmentation.base import _AugmentationBase
  from kornia.constants import DataKey
  from kornia.core import Module, Tensor
  from kornia.geometry.boxes import Boxes
  from kornia.geometry.keypoints import Keypoints
  from .params import ParamItem
label_desc: Use image node_id 7 for calling the AugmentationSequentialOps obj's underlying member method code with example usage: obj.inverse() and returns: outputs, outputs