Image-Text-to-Text
MLX
Safetensors
PaddleOCR
English
Chinese
multilingual
paddleocr_vl
ERNIE4.5
PaddlePaddle
image-to-text
ocr
document-parse
layout
table
formula
chart
seal
spotting
conversational
custom_code
8-bit precision
Instructions to use OpenGryd/PaddleOCR-VL-1.6-MLX-8bit with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- MLX
How to use OpenGryd/PaddleOCR-VL-1.6-MLX-8bit with MLX:
# Make sure mlx-vlm is installed # pip install --upgrade mlx-vlm from mlx_vlm import load, generate from mlx_vlm.prompt_utils import apply_chat_template from mlx_vlm.utils import load_config # Load the model model, processor = load("OpenGryd/PaddleOCR-VL-1.6-MLX-8bit") config = load_config("OpenGryd/PaddleOCR-VL-1.6-MLX-8bit") # Prepare input image = ["http://images.cocodataset.org/val2017/000000039769.jpg"] prompt = "Describe this image." # Apply chat template formatted_prompt = apply_chat_template( processor, config, prompt, num_images=1 ) # Generate output output = generate(model, processor, formatted_prompt, image) print(output) - PaddleOCR
How to use OpenGryd/PaddleOCR-VL-1.6-MLX-8bit with PaddleOCR:
# See https://www.paddleocr.ai/latest/version3.x/pipeline_usage/PaddleOCR-VL.html to installation from paddleocr import PaddleOCRVL pipeline = PaddleOCRVL(pipeline_version="OpenGryd/PaddleOCR-VL-1.6-MLX-8bit") output = pipeline.predict("path/to/document_image.png") for res in output: res.print() res.save_to_json(save_path="output") res.save_to_markdown(save_path="output") - Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- LM Studio
- Atomic Chat
PaddleOCR-VL-1.6-MLX-8bit
MLX 8-bit quantization of PaddlePaddle/PaddleOCR-VL-1.6, a 0.9B-parameter vision-language model for document parsing. Converted for Apple Silicon, running locally with mlx-vlm.
Model details
- Base model: PaddlePaddle/PaddleOCR-VL-1.6 (0.9B, ERNIE-4.5-based)
- Quantization: 8-bit (MLX
mlx_vlm.convert), ~1.09 GB on disk - Architecture:
PaddleOCRVLForConditionalGeneration(custompaddleocr_vlmodel type; trust_remote_code required) - Context: up to 131,072 tokens
- Vision encoder: 14px patches, up to ~1M pixels per image
Capabilities
- Full-page OCR in Markdown and JSON formats
- Layout analysis, table recognition (structure), formula recognition (LaTeX)
- Chart and seal recognition, text spotting (detection + recognition)
Intended uses
- On-device document parsing on Apple Silicon (M-series)
- Local OCR pipelines where no data may leave the machine
- Served via
mlx_vlm.serveror the MLX Python API withtrust_remote_code=True
Usage
pip install mlx-vlm
from mlx_vlm import load, generate
model, processor = load("OpenGryd/PaddleOCR-VL-1.6-MLX-8bit")
output = generate(model, processor, "media/document.png", max_tokens=4096)
print(output)
To serve OpenAI-compatible endpoints:
python -m mlx_vlm.server --model OpenGryd/PaddleOCR-VL-1.6-MLX-8bit --port 8090
Limitations
- 8-bit quantization introduces a small accuracy delta vs. the bf16/fp16 base model
- Requires
trust_remote_code=True(custom modeling code ships with the repo) - No text-only inputs: image required
Evaluation
The base model achieves 96.3% on OmniDocBench v1.6, leading on text, formula, and table recognition. See the base model card for full benchmarks.
License
Apache-2.0 — inherited from the base model.
Citation
@misc{paddleocrvl2025,
title={PaddleOCR-VL-1.6: Expanding the Frontier of Document Parsing with Under-Optimized Region Refinement and Progressive Post-Training},
author={PaddlePaddle Team},
year={2025},
howpublished={\url{https://huggingface.co/PaddlePaddle/PaddleOCR-VL-1.6}},
}
- Downloads last month
- 56
Model size
0.4B params
Tensor type
BF16
·
U32 ·
Hardware compatibility
Log In to add your hardware
8-bit
Model tree for OpenGryd/PaddleOCR-VL-1.6-MLX-8bit
Base model
PaddlePaddle/PaddleOCR-VL-1.6