          logger.debug("header_box.shape: %s", header_box.shape)
          return header_box
  
      @classmethod
      def _duplicate_headers(cls, headers, columns):
          """ Duplicate headers for the number of columns displayed for each side.
  
          Parameters
          ----------
          headers: :class:`numpy.ndarray`
 
</s> remove         headers: :class:`numpy.ndarray`
            The header to be duplicated
 </s> add         headers: dict
            The headers to be duplicated for each side </s> remove         :class:`numpy.ndarray`
            The original headers duplicated by the number of columns
 </s> add         :class:dict
            The original headers duplicated by the number of columns for each side </s> remove     feeder: dict
        The :class:`_Feeder` for generating the time-lapse images.
 </s> add     feeder: :class:`_Feeder`
        The feeder for generating the time-lapse images. </s> remove     def __init__(self, model, coverage_ratio):
 </s> add     def __init__(self, model: "ModelBase", coverage_ratio: float) -> None: </s> remove     def _overlay_foreground(cls, backgrounds, foregrounds):
 </s> add     def _overlay_foreground(cls, backgrounds: np.ndarray, foregrounds: np.ndarray) -> np.ndarray:
    def _duplicate_headers(cls,
                           headers: Dict[Literal["a", "b"], np.ndarray],
                           columns: int) -> Dict[Literal["a", "b"], np.ndarray]:
          logger.debug("header_box.shape: %s", header_box.shape)
          return header_box
  
      @classmethod
    def _duplicate_headers(cls,
                           headers: Dict[Literal["a", "b"], np.ndarray],
                           columns: int) -> Dict[Literal["a", "b"], np.ndarray]:
          """ Duplicate headers for the number of columns displayed for each side.
  
          Parameters
          ----------
          headers: :class:`numpy.ndarray`
keep keep keep keep replace keep keep keep keep keep
 Data Augmentation update (#1263)

- lib.detected_face
    - Subclass Masks for Landmark based masks
    - Add training mask propery + methods to DetectedFace
  - lib.training_training
    - subclass TrainingDataGenerator for training and preview data
    - Split cache into own module
    - Reduce thread count to 1 to prevent image corruption + data re-use
    - Process on largest model input/output size rather than stored image size
    - Size and crop masks during caching stage
    - Implement ring buffer for data flow
    - Fix preview reload bug
  - augmentation
    - typing
    - switch color aug order
    - better initialization
    - Fix warp + landmark warp to correctly apply at different image scales
    - Slightly improved warp caching
    - Don't store whether image is_preview. Handle all data as training images implicitly
  - plugins.trainer: Typing and fixes to work with trainingdata refactor 
plugins/train/trainer/_base.py