File size: 1,012 Bytes
756ec4d
 
 
 
 
 
 
 
 
 
 
 
e5a3ba8
756ec4d
 
 
 
 
 
 
e5a3ba8
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
# MODEL_BUDGET.md



Running sum must stay ≤ 32B params.



| Component | Model | Params |

|---|---|---|

| 2D Pose (primary) | YOLO26l-Pose | 0.026B |

| 2D Pose (HQ alt) | YOLO26x-Pose | 0.058B |

| 2D Pose (fallback) | Sapiens2 Pose | 0.6B |

| Segmentation | SAM 3.1 base | 0.85B |

| 3D Body (optional) | SAM 3D Body DINOv3-H+ | 0.84B |

| Scoring Head | ST-GCN (pyskl) | 0.03B |

| Judge/Classifier | Qwen3-VL-8B-Instruct (Q4_K_M GGUF + F16 mmproj, llama.cpp) | 8B |

| Retrieval | Qwen3-VL-Embedding-8B | 8B |

| **Total** | | **~18.37B** |



Headroom: ~13.63B under 32B cap.



Note: The two Qwen3-VL-8B models share a backbone (counted separately here for safety).

Only one pose backend runs at a time (YOLO or Sapiens2, not both).



Judge/Classifier serving: `scripts/serve_judge.sh` (llama-server, port 8080).
Default GGUF: `Qwen/Qwen3-VL-8B-Instruct-GGUF``checkpoints/qwen3-vl/` (gitignored).
Fine-tuned swap: set `FORMSCOUT_JUDGE_GGUF` (+ `FORMSCOUT_JUDGE_MMPROJ`) — no code change.