How to convert PDFs to Markdown with MinerU on a cloud GPU

Rent a GPU on Deploy, then open a terminal in JupyterLab or over SSH. Install MinerU from the official opendatalab/MinerU repository the way the README prints, download the documented model set for the tier you select, and run mineru-kit parse or mineru parse. Copy the exported files off the instance before you destroy it, because destroying the instance deletes its disk.

Another converter, whose README prints no minimum GPU GB figure and whose CLI writes a Markdown file in the working directory, is How to convert PDFs and documents with Docling on a cloud GPU. A pipeline whose README says at least 12 GB of GPU RAM is How to convert PDFs to text with olmOCR on a cloud GPU. A different document model, served with SGLang, is How to run Unlimited-OCR-2 on a cloud GPU. A converter whose README prints no GPU GB figure, and whose default output folder is named conversion_results, is How to convert PDFs to Markdown with Marker on a cloud GPU. Copy documents on and results off with How to transfer files to a cloud GPU. If the process runs out of memory: How to fix CUDA out of memory on a cloud GPU.

LICENSE.md says MinerU is licensed under Apache License 2.0 and is subject to additional terms in that file. Section 1 says MinerU may be used for commercial purposes without a separate commercial license, and that a separate commercial license from the bracketed name in that file is required before continuing such use if either threshold is met: monthly active users (MAU) exceed 100 million, or total monthly revenue exceeds USD 20 million. pyproject.toml sets license to LicenseRef-MinerU-Open-Source-License and license-files to LICENSE.md. mineru/version.py sets __version__ to 4.2.1. The GitHub license field on 2026-11-13 was NOASSERTION. Section 2 says an online service based on MinerU must indicate that MinerU is used. Read the file before you redistribute the program or the weights.

The commands below are copied from the upstream files named in each step. They were not run on a CloudGPU instance for this page. Anything this page adds around them is marked.

What the docs say about memory

The README’s model-engine table prints these accelerator cells (read 2026-11-13). The same table has a Model download column. This page does not copy those sizes.

  • basic with PyTorch: Min RAM 8 GB, accelerator GPU/MPS recommended.
  • standard / advanced with PyTorch and llama.cpp: Min RAM 16 GB, accelerator GPU/MPS required, 8 GB+ VRAM.
  • standard / advanced with PyTorch and vLLM/lmdeploy/mlx: Min RAM 16 GB, accelerator GPU/MPS required, 8 GB+ VRAM.

The README’s hardware table says Linux/Windows with an NVIDIA GPU and 8GB+ VRAM uses startup tier standard, engines PyTorch + vLLM/lmdeploy, and the full extra. The next row says Linux/Windows with an NVIDIA GPU and 4GB+ VRAM uses startup tier basic, engine PyTorch, and the torch extra. The full extra list says at least 16 GB total memory, and a Volta-or-newer NVIDIA GPU with at least 8 GB available VRAM. The same list also states a disk figure. This page does not copy it. The README overview also prints a speed comparison with CPU. This page does not copy that comparison.

The tiers page says NVIDIA deployments need an engine-supported GPU, a driver, and sufficient free VRAM, and that 8 GB is only a planning starting point, not a guarantee for every workload. The same section says to plan for at least 16 GB of system memory for higher-throughput local deployment. It also says that on Windows/Linux, ONNX auto selection uses a discrete GPU only when its total memory rounds to at least 6 GB, with 1024³ bytes per GB. It recommends at least 16 GB of unified memory for Apple Silicon. Apple Silicon is not a name in gpu-prices.json. These sentences are the docs’. This page did not remeasure them.

GET /v1/public/compute-capabilities does not list GPUs. It returns feature flags. The memory column is vram_gb from gpu-prices.json, updated_at 2026-11-13T12:00:35.593Z. GET /v1/public/gpu-catalog the same day (generated_at 2026-11-13T12:00:36.648Z) listed the same names and the same vram_gb values, plus Ascend 910B at 64, which is not in gpu-prices.json and is not listed here. The catalog response also includes an availability field. This page does not copy it. Every prices row has gpu_count 1. The smallest vram_gb in that file is 8, on RTX 2080. That catalog number is not a MinerU measurement. The tiers page’s 8 GB sentence is a planning starting point, not a row this page marks as enough. Which listing you can start is on Deploy.

The catalog template list had no MinerU template.

