Instructions to use nativ-community/MiniCPM-OCR-1.0-bf16 with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- MLX
How to use nativ-community/MiniCPM-OCR-1.0-bf16 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("nativ-community/MiniCPM-OCR-1.0-bf16") config = load_config("nativ-community/MiniCPM-OCR-1.0-bf16") # 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) - Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- LM Studio
- Pi
How to use nativ-community/MiniCPM-OCR-1.0-bf16 with Pi:
Start the MLX server
# Install MLX LM: uv tool install mlx-lm # Start a local OpenAI-compatible server: mlx_lm.server --model "nativ-community/MiniCPM-OCR-1.0-bf16"
Configure the model in Pi
# Install Pi: npm install -g @earendil-works/pi-coding-agent # Add to ~/.pi/agent/models.json: { "providers": { "mlx-lm": { "baseUrl": "http://localhost:8080/v1", "api": "openai-completions", "apiKey": "none", "models": [ { "id": "nativ-community/MiniCPM-OCR-1.0-bf16" } ] } } }Run Pi
# Start Pi in your project directory: pi
- Hermes Agent
How to use nativ-community/MiniCPM-OCR-1.0-bf16 with Hermes Agent:
Start the MLX server
# Install MLX LM: uv tool install mlx-lm # Start a local OpenAI-compatible server: mlx_lm.server --model "nativ-community/MiniCPM-OCR-1.0-bf16"
Configure Hermes
# Install Hermes: curl -fsSL https://hermes-agent.nousresearch.com/install.sh | bash hermes setup # Point Hermes at the local server: hermes config set model.provider custom hermes config set model.base_url http://127.0.0.1:8080/v1 hermes config set model.default nativ-community/MiniCPM-OCR-1.0-bf16
Run Hermes
hermes
- Atomic Chat
- OpenClaw
How to use nativ-community/MiniCPM-OCR-1.0-bf16 with OpenClaw:
Start the MLX server
# Install MLX LM: uv tool install mlx-lm # Start a local OpenAI-compatible server: mlx_lm.server --model "nativ-community/MiniCPM-OCR-1.0-bf16"
Configure OpenClaw
# Install OpenClaw: npm install -g openclaw@latest # Register the local server and set it as the default model: openclaw onboard --non-interactive --mode local \ --auth-choice custom-api-key \ --custom-base-url http://127.0.0.1:8080/v1 \ --custom-model-id "nativ-community/MiniCPM-OCR-1.0-bf16" \ --custom-provider-id mlx-lm \ --custom-compatibility openai \ --custom-text-input \ --accept-risk \ --skip-health
Run OpenClaw
openclaw agent --local --agent main --message "Hello from Hugging Face"
MiniCPM-OCR 1.0 — MLX BF16
MLX conversion of the supplied MiniCPM-OCR 1.0 (1.3B) checkpoint, using a SigLIP vision encoder and Qwen3.5 language backbone. Weights are BF16, with normalization scales and recurrent parameters retained in FP32 where required. No quantization was applied.
Use an MLX-VLM build containing the minicpm_ocr model and processor port.
The runtime implementation is not bundled in this checkpoint repository.
mlx_vlm.generate --model nativ-community/MiniCPM-OCR-1.0-bf16 \
--image page.png --prompt "Convert this page to markdown." \
--temperature 0 --max-tokens 4096
from mlx_vlm import load, generate
from mlx_vlm.prompt_utils import apply_chat_template
model, processor = load("nativ-community/MiniCPM-OCR-1.0-bf16")
prompt = apply_chat_template(
processor, model.config, "Convert this page to markdown.", num_images=1,
)
result = generate(model, processor, prompt, image=["page.png"],
max_tokens=4096, temperature=0.0)
print(result.text)
The default visual compression is 4x. The compatible processor also supports
16x, image slicing and adaptive image/tile upsize. The checkpoint chat template
is preserved, including its non-thinking prefix.
Validation and performance
All 779 converted tensors match the sanitized source checkpoint. The converted model transcribes the invoice fixture correctly. Sixteen preprocessing cases matched the supplied Pillow reference across both compression modes and adaptive settings. These checks are not a comprehensive OCR accuracy benchmark.
Measured on an M5 Max (40 GPU cores, 128 GB RAM), resident batch size 1, one warmup and five measured repetitions; end-to-end time includes preprocessing:
| Input | Output tokens | Decode tok/s | Median time | Peak MLX memory |
|---|---|---|---|---|
| Synthetic invoice, 640x480, 4x | 55 | 234.7 | 0.381 s | 3.604 GB |
| Supplied document crop, 1346x230, 4x | 83 | 225.0 | 0.559 s | 3.680 GB |
| Synthetic dense page, 1440x1920, 4x | 706 | 220.1 | 3.680 s | 3.986 GB |
On the dense-page fixture, the 4x output contained the table and omitted the heading and footer. Results depend on document layout, prompt and compression.
The source checkpoint was provided for this conversion. Consult its original
model terms. File checksums are in SHA256SUMS; conversion provenance is in
conversion.json.
- Downloads last month
- -
Quantized