Skip to content

OCR Options Reference

Typed option dataclasses from natural_pdf/ocr/ocr_options.py. Pass an instance via page.apply_ocr(engine="...", options=...). Subclass tables list only the fields each class adds; every class also accepts the shared BaseOCROptions fields.

Base class for OCR engine options.

Fields shared by every engine’s options class. extra_args is passed through to the underlying engine.

OptionTypeDefaultDescription
extra_argsDict[str, Any]{}

Specific options for the Chandra OCR engine (VLM-based document OCR). Install: pip install chandra-ocr[hf]

Used by engine(s): chandra2.

OptionTypeDefaultDescription
methodstr'hf'Inference backend: "hf" for local HuggingFace, "vllm" for remote vLLM server.
vllm_urlOptional[str]NoneURL for the vLLM server when method="vllm".
max_output_tokensint12384Maximum number of tokens to generate per page.

Specific options for the doctr engine.

Used by engine(s): doctr.

OptionTypeDefaultDescription
det_archstr'db_resnet50'
reco_archstr'crnn_vgg16_bn'
pretrainedboolTrue
assume_straight_pagesboolTrueFaster if pages are straight
export_as_straight_boxesboolFalseOutput straight boxes even if rotated text is detected
symmetric_padboolTrue
preserve_aspect_ratioboolTrue
batch_sizeint1
bin_threshOptional[float]NoneDefault is usually 0.3
box_threshOptional[float]NoneDefault is usually 0.1
use_orientation_predictorboolFalseWhether to use page orientation predictor

Specific options for the EasyOCR engine.

Used by engine(s): easyocr.

OptionTypeDefaultDescription
model_storage_directoryOptional[str]None
user_network_directoryOptional[str]None
recog_networkstr'english_g2'
detect_networkstr'craft'
download_enabledboolTrue
detectorboolTrue
recognizerboolTrue
verboseboolTrue
quantizeboolTrue
cudnn_benchmarkboolFalse
detailint1
decoderstr'greedy'
beamWidthint5
batch_sizeint1
workersint0
allowlistOptional[str]None
blocklistOptional[str]None
paragraphboolFalse
min_sizeint10
contrast_thsfloat0.1
adjust_contrastfloat0.5
filter_thsfloat0.0
text_thresholdfloat0.7
low_textfloat0.4
link_thresholdfloat0.4
canvas_sizeint2560
mag_ratiofloat1.0
slope_thsfloat0.1
ycenter_thsfloat0.5
height_thsfloat0.5
width_thsfloat0.5
y_thsfloat0.5
x_thsfloat1.0
add_marginfloat0.1
output_formatstr'standard'

Specific options for the PaddleOCR engine, reflecting the paddleocr>=3.0.0 API. See: https://paddlepaddle.github.io/PaddleOCR/latest/en/version3.x/pipeline_usage/OCR.html

Used by engine(s): paddle.

OptionTypeDefaultDescription
doc_orientation_classify_model_nameOptional[str]None
doc_orientation_classify_model_dirOptional[str]None
doc_unwarping_model_nameOptional[str]None
doc_unwarping_model_dirOptional[str]None
text_detection_model_nameOptional[str]None
text_detection_model_dirOptional[str]None
textline_orientation_model_nameOptional[str]None
textline_orientation_model_dirOptional[str]None
text_recognition_model_nameOptional[str]None
text_recognition_model_dirOptional[str]None
use_doc_orientation_classifyOptional[bool]False
use_doc_unwarpingOptional[bool]False
use_textline_orientationOptional[bool]False
textline_orientation_batch_sizeOptional[int]None
text_recognition_batch_sizeOptional[int]None
text_det_limit_side_lenOptional[int]736WAITING FOR FIX
text_det_limit_typeOptional[str]'max'WAITING FOR FIX
text_det_threshOptional[float]None
text_det_box_threshOptional[float]None
text_det_unclip_ratioOptional[float]None
text_det_input_shapeOptional[Tuple[int, int]]None
text_rec_score_threshOptional[float]None
text_rec_input_shapeOptional[Tuple[int, int, int]]None
langOptional[str]None
ocr_versionOptional[str]None
deviceOptional[str]None
enable_hpiOptional[bool]None
use_tensorrtOptional[bool]None
precisionOptional[str]None
enable_mkldnnOptional[bool]Falsehttps://github.com/PaddlePaddle/PaddleOCR/issues/15294
cpu_threadsOptional[int]None
paddlex_configOptional[str]None

Specific options for the PaddleOCR-VL engine (VLM-based document understanding). See: https://paddlepaddle.github.io/PaddleOCR/latest/en/version3.x/pipeline_usage/PP-ChatOCRv4.html

Used by engine(s): paddlevl.

OptionTypeDefaultDescription
pipeline_versionOptional[str]None
use_layout_detectionOptional[bool]None
use_chart_recognitionOptional[bool]None
use_seal_recognitionOptional[bool]None
use_doc_orientation_classifyOptional[bool]None
use_doc_unwarpingOptional[bool]None
format_block_contentOptional[bool]None
max_new_tokensOptional[int]None
temperatureOptional[float]None
top_pOptional[float]None
repetition_penaltyOptional[float]None

Specific options for the RapidOCR engine. RapidOCR uses PaddleOCR models converted to ONNX format, providing the same accuracy with simpler installation (~15MB vs ~500MB).

Used by engine(s): rapidocr.

OptionTypeDefaultDescription
det_model_typestr'mobile'“mobile” or “server”
rec_model_typestr'mobile'“mobile” or “server”
config_pathOptional[str]NonePath to custom config.yaml
use_detboolTrue
use_clsboolTrue
use_recboolTrue
return_word_boxboolFalseSplit lines into individual word boxes
return_single_char_boxboolFalseReturn per-character boxes
text_scoreOptional[float]NoneText confidence filter (default 0.5)
box_threshOptional[float]NoneDetection box threshold (default 0.5)
unclip_ratioOptional[float]NoneBox expansion ratio (default 1.6)

Specific options for the Surya OCR engine.

Used by engine(s): surya.

OptionTypeDefaultDescription
strip_mathboolTrueRemove <math>…</math> tags and their content from OCR output. HTML formatting tags (<b>, etc.) are always stripped.

chandra, dots, glm_ocr, vlm — configure these through apply_ocr() keyword arguments (e.g. model=) instead of an options dataclass.