Catalog name vram_gb
RTX 2080 8
RTX 3080 10
RTX 2080 Ti 11
RTX 3080 Ti 12
V100 16G 16
A30 24
RTX 3090 24
RTX 4090 24
RTX 4090D 24
RTX 4080 SUPER 32G 32
RTX 5090 32
RTX 5090D 32
V100 32G 32
A100 40G 40
A800 40G 40
A40 48
RTX 4090 48G 48
RTX 4090D 48G 48
RTX A6000 48
NVIDIA RTX PRO 5000 72G 72
RTX PRO 5000 72G 72
A100 80G 80
A800 80G 80
H800 80
RTX 6000D 83
H20 96G 96
RTX PRO 6000 96G 96
RTX PRO 6000 Max-Q 96
H20-3e 141G 141

Install

On Deploy, choose Raw GPU. The README’s Linux install, copied. The same block also prints a Windows PowerShell activate line. This page does not put that line in the block. pyproject.toml sets requires-python to >=3.11,<3.15. The README says Python >=3.11,<3.15 and uses Python 3.12 in the venv line. The install line is a version range. This page did not run it and does not state which release that range resolves to. mineru/version.py at the commit below is 4.2.1.

pip install uv
uv venv .mineru --python 3.12
source .mineru/bin/activate
uv pip install -U "mineru>=4.0,<5"

The README’s next two lines, copied. They are in the same install section as the venv block.

mineru-kit parse document.pdf -o document.md --tier standard
mineru-kit webui

The torch extra in pyproject.toml requires torch>=2.7.0,<3. The full extra depends on mineru[torch] and, on Linux, vllm>=0.19.1,<0.31.0. The README’s full example says it assumes the current install tool is uv tool, and that installing the extra replaces the active mineru environment. The venv block above is a different install path. This page did not run the uv tool lines.

mineru server stop
mineru server status --json
uv tool install --force "mineru[full]>=4.0,<5"
mineru server start
mineru server status --json

The model-source page’s download for a Standard deployment, copied. It says model.base_dir defaults to ~/.mineru/models in the config sample, and that MINERU_HOME defaults to ~/.mineru.

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

The same page’s NVIDIA / vLLM download, copied. It says these options apply only to the current operation.

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

The quick-usage page says the default model source is auto: probe Hugging Face first and choose ModelScope when it is unavailable. Its switch, copied:

export MINERU_MODEL_SOURCE=modelscope

The same page’s llm_aided example sets base_url and model to values this page does not print. Copy that block from the page if you enable those features. The commits API for the default branch master listed d7a1bbd496153d7c5a2784a6c6c8dc9fcbb0f7e4, committed 2026-11-11T13:53:50Z. README.md was eaf5ec1930340130dfc8bddba2fef0014a614bb8, committed 2026-11-10T11:06:20Z.

The RTX 5090 guide says that card is compute capability 12.0 (sm_120) and that PyTorch 2.7 and later, on a build for CUDA 12.8 or newer, is the line that announced support. The torch extra allows torch>=2.7.0,<3 and the README install does not select a CUDA wheel index. The same guide says packages that ship their own compiled GPU code need their own build for sm_120. The full extra on Linux depends on a vLLM range. This page did not re-test MinerU on an RTX 5090. Catalog RTX 5090 and RTX 5090D are 32. That is the catalog number only.

The documented CLI, tiers, and backends

The tiers page says tiers are not backend names. small_backend accepts auto, onnx, and torch. engine accepts auto, llama-cpp, vllm, lmdeploy, and mlx. The tiers are flash, basic, standard, and advanced. The tiers page says mineru-kit parse and local Python parse() default to Standard for PDFs. The quick-start page says mineru-kit parse defaults to all PDF pages. cli_tools.md says mineru parse defaults to the first 10 PDF pages, and that -o writes the complete rendered content of the requested pages. Without -o, rendered content goes to stdout. The stdout window is a 30,000-character soft limit. --wait waits up to 60 seconds. The example that passes --wait 600 is commented in that file as an explicit 10-minute client wait. The same page says a wait timeout is a client-side deadline, not a task failure.

The quick-start conversion, copied:

mineru-kit parse document.pdf -o document.md --tier standard

Native text without an inference model, copied from the same page. It says this reads the PDF text layer and does not add an OCR fallback.

mineru-kit parse document.pdf -o document.md --tier flash --ocr-mode txt

A directory writes a zip when -o is a directory. The quick-start page says for directories or multiple inputs, -o must be a directory.

mineru-kit parse ./documents -o ./output --format zip

The library client, copied from cli_tools.md. Exporting the whole PDF still needs --pages all.

mineru parse document.pdf --pages all -o document.md

docs/en/reference/output_files.md says mineru-kit parse can emit markdown, middle_json, and zip. V1 Tasks can emit default, docx, html, and latex. default is a ZIP of Markdown, Middle JSON, Structured Content, and images. ParseResult.save(writer) writes markdown.md, middle_json.json, structured_content.json, and images/. The renderer table lists Markdown, HTML, LaTeX, DOCX, EPUB, PDF, Structured Content, and Content List V1 and V2. The README says each CLI exposes its own subset.

