Spaces:
Runtime error
Runtime error
Update model_manager.py
Browse files- model_manager.py +31 -10
model_manager.py
CHANGED
|
@@ -215,18 +215,31 @@ class ModelManager:
|
|
| 215 |
loop = asyncio.get_running_loop()
|
| 216 |
|
| 217 |
def _dl(repo, glob):
|
| 218 |
-
import subprocess
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 219 |
for g in [glob, m.glob_fallback if glob == m.glob_primary else ""]:
|
| 220 |
if not g:
|
| 221 |
continue
|
| 222 |
-
|
| 223 |
-
|
| 224 |
-
|
| 225 |
-
|
| 226 |
-
|
| 227 |
-
|
|
|
|
|
|
|
|
|
|
| 228 |
if r.returncode == 0:
|
| 229 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
| 230 |
return ""
|
| 231 |
|
| 232 |
TIMEOUT = float(os.getenv("DOWNLOAD_TIMEOUT", "30.0")) * 20 # max 10 min
|
|
@@ -429,16 +442,24 @@ if __name__ == "__main__":
|
|
| 429 |
|
| 430 |
elif cmd == "ensure-downloaded":
|
| 431 |
async def _run():
|
|
|
|
|
|
|
| 432 |
mgr.apply_pending()
|
| 433 |
m = CATALOG_BY_ID.get(mgr.cfg.active_id) or mgr.select_best()
|
| 434 |
mgr.cfg.active_id = m.id
|
|
|
|
| 435 |
path, mmproj = await mgr.download(m)
|
| 436 |
if not path:
|
| 437 |
-
|
| 438 |
fb = min(CATALOG, key=lambda x: x.size_gb)
|
|
|
|
| 439 |
path, mmproj = await mgr.download(fb)
|
| 440 |
if path:
|
| 441 |
mgr.cfg.active_id = fb.id
|
|
|
|
|
|
|
|
|
|
|
|
|
| 442 |
mgr.cfg.active_path = path
|
| 443 |
mgr.cfg.mmproj_path = mmproj
|
| 444 |
mgr.cfg.save()
|
|
@@ -451,4 +472,4 @@ if __name__ == "__main__":
|
|
| 451 |
asyncio.run(_run())
|
| 452 |
|
| 453 |
else:
|
| 454 |
-
print(f"Unknown: {cmd}", file=sys.stderr); sys.exit(1)
|
|
|
|
| 215 |
loop = asyncio.get_running_loop()
|
| 216 |
|
| 217 |
def _dl(repo, glob):
|
| 218 |
+
import subprocess
|
| 219 |
+
# Build env — HF_TOKEN optional for public repos
|
| 220 |
+
env = {**os.environ, "HF_HUB_ENABLE_HF_TRANSFER": "1"}
|
| 221 |
+
token = os.getenv("HF_TOKEN", "").strip()
|
| 222 |
+
if token:
|
| 223 |
+
env["HUGGING_FACE_HUB_TOKEN"] = token
|
| 224 |
+
env["HF_TOKEN"] = token
|
| 225 |
for g in [glob, m.glob_fallback if glob == m.glob_primary else ""]:
|
| 226 |
if not g:
|
| 227 |
continue
|
| 228 |
+
cmd = ["huggingface-cli", "download", repo,
|
| 229 |
+
"--include", g, "--local-dir", str(MODEL_DIR)]
|
| 230 |
+
if not token:
|
| 231 |
+
# Public access — verbose to see any auth errors
|
| 232 |
+
cmd.append("--quiet")
|
| 233 |
+
else:
|
| 234 |
+
cmd.append("--quiet")
|
| 235 |
+
logger.info(f"[models] Running: {' '.join(cmd[:5])}...")
|
| 236 |
+
r = subprocess.run(cmd, env=env, capture_output=True, timeout=600)
|
| 237 |
if r.returncode == 0:
|
| 238 |
+
logger.info(f"[models] Download succeeded for glob: {g}")
|
| 239 |
+
return ""
|
| 240 |
+
else:
|
| 241 |
+
err = r.stderr.decode("utf-8", errors="replace")[:300]
|
| 242 |
+
logger.warning(f"[models] Download failed (glob={g}): {err}")
|
| 243 |
return ""
|
| 244 |
|
| 245 |
TIMEOUT = float(os.getenv("DOWNLOAD_TIMEOUT", "30.0")) * 20 # max 10 min
|
|
|
|
| 442 |
|
| 443 |
elif cmd == "ensure-downloaded":
|
| 444 |
async def _run():
|
| 445 |
+
token = os.getenv("HF_TOKEN", "").strip()
|
| 446 |
+
print(f"[model_manager] HF_TOKEN: {'SET (len=' + str(len(token)) + ')' if token else 'NOT SET — using anonymous access'}", file=sys.stderr)
|
| 447 |
mgr.apply_pending()
|
| 448 |
m = CATALOG_BY_ID.get(mgr.cfg.active_id) or mgr.select_best()
|
| 449 |
mgr.cfg.active_id = m.id
|
| 450 |
+
print(f"[model_manager] Downloading: {m.name} ({m.size_gb}GB) from {m.repo}", file=sys.stderr)
|
| 451 |
path, mmproj = await mgr.download(m)
|
| 452 |
if not path:
|
| 453 |
+
print(f"[model_manager] Primary download failed, trying smallest fallback...", file=sys.stderr)
|
| 454 |
fb = min(CATALOG, key=lambda x: x.size_gb)
|
| 455 |
+
print(f"[model_manager] Fallback: {fb.name}", file=sys.stderr)
|
| 456 |
path, mmproj = await mgr.download(fb)
|
| 457 |
if path:
|
| 458 |
mgr.cfg.active_id = fb.id
|
| 459 |
+
if not path:
|
| 460 |
+
print(f"[model_manager] ALL downloads failed!", file=sys.stderr)
|
| 461 |
+
else:
|
| 462 |
+
print(f"[model_manager] SUCCESS: {path}", file=sys.stderr)
|
| 463 |
mgr.cfg.active_path = path
|
| 464 |
mgr.cfg.mmproj_path = mmproj
|
| 465 |
mgr.cfg.save()
|
|
|
|
| 472 |
asyncio.run(_run())
|
| 473 |
|
| 474 |
else:
|
| 475 |
+
print(f"Unknown: {cmd}", file=sys.stderr); sys.exit(1)
|