          # else:
          #    predicted = batch["prediction"]
          # predicted[predicted < 0.04] = 0.0
          # predicted[predicted > 0.96] = 1.0
          # TODO Convert landmarks_xy to numpy arrays
          for mask, face in zip(batch["prediction"], batch["detected_faces"]):
              face.add_mask(self._storage_name,
                            mask,
                            face.feed_matrix,
                            (face.image.shape[1], face.image.shape[0]),
 
</s> remove             face.feed = None
 </s> add             face.feed = dict() </s> remove         self.input_size = 256  # Overide for model specific input_size
        self.blur_kernel = 5  # Overide for model specific blur_kernel size
        self.coverage_ratio = 1.0  # Overide for model specific coverage_ratio
 </s> add         self.input_size = 256  # Override for model specific input_size
        self.blur_kernel = 5  # Override for model specific blur_kernel size
        self.coverage_ratio = 1.0  # Override for model specific coverage_ratio </s> remove         gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)  # pylint: disable=no-member
 </s> add         gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY) </s> remove         self.vram = 2000  # TODO determine
        self.vram_warnings = 1024  # TODO determine
        self.vram_per_batch = 64  # TODO determine
 </s> add         self.vram = 3104
        self.vram_warnings = 1088  # at BS 1. OOMs at higher batchsizes
        self.vram_per_batch = 96 </s> remove         self.vram = 3000  # TODO determine
        self.vram_warnings = 1024  # TODO determine
        self.vram_per_batch = 64  # TODO determine
 </s> add         self.vram = 3936
        self.vram_warnings = 1088  # at BS 1. OOMs at higher batchsizes
        self.vram_per_batch = 208
          # else:
          #    predicted = batch["prediction"]
          # predicted[predicted < 0.04] = 0.0
          # predicted[predicted > 0.96] = 1.0

          for mask, face in zip(batch["prediction"], batch["detected_faces"]):
              face.add_mask(self._storage_name,
                            mask,
                            face.feed_matrix,
                            (face.image.shape[1], face.image.shape[0]),
keep keep keep keep replace keep keep keep keep keep
 Smart Mask - Extract code review

- Lint simple_tests.py
- Only reformat alignments file if it exists otherwise change filename
- Update legacy alignments to new format at all stages
- faces_detect.Mask.from_dict - logging format fix
- convert.py fix otf for new pipeline
- cli.py - Add note that masks not used. Revert convert masks
- faces_detect.py - Revert non-extract code
- Add .p and .pickle extensions for serializer
- plugins/extract revert some changes
- scripts/fsmedia - Revert code changes
- Pipeline - cleanup
- Consistant alpha channel stripping (fixes single-process)
- Store landmarks as numpy array
- Code attribution
- Normalize feed face and reference face to 0.0 - 1.0 in convert
- Lock in mask VRAM sized
- Add documentation to plugin_loader
- Update alignments tool to work with new format 
plugins/extract/mask/_base.py