Skip to main content

unlimitedocr.c

unlimitedocr.c runs the baidu/Unlimited-OCR model locally with a native C/Metal inference engine and a small Python API for OCR workflows.

Python handles the user-facing pieces — image loading, prompt construction, tokenization, and text decoding. The native library handles model loading, memory management, KV cache, logits processing, and GPU execution.

Installation

uv add unlimitedocr-c

unlimitedocr-c is published on PyPI. Version 0.3.0 is the latest stable release.

Quick start

from unlimitedocr_c import UnlimitedOCR

ocr = UnlimitedOCR()
text = ocr.generate("page.png")
print(text)
ocr.close()

Create one UnlimitedOCR instance, reuse it for as many images as you want, and call close() when finished.

from unlimitedocr_c import UnlimitedOCR

ocr = UnlimitedOCR()

for image_path in ["page-1.png", "page-2.png", "page-3.png"]:
    print(ocr.generate(image_path, profile="base"))

ocr.close()

Quantization (Q8)

The engine supports two model profiles:

Profile Weights Model file Usage
fp16 (default) fp16 ~6.7 GB UnlimitedOCR()
mixed Q8_0 int8 weights + fp16 scales ~3.5 GB UnlimitedOCR(quant="q8")
from unlimitedocr_c import UnlimitedOCR

ocr = UnlimitedOCR(quant="q8")
text = ocr.generate("page.png")
ocr.close()

The first use converts the Hugging Face checkpoint into a cached unlimitedocr-q8.uocr model file; pass force_reconvert=True to rebuild it.

Q8 quantizes all decoder and vision-encoder weight matrices (attention, MLPs, MoE experts, LM head, embeddings, projector) with group-64 Q8_0. Norms, biases, position embeddings, convolutions, and all runtime activations stay fp16. Dequantization is fused inside the Metal kernels — quantization roughly halves model memory and speeds up token generation, which is memory-bandwidth-bound.

Input types

generate() accepts the common image forms directly:

Input type Example
local path ocr.generate("page.png")
URL ocr.generate("https://example.com/page.jpg")
bytes ocr.generate(open("page.png", "rb").read())
file-like object ocr.generate(BytesIO(image_bytes))
PIL image ocr.generate(Image.open("page.png"))
base64/data URI string ocr.generate("data:image/png;base64,...")

Example:

from io import BytesIO
from PIL import Image
from unlimitedocr_c import UnlimitedOCR

ocr = UnlimitedOCR()

text_from_path = ocr.generate("page.png")
text_from_url = ocr.generate("https://example.com/page.jpg")
text_from_bytes = ocr.generate(open("page.png", "rb").read())
text_from_file = ocr.generate(BytesIO(open("page.png", "rb").read()))
text_from_pil = ocr.generate(Image.open("page.png"))

ocr.close()

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

unlimitedocr_c-0.3.0-py3-none-macosx_12_0_arm64.whl (451.6 kB view details)

Uploaded Python 3macOS 12.0+ ARM64

File details

Details for the file unlimitedocr_c-0.3.0-py3-none-macosx_12_0_arm64.whl.

File metadata

  • Download URL: unlimitedocr_c-0.3.0-py3-none-macosx_12_0_arm64.whl
  • Upload date:
  • Size: 451.6 kB
  • Tags: Python 3, macOS 12.0+ ARM64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.10.0 {"installer":{"name":"uv","version":"0.10.0","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for unlimitedocr_c-0.3.0-py3-none-macosx_12_0_arm64.whl
Algorithm Hash digest
SHA256 86b6db9010ffe8041b4bebb8144cdb62bed594c02c9eb94112f2ec1c64fefccd
MD5 166036552719e005d2d055cde4702ec3
BLAKE2b-256 1a281b1d88b04aa0125965046a9a039cf1d2fa7b123f401cd9e942ff1b5ba871

See more details on using hashes here.

Release history Release notifications | RSS feed

0.4.1

1 file

0.4.0

1 file

This release

0.3.0 This release

1 file

0.2.3

1 file

0.2.2

1 file

0.2.1

1 file

0.2

1 file

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page