"""Скачивает веса детектора номеров с Hugging Face Hub.""" from pathlib import Path from huggingface_hub import hf_hub_download MODELS_DIR = Path(__file__).resolve().parent.parent / "models" MODELS_DIR.mkdir(exist_ok=True) # Список репо для попытки скачивания (если первый не сработает — пробуем следующий) CANDIDATES = [ ("Koushim/yolov8-license-plate-detection", "best.pt"), ("keremberke/yolov8m-license-plate", "best.pt"), ("keremberke/yolov8n-license-plate", "best.pt"), ] OUT_NAME = "yolov8_plate.pt" print("Скачиваю YOLOv8 детектор номеров...") for repo_id, filename in CANDIDATES: try: print(f" пробую: {repo_id}/{filename}") downloaded = hf_hub_download( repo_id=repo_id, filename=filename, local_dir=str(MODELS_DIR), ) # Переименуем под единое имя, чтобы код пайплайна не зависел от источника src = Path(downloaded) dst = MODELS_DIR / OUT_NAME if src.resolve() != dst.resolve(): if dst.exists(): dst.unlink() src.rename(dst) print(f"✓ Детектор сохранён как: {dst}") break except Exception as e: print(f" ✗ не получилось: {type(e).__name__}: {e}") continue else: print("❌ Ни один из репозиториев не сработал. Напиши мне.") exit(1) print("\nГотово! fast-plate-ocr скачает свою модель автоматически при первом запуске.")