| 1234567891011121314151617181920212223242526272829303132333435 |
- from pathlib import Path
- import requests
- from loguru import logger
- from tqdm import tqdm
- from sorawm.configs import WATER_MARK_DETECT_YOLO_WEIGHTS
- DETECTOR_URL = "https://github.com/linkedlist771/SoraWatermarkCleaner/releases/download/V0.0.1/best.pt"
- def download_detector_weights():
- if not WATER_MARK_DETECT_YOLO_WEIGHTS.exists():
- logger.debug(f"llama weights not found, downloading from {DETECTOR_URL}")
- WATER_MARK_DETECT_YOLO_WEIGHTS.parent.mkdir(parents=True, exist_ok=True)
- try:
- response = requests.get(DETECTOR_URL, stream=True, timeout=300)
- response.raise_for_status()
- total_size = int(response.headers.get("content-length", 0))
- with open(WATER_MARK_DETECT_YOLO_WEIGHTS, "wb") as f:
- with tqdm(
- total=total_size, unit="B", unit_scale=True, desc="Downloading"
- ) as pbar:
- for chunk in response.iter_content(chunk_size=8192):
- if chunk:
- f.write(chunk)
- pbar.update(len(chunk))
- logger.success(f"✓ Weights downloaded: {WATER_MARK_DETECT_YOLO_WEIGHTS}")
- except requests.exceptions.RequestException as e:
- if WATER_MARK_DETECT_YOLO_WEIGHTS.exists():
- WATER_MARK_DETECT_YOLO_WEIGHTS.unlink()
- raise RuntimeError(f"Downing failed: {e}")
|