Head to head · OCR · October 2026 research run
HunyuanOCR 1.5 vs Baidu Unlimited-OCR-2
HunyuanOCR 1.5 scores 56.6 (C) on agent readiness against Baidu Unlimited-OCR-2's 54.2 (C), and leads in 2 of 4 scored categories. Both do ocr.
Best document parsing, OCR and extraction APIs for AI agents · All 215 documents comparisons
Best open-weight models you download and run yourself for AI agents · All 6359 open weights comparisons
Which one, for what
Best for Teams outside the EU, the UK and South Korea that want one small model for OCR, extraction and image translation
Ahead on
- Reach, 60 against 55
- Agent interface, 80 against 75
Watch for
The licence doesn't apply in the EU, the UK or South Korea
Best for Pipelines with an NVIDIA GPU that need long scanned or rendered documents parsed in one pass, with page order, cross-page tables and boxes kept
No category where it leads by five points or more, and no fact that sets it apart.
Watch for
Loading runs Baidu's code, remote code in Transformers or a prebuilt SGLang fork from the repository, and the save_results path calls eval on model output
Why the edge
Each category where one leads by five points or more, with the reason behind each side's score from its assessment. The numbers are in the table below; this is what they stand for.
Reach HunyuanOCR 1.5 +5
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.
Baidu Unlimited-OCR-2 55
Memory earns the full 30, since the only build is 6.69 GB of BF16 weights that need about 8 GB with the fifth added. Runtimes score 0. Released vLLM 0.33.0, SGLang 0.5.23 and Transformers 5.22.1 know the first Unlimited-OCR but not the sparse attention this one adds, Baidu's own routes are remote code in Transformers and a customised SGLang wheel, llama.cpp b12111 has nothing for it, so Ollama has nothing either, and LM Studio couldn't be checked. Builds score 0, as Baidu publishes no quantised build (16 exist, all by others). Terms get 15 for MIT with nothing added. Download gets 10 for an ungated repository, and hosted too 0, with no inference provider mapped and the card's Baidu Cloud line unconfirmed.
Agent interface HunyuanOCR 1.5 +5
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.
Baidu Unlimited-OCR-2 75
Read for a document parser, the tool-calling, trained tool calling and structured-output lines stand for what it takes and returns. Baidu documents the page images, the prompt, the request settings and the block output, and ships a converter for the server's output (25). It was trained to read many pages in one request (20). The block format with classes, boxes and HTML tables, and its conversion to Markdown, are documented with how to get them (15). The prompt is built in code, with no Jinja template in the repository (10). Reasoning control scores 0, and the context 5, trained at up to 64K tokens.
Score by category
| Category | Weight this run | HunyuanOCR 1.5 | Baidu Unlimited-OCR-2 | Edge |
|---|---|---|---|---|
| Capability | 35%pending | pending | pending | not scored in this run |
| Reach | 25%25 | 60 | 55 | HunyuanOCR 1.5 +5 |
| Risk | 20%20 | 45 | 45 | even |
| Agent interface | 10%10 | 80 | 75 | HunyuanOCR 1.5 +5 |
| Documentation and upkeep | 10%10 | 48 | 50 | Baidu Unlimited-OCR-2 +2 |
| Negative events | ≤15 | 0 | 0 | |
| Total | C 56.6/100 | C 54.2/100 |
Facts side by side
| Fact | HunyuanOCR 1.5 | Baidu Unlimited-OCR-2 |
|---|---|---|
| Kind | Open-weight model | Open-weight model |
| Vendor | Tencent (Hy team) | Baidu |
| 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) | MIT (Hub metadata; the Hugging Face repository has no LICENSE file, and the GitHub code repository's LICENSE is the MIT text, copyright 2026 Baidu) |
| Read-only variant documented | no | no |
| llms.txt | no | no |
| Last release | 2026-08-28 | 2026-10-26 |
| Terms last updated | not read yet | no document linked |
| Privacy policy last updated | no document linked | no document linked |
How the scores have moved
HunyuanOCR 1.5
No score change since it was listed.
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.
Baidu Unlimited-OCR-2
An MIT document parser of 3.3B parameters that reads up to hundreds of pages in one request and returns ordered layout blocks with boxes and HTML tables. ParseBench's independent run puts content faithfulness at 89.16 and charts at 1.06. It needs an NVIDIA GPU with about 12 GB and runs only through Baidu's remote code or its own SGLang build.
Before you call either
HunyuanOCR 1.5
- Check where you and your users are first. The licence grants no rights in the European Union, the United Kingdom or South Korea
- Download with
--exclude "v1.0/*"so the old version isn't fetched - 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 - Use temperature 0, top_p 1 and repetition_penalty 1.08
- The default document prompt is in Chinese and is on the card. Other tasks take their own instruction as the prompt
- For llama.cpp, convert the checkpoint and its projector to GGUF yourself, as the card shows
Baidu Unlimited-OCR-2
- Quickest local run,
pip install torch==2.13.0 torchvision pillow transformers==4.52.1 huggingface-hub==0.36.0 tokenizers==0.21.4 addict==2.4.0 einops==0.8.2 easydict==1.13, thenAutoModel.from_pretrained("baidu/Unlimited-OCR-2", trust_remote_code=True, use_safetensors=True, torch_dtype=torch.bfloat16).eval().cuda()andmodel.infer_multi(tokenizer, image_files=pages, output_path="out") - To serve it, download the repository, install
wheel/sglang-0.5.20.dev13+g75b9b06b02-py3-none-any.whlwith pymupdf and fastokens in a Python 3.10 venv, and startpython -m sglang.launch_server --model-path baidu/Unlimited-OCR-2 --chat-template unlimited-ocr --enable-custom-logit-processor --enable-streaming-session --disable-radix-cache --mem-fraction-static 0.7 --max-prefill-tokens 2048with the SGLANG_UOCR_ variables from the card - Send all pages of a document in one request, images first, then the text
<PAGE><image>repeated per page andMulti page parsing., with temperature 0, skip_special_tokens false, max_tokens of about 8,000 per page and the DeepseekOCRNoRepeatNGramLogitProcessor (ngram_size 35, window_size 1024 for several pages) - The output is layout blocks, not Markdown; run
utils/process_unlimitedOCR2.pyfrom github.com/baidu/Unlimited-OCR, orconvert(raw_output)in Python, to get Markdown with HTML tables - Render PDFs to images first (the card uses PyMuPDF at 300 DPI), keep save_results off for untrusted documents, and treat extracted text as untrusted before passing it to another model
Questions
Which is better for AI agents, HunyuanOCR 1.5 or Baidu Unlimited-OCR-2?
HunyuanOCR 1.5 scores 56.6 (C) on agent readiness against Baidu Unlimited-OCR-2's 54.2 (C), and leads in 2 of 4 scored categories.
Other comparisons with HunyuanOCR 1.5 or Baidu Unlimited-OCR-2
- Agents-A1-4B vs Baidu Unlimited-OCR-2
- Apertus v1.5 8B vs Baidu Unlimited-OCR-2
- Apodex-1.1-mini vs Baidu Unlimited-OCR-2
- Arete-27B vs Baidu Unlimited-OCR-2
- BigBang-v1 vs Baidu Unlimited-OCR-2
- Carbon-X vs Baidu Unlimited-OCR-2
- Cola2 vs Baidu Unlimited-OCR-2
- Cosmos-Reason2-2B vs Baidu Unlimited-OCR-2
- Darwin-36B-Opus vs Baidu Unlimited-OCR-2
- DeepSeek-V3.2 vs Baidu Unlimited-OCR-2
- DeepSeek V4.1 Flash vs Baidu Unlimited-OCR-2
- DeepSeek-V4-Flash-0731 vs Baidu Unlimited-OCR-2
- Devstral Small 2 vs Baidu Unlimited-OCR-2
- DiffusionGemma 26B A4B IT vs Baidu Unlimited-OCR-2
- EXAONE 4.5 33B vs Baidu Unlimited-OCR-2
- Gemma 4 12B IT vs Baidu Unlimited-OCR-2
- Gemma 4 26B A4B IT vs Baidu Unlimited-OCR-2
- Gemma 4 31B IT vs Baidu Unlimited-OCR-2
- Gemma 4 E2B IT vs Baidu Unlimited-OCR-2
- Gemma 4 E4B IT vs Baidu Unlimited-OCR-2
- GLM-4.5-Air vs Baidu Unlimited-OCR-2
- GLM-4.7-Flash vs Baidu Unlimited-OCR-2
- GLM-5.3-Flash vs Baidu Unlimited-OCR-2
- GLM-5.3 vs Baidu Unlimited-OCR-2
- gpt-oss-120b vs Baidu Unlimited-OCR-2
- gpt-oss-20b vs Baidu Unlimited-OCR-2
- Granite 4.2 30B vs Baidu Unlimited-OCR-2
- Granite 4.2 3B vs Baidu Unlimited-OCR-2
- Granite 4.2 8B vs Baidu Unlimited-OCR-2
- Hy-Memory-30B-A3B vs Baidu Unlimited-OCR-2
- Hy3 vs Baidu Unlimited-OCR-2
- Inkling-Small vs Baidu Unlimited-OCR-2
- Inkling vs Baidu Unlimited-OCR-2
- InternVL3.5-GPT-OSS-20B-A4B-Preview vs Baidu Unlimited-OCR-2
- Kimi K3.1 Pro vs Baidu Unlimited-OCR-2
- Kimi K3 vs Baidu Unlimited-OCR-2
- Kolibri-1 vs Baidu Unlimited-OCR-2
- Kronos vs Baidu Unlimited-OCR-2
- Laguna M.1 vs Baidu Unlimited-OCR-2
- Laguna S 2.1 vs Baidu Unlimited-OCR-2
- Laguna XS 2.1 vs Baidu Unlimited-OCR-2
- LBS-27B vs Baidu Unlimited-OCR-2
- LFM2.5-2.6B vs Baidu Unlimited-OCR-2
- LFM3-1.7B vs Baidu Unlimited-OCR-2
- LFM3-Audio-2B vs Baidu Unlimited-OCR-2
- LFM3-Omni-2B vs Baidu Unlimited-OCR-2
- LFM3-VL-2B vs Baidu Unlimited-OCR-2
- Ling-3.0-tiny vs Baidu Unlimited-OCR-2
- Ling-3.1-flash-1019 vs Baidu Unlimited-OCR-2
- LongCat-2.5 vs Baidu Unlimited-OCR-2
- MiMo-V2.6 Distill Qwen 9B vs Baidu Unlimited-OCR-2
- MiMo-V2.6-Flash-RL vs Baidu Unlimited-OCR-2
- MiniCPM-o 4.5 vs Baidu Unlimited-OCR-2
- MiniCPM-V 4.7 1B vs Baidu Unlimited-OCR-2
- MiniCPM-V 4.7 35B-A3B vs Baidu Unlimited-OCR-2
- MiniCPM5-2B vs Baidu Unlimited-OCR-2
- MiniMax-M2.5 vs Baidu Unlimited-OCR-2
- MiniMax-M2.7 vs Baidu Unlimited-OCR-2
- MiniMax-M3.1-Flash vs Baidu Unlimited-OCR-2
- Mistral Large 4 vs Baidu Unlimited-OCR-2
- Muse Glimmer 30B vs Baidu Unlimited-OCR-2
- Nanbeige4.2-3B vs Baidu Unlimited-OCR-2
- Nanbeige4.3-33B vs Baidu Unlimited-OCR-2
- NVIDIA Nemotron 3.5 Bolt E4B 4GB vs Baidu Unlimited-OCR-2
- Nemotron 3.5 Lightning 30B A3B vs Baidu Unlimited-OCR-2
- Nemotron 3 Nano 30B A3B vs Baidu Unlimited-OCR-2
- Nemotron 3 Nano 4B vs Baidu Unlimited-OCR-2
- Nemotron 3 Super 120B A12B vs Baidu Unlimited-OCR-2
- Nemotron 3 Ultra 550B A55B vs Baidu Unlimited-OCR-2
- North Mini Code 1.0 vs Baidu Unlimited-OCR-2
- occamy-1.0 vs Baidu Unlimited-OCR-2
- Olmo 3 7B Think vs Baidu Unlimited-OCR-2
- Ornith-1.5-122B vs Baidu Unlimited-OCR-2
- Ornith-1.5-35B-A3B vs Baidu Unlimited-OCR-2
- Ornith-1.5-397B vs Baidu Unlimited-OCR-2
- Ornith-1.5-9B vs Baidu Unlimited-OCR-2
- OTel-2.0-LLM-31B-IT vs Baidu Unlimited-OCR-2
- Qwen-AgentWorld-35B-A3B vs Baidu Unlimited-OCR-2
- Qwen3-30B-A3B-Instruct-2507 vs Baidu Unlimited-OCR-2
- Qwen3-4B-Instruct-2507 vs Baidu Unlimited-OCR-2
- Qwen3.5-0.8B vs Baidu Unlimited-OCR-2
- Qwen3.5-122B-A10B vs Baidu Unlimited-OCR-2
- Qwen3.5-2B vs Baidu Unlimited-OCR-2
- Qwen3.5-397B-A17B vs Baidu Unlimited-OCR-2
- Qwen3.5-4B vs Baidu Unlimited-OCR-2
- Qwen3.5-9B vs Baidu Unlimited-OCR-2
- Qwen3.6-27B vs Baidu Unlimited-OCR-2
- Qwen3.6-35B-A3B vs Baidu Unlimited-OCR-2
- Qwen3.8-27B vs Baidu Unlimited-OCR-2
- Qwen3.8-Flash-Next vs Baidu Unlimited-OCR-2
- Qwen3-Coder-30B-A3B-Instruct vs Baidu Unlimited-OCR-2
- Qwen3-Coder-Next vs Baidu Unlimited-OCR-2
- Qwen3-VL-2B-Instruct vs Baidu Unlimited-OCR-2
- Qwen3-VL-30B-A3B-Instruct vs Baidu Unlimited-OCR-2
- Qwen3-VL-32B-Instruct vs Baidu Unlimited-OCR-2
- Qwen3-VL-4B-Instruct vs Baidu Unlimited-OCR-2
- Qwen3-VL-8B-Instruct vs Baidu Unlimited-OCR-2
- Qwopus3.8-27B-Flash-V2 vs Baidu Unlimited-OCR-2
- Recursive Flint vs Baidu Unlimited-OCR-2
- Ripple-65B Preview vs Baidu Unlimited-OCR-2
- SenseNova-Loop-9B-Preview vs Baidu Unlimited-OCR-2
- SmolLM3-3B vs Baidu Unlimited-OCR-2
- Spark-X2.6-4B vs Baidu Unlimited-OCR-2
- Step 3.7 Flash vs Baidu Unlimited-OCR-2
- Swift 1.5 Qwen3.8-27B vs Baidu Unlimited-OCR-2
- Swift 1.5 Qwen3.8-Flash-Next vs Baidu Unlimited-OCR-2
- ThinkingCap (Qwen3.8 27B) vs Baidu Unlimited-OCR-2
- Baidu Unlimited-OCR-2 vs ZAYA1-8B
- Chandra OCR 2 vs HunyuanOCR 1.5
- Chandra OCR 2 vs Baidu Unlimited-OCR-2
- DeepSeek-OCR 2 vs HunyuanOCR 1.5
- DeepSeek-OCR 2 vs Baidu Unlimited-OCR-2
- HunyuanOCR 1.5 vs LightOnOCR-3-4B
- HunyuanOCR 1.5 vs Nanonets-OCR2-3B
- HunyuanOCR 1.5 vs Nemotron 3.5 Parse
- HunyuanOCR 1.5 vs Surya OCR 2.5
- HunyuanOCR 1.5 vs Xiaomi-OCR-0
- LightOnOCR-3-4B vs Baidu Unlimited-OCR-2
- Nanonets-OCR2-3B vs Baidu Unlimited-OCR-2
- Surya OCR 2.5 vs Baidu Unlimited-OCR-2
- Baidu Unlimited-OCR-2 vs WeVisOne-VL-2B
- Baidu Unlimited-OCR-2 vs WeVisOne-VL-4B
- Baidu Unlimited-OCR-2 vs Xiaomi-OCR-0
Machine-readable
- This page as Markdown
/compare/hunyuanocr-vs-unlimited-ocr-2.md· slim.min.md· JSON.json(or sendAccept: text/markdown) - Each listing in full
/api/v1/tools/hunyuanocr.json·/api/v1/tools/unlimited-ocr-2.json - From a terminal
anchor compare hunyuanocr unlimited-ocr-2(the CLI) - Over MCP
compare_tools {"a": "hunyuanocr", "b": "unlimited-ocr-2"}at/mcp, no key