          Sets the batchsize of the requested plugins based on their vram and
          vram_per_batch_requirements if the the configured batchsize requires more
          vram than is available. Nvidia only.
          """
          if (self._detector.vram == 0 and self._aligner.vram == 0 and self._masker.vram == 0
              or get_backend() != "nvidia"):
              logger.debug("Either detector and aligner have no VRAM requirements or not running "
                           "on Nvidia. Not updating batchsize requirements.")
              return
          stats = GPUStats().get_card_most_free()
          vram_free = int(stats["free"])
          if self._is_parallel:
              vram_required = (self._detector.vram + self._aligner.vram + self._masker.vram +
 
</s> remove                      x, w, y, h, landmarks_xy, filename)
 </s> add                      x, w, y, h, landmarks_xy,
                     {k: v.shape for k, v in mask} if mask is not None else mask,
                     filename) </s> remove         self.x = x
        self.w = w
        self.y = y
        self.h = h
 </s> add         self.x = x  # pylint:disable=invalid-name
        self.w = w  # pylint:disable=invalid-name
        self.y = y  # pylint:disable=invalid-name
        self.h = h  # pylint:disable=invalid-name </s> remove                 "accomodate then this will automatically be lowered."
                "\n\tAMD users: A batchsize of 8 requires about xxxx GB vram.",
 </s> add                 "accomodate then this will automatically be lowered.",
        if get_backend() != "nvidia":
            logger.debug("Backend is not Nvidia. Not updating batchsize requirements")
            return
        if self._detector.vram == 0 and self._aligner.vram == 0 and self._masker.vram == 0:
            logger.debug("Either detector, aligner or masker have no VRAM requirements. Not "
                         "updating batchsize requirements.")
          Sets the batchsize of the requested plugins based on their vram and
          vram_per_batch_requirements if the the configured batchsize requires more
          vram than is available. Nvidia only.
          """
        if get_backend() != "nvidia":
            logger.debug("Backend is not Nvidia. Not updating batchsize requirements")
            return
        if self._detector.vram == 0 and self._aligner.vram == 0 and self._masker.vram == 0:
            logger.debug("Either detector, aligner or masker have no VRAM requirements. Not "
                         "updating batchsize requirements.")
        if get_backend() != "nvidia":
            logger.debug("Backend is not Nvidia. Not updating batchsize requirements")
            return
        if self._detector.vram == 0 and self._aligner.vram == 0 and self._masker.vram == 0:
            logger.debug("Either detector, aligner or masker have no VRAM requirements. Not "
                         "updating batchsize requirements.")
        if get_backend() != "nvidia":
            logger.debug("Backend is not Nvidia. Not updating batchsize requirements")
            return
        if self._detector.vram == 0 and self._aligner.vram == 0 and self._masker.vram == 0:
            logger.debug("Either detector, aligner or masker have no VRAM requirements. Not "
                         "updating batchsize requirements.")
        if get_backend() != "nvidia":
            logger.debug("Backend is not Nvidia. Not updating batchsize requirements")
            return
        if self._detector.vram == 0 and self._aligner.vram == 0 and self._masker.vram == 0:
            logger.debug("Either detector, aligner or masker have no VRAM requirements. Not "
                         "updating batchsize requirements.")
              return
          stats = GPUStats().get_card_most_free()
          vram_free = int(stats["free"])
          if self._is_parallel:
              vram_required = (self._detector.vram + self._aligner.vram + self._masker.vram +
keep keep keep keep replace replace replace replace keep keep keep keep keep
 Mask plugin cleanup

- PEP8 Fixes
- Remove config for non NN Masks
- Tidy up defaults helptext
- cli.py fix typos
- Remove unused imports and functions _base.py
- Standardize input_size param
- Enable and update documentation
- Change references from `aligner` to `masker`
- Change  input_size, output_size and coverage_ratio from kwargs to params
- Move load_aligned to batch input iterator
- Remove unnecessary self.input param
- Add softmax layer append function to KSession
- Remove references to KSession protected objects
- Standardize plugin output into finalize method
- Make masks full frame and add to lib.faces_detect
- Add masks to alignments.json (temporary zipped base64 solution) 
plugins/extract/pipeline.py