          if self.update_source:
              self._crop_source_faces()
          self._crop_destination_faces()
          logger.debug("Extracted faces from frames: %s",
                       {k: len(v) for k, v in self._faces.items()})
  
      def _crop_source_faces(self):
          """ Extract the source faces from the source frames, along with their filenames and the
          transformation matrix used to extract the faces. """
          logger.debug("Updating source faces")
 
</s> remove     def _crop_source_faces(self):
 </s> add     def _crop_source_faces(self) -> None: </s> remove         self._faces = {}
        for image in self.source:
            detected_face = image["detected_faces"][0]
            src_img = image["image"]
            detected_face.load_aligned(src_img, size=self._size, centering=self._centering)
 </s> add         self._faces = _Faces()  # Init new class
        for item in self.source:
            detected_face = item.inbound.detected_faces[0]
            src_img = item.inbound.image
            detected_face.load_aligned(src_img,
                                       size=self._size,
                                       centering=cast("CenteringType", self._centering)) </s> remove     def _faces_from_frames(self):
 </s> add     def _faces_from_frames(self) -> None: </s> remove     def _crop_destination_faces(self):
 </s> add     def _crop_destination_faces(self) -> None: </s> remove             self._faces.setdefault("filenames",
                                   []).append(os.path.splitext(image["filename"])[0])
            self._faces.setdefault("matrix", []).append(matrix)
            self._faces.setdefault("src", []).append(transform_image(src_img,
                                                                     matrix,
                                                                     self._size,
                                                                     self._padding))
 </s> add             self._faces.filenames.append(os.path.splitext(item.inbound.filename)[0])
            self._faces.matrix.append(matrix)
            self._faces.src.append(transform_image(src_img, matrix, self._size, self._padding))
                     {k: len(v) for k, v in self._faces.__dict__.items()})
          if self.update_source:
              self._crop_source_faces()
          self._crop_destination_faces()
          logger.debug("Extracted faces from frames: %s",
                     {k: len(v) for k, v in self._faces.__dict__.items()})
  
      def _crop_source_faces(self):
          """ Extract the source faces from the source frames, along with their filenames and the
          transformation matrix used to extract the faces. """
          logger.debug("Updating source faces")
keep keep keep keep replace keep keep keep keep keep
 Bugfix: convert - Gif Writer
  - Fix non-launch error on Gif Writer
  - convert plugins - linting
  - convert/fs_media/preview/queue_manager - typing
  - Change convert items from dict to Dataclass 
tools/preview/preview.py