MogensR commited on
Commit
626e708
·
1 Parent(s): 6aec771

Create startup_selfcheck.py

Browse files
Files changed (1) hide show
  1. tools/startup_selfcheck.py +54 -0
tools/startup_selfcheck.py ADDED
@@ -0,0 +1,54 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ #!/usr/bin/env python3
2
+ """
3
+ Startup Self-Check for Hugging Face Space
4
+ - Verifies SAM2 + MatAnyone load and run on a dummy frame
5
+ - Prints ✅ / ❌ in logs
6
+ """
7
+
8
+ import logging
9
+ import numpy as np
10
+ import torch
11
+
12
+ from models.loaders.sam2_loader import SAM2Loader
13
+ from models.loaders.matanyone_loader import MatAnyoneLoader
14
+
15
+ logger = logging.getLogger("selfcheck")
16
+ if not logger.handlers:
17
+ logging.basicConfig(level=logging.INFO)
18
+
19
+ def run_selfcheck():
20
+ results = {}
21
+ try:
22
+ # tiny dummy image
23
+ img = np.zeros((64, 64, 3), dtype=np.uint8)
24
+
25
+ # --- SAM2 ---
26
+ sam_loader = SAM2Loader(device="cuda" if torch.cuda.is_available() else "cpu")
27
+ sam = sam_loader.load("tiny")
28
+ if sam:
29
+ sam.set_image(img)
30
+ out = sam.predict(point_coords=None, point_labels=None)
31
+ results["SAM2"] = out["masks"].shape
32
+ logger.info(f"✅ SAM2 OK, masks shape {out['masks'].shape}")
33
+ else:
34
+ results["SAM2"] = None
35
+ logger.error("❌ SAM2 failed to load")
36
+
37
+ # --- MatAnyone ---
38
+ mat_loader = MatAnyoneLoader(device="cuda" if torch.cuda.is_available() else "cpu")
39
+ session = mat_loader.load()
40
+ if session:
41
+ alpha = session(img, np.ones((64, 64), np.float32)) # coarse mask
42
+ results["MatAnyone"] = alpha.shape
43
+ logger.info(f"✅ MatAnyone OK, alpha shape {alpha.shape}")
44
+ else:
45
+ results["MatAnyone"] = None
46
+ logger.error("❌ MatAnyone failed to load")
47
+
48
+ except Exception as e:
49
+ logger.error(f"❌ Self-check error: {e}", exc_info=True)
50
+
51
+ return results
52
+
53
+ if __name__ == "__main__":
54
+ run_selfcheck()