A newer version of the Gradio SDK is available: 6.19.0
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.