Unlimited-OCR-2 GGUF (CrispEmbed)

GGUF conversions of baidu/Unlimited-OCR-2 by Baidu, for CrispEmbed's native ggml runtime. All credit for the model belongs to the original authors; these files only change the storage format.

License and attribution

  • The original model is released under the MIT License, Copyright (c) 2026 Baidu.
  • LICENSE is the verbatim upstream MIT text. The model repository declares license: mit but ships no LICENSE file, so it is taken from the upstream code repository baidu/Unlimited-OCR@6e64831ab434 (SHA256 d985048c6d69429d685fdbe7557340aa0897c0fd8dc038299b148b9c75dc3383).
  • UPSTREAM_README.md is the unmodified upstream model card at revision 04647c7a6098d8d58915f003536a741c82eafb40 (SHA256 3276903e26b37f30d2443ed767a86bc422bebba74fe4c64394b6d6255bd01676).
  • These GGUFs are a modified (converted and, where noted, quantized) form of the original weights.

Files

File Precision Bytes SHA256
unlimited-ocr-2-f16.gguf F16 6,692,677,696 487b887eddaf73e070cd98c3e10d112d21749036ca06b5e7fc103c3fb4def517
unlimited-ocr-2-q8_0.gguf Q8_0 3,571,872,960 2fc126fc4508f57d409a1689e38a0506df1932d45daffaec00d6d7e0234526d7

How the files were produced

  1. Downloaded baidu/Unlimited-OCR-2 at the pinned revision 04647c7a6098d8d58915f003536a741c82eafb40; both safetensors shards were checked against the SHA256 values in CrispEmbed's docs/unlimited-ocr2-source.json.
  2. Converted with models/convert-unlimited-ocr-to-gguf.py (F32 lossless; F16 with --fp16).
  3. Quantized variants were produced from the F32 GGUF with CrispEmbed's own crispembed-quantize (tools/quantize.cpp; 1-D tensors keep their source type, embeddings/router/lm_head/vision keep a Q8_0 floor).
  4. Built and uploaded by CrispEmbed commit e165d5d1f46ab3c63ebe86bf78bd3a12bb017908 (workflow unlimited-ocr2-publish.yml); manifest.json lists every recipe, input pin, receipt and file hash.

Parity status (CrispEmbed native vs. the original PyTorch model, CPU, greedy)

Receipts were measured on the F32 conversion. A CPU precision sweep (receipt tests/results/unlimited-ocr2/precision-sweep.json in CrispEmbed) found the F16 and Q8_0 conversions also token-ID exact on the untiled page; Q4_K and mixed Q4 variants were not, and are not published.

  • Untiled pages: generated token IDs are exactly identical to the original (65 tokens on small-untiled).

  • Tiled pages: generated token IDs are exactly identical to the original on 2 tiled pages (4x3 tiles, 1503 vision tokens), from CrispEmbed commit 595156ea on. Earlier runtimes emitted 256 instead of 100 vision tokens per 640px tile and matched the text only; the weights were never affected.

  • The opt-in fast decoder reproduces the exact decoder token-for-token on all 3 pages.

  • Published files, user-style trial (Kaggle CPU, receipt tests/results/unlimited-ocr2/trial.json in CrispEmbed; four tiled pages compared with the original): F16 is token-ID exact on all 4 (paragraphs, table, receipt, German), with the fast decoder equal to the exact decoder everywhere. Q8_0 is exact on the untiled panel page but diverges on 2 of the 4 tiled trial pages (table at generated token 7, receipt at tokens 131 and 258). Each divergence is one bounding-box coordinate token off by 1-3 (for example 102 vs 99); sequence length and recognized text are unchanged. Use F16 when exact agreement with the original matters; Q8_0 is smaller and faster.

  • Raw decoded output: original IDs and complete raw UTF-8 text are byte-exact on all four synthetic tiled F16 pages at runtime 8ca9d3de. Default tiling was used. Published GGUFs contain only the128000 base pieces; this runtime supplies the pinned831 missing added pieces, including <PAGE>, <BLOCK>, <FORK> and table <tr>/<td> markup. The converter now writes added-token metadata for future conversions; these published weights are unchanged and continue to require that runtime fallback. OUTPUT=legacy preserves the old marker-dropping output; OUTPUT=clean is a separate layout-stripped rendering retaining table HTML.

  • Not verified: GPU backends, long multi-page documents, task-level quality benchmarks.

Usage

Unlimited-OCR-2 support is default-off in CrispEmbed and is enabled with an environment gate:

CRISPEMBED_UNLIMITED_OCR2=1 crispembed -m unlimited-ocr-2-f16.gguf --ocr page.png
# pages larger than 640 px are tiled like the original (crop_mode=None);
# CRISPEMBED_UNLIMITED_OCR2_TILES=0 forces the faster untiled view.
# Output is the original's raw decode (layout markup kept);
# CRISPEMBED_UNLIMITED_OCR2_OUTPUT=clean strips <PAGE>/<BLOCK>label[box]<FORK> and keeps tables.
Downloads last month
274
GGUF
Model size
3B params
Architecture
unlimited_ocr
Hardware compatibility
Log In to add your hardware

8-bit

16-bit

Inference Providers NEW
This model isn't deployed by any Inference Provider. ๐Ÿ™‹ Ask for provider support

Model tree for cstr/Unlimited-OCR-2-GGUF

Quantized
(12)
this model