Context
marker 1.10.2 pins surya-ocr<0.18, transformers<5, and Pillow<11. Because surya 0.20
restructured its recognition/foundation API (recognition now runs through a GGUF VLM served
by SuryaInferenceManager), marker 1.10.2 can't import surya 0.20 as-is, and the caps
transitively block transformers 5.x / Pillow 12 for marker and anything built on it.
The surya side of this is already in flight: datalab-to/surya#492 (transformers 5
incompatibility) with fixes in datalab-to/surya#520 (transformers 5.x + huggingface-hub 1.x)
and datalab-to/surya#519 (Pillow 11/12).
What I have
I've got a working migration of marker to surya 0.20's API — adapting create_model_dict to
the shared SuryaInferenceManager, the layout/recognition/table-rec/equation call sites to
the new signatures, and the recognition consumption from the old per-char OCRResult to
0.20's per-block HTML (PageOCRResult). It's validated end-to-end: a real PDF converts to
non-empty markdown on transformers 5.x + Pillow 12 (both the provider-text and force_ocr
paths, with the llama.cpp VLM backend). A few 0.17-era config knobs (e.g. disable_ocr_math,
the various *_batch_size, keep_chars for OCR'd content) become inert under 0.20's API,
which I've documented in place.
Question
Would you welcome a PR for this, or is a surya-0.20 integration already in progress on your side?
Context
marker 1.10.2 pins
surya-ocr<0.18,transformers<5, andPillow<11. Because surya 0.20restructured its recognition/foundation API (recognition now runs through a GGUF VLM served
by
SuryaInferenceManager), marker 1.10.2 can't import surya 0.20 as-is, and the capstransitively block transformers 5.x / Pillow 12 for marker and anything built on it.
The surya side of this is already in flight: datalab-to/surya#492 (transformers 5
incompatibility) with fixes in datalab-to/surya#520 (transformers 5.x + huggingface-hub 1.x)
and datalab-to/surya#519 (Pillow 11/12).
What I have
I've got a working migration of marker to surya 0.20's API — adapting
create_model_dicttothe shared
SuryaInferenceManager, the layout/recognition/table-rec/equation call sites tothe new signatures, and the recognition consumption from the old per-char
OCRResultto0.20's per-block HTML (
PageOCRResult). It's validated end-to-end: a real PDF converts tonon-empty markdown on transformers 5.x + Pillow 12 (both the provider-text and
force_ocrpaths, with the llama.cpp VLM backend). A few 0.17-era config knobs (e.g.
disable_ocr_math,the various
*_batch_size,keep_charsfor OCR'd content) become inert under 0.20's API,which I've documented in place.
Question
Would you welcome a PR for this, or is a surya-0.20 integration already in progress on your side?