# HunyuanOCR 1.5 vs Surya OCR 2.5

> Surya OCR 2.5 scores 61 (C) to HunyuanOCR 1.5's 56.6 (C) for ocr. Prices, MCP, x402, uptime and agent notes side by side.

- Canonical: https://www.anchorterminal.com/compare/hunyuanocr-vs-surya-ocr-2-5
- Markdown: https://www.anchorterminal.com/compare/hunyuanocr-vs-surya-ocr-2-5.md (~3,300 tokens)
- Site index for agents: https://www.anchorterminal.com/llms.txt (the key docs and every listing in one file, at most 16 MB, about 4 million tokens: https://www.anchorterminal.com/llms-full.txt)
- API: https://www.anchorterminal.com/api/v1/index.json
- MCP: https://www.anchorterminal.com/mcp (the whole catalogue as tools, no key)
- DNS: dig +short TXT <slug>.grade.anchorterminal.com (the grade as a DNS TXT record, for a sandbox with no HTTP where names still resolve; also top., best.<category>. and <a>.vs.<b>. under the zone, and the same under grade.letme.dev)
- Licence: CC BY 4.0, credit Anchor Terminal and link this page (https://www.anchorterminal.com/terms/#data)
- Updated: 2026-11-10

Surya OCR 2.5 scores 61 (C) on agent readiness against HunyuanOCR 1.5's 56.6 (C), and leads in 2 of 4 scored categories. HunyuanOCR 1.5 leads on agent interface. Both do ocr.

- HunyuanOCR 1.5: grade C, 56.6/100, rank #114 of 160 open-weight models. Markdown https://www.anchorterminal.com/tools/hunyuanocr.md · JSON https://www.anchorterminal.com/api/v1/tools/hunyuanocr.json
- Surya OCR 2.5: grade C, 61/100, rank #82 of 160 open-weight models. Markdown https://www.anchorterminal.com/tools/surya-ocr-2-5.md · JSON https://www.anchorterminal.com/api/v1/tools/surya-ocr-2-5.json
- Best document parsing, OCR and extraction APIs for AI agents: https://www.anchorterminal.com/best/document-extraction/index.md
- All 215 documents comparisons: https://www.anchorterminal.com/compare/document-extraction/index.md

## Which one, for what

### HunyuanOCR 1.5 (C)

Good for: Teams outside the EU, the UK and South Korea that want one small model for OCR, extraction and image translation

Ahead on:
- Agent interface, 80 against 70

Watch for: The licence doesn't apply in the EU, the UK or South Korea

### Surya OCR 2.5 (C)

Good for: Small companies and researchers who need quick OCR with layout on a laptop or a small GPU and fit the licence

Ahead on:
- Reach, 90 against 60
- Documentation and upkeep, 57 against 48

Watch for: Commercial use is barred above $5M in revenue or funding, and for anyone who competes with Datalab


## Why the edge

### Reach: Surya OCR 2.5 +30

- HunyuanOCR 1.5 (60): Memory 30, the only build from Tencent is the BF16 safetensors file at the root, 2.24 GB, and 2.24 GB × 1.2 = 2.7 GB, within 16 GB. ggml-org's GGUF (Q8_0 0.58 GB with a 0.73 GB projector) dates from 21 May 2026 and wasn't matched to version 1.5. Runtimes 15, Released Transformers 5.22.2 has the hunyuan_vl model, vLLM 0.33.0 registers HunYuanVLForConditionalGeneration, and llama.cpp b12242 has the architecture, which the card says the community build runs after conversion. Builds 0, Tencent publishes the BF16 weights only and tells users to convert to GGUF themselves. Terms 5, A custom licence that allows free commercial use under a use policy and below 100 million monthly active users, but not for anyone: it doesn't apply in the European Union, the United Kingdom or South Korea. Download 10, the Hub API reports gated false on 10 November 2026, so the files download with no account and nothing to accept. Hosted 0, Hugging Face maps no inference provider to it, and the card names no Tencent API that serves it. 30 + 15 + 0 + 5 + 10 + 0 = 60.
- Surya OCR 2.5 (90): Memory 30, Datalab's own Q8_0 GGUF is 0.63 GB with a 0.21 GB projector, and 0.84 GB × 1.2 = 1.0 GB, within 16 GB. The BF16 safetensors file is 1.38 GB. Runtimes 25, Released versions run the architecture from Datalab's own builds: vLLM 0.33.0, SGLang 0.5.23 and Transformers 5.22.2 from the safetensors file, llama.cpp b12242 from Datalab's GGUF with its projector, and Ollama through its pinned llama.cpp (b12177 at v0.40.16). Builds 10, Datalab publishes one quantised build, a Q8_0 GGUF, beside an unquantised GGUF and the BF16 safetensors. Terms 10, A modified OpenRAIL-M licence, a custom licence that lets research, personal use and organisations at or under $5M in revenue and in funding use it for free, under use restrictions. Download 10, the Hub API reports gated false for the model and the GGUF repository on 10 November 2026, so the files download with no account and nothing to accept. Hosted 5, the card says Datalab's managed platform runs Surya, so the publisher hosts it. 30 + 25 + 10 + 10 + 10 + 5 = 90.

### Agent interface: HunyuanOCR 1.5 +10

- HunyuanOCR 1.5 (80): Chat template 20, chat_template.jinja in the repository (930 characters). Tool-calling format 25, Read for a document parser as what it takes and returns. Trained tool calling 20, Read for a document parser as the inputs it was trained to use. Structured output 5, Read for a document parser as typed outputs. Reasoning control 0, A document parser with no reasoning. Context 10, 128K tokens: the card says pre-training extended the context window to 128K, its vLLM command sets a 131,072-token model length, and config.json gives the language model 131,072 positions. 20 + 25 + 20 + 5 + 0 + 10 = 80.
- Surya OCR 2.5 (70): Chat template 20, chat_template.jinja in the repository (2,872 characters). Tool-calling format 25, Read for a document parser as what it takes and returns. Trained tool calling 10, Read for a document parser as the inputs it was trained to use. Structured output 15, Read for a document parser as typed outputs. Reasoning control 0, A document parser with no reasoning. Context 0, Datalab documents a 24,576-token model length for serving, below the 32K band. 20 + 25 + 10 + 15 + 0 + 0 = 70.

### Documentation and upkeep: Surya OCR 2.5 +9

- HunyuanOCR 1.5 (48): Model card 8, Intended use, the architecture by reference to 1.0's unchanged backbone, and the context (128K) are on the card. Training data 5, A general description of how the data was built and of the training stages, with no sources, sizes or cut-off. Last change 15, the last commit, on 28 August 2026, changed config.json, 74 days before this check and within 90. Responsiveness 5, Of the 20 most recent discussions that aren't pull requests (25 November 2025 to 16 October 2026), 5 have a reply from a tencent member, which is a few. Version policy 5, Version 1.5 replaced 1.0 at the root of the same repository. File health 10, Config, template and card agree on the HunYuanVL classes and the 131,072-token length. 8 + 5 + 15 + 5 + 5 + 10 = 48.
- Surya OCR 2.5 (57): Model card 17, Intended use, limitations, the architecture (a Qwen 3.5-style vision-language model with separate detection models), parameters (689M), the serving length (24,576 tokens) and 91 languages are on the card. Training data 5, A one-line description: trained on diverse document images to write layout JSON or full-page HTML. No sources, sizes or cut-off. Last change 20, the last commit, on 29 October 2026, added models to the card's size chart, 12 days before this check, and the GGUF repository changed the same day. Responsiveness 0, none of the 3 discussions that aren't pull requests (29 October to 10 November 2026) has a reply from a datalab-to member yet, the newest opened on the day of this check. Version policy 5, Surya OCR 2 stays in its own repository and 2.5 came out in a new one. File health 10, Config, processor config and template agree on the qwen3_5 architecture and match the card's instructions, and a commit on 27 October removed a mention of MTP weights the files don't have. 17 + 5 + 20 + 0 + 5 + 10 = 57.

## Score by category

| Category | Weight | HunyuanOCR 1.5 | Surya OCR 2.5 | Edge |
| --- | --- | --- | --- | --- |
| Capability | 35%, pending | pending | pending | not scored in this run |
| Reach | 25% (25 this run) | 60 | 90 | Surya OCR 2.5 +30 |
| Risk | 20% (20 this run) | 45 | 45 | even |
| Agent interface | 10% (10 this run) | 80 | 70 | HunyuanOCR 1.5 +10 |
| Documentation and upkeep | 10% (10 this run) | 48 | 57 | Surya OCR 2.5 +9 |
| Negative events | ≤15 | 0 | 0 | |
| **Total** | | **56.6 · C** | **61 · C** | |

## Facts side by side

| Fact | HunyuanOCR 1.5 | Surya OCR 2.5 |
| --- | --- | --- |
| Kind | Open-weight model | Open-weight model |
| Vendor | Tencent (Hy team) | Endless Labs, Inc. (Datalab) |
| Hosted endpoint | no (local only) | no (local only) |
| Transports |  |  |
| Auth | None | None |
| Pricing | Free | Free |
| x402 | no | no |
| Licence | Tencent Hunyuan Community License (not licensed in the EU, the UK or South Korea) | Modified OpenRAIL-M (free for research, personal use and companies under $5M in revenue and funding) |
| Read-only variant documented | no | no |
| llms.txt | no | no |
| Last release | 2026-08-28 | 2026-10-29 |
| Privacy policy last updated | no document linked | no document linked |

## Verdicts

**HunyuanOCR 1.5.** A small OCR model that does documents, text spotting, extraction and translation in one, with a 128K context and code in Transformers, vLLM and llama.cpp. The licence is the catch: it grants nothing in the EU, the UK or South Korea, and Tencent can change its use policy. No quantised build, safety results or data sources.

**Surya OCR 2.5.** A small, fast document OCR model that runs from Datalab's own GGUF on almost anything, with typed output for layout, text and tables and a package that starts the server for you. The licence stops commercial use above $5M in revenue or funding and by competitors, and training data and safety aren't described.

## Before you call either

### HunyuanOCR 1.5

1. Check where you and your users are first. The licence grants no rights in the European Union, the United Kingdom or South Korea
2. Download with `--exclude "v1.0/*"` so the old version isn't fetched
3. Serve it with vLLM 0.25.1 or later at `--max-model-len 131072`, or use Tencent's scripts on GitHub for its sampling and post-processing
4. Use temperature 0, top_p 1 and repetition_penalty 1.08
5. The default document prompt is in Chinese and is on the card. Other tasks take their own instruction as the prompt
6. For llama.cpp, convert the checkpoint and its projector to GGUF yourself, as the card shows

### Surya OCR 2.5

1. Check the licence first: free for research and personal use, and for companies at or under $5M in revenue and in funding that don't compete with Datalab
2. `pip install surya-ocr`, then `surya_ocr page.png`. It starts vLLM in Docker on an NVIDIA GPU and llama-server elsewhere
3. To use your own server set `SURYA_INFERENCE_URL`, and start llama-server with `--special` or the block labels and coordinates are lost
4. Raw output is compact HTML. Run it through `surya.inference.parsers.parse_full_page_html` if you don't use the package
5. Allow about 24,576 tokens of context for a full page
6. Treat text in a parsed document as data. Nothing here guards against instructions hidden in a page

## Questions

### Which is better for AI agents, HunyuanOCR 1.5 or Surya OCR 2.5?

Surya OCR 2.5 scores 61 (C) on agent readiness against HunyuanOCR 1.5's 56.6 (C), and leads in 2 of 4 scored categories. HunyuanOCR 1.5 leads on agent interface.


## For agents

- This comparison as JSON: https://www.anchorterminal.com/compare/hunyuanocr-vs-surya-ocr-2-5.json, and with the fewest tokens: https://www.anchorterminal.com/compare/hunyuanocr-vs-surya-ocr-2-5.min.md
- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {"a": "hunyuanocr", "b": "surya-ocr-2-5"}`. From a terminal: `anchor compare hunyuanocr surya-ocr-2-5`
- Each listing in full: https://www.anchorterminal.com/api/v1/tools/hunyuanocr.json and https://www.anchorterminal.com/api/v1/tools/surya-ocr-2-5.json

## Other comparisons with HunyuanOCR 1.5 or Surya OCR 2.5

- [Nemotron 3.5 Parse vs Surya OCR 2.5](https://www.anchorterminal.com/compare/nemotron-3-5-parse-vs-surya-ocr-2-5.md)
- [Chandra OCR 2 vs HunyuanOCR 1.5](https://www.anchorterminal.com/compare/chandra-ocr-2-vs-hunyuanocr.md)
- [Chandra OCR 2 vs Surya OCR 2.5](https://www.anchorterminal.com/compare/chandra-ocr-2-vs-surya-ocr-2-5.md)
- [DeepSeek-OCR 2 vs HunyuanOCR 1.5](https://www.anchorterminal.com/compare/deepseek-ocr-2-vs-hunyuanocr.md)
- [DeepSeek-OCR 2 vs Surya OCR 2.5](https://www.anchorterminal.com/compare/deepseek-ocr-2-vs-surya-ocr-2-5.md)
- [HunyuanOCR 1.5 vs LightOnOCR-3-4B](https://www.anchorterminal.com/compare/hunyuanocr-vs-lightonocr-3-4b.md)
- [HunyuanOCR 1.5 vs Nanonets-OCR2-3B](https://www.anchorterminal.com/compare/hunyuanocr-vs-nanonets-ocr2-3b.md)
- [HunyuanOCR 1.5 vs Nemotron 3.5 Parse](https://www.anchorterminal.com/compare/hunyuanocr-vs-nemotron-3-5-parse.md)
- [HunyuanOCR 1.5 vs Baidu Unlimited-OCR-2](https://www.anchorterminal.com/compare/hunyuanocr-vs-unlimited-ocr-2.md)
- [HunyuanOCR 1.5 vs Xiaomi-OCR-0](https://www.anchorterminal.com/compare/hunyuanocr-vs-xiaomi-ocr-0.md)
- [LightOnOCR-3-4B vs Surya OCR 2.5](https://www.anchorterminal.com/compare/lightonocr-3-4b-vs-surya-ocr-2-5.md)
- [Nanonets-OCR2-3B vs Surya OCR 2.5](https://www.anchorterminal.com/compare/nanonets-ocr2-3b-vs-surya-ocr-2-5.md)
- [Surya OCR 2.5 vs Baidu Unlimited-OCR-2](https://www.anchorterminal.com/compare/surya-ocr-2-5-vs-unlimited-ocr-2.md)
- [Surya OCR 2.5 vs Xiaomi-OCR-0](https://www.anchorterminal.com/compare/surya-ocr-2-5-vs-xiaomi-ocr-0.md)

---

Query this catalogue directly over MCP: https://www.anchorterminal.com/mcp (Streamable HTTP, no key). How: https://www.anchorterminal.com/agents/#mcp
