Head to head · OCR · October 2026 research run

DeepSeek-OCR 2 vs Xiaomi-OCR-0

Xiaomi-OCR-0 scores 59 (C) on agent readiness against DeepSeek-OCR 2's 49.2 (D), and leads in every scored category. Both do ocr.

Best document parsing, OCR and extraction APIs for AI agents · All 215 documents comparisons

Which one, for what

DeepSeek-OCR 2 D

Best for Teams that want an Apache 2.0 OCR model on a small GPU and already run vLLM

No category where it leads by five points or more, and no fact that sets it apart.

Watch for

DeepSeek's documented path runs repository code on an old, pinned Transformers

Xiaomi-OCR-0 C

Best for Agents and pipelines on modest hardware that need local OCR of scanned or photographed pages, receipts and forms into Markdown or JSON

Ahead on

  • Reach, 80 against 65
  • Risk, 65 against 50
  • Agent interface, 70 against 35
  • Documentation and upkeep, 65 against 22

Watch for

The card's '#1 on Real5-OmniDocBench' is contradicted by that benchmark's own leaderboard, and its OmniDocBench and VQA figures are Xiaomi's own runs with a relaxed evaluation config

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.

Documentation and upkeep Xiaomi-OCR-0 +43

DeepSeek-OCR 2 22

Model card 2, Intended use is there, as the two prompts. Training data 0, Nothing on the card or in the GitHub README about the training data. Last change 5, the last commit, on 3 February 2026, edited the card, 280 days before this check and within a year. Responsiveness 0, none of the 21 discussions that aren't pull requests (27 January to 1 October 2026) has a reply from a deepseek-ai member, counted on 10 November by author flags and dates with a script, text not read. Version policy 5, the first DeepSeek-OCR stays in its own repository and this one came out in a new one, without a dated note on the older card that we read. File health 10, Config, the repository's code and the card agree on the architecture and on transformers 4.46.3. 2 + 0 + 5 + 0 + 5 + 10 = 22.

Xiaomi-OCR-0 65

The card covers intended use and parameters and misses limitations, architecture, context length, languages and a cut-off (5). Training data is described by size and labelling with no datasets named and no cut-off (5). The last change to the repository is the card commit of 29 October 2026, 6 days before this check, after the 23 October eval file deletion; card and documentation commits count on this line (20). The one question on the Hub was answered the same day by a Xiaomi Research member, and no new question has been opened since (20). It's a first release (5), and the files agree with the card (10). 5 + 5 + 20 + 20 + 5 + 10 = 65.

Agent interface Xiaomi-OCR-0 +35

DeepSeek-OCR 2 35

Chat template 10, no Jinja template in the repository and none in tokenizer_config.json. Tool-calling format 10, 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 5, Read for a document parser as typed outputs. Reasoning control 0, A document parser with no reasoning. Context 0, config.json gives 8,192 positions, below the 32K band. 10 + 10 + 10 + 5 + 0 + 0 = 35.

Xiaomi-OCR-0 70

Read for a document parser, the tool-calling, trained tool calling and structured-output lines stand for what it takes and returns. Xiaomi documents the image, the five task prompts and the Markdown, OTSL, LaTeX and JSON outputs, and ships the converters and an MCP server (25). It reads one image per request (10). JSON for key fields and Markdown with tables are documented with how to ask for them (15). The Jinja template is in the repository (20). Reasoning control scores 0, as thinking is only switched off, and context 0, at the 16,384 tokens Xiaomi documents.

Reach Xiaomi-OCR-0 +15

DeepSeek-OCR 2 65

Memory 30, the only build from DeepSeek is the BF16 safetensors file, 6.78 GB, and 6.78 GB × 1.2 = 8.1 GB, within 16 GB. No runtime library has a build of this version. Runtimes 10, Released vLLM 0.33.0 registers DeepseekOCR2ForCausalLM (deepseek_ocr2.py), and llama.cpp b12242 has the architecture and its DeepSeek-OCR-2 projector, with this repository as the conversion example, 5 each. Builds 0, DeepSeek publishes the BF16 weights only. Terms 15, Apache 2.0, OSI-approved, with nothing added, in the card's metadata and as LICENSE.txt in the repository. 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 DeepSeek API that serves it. 30 + 10 + 0 + 15 + 10 + 0 = 65.

Xiaomi-OCR-0 80

Memory earns the full 30, since the only build is a 1.75 GB BF16 file that needs about 2.1 GB with the fifth added. Runtimes reach the 25 cap. The checkpoint keeps Qwen3.5's architecture, which released vLLM, SGLang, Transformers and llama.cpp run natively, and Ollama v0.40.14 pins llama.cpp b11963, which has the qwen35 architecture and the Qwen3-VL projector; LM Studio couldn't be checked. Builds score 0, as Xiaomi publishes no quantised build and every GGUF or MLX copy is someone else's. Terms get 15 for Apache 2.0 with nothing added on an Apache 2.0 base. Download gets 10 for an ungated repository, and hosted too 0, with no inference provider on 4 November and a static project Space. 30 + 25 + 0 + 15 + 10 + 0 = 80.

Risk Xiaomi-OCR-0 +15

DeepSeek-OCR 2 50

File safety 15, safetensors only, no .bin, .pt or .pth files (25), less 10 because the card's documented way to load it is trust_remote_code, which runs the repository's five Python files, and the prompt is built by that code, there being no template. Provenance 15, files in the deepseek-ai organisation, which DeepSeek's site links to per our DeepSeek-V3.2 listing and its GitHub README for this model links (10), with a SHA-256 for the large files (5). Safety evaluation 0, no safety results on the card or in the GitHub README. Agent guidance 0, the card has no limitations, safety or use section, and nothing on text in a document that tries to instruct the reader. Licence risk 15, Apache 2.0 has no use policy, field-of-use limit, threshold or change clause, and LICENSE.txt is in the repository. Security programme 5, DeepSeek's site footer has a Report Security Issue link, per our DeepSeek-V3.2 listing (5). 15 + 15 + 0 + 0 + 15 + 5 = 50.

