Maia Chess ONNX Models (Opset 15)
Pre-converted ONNX models of Maia chess neural network weights, downgraded from opset 17 to opset 15 for compatibility with ONNX Runtime Web.
Models
| File | ELO | Description |
|---|---|---|
| maia-1100-opset15.onnx | 1100 | Beginner-level human play |
| maia-1200-opset15.onnx | 1200 | Beginner human play |
| maia-1300-opset15.onnx | 1300 | Casual human play |
| maia-1500-opset15.onnx | 1500 | Intermediate human play |
| maia-1600-opset15.onnx | 1600 | Intermediate-advanced |
| maia-1700-opset15.onnx | 1700 | Advanced human play |
| maia-1800-opset15.onnx | 1800 | Strong club player |
| maia-1900-opset15.onnx | 1900 | Strong human play |
Use maia-<elo>.onnx β the -opset15 files are broken
maia-1100.onnx β¦ maia-1900.onnx (added 2026-09-03) are exports made with
lc0's own converter. Use these.
- Input:
/input/planesβ[batch, 112, 8, 8]float32 (lc0 board encoding) - Output:
/output/policyβ[batch, 1858]float32, already in move-vocabulary order, so no policy map is needed - Output:
/output/wdlβ[batch, 3]float32, a distribution summing to 1
Verified for all nine: from the starting position Maia-1500 ranks
e2e4 (13.1) > d2d4 (12.1) > c2c4 (10.0), and WDL reads
[0.50, 0.04, 0.46].
The older maia-<elo>-opset15.onnx files are mis-converted and should not be
used. They return a saturated WDL ([1, 0, 0]) and policy logits in the
hundreds of thousands, and they do so even for an all-zeros input β their
highest-scoring outputs correspond to moves that are not legal in the position.
They are kept only so existing links do not 404.
| File | ELO | Description |
|---|---|---|
| maia-1100.onnx | 1100 | Beginner-level human play |
| maia-1200.onnx | 1200 | Beginner human play |
| maia-1300.onnx | 1300 | Casual human play |
| maia-1400.onnx | 1400 | Casual-intermediate |
| maia-1500.onnx | 1500 | Intermediate human play |
| maia-1600.onnx | 1600 | Intermediate-advanced |
| maia-1700.onnx | 1700 | Advanced human play |
| maia-1800.onnx | 1800 | Strong club player |
| maia-1900.onnx | 1900 | Strong human play |
Source
maia-<elo>.onnx: converted from the original
CSSLab/maia-chess maia_weights/maia-<elo>.pb.gz
with lc0 v0.32.1:
lc0 leela2onnx --input=maia-1500.pb.gz --output=maia-1500.onnx --onnx-data-type=f32
maia-<elo>-opset15.onnx (deprecated): from
shermansiu/maia-* (opset 17), via
onnx.version_converter.convert_version(model, 15) β this is the step that
produced the broken outputs described above.
Used by CrispChess (MIT licensed chess app).
Licence β GPL-3.0-or-later (corrected 2026-08-02)
This repository declared license: other, which obscured a copyleft
obligation. The upstream weights,
shermansiu/maia-1100, are
GPL-3.0-or-later, as is the original source they came from,
CSSLab/maia-chess (its LICENSE is
GPL-3.0 and its README states "The software is available under the GPL
License"). Converting them to ONNX does not relicense them, and neither does
re-exporting them with lc0.
GPL-3.0 is viral: anything you distribute that incorporates these weights must
itself be offered under GPL-3.0-or-later, with the corresponding source made
available. That obligation travels with the file and is a good deal more
consequential than a vague other tag suggests, which is why it is stated
plainly here.