Skip to content

Model Downloads and Configuration

MinerU 4.0 configures small-model backends independently from VLM engines. Configuration defaults to $MINERU_HOME/config.yaml (MINERU_HOME defaults to ~/.mineru); MINERU_CONFIG selects another file.

model:
  source: auto
  base_dir: ~/.mineru/models
  small_backend: auto
  vlm:
    engine: auto

Model sources

model.source accepts auto, huggingface, modelscope, and local. auto probes Hugging Face first and selects ModelScope when it is unavailable. Automatic selection from a default or config value may be written back to configuration. Environment variables override file settings:

export MINERU_MODEL_SOURCE=modelscope
mineru-kit parse document.pdf -o document.md --tier standard

Windows PowerShell:

$env:MINERU_MODEL_SOURCE = "modelscope"

The small-model bundles MinerU-4_models_torch and MinerU-4_models_onnx are registered for both Hugging Face and ModelScope. Original VLM weights and llama.cpp GGUF/mmproj use different repositories selected by the engine. Basic needs the selected small-model bundle; Standard also needs VLM models and serves Advanced requests.

Download, verify, and run offline

Download and verify a Standard deployment using the current configuration:

mineru-kit models download --tier standard --source huggingface
mineru-kit models verify --tier standard
mineru-kit models show

An explicit CPU small-model and llama.cpp combination:

mineru-kit models download --tier standard --small-backend onnx --vlm-engine llama-cpp --source huggingface
mineru-kit models verify --tier standard --small-backend onnx --vlm-engine llama-cpp

A NVIDIA / vLLM deployment can download its models on a build machine without a GPU. Specify the target backends instead of relying on that machine's automatic selection:

mineru-kit models download --tier standard --small-backend torch --vlm-engine vllm --source huggingface
mineru-kit models verify --tier standard --small-backend torch --vlm-engine vllm

These command options apply only to the current operation and do not change persistent configuration. Use the same combination for inference, for example:

export MINERU_MODEL_SMALL_BACKEND=torch
export MINERU_MODEL_VLM_ENGINE=vllm
export MINERU_MODEL_SOURCE=local
mineru-kit parse document.pdf -o document.md --tier standard

Use basic as the download tier when no VLM is needed. Advanced has no separate deployment download tier. Set model.base_dir before downloading to change the model root. Completion markers and required files determine readiness. Repeated downloads reuse provider caches; do not create completion markers manually.

local uses ready local models and fails on missing assets without downloading. An explicit models download is a download operation: even with local configured, it temporarily resolves a remote source automatically.

Remote VLM service

An existing model.vlm.server_url takes priority and removes the local VLM weight requirement. This is a model inference endpoint, not the MinerU V1 document parsing API. Small-model requirements still depend on the tier. The full field set:

Field Default Purpose
model.vlm.engine auto Local engine selection: auto/llama-cpp/vllm/lmdeploy; not used while a remote server_url is set
model.vlm.server_url (unset) Remote VLM inference endpoint. Must be HTTP(S) without credentials, query, or fragment; a trailing /v1 is stripped and the URL is kept ending with / (reverse-proxy path prefixes are preserved)
model.vlm.api_key (unset) Bearer key for the remote VLM service; environment variable MINERU_MODEL_VLM_API_KEY
model.vlm.model (unset) Model name requested from the remote service; environment variable MINERU_MODEL_VLM_MODEL
model.vlm.http_timeout 600 Per-request timeout in seconds
model.vlm.max_concurrency 100 Maximum concurrent VLM requests

Legacy MINERU_VL_API_KEY / MINERU_VL_MODEL_NAME are rejected when they conflict with these fields; see the migration guide.

model.stack, MINERU_MODEL_STACK, and --stack have been removed. Restart relevant services after configuration changes.

Three remote connections at a glance

MinerU talks to three different kinds of remote services. They are not interchangeable — do not reuse one service's address, key, or model name for another:

Connection Purpose Where it is configured
V1 document parsing service Upload documents, submit parse jobs, download results (self-hosted mineru-kit api-server, router, or the official cloud service) Per client: MINERU_API_URL / MINERU_API_KEY, or SDK MinerUApiParser(api_url=..., api_key=...). The document library's default remote target is a library runtime setting, not part of config.yaml
Remote VLM inference service Model inference for local parse pipelines (Standard/Advanced), OpenAI-compatible model.vlm.server_url / api_key / model in config.yaml
LLM-aided post-processing Title leveling and cross-page table cell continuation llm_aided.api_key / base_url / model in config.yaml; both features are disabled by default

Download troubleshooting

Hugging Face uses hf_xet by default. If your network cannot reach Xet CAS, set HF_HUB_DISABLE_XET=1 before downloading to use regular HTTP, or switch to ModelScope. For offline deployment, download and verify before selecting local. See extension modules for installation combinations.