class_docstr: MultimodalPredictor that only uses image features.
  Currently only supports 1 image column, with 1 image per sample.
  Additionally has special null image handling to improve performance in the presence of null images (aka image path of '')
      Note: null handling has not been compared to the built-in null handling of MultimodalPredictor yet.
code: def preprocess_fit(self, X, y, X_val=None, y_val=None, **kwargs):
      X, y, X_val, y_val = super().preprocess_fit(
          X=X, y=y, X_val=X_val, y_val=y_val, **kwargs
      )
      X_features = list(X.columns)
      if len(X_features) != 1:
          raise AssertionError(
              f"ImagePredictorModel only supports one image feature, but {len(X_features)} were given: {X_features}"
          )
      self._image_col_name = X_features[0]
      null_indices = X[self._image_col_name] == ""
  
      # TODO: Consider some kind of weighting of the two options so there isn't a harsh cutoff at 50
      # FIXME: What if all rows in a class are null? Will probably crash.
      if null_indices.sum() > 50:
          self._dummy_pred_proba = self._compute_dummy_pred_proba(
              y[null_indices]
          )  # FIXME: Do this one for better results
      else:
          # Not enough null to get a confident estimate of null label average, instead use all data average
          self._dummy_pred_proba = self._compute_dummy_pred_proba(y)
  
      if null_indices.sum() > 0:
          X = X[~null_indices]
          y = y[~null_indices]
  
      if X_val is not None:
          null_indices_val = X_val[self._image_col_name] == ""
          if null_indices_val.sum() > 0:
              X_val = X_val[~null_indices_val]
              y_val = y_val[~null_indices_val]
  
      return X, y, X_val, y_val
  
file_path: autogluon/tabular/src/autogluon/tabular/models/image_prediction/image_predictor.py
imports: import logging
  import numpy
  import pandas
  from autogluon.common.features.types import R_OBJECT, S_IMAGE_PATH
  from autogluon.core.constants import BINARY, MULTICLASS, QUANTILE, REGRESSION, SOFTCLASS
  from ..automm.automm_model import MultiModalPredictorModel
label_desc: Use image node_id 5 for calling the ImagePredictorModel obj's underlying member method code with example usage: obj.preprocess_fit(X, y, X_val, y_val) and returns: X,  y,  X_val,  y_val