---
license: other
license_name: tencent-hunyuan-community
license_link: https://huggingface.co/tencent/HunyuanOCR/blob/main/LICENSE
language:
- multilingual
- en
- zh
tags:
- ocr
- vision-language-model
- document-parsing
- text-spotting
- information-extraction
- text-image-translation
pipeline_tag: image-text-to-text
library_name: transformers
---
# HunyuanOCR-1.5 · Preview
**Towards Efficient and Effective E2E OCR**
> 📦 **Model layout.** This repository now hosts **HunyuanOCR-1.5** at the
> root (target base weights). The **DFlash speculative-decoding draft** lives
> under [`dflash/`](https://huggingface.co/tencent/HunyuanOCR/tree/main/dflash),
> and the previous **HunyuanOCR-1.0** is archived under
> [`v1.0/`](https://huggingface.co/tencent/HunyuanOCR/tree/main/v1.0).
> To load HunyuanOCR-1.0, use `subfolder="v1.0"` (or download the `v1.0/`
> directory directly).
---
## 📖 Introduction
**HunyuanOCR-1.5** is a lightweight, end-to-end OCR-specialized vision-language
model. It targets a broad range of text-centric visual tasks and unifies
**document parsing, text spotting, information extraction, and text-image
translation** within a single end-to-end VLM.
Building upon the validated lightweight architecture of **HunyuanOCR-1.0**,
HunyuanOCR-1.5 does *not* redesign the backbone. Instead, it performs a
systematic upgrade around two goals — **making the model faster and better**:
- ⚡ **Faster — DFlash inference acceleration.**
A lightweight block-diffusion draft model drafts multiple candidate tokens in
parallel, verified by the target model in a single pass, significantly
reducing decoding latency of long structured OCR outputs (dense documents,
tables, formulas) while **preserving the target model's output distribution**.
Draft weights: [`tencent/HunyuanOCR/dflash`](https://huggingface.co/tencent/HunyuanOCR/tree/main/dflash).
- 💻 **PC-side deployment via llama.cpp.**
Beyond server-grade vLLM, HunyuanOCR-1.5 also supports **CPU / consumer-GPU /
laptop** deployment via [`llama.cpp`](https://github.com/ggml-org/llama.cpp)
with an OpenAI-compatible `llama-server`. A DFlash-adapted `llama.cpp` fork is
also provided so the same speculative-decoding acceleration is available on
PC.
- 🧠 **Better — Agentic Data Flow + upgraded training recipe.**
An agent-driven data-construction system (**Agentic Data Flow**) translates
model weaknesses into executable data requirements, targeting long-tail
capabilities such as **low-resource OCR, ancient-script OCR, and multi-image
text-centric QA**. Pretraining Stage-3 is re-planned with **4K resolution** and
a **128K context window**; post-training refines SFT data and further explores
RL across different OCR tasks.
Together, HunyuanOCR-1.5 achieves both faster inference and broader OCR
capability coverage while retaining the deployment advantages of a lightweight
end-to-end model.
---
## ⚙️ Environment
- Python 3.10+
- PyTorch 2.1+ (CUDA 12.1+)
- **transformers** (ships `HunYuanVLForConditionalGeneration` + `AutoProcessor` for the HunyuanOCR-1.5 series)
- **vLLM nightly** — for serving and DFlash speculative decoding
### transformers
```bash
pip install transformers torch pillow accelerate
# for FlashAttention:
pip install flash-attn --no-build-isolation
```
### vLLM serving
We use a dedicated venv for inference to keep vLLM nightly isolated:
```bash
uv pip install -U vllm \
--torch-backend=cu130 \
--extra-index-url https://wheels.vllm.ai/nightly
uv pip install runai-model-streamer
```
> 💡 On CUDA 12.x, replace `--torch-backend=cu130` with the matching tag
> (e.g. `cu121`, `cu124`).
---
## 🚀 Quick start
### A. HuggingFace transformers
```python
import torch
from transformers import AutoProcessor, HunYuanVLForConditionalGeneration
MODEL_ID = "tencent/HunyuanOCR"
processor = AutoProcessor.from_pretrained(MODEL_ID, trust_remote_code=True)
model = HunYuanVLForConditionalGeneration.from_pretrained(
MODEL_ID, torch_dtype=torch.bfloat16, device_map="auto",
trust_remote_code=True,
).eval()
prompt = (
"提取文档图片中正文的所有信息用markdown格式表示,其中页眉、页脚部分忽略,"
"表格用html格式表达,文档中公式用latex格式表示,按照阅读顺序组织进行解析。"
)
messages = [{
"role": "user",
"content": [
{"type": "image", "image": "/path/to/document.png"},
{"type": "text", "text": prompt},
],
}]
inputs = processor.apply_chat_template(
messages, add_generation_prompt=True, tokenize=True,
return_dict=True, return_tensors="pt",
).to(model.device)
with torch.inference_mode():
out = model.generate(**inputs, max_new_tokens=8000, do_sample=False)
gen = out[:, inputs["input_ids"].shape[1]:]
print(processor.batch_decode(gen, skip_special_tokens=True)[0])
```
Or use the ready-made single-image script from the repo:
```bash
git clone -b develop https://github.com/Tencent-Hunyuan/HunyuanOCR.git
cd HunyuanOCR
python inference/infer_base.py \
--model tencent/HunyuanOCR \
--image /path/to/document.png \
--max-new-tokens 8000
```
### B. vLLM
```bash
# Autoregressive baseline
MODEL_PATH=tencent/HunyuanOCR \
GPU=0 PORT=8000 GPU_MEM_UTIL=0.9 \
bash inference/serve_ar.sh
# DFlash speculative decoding
# The draft lives under the `dflash/` subfolder of tencent/HunyuanOCR;
# download it into a flat local dir first (HF subfolder loading is
# unsupported by vLLM's speculative-config):
# python -c "from huggingface_hub import snapshot_download; import shutil, os; \
# d=snapshot_download('tencent/HunyuanOCR', allow_patterns=['dflash/*']); \
# shutil.copytree(os.path.join(d,'dflash'), './hunyuanocr_dflash', dirs_exist_ok=True)"
MODEL_PATH=tencent/HunyuanOCR \
DFLASH_PATH=./hunyuanocr_dflash \
GPU=0 PORT=8001 GPU_MEM_UTIL=0.9 NUM_SPEC_TOKENS=15 \
bash inference/serve_dflash.sh
```
Send one image with the shipped client (streaming + tail-repetition early-stop,
matches internal bench sampling params):
```bash
python inference/infer_vllm_client.py \
--host 127.0.0.1 --port 8000 \
--model tencent/HunyuanOCR \
--image /path/to/document.png
```
### C. PC-side deployment via llama.cpp
See `docs/llama_cpp.md` in the GitHub repo for GGUF conversion, community
`llama-server` launch, and the DFlash-adapted fork.
---
## 🎯 Default OCR prompt for document parsing
```
提取文档图片中正文的所有信息用markdown格式表示,其中页眉、页脚部分忽略,
表格用html格式表达,文档中公式用latex格式表示,按照阅读顺序组织进行解析。
```
The model also handles text spotting, information extraction, and text-image
translation — pass a task-specific instruction as the text prompt.
---
## 🔗 Related repositories
- **GitHub — training & inference toolkit** (branch `develop`):
- **DFlash draft weights** (required for speculative-decoding acceleration):
[`tencent/HunyuanOCR/dflash`](https://huggingface.co/tencent/HunyuanOCR/tree/main/dflash)
- **HunyuanOCR-1.0** (previous generation, archived under `v1.0/`):
[`tencent/HunyuanOCR/v1.0`](https://huggingface.co/tencent/HunyuanOCR/tree/main/v1.0)
---
## 📜 License
HunyuanOCR-1.5 is released under the same license as HunyuanOCR 1.0 — the
**Tencent Hunyuan Community License Agreement**.