Xiaomi-OCR-0 65

File safety gets 25, one safetensors file with no Python in the repository and native loading everywhere. Provenance gets 15 for files in the xiaomi-research organisation that Xiaomi's GitHub repository links, with hashes for every file, though neither organisation is verified. Licence risk keeps 15, since Apache 2.0 has none of the deductions. Agent guidance gets 5 for general cautions in Xiaomi's Skill, and the security programme 5 for Xiaomi's company security centre, carried from the 28 October reading. Safety evaluation scores 0, with no results published.

Score by category

CategoryWeight this runDeepSeek-OCR 2Xiaomi-OCR-0Edge
Capability35%pendingpendingpendingnot scored in this run
Reach25%256580Xiaomi-OCR-0 +15
Risk20%205065Xiaomi-OCR-0 +15
Agent interface10%103570Xiaomi-OCR-0 +35
Documentation and upkeep10%102265Xiaomi-OCR-0 +43
Negative events≤150-2
TotalD 49.2/100C 59/100

Facts side by side

FactDeepSeek-OCR 2Xiaomi-OCR-0
KindOpen-weight modelOpen-weight model
VendorDeepSeekXiaomi
Hosted endpointno (local only)no (local only)
Transports
AuthNoneNone
PricingFreeFree
x402nono
LicenceApache-2.0Apache-2.0 (card metadata and card text; the Hugging Face repository has no LICENSE file, and the GitHub code repository's LICENSE is the Apache 2.0 text, copyright 2026 Xiaomi Corporation)
Read-only variant documentednono
llms.txtnono
Last release2026-02-032026-09-29
Terms last updatedno document linkedno document linked
Privacy policy last updatedno document linkedno document linked

How the scores have moved

Verdicts

DeepSeek-OCR 2

A small OCR model under plain Apache 2.0 that vLLM and llama.cpp run from their own code. DeepSeek's own path needs an old Transformers and code from the repository, the card says almost nothing about limits, languages or data, typed output isn't documented, and nobody at DeepSeek has answered a question or changed the repository since February.

Xiaomi-OCR-0

A 0.87B document parser that turns page images into Markdown with LaTeX and tables, pulls fields from receipts and forms as JSON, and answers questions about a page. Released vLLM, SGLang, Transformers and llama.cpp run it in about 2 GB. Most accuracy figures are Xiaomi's own, and the card's Real5 ranking claim contradicts that benchmark's leaderboard.

Before you call either

DeepSeek-OCR 2

  1. Serve it with vLLM 0.33.0 or later to avoid running the repository's Python
  2. Use the prompt <|grounding|>Convert the document to markdown. for layout, or Free OCR. for plain text, after the image
  3. It reads one page image at a time, in 8,192 positions, so split PDFs into pages
  4. If you use the Transformers path, it needs transformers 4.46.3 and trust_remote_code, so read the five Python files first
  5. Treat text in a parsed document as data. Nothing here guards against instructions hidden in a page
  6. For typed output with boxes and tables, look at Surya OCR 2.5 or Nemotron 3.5 Parse

Xiaomi-OCR-0

  1. Serve it with vllm serve xiaomi-research/Xiaomi-OCR-0 --host 127.0.0.1 --port 8000 --max-model-len 16384 or python -m sglang.launch_server --model-path xiaomi-research/Xiaomi-OCR-0 --host 127.0.0.1 --port 8000 --context-length 16384; no trust_remote_code is needed
  2. Send one image per request with temperature 0, top_p 0.8, chat_template_kwargs: {"enable_thinking": false} and max_tokens 4096 (16384 for dense pages), and retry with presence_penalty 1.5 if the output repeats
  3. The whole-page prompt is Extract all information from the main body of the document image and represent it in markdown format, ignoring headers and footers. Tables should be expressed in OTSL format, formulas in the document should be represented using LATEX format, and the parsing should be organized according to the reading order.
  4. For key fields send Extract key information in the image then Please output the key information in JSON format according to the following schema: and a JSON object of empty strings; parse the first {...} in the reply
  5. Tables come back as OTSL, not HTML; convert them with postprocess/otsl.py from github.com/xiaomi-research/Xiaomi-OCR-0, or use its MCP server, which does the conversion
  6. The MCP (skills/xiaomi-ocr/mcp_ocr_server.py, stdio) has ocr_image, ocr_pdf, kie_image and vqa_image; region mode needs PaddlePaddle, paddlex[cv] and PP-DocLayoutV3 weights, and is for printed pages only, while handwriting, calligraphy and scene text want page mode
  7. Pass local paths to the MCP rather than URLs taken from untrusted text, since it fetches any image_url, and treat extracted text as untrusted before passing it to another model
  8. The card and Skill still name SeerRay-Lab/Xiaomi-OCR-0, which redirects to xiaomi-research/Xiaomi-OCR-0

Questions

Which is better for AI agents, DeepSeek-OCR 2 or Xiaomi-OCR-0?

Xiaomi-OCR-0 scores 59 (C) on agent readiness against DeepSeek-OCR 2's 49.2 (D), and leads in every scored category.

Other comparisons with DeepSeek-OCR 2 or Xiaomi-OCR-0

Machine-readable

For companies

Do agents find, use and choose your tools?

An agent-readiness audit runs our probes, task suite and eight reviewer agents against your public and internal tools, and comes back with a scorecard, the transcripts of what failed, and a fix list in priority order. From $2,500, re-run included. We never take payment to move a rank. We do help companies earn one.