          self.output.info(f"Setup in {self.os_version[0]} {self.os_version[1]}")
          if not self.updater and not self.os_version[0] in ["Windows", "Linux", "Darwin"]:
              self.output.error(f"Your system {self.os_version[0]} is not supported!")
              sys.exit(1)
          if (not self.updater and
                  self.os_version[0].lower() == "darwin" and
                  platform.machine() == "arm64" and not self.is_conda):
              self.output.error("Setting up Faceswap for Apple Silicon outside of a Conda "
                                "environment is unsupported")
              sys.exit(1)
  
      def check_python(self) -> None:
          """ Check python and virtual environment status """
          self.output.info(f"Installed Python: {self.py_version[0]} {self.py_version[1]}")
  
 
</s> remove             self.cuda_version = version.groupdict().get("cuda", None)
 </s> add             if version is not None:
                self.cuda_version = version.groupdict().get("cuda", None) </s> remove     def _cuda_check_windows(self):
 </s> add     def _cuda_check_windows(self) -> None: </s> remove     def _cuda_check_linux(self):
 </s> add     def _cuda_check_linux(self) -> None: </s> remove     def __init__(self):
        self.cuda_path = None
        self.cuda_version = None
        self.cudnn_version = None
 </s> add     def __init__(self) -> None:
        self.cuda_path: Optional[str] = None
        self.cuda_version: Optional[str] = None
        self.cudnn_version: Optional[str] = None </s> remove     def _cuda_check(self):
 </s> add     def _cuda_check(self) -> None:
        if self.os_version[0].lower() == "darwin" and platform.machine() == "arm64":
            self.enable_apple_silicon = True

            if not self.updater and not self.is_conda:
                self.output.error("Setting up Faceswap for Apple Silicon outside of a Conda "
                                  "environment is unsupported")
                sys.exit(1)
          self.output.info(f"Setup in {self.os_version[0]} {self.os_version[1]}")
          if not self.updater and not self.os_version[0] in ["Windows", "Linux", "Darwin"]:
              self.output.error(f"Your system {self.os_version[0]} is not supported!")
              sys.exit(1)
        if self.os_version[0].lower() == "darwin" and platform.machine() == "arm64":
            self.enable_apple_silicon = True

            if not self.updater and not self.is_conda:
                self.output.error("Setting up Faceswap for Apple Silicon outside of a Conda "
                                  "environment is unsupported")
                sys.exit(1)
        if self.os_version[0].lower() == "darwin" and platform.machine() == "arm64":
            self.enable_apple_silicon = True

            if not self.updater and not self.is_conda:
                self.output.error("Setting up Faceswap for Apple Silicon outside of a Conda "
                                  "environment is unsupported")
                sys.exit(1)
        if self.os_version[0].lower() == "darwin" and platform.machine() == "arm64":
            self.enable_apple_silicon = True

            if not self.updater and not self.is_conda:
                self.output.error("Setting up Faceswap for Apple Silicon outside of a Conda "
                                  "environment is unsupported")
                sys.exit(1)
        if self.os_version[0].lower() == "darwin" and platform.machine() == "arm64":
            self.enable_apple_silicon = True

            if not self.updater and not self.is_conda:
                self.output.error("Setting up Faceswap for Apple Silicon outside of a Conda "
                                  "environment is unsupported")
                sys.exit(1)
        if self.os_version[0].lower() == "darwin" and platform.machine() == "arm64":
            self.enable_apple_silicon = True

            if not self.updater and not self.is_conda:
                self.output.error("Setting up Faceswap for Apple Silicon outside of a Conda "
                                  "environment is unsupported")
                sys.exit(1)
        if self.os_version[0].lower() == "darwin" and platform.machine() == "arm64":
            self.enable_apple_silicon = True

            if not self.updater and not self.is_conda:
                self.output.error("Setting up Faceswap for Apple Silicon outside of a Conda "
                                  "environment is unsupported")
                sys.exit(1)
  
      def check_python(self) -> None:
          """ Check python and virtual environment status """
          self.output.info(f"Installed Python: {self.py_version[0]} {self.py_version[1]}")
  
keep keep keep keep replace replace replace replace replace replace keep keep keep keep keep
 pin protobuf

Setup: automatically detect for apple-silicon 
setup.py