StackMap
Subscribe

chandra vs marker

Datalab's SOTA open OCR model: images/PDFs to structured HTML/Markdown/JSON with layout, tables, forms, checkboxes, handwriting and math, in 90+ languages. Local HF or vLLM inference. — versus — Datalab's 39k-star PDF-to-Markdown/JSON converter: a layout pipeline plus an optional LLM pass for tables, forms and equations, with chunk output and form-value extraction built in.

The curated verdict

Same shop, two tiers: marker is the pipeline you run at volume with selective LLM assist, chandra is the vision-language model you reach for when accuracy on scans, handwriting and dense tables matters more than throughput.

chandramarker
Stars12k39k
Forks1.2k2.8k
LanguagePythonPython
LicenseApache-2.0Apache-2.0
Last activity1 months ago17 days ago
Topicsocrocr, rag
Curated connections87

chandra — the curator's take

Currently the strongest open OCR weights on the olmocr benchmark (85.8, above olmOCR 2 and dots.ocr), with handwriting, filled forms and checkboxes as the real differentiators — plus a serious self-built 90-language benchmark where it averages 72.7% vs Gemini 2.5 Flash's 60.8%. `pip install chandra-ocr`, `chandra_vllm`, done; ~2 pages/s real-world on an H100. The catch is licensing: code is Apache-2.0 but the WEIGHTS are OpenRAIL-M — free for research, personal use and sub-$2M startups, commercial self-hosting needs a Datalab license, and their paid API deliberately stays ahead of the open weights. Pick olmOCR for a fully permissive stack, MinerU when you want a whole parsing pipeline rather than the model itself.

marker — the curator's take

The default answer when you need a lot of documents turned into clean Markdown on your own hardware: fast per page, tuned by people who do this for a living, and it can call Gemini/Claude/OpenAI-compatible/Ollama models only on the blocks that need help. Two caveats before you ship it: the code is Apache-2.0 but the model weights are OpenRAIL-M (free for research, personal use and companies under $5M funding/revenue), and on genuinely nasty input — scans, handwriting, dense multi-column tables — Datalab's own VLM chandra beats it. Born-digital corpus and no appetite for model calls? Use a deterministic parser instead.