Texo-Distill GGUF β Printed Math OCR
GGUF-quantized versions of Texo's distilled PPFormulaNet-S model for on-device LaTeX OCR.
Model Description
| Property | Value |
|---|---|
| Architecture | HGNetv2 (CNN encoder) + MBart (Transformer decoder) |
| Parameters | 20M |
| Input | 384x384 RGB image |
| Output | LaTeX token sequence |
| Vocab | 1264 tokens (BPE, math-specific) |
| Encoder | HGNetv2: 4-stage CNN (Conv-BN-ReLU), output 2048-dim |
| Decoder | MBart: 2 layers, 16 heads, d_model=384, FFN=1536 |
| Training data | UniMER-1M (CC-BY-4.0) |
| Distilled from | PaddleOCR PP-FormulaNet-S (Apache-2.0) |
Performance (UniMER-Test)
| Metric | SPE | CPE | SCE | HWE |
|---|---|---|---|---|
| BLEU | 0.9014 | 0.8909 | 0.7034 | 0.8606 |
| Edit distance | 0.0780 | 0.1042 | 0.1941 | 0.0995 |
Available Variants
| File | Quant | Size | Quality |
|---|---|---|---|
texo-distill-f16.gguf |
FP16 | 39 MB | Full precision |
texo-distill-q8_0.gguf |
Q8_0 | 22 MB | Identical to FP16 |
texo-distill-q4_k.gguf |
Q4_K | 13 MB | Slightly degraded |
Recommended: texo-distill-q8_0.gguf (22 MB) β same quality as full precision at 3.6x compression.
Usage with CrispEmbed
# CLI
crispembed -m texo-distill-q8_0.gguf --ocr formula.png
# Auto-detection: the GGUF metadata identifies this as "ppformulanet" architecture
# Works with any CrispEmbed OCR endpoint (CLI, FFI, Flutter)
Image Preprocessing
The model expects UniMERNet-style preprocessing:
- Convert to grayscale, replicate to 3 channels
- Resize maintaining aspect ratio to fit 384x384
- Pad with black (0) to fill 384x384
- Normalize: mean=0.7931, std=0.1738
License
AGPL-3.0 β inherited from the Texo training code and distilled weights. The original PPFormulaNet-S backbone weights are Apache-2.0 (PaddleOCR), and the training data UniMER-1M is CC-BY-4.0.
Users must accept AGPL-3.0 terms before downloading.
Credits
- Texo by Sicheng Mao β distillation training, architecture design
- PaddleOCR PP-FormulaNet-S β backbone architecture and pretrained weights (Apache-2.0)
- UniMERNet β training dataset and tokenizer (Apache-2.0 / CC-BY-4.0)
- CrispEmbed β GGUF conversion and C++ inference engine
Conversion
Converted using convert-ppformulanet-to-gguf.py from CrispEmbed. BatchNorm layers folded into convolutions. Quantized with crispembed-quantize.
- Downloads last month
- 22
Hardware compatibility
Log In to add your hardware
8-bit
16-bit