The quick-usage page says small models use the Torch backend only when torch, torchvision, transformers, accelerate, and safetensors are all installed and a non-CPU device is detected. Otherwise they use ONNX. The local VLM engine is chosen independently: on an accelerator device, Linux prefers vLLM, then an installed LMDeploy, and Windows uses LMDeploy; otherwise llama.cpp. mineru-kit models show reports Effective small backend and Effective VLM engine.

Web UI

The quick-start page’s WebUI, copied. It says to open http://127.0.0.1:7860. mineru-webui is the command-name alias.

mineru-kit webui --server-name 127.0.0.1 --server-port 7860

The README install block’s mineru-kit webui line does not pass a host or a port. docs/en/usage/quick_usage.md also prints --server-name 0.0.0.0 --server-port 7860. This page did not start any of the three. Forward 127.0.0.1 port 7860 with how to use SSH port forwarding on a cloud GPU.

The quick-start API server, copied. It says the OpenAPI page is http://127.0.0.1:8000/docs.

mineru-kit api-server --host 127.0.0.1 --port 8000 --tier standard

quick_usage.md prints the same command with --host 0.0.0.0. cli_tools.md says mineru-kit file-parse-server defaults to port 8003, and mineru-kit router in that example uses --port 8002. mineru-kit vlm-server --engine auto --port 30000 is the documented VLM server line. This page did not start those processes.

ComfyUI

The README does not document a ComfyUI install. The ComfyUI examples top-level directory list on 2026-11-13 had no directory named for this project. Examples HEAD was f9431bb000ce792094ff345446e22cac1ea6cef3, committed 2025-11-26T20:33:58Z. Installing ComfyUI itself is How to install ComfyUI and ComfyUI-Manager on a cloud GPU. This page does not add a ComfyUI install.

When it fails

CUDA out of memory. The README’s standard rows say 8 GB+ VRAM, and the tiers page says 8 GB is only a planning starting point. If the process raises that error, use how to fix CUDA out of memory on a cloud GPU. The README agent section names an error code parse_oom and says to suggest a lower quality or a smaller --pages value. This page did not produce that error.

“CUDA error: no kernel image is available for execution on the device” on an RTX 5090. See the install section. This page did not re-test the package on that card.

Save the exports, then destroy

mineru-kit parse document.pdf -o document.md is the quick-start path for one Markdown file. A directory input with --format zip uses the directory passed to -o. mineru parse -o writes the requested pages to that path. ParseResult.save writes markdown.md, middle_json.json, structured_content.json, and images/. Model files from the download command go under the configured model.base_dir, whose sample is ~/.mineru/models. Copy the files you want before you destroy the instance. Save your work before you destroy a cloud GPU is the checklist. The terms say data on local instance storage is permanently deleted when the instance is destroyed.

The pricing page FAQ states the billing rule in these words:

Per-minute options have a 1-minute minimum; unused prepaid minutes are refunded when you destroy the instance. Some configurations use whole-hour billing with a 1-hour minimum; unused time within a charged hour is not refunded on voluntary stop. The billing period, minimum charge and initial prepayment are shown before confirmation. No subscription.

Frequently asked questions

What GPU memory figures does the MinerU documentation state?

The README accelerator cells for standard and advanced with PyTorch say GPU/MPS required, 8 GB+ VRAM. The hardware table says 8GB+ VRAM for the standard row with the full extra, and 4GB+ VRAM for the basic row with the torch extra. The full-extra list says at least 16 GB total memory and at least 8 GB available VRAM on a Volta-or-newer NVIDIA GPU. The tiers page says 8 GB is only a planning starting point, not a guarantee, and it says ONNX auto selection on Windows/Linux keeps a discrete GPU when total memory rounds to at least 6 GB. The README table also has a Model download column and a disk figure in the full-extra list. This page does not copy those. The smallest vram_gb in gpu-prices.json (updated_at 2026-11-13T12:00:35.593Z) is 8, on RTX 2080. This page did not run MinerU and does not mark a row as enough. Which listing you can start is on https://cloudgpu.app/deploy.

Which commands convert a PDF, and where is the file written?

The README install is uv pip install -U mineru>=4.0,<5 after a Python 3.12 venv. pyproject.toml requires Python >=3.11,<3.15. mineru/version.py sets the version string to 4.2.1. The quick-start command is mineru-kit parse document.pdf -o document.md --tier standard, which writes that path. mineru-kit parse defaults to all PDF pages. mineru parse defaults to the first 10 PDF pages, writes the -o path when -o is set, and otherwise prints to stdout. cli_tools.md says the stdout soft limit is 30,000 characters and --wait waits up to 60 seconds. ParseResult.save writes markdown.md, middle_json.json, structured_content.json, and images/. The model-source sample sets model.base_dir to ~/.mineru/models. This page did not run the commands.

