          logger.trace("Alignments for frame: (frame: '%s', alignments: %s)", frame, alignments)
          if not alignments:
              self.faces = list()
              return
          image = self.frames.load_image(frame)
          self.faces = [self.extract_one_face(alignment, image.copy()) for alignment in alignments]
          self.current_frame = frame
  
      def extract_one_face(self, alignment, image):
          """ Extract one face from image """
          logger.trace("Extracting one face: (frame: '%s', alignment: %s)",
 
</s> remove     def get_faces(self, frame):
 </s> add     def get_faces(self, frame, image=None): </s> remove     def get_faces_in_frame(self, frame, update=False):
 </s> add     def get_faces_in_frame(self, frame, update=False, image=None): </s> remove class Extract():
    """ Re-extract faces from source frames based on
        Alignment data """
 </s> add class Extract():  # pylint:disable=too-few-public-methods
    """ Re-extract faces from source frames based on Alignment data

    Parameters
    ----------
    alignments: :class:`tools.lib_alignments.media.AlignmentData`
        The alignments data loaded from an alignments file for this rename job
    arguments: :class:`argparse.Namespace`
        The :mod:`argparse` arguments as passed in from :mod:`tools.py`
    """ </s> remove             self.get_faces(frame)
 </s> add             self.get_faces(frame, image=image) </s> remove     def select_valid_faces(self, frame):
        """ Return valid faces for extraction """
        faces = self.extracted_faces.get_faces_in_frame(frame)
        if not self.arguments.large:
 </s> add     def _select_valid_faces(self, frame, image):
        """ Return the aligned faces from a frame that meet the selection criteria,

        Parameters
        ----------
        frame: str
            The filename (without the full path) of the current frame
        image: :class:`numpy.ndarray`
            The full frame that faces are to be extracted from

        Returns
        -------
        list:
            List of valid :class:`lib,faces_detect.DetectedFace` objects
        """
        faces = self._extracted_faces.get_faces_in_frame(frame, image=image)
        if not self._arguments.large:
        image = self.frames.load_image(frame) if image is None else image
        self.faces = [self.extract_one_face(alignment, image) for alignment in alignments]
          logger.trace("Alignments for frame: (frame: '%s', alignments: %s)", frame, alignments)
          if not alignments:
              self.faces = list()
              return
        image = self.frames.load_image(frame) if image is None else image
        self.faces = [self.extract_one_face(alignment, image) for alignment in alignments]
        image = self.frames.load_image(frame) if image is None else image
        self.faces = [self.extract_one_face(alignment, image) for alignment in alignments]
          self.current_frame = frame
  
      def extract_one_face(self, alignment, image):
          """ Extract one face from image """
          logger.trace("Extracting one face: (frame: '%s', alignment: %s)",
keep keep keep keep replace replace keep keep keep keep keep
 lib.alignments: improve re-extraction speed by 500% 
tools/lib_alignments/media.py