Skip to main content

Engines and models

Engine matrix​

EngineVersionSizeBest atCapability flags
PP-OCRv66.0.0det + recLightweight print, instant capturePrintedText MultiLanguage
MiniCPM-OCR 1.01.0.00.75BComplex layouts, photos, tables, formulasPrintedText Table Formula KeyValue MultiLanguage
Xiaomi-OCR-00.8.00.8BLayout, key information extraction, VQAPrintedText Table KeyValue MultiLanguage
PaddleOCR-VL 1.61.6.00.9BEnd-to-end page parsing including sealsPrintedText Table Formula KeyValue MultiLanguage

How to choose:

  • Instant capture on modest hardware: PP-OCRv6 Tiny
  • Complex pages, tables, formulas, photos: MiniCPM-OCR 1.0
  • Field extraction and document Q&A: Xiaomi-OCR-0
  • Whole-page structure with seals and charts: PaddleOCR-VL 1.6

Capability flags drive the toggles and parameter panel. Region switches such as Seals or Charts only appear for engines that support them, and PP-OCR never shows sampling parameters.

Shared runtime​

MiniCPM-OCR, Xiaomi-OCR-0 and PaddleOCR-VL infer through a local llama-server child process and share one llama.cpp runtime:

  • The runtime has its own block in the engine center, installed and upgraded separately from models;
  • One install serves every engine that references it, shown as a reference label on each card;
  • When the runtime is missing, affected engines are marked unavailable with an install entry point.

PP-OCRv6 uses in-process ONNX Runtime and needs no extra runtime.

Model packs and quantization​

Model packs ship per RID (win-x64, osx-arm64, linux-x64) with version, size, SHA-256, download URLs and supported languages. GGUF engines offer several quantization levels:

EngineLevels
MiniCPM-OCR 1.0Q4_K_M (default), Q5_K_M, Q6_K, Q8_0, F16
Xiaomi-OCR-0Q4_K_M (default), Q5_K_M, Q6_K, BF16
PaddleOCR-VL 1.6Q4_K_M (default), Q5_K_M, Q6_K, Q8_0, IQ4_XS, F16

Lower levels use less disk and memory; switch up when precision matters. The batch parameter model selects the pack used by a run.

PP-OCRv6 distributes individual files (det.onnx, rec.onnx and a charset), and the charset can be extracted from Paddle's inference.yml at install time.

Install pipeline​

  1. Download — URLs are tried in catalog order with automatic mirror fallback. Transfers are chunked and resumable; partial files stay as .part / .part.N.
  2. Verify — SHA-256 from the catalog; mismatches are removed and re-downloaded from another mirror.
  3. Unpack — extracted into a staging directory and checked for completeness.
  4. Swap — the active-version record is written and swapped atomically; the previous version is cleaned up after success.

Cancelling, quitting the app or switching mirrors resumes where it left off, and already verified files are reused. Corrupted install records surface as repair or reinstall prompts.

Proxies and catalog​

  • Downloads use the proxy from Settings → Network; changes apply to new downloads immediately.
  • Engines, models and runtimes come from a JSON catalog cached in {CacheDirectory}/catalog/. The cached copy renders first and refreshes in the background.
  • A failed refresh never blocks installed engines. A catalog that requires a newer app triggers an update prompt.
  • The UI always uses the default catalog source. Offline and intranet deployments override the URL in configuration, without a UI switch.

Uninstall​

  • Remove a model from its engine card; only that pack and its install record are deleted.
  • Remove the shared runtime affects every engine referencing it — the confirmation dialog lists them.
  • Do not delete folders by hand: it leaves inconsistent records that require reinstalling.