Which backends does the documentation select, and does it ship a web UI?

The tiers page says small_backend accepts auto, onnx, and torch, and engine accepts auto, llama-cpp, vllm, lmdeploy, and mlx. Tiers are flash, basic, standard, and advanced, and they are not backend names. On an accelerator, Linux prefers vLLM then LMDeploy, and Windows uses LMDeploy; otherwise llama.cpp. The quick-start WebUI is mineru-kit webui --server-name 127.0.0.1 --server-port 7860. The mineru-kit webui line in the README install block does not pass a host or a port. The quick-start API server is mineru-kit api-server --host 127.0.0.1 --port 8000 --tier standard. The README does not document ComfyUI. The ComfyUI examples top-level directory list on 2026-11-13 had no directory named for this project. Examples HEAD was f9431bb000ce792094ff345446e22cac1ea6cef3.

Which license covers MinerU?

LICENSE.md says MinerU is licensed under Apache License 2.0 and additional terms in that file. Section 1 says a separate commercial license is required before continuing such use if monthly active users exceed 100 million, or if total monthly revenue exceeds USD 20 million. Those two thresholds are the upstream license text, not a CloudGPU price and not a storage allowance. pyproject.toml sets license to LicenseRef-MinerU-Open-Source-License. The GitHub license field on 2026-11-13 was NOASSERTION. Read the file before you redistribute the program or the weights.

Sources (read 2026-11-13, Asia/Shanghai)

  • MinerU README (venv install, mineru>=4.0,<5, mineru-kit parse, mineru-kit webui with no host flags, the 8 GB+ VRAM and 4GB+ VRAM rows, the full extra hardware list): https://github.com/opendatalab/MinerU/blob/master/README.md commit eaf5ec1930340130dfc8bddba2fef0014a614bb8. Repository HEAD d7a1bbd496153d7c5a2784a6c6c8dc9fcbb0f7e4, committed 2026-11-11T13:53:50Z
  • docs/en/quick_start/index.md (127.0.0.1 port 7860, API server port 8000, --tier flash --ocr-mode txt): commit a81c0224e9fbc9dcca7eaf922263cc7a672f3f78
  • docs/en/usage/quick_usage.md (model source auto, 0.0.0.0 port 7860, small-model and VLM selection): commit 8dfd5c7468789c9f603bee12d1e4f6097e8ee9ea
  • docs/en/usage/cli_tools.md (mineru parse first 10 pages, -o, 30,000-character soft limit, --wait 60 seconds, the --wait 600 comment): commit 4302bdd0741ab453e72d3646dc25c7c7f5ae8c01
  • docs/en/usage/tiers.md (backends, the 8 GB planning sentence, the 6 GB ONNX rule, 16 GB system memory): commit 32bfd789196daacddee67e8a44907396e0bdd496
  • docs/en/usage/model_source.md (~/.mineru/models, the Standard and vLLM download commands): commit a81c0224e9fbc9dcca7eaf922263cc7a672f3f78
  • docs/en/reference/output_files.md (formats, ParseResult.save filenames): commit 1c6b9b7abfe78939f21d1eee5e2a5ac0ac40c95f
  • pyproject.toml (requires-python, torch>=2.7.0,<3, Linux vLLM range, LicenseRef-MinerU-Open-Source-License): commit ad18c1d6b3080cc3945d6933700cdfb779ef0da1
  • mineru/version.py (4.2.1): commit aabc6fd759ab4dba9d64676d5b29c36b01d12edd
  • LICENSE.md (Apache 2.0 plus the MAU and revenue thresholds): commit 2f078fc678dcc1d89e19ac31e826d86845f58a1e. GitHub license field NOASSERTION
  • ComfyUI examples top-level directories (no MinerU directory): https://github.com/comfyanonymous/ComfyUI_examples commit f9431bb000ce792094ff345446e22cac1ea6cef3
  • Public GPU memory: https://cloudgpu.app/gpu-prices.json (updated_at 2026-11-13T12:00:35.593Z) and https://cloudgpu.app/v1/public/gpu-catalog (generated_at 2026-11-13T12:00:36.648Z). GET /v1/public/compute-capabilities returned feature flags and no GPU list. The catalog had no MinerU template

Cards you can start are on the Deploy page. Prices are on https://cloudgpu.app/pricing and are not repeated here.

Last updated: 2026-11-13 (Asia/Shanghai).