              self.aligned["size"] = size
              self.aligned["padding"] = padding
              self.aligned["matrix"] = get_align_mat(self)
              self.aligned["face"] = None
          if image is not None and self.aligned["face"] is None:
              logger.trace("Getting aligned face")
              face = AlignerExtract().transform(image, self.aligned["matrix"], size, padding)
              self.aligned["face"] = face if dtype is None else face.astype(dtype)
  
          logger.trace("Loaded aligned face: %s", {k: str(v) if isinstance(v, np.ndarray) else v
 
</s> remove         if self.aligned:
 </s> add         if self.aligned and not force: </s> remove     def load_aligned(self, image, size=256, dtype=None):
 </s> add     def load_aligned(self, image, size=256, dtype=None, force=False):
        if image is not None and (self.aligned["face"] is None or force):
              self.aligned["size"] = size
              self.aligned["padding"] = padding
              self.aligned["matrix"] = get_align_mat(self)
              self.aligned["face"] = None
        if image is not None and (self.aligned["face"] is None or force):
              logger.trace("Getting aligned face")
              face = AlignerExtract().transform(image, self.aligned["matrix"], size, padding)
              self.aligned["face"] = face if dtype is None else face.astype(dtype)
  
          logger.trace("Loaded aligned face: %s", {k: str(v) if isinstance(v, np.ndarray) else v
keep keep keep keep replace keep keep keep keep keep
 Core updates (#981)

* Icon + minor files update

* lib.faces_detect
      - Add option to force reload an aligned face
      - Make sure a default blur and threshold parameter is set
      - Add ability to replace an existing mask 
lib/faces_detect.py