Spaces:
Sleeping
Sleeping
| """Download the Keras model from Google Drive when it is not already on disk. | |
| Public sharing link: | |
| https://drive.google.com/file/d/1VHHRMPoqpTOy53s2mkYwrBp2LOYDbUWL/view | |
| Override file id with env GDRIVE_MODEL_FILE_ID if you mirror the file elsewhere. | |
| """ | |
| from __future__ import annotations | |
| import os | |
| import sys | |
| DEFAULT_DRIVE_FILE_ID = "1VHHRMPoqpTOy53s2mkYwrBp2LOYDbUWL" | |
| def ensure_model_file(model_path: str, *, drive_file_id: str | None = None) -> bool: | |
| """Return True if ``model_path`` exists after a possible Drive download.""" | |
| if os.path.isfile(model_path): | |
| return True | |
| directory = os.path.dirname(model_path) | |
| if directory: | |
| os.makedirs(directory, exist_ok=True) | |
| fid = (drive_file_id or os.environ.get("GDRIVE_MODEL_FILE_ID") or DEFAULT_DRIVE_FILE_ID).strip() | |
| if not fid: | |
| return False | |
| try: | |
| import gdown | |
| except ImportError: | |
| print("Install gdown to fetch the model from Google Drive.", file=sys.stderr) | |
| return False | |
| url = f"https://drive.google.com/uc?id={fid}" | |
| try: | |
| gdown.download(url, model_path, quiet=False) | |
| except Exception as exc: | |
| print(f"Google Drive download failed: {exc}", file=sys.stderr) | |
| return False | |
| return os.path.isfile(model_path) | |