          self._storage_centering = "head" if self.config["include_hair"] else "face"
          # Separate storage for face and head masks
          self._storage_name = f"{self._storage_name}_{self._storage_centering}"
  
      def _check_weights_selection(self, configfile: T.Optional[str]) -> T.Tuple[bool, int]:
          """ Check which weights have been selected.
  
          This is required for passing along the correct file name for the corresponding weights
          selection, so config needs to be loaded and scanned prior to parent loading it.
  
 
</s> remove         self._storage_centering: "CenteringType" = "face"  # Centering to store the mask at
 </s> add         self._storage_centering: CenteringType = "face"  # Centering to store the mask at </s> remove     def _check_cache(self, session_id: Optional[int] = None) -> None:
 </s> add     def _check_cache(self, session_id: int | None = None) -> None: </s> remove                     configfile: Optional[str],
                    config: Optional[FaceswapConfig]) -> dict:
 </s> add                     configfile: str | None,
                    config: FaceswapConfig | None) -> dict: </s> remove                        layer: T.Union[keras.models.Model, keras.layers.Layer]) -> dict:
 </s> add                        layer: keras.models.Model | keras.layers.Layer) -> dict: </s> remove         retval = dict(alignments_file=alignments,
                      faces_dir=[None for _ in range(len(alignments))],
                      frames_dir=[None for _ in range(len(alignments))])
 </s> add         retval = {"alignments_file": alignments,
                  "faces_dir": [None for _ in range(len(alignments))],
                  "frames_dir": [None for _ in range(len(alignments))]}
    def _check_weights_selection(self, configfile: str | None) -> tuple[bool, int]:
          self._storage_centering = "head" if self.config["include_hair"] else "face"
          # Separate storage for face and head masks
          self._storage_name = f"{self._storage_name}_{self._storage_centering}"
  
    def _check_weights_selection(self, configfile: str | None) -> tuple[bool, int]:
          """ Check which weights have been selected.
  
          This is required for passing along the correct file name for the corresponding weights
          selection, so config needs to be loaded and scanned prior to parent loading it.
  
keep keep keep keep replace keep keep keep keep keep
 Rebase code (#1326)

* Remove tensorflow_probability requirement

* setup.py - fix progress bars

* requirements.txt: Remove pre python 3.9 packages

* update apple requirements.txt

* update INSTALL.md

* Remove python<3.9 code

* setup.py - fix Windows Installer

* typing: python3.9 compliant

* Update pytest and readthedocs python versions

* typing fixes

* Python Version updates
  - Reduce max version to 3.10
  - Default to 3.10 in installers
  - Remove incompatible 3.11 tests

* Update dependencies

* Downgrade imageio dep for Windows

* typing: merge optional unions and fixes

* Updates
  - min python version 3.10
  - typing to python 3.10 spec
  - remove pre-tf2.10 code
  - Add conda tests

* train: re-enable optimizer saving

* Update dockerfiles

* Update setup.py
  - Apple Conda deps to setup.py
  - Better Cuda + dependency handling

* bugfix: Patch logging to prevent Autograph errors

* Update dockerfiles

* Setup.py - Setup.py - stdout to utf-8

* Add more OSes to github Actions

* suppress mac-os end to end test 
plugins/extract/mask/bisenet_fp.py