[{"data":1,"prerenderedAt":4},["ShallowReactive",2],{"readme:unlimited-ocr":3},"\u003Cp align=\"center\">\n  \u003Cimg src=\"https:\u002F\u002Fraw.githubusercontent.com\u002Fbaidu\u002Funlimited-ocr\u002FHEAD\u002Fassets\u002Fbaidu.png\" width=\"40%\" alt=\"Baidu Inc.\" \u002F>\n\u003C\u002Fp>\u003Chr \u002F>\u003Ch1>Unlimited OCR Works\u003C\u002Fh1>\u003Cdiv align=\"center\">\n  \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fbaidu\u002FUnlimited-OCR\" rel=\"nofollow ugc noopener\">\n    \u003Cimg alt=\"GitHub\" src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FGitHub-Code-181717?logo=github&amp;logoColor=white\" \u002F>\n  \u003C\u002Fa>\n  \u003Ca href=\"https:\u002F\u002Fhuggingface.co\u002Fbaidu\u002FUnlimited-OCR\" rel=\"nofollow ugc noopener\">\n    \u003Cimg alt=\"Hugging Face\" src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002F%F0%9F%A4%97%20Hugging%20Face-Model-ffc107?color=ffc107&amp;logoColor=white\" \u002F>\n  \u003C\u002Fa>\n\u003C\u002Fdiv>\u003Cdiv align=\"center\">\n    \u003Ca href=\"https:\u002F\u002Farxiv.org\u002Fabs\u002F2606.23050\" rel=\"nofollow ugc noopener\">\n    \u003Cimg alt=\"arXiv\" src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FarXiv-Unlimited OCR Works-b31b1b?logo=arxiv&amp;logoColor=white\" \u002F>\n  \u003C\u002Fa>\n  \u003Ca href=\"https:\u002F\u002Fx.com\u002FBaidu_Inc\" rel=\"nofollow ugc noopener\">\n    \u003Cimg alt=\"Twitter Follow\" src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FTwitter-Baidu Inc.-white?logo=x&amp;logoColor=white\" \u002F>\n  \u003C\u002Fa>\n\u003C\u002Fdiv>\u003Ch3>Welcome the Era of One-shot Long-horizon Parsing.\u003C\u002Fh3>\u003Cp align=\"center\">\n    \u003Cimg src=\"https:\u002F\u002Fraw.githubusercontent.com\u002Fbaidu\u002Funlimited-ocr\u002FHEAD\u002Fassets\u002FUnlimited-OCR.png\" width=\"1000\" alt=\"Unlimited OCR overview\" \u002F>\n\u003C\u002Fp>\u003Ch2>Release\u003C\u002Fh2>\n\u003Cul>\n\u003Cli>[2026\u002F07\u002F03] 🤝 Thanks to the Baidu Cloud team for their support. Our model is now available on \u003Ca href=\"https:\u002F\u002Fcloud.baidu.com\u002Fdoc\u002FOCR\u002Fs\u002Ffmr1p39gb\" rel=\"nofollow ugc noopener\">Baidu Cloud\u003C\u002Fa>.\u003C\u002Fli>\n\u003Cli>[2026\u002F06\u002F28] 🤝 Thanks to the \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fvllm-project\u002Fvllm\" rel=\"nofollow ugc noopener\">vLLM community\u003C\u002Fa> and \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fgty111\" rel=\"nofollow ugc noopener\">Tianyu Guo\u003C\u002Fa> for their support, our model now supports vLLM inference.\u003C\u002Fli>\n\u003Cli>[2026\u002F06\u002F24] 🤝 Thanks to \u003Ca href=\"https:\u002F\u002Fx.com\u002F_akhaliq\" rel=\"nofollow ugc noopener\">AK\u003C\u002Fa> for creating a demo for us. It is now available at \u003Ca href=\"https:\u002F\u002Fhuggingface.co\u002Fspaces\u002Fbaidu\u002FUnlimited-OCR\" rel=\"nofollow ugc noopener\">Hugging Face Spaces\u003C\u002Fa>.\u003C\u002Fli>\n\u003Cli>[2026\u002F06\u002F23] 📄 Our paper is now available on \u003Ca href=\"https:\u002F\u002Farxiv.org\u002Fabs\u002F2606.23050\" rel=\"nofollow ugc noopener\">arXiv\u003C\u002Fa>.\u003C\u002Fli>\n\u003Cli>[2026\u002F06\u002F23] 🤝 Thanks to the \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fmodelscope\" rel=\"nofollow ugc noopener\">ModelScope community\u003C\u002Fa> for their support. Our model is now available at \u003Ca href=\"https:\u002F\u002Fmodelscope.cn\u002Fmodels\u002FPaddlePaddle\u002FUnlimited-OCR\" rel=\"nofollow ugc noopener\">ModelScope\u003C\u002Fa>.\u003C\u002Fli>\n\u003Cli>[2026\u002F06\u002F22] 🚀 We present \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fbaidu\u002FUnlimited-OCR\" rel=\"nofollow ugc noopener\">Unlimited-OCR\u003C\u002Fa>, aiming to push \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fdeepseek-ai\u002FDeepSeek-OCR\" rel=\"nofollow ugc noopener\">Deepseek-OCR\u003C\u002Fa> one step further.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch2>Inference\u003C\u002Fh2>\n\u003Ch3>Transformers\u003C\u002Fh3>\n\u003Cp>Inference using Huggingface transformers on NVIDIA GPUs. Requirements tested on python 3.12.3 + CUDA12.9：\u003C\u002Fp>\n\u003Cpre>\u003Ccode>torch==2.10.0\ntorchvision==0.25.0\ntransformers==4.57.1\nPillow==12.1.1\nmatplotlib==3.10.8\neinops==0.8.2\naddict==2.4.0\neasydict==1.13\npymupdf==1.27.2.2\npsutil==7.2.2\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cpre>\u003Ccode class=\"language-python\">import os\nimport torch\nfrom transformers import AutoModel, AutoTokenizer\n\nmodel_name = 'baidu\u002FUnlimited-OCR'\n\ntokenizer = AutoTokenizer.from_pretrained(model_name, trust_remote_code=True)\nmodel = AutoModel.from_pretrained(\n    model_name,\n    trust_remote_code=True,\n    use_safetensors=True,\n    torch_dtype=torch.bfloat16,\n)\nmodel = model.eval().cuda()\n\n# ── Single image supports two configs: gundam or base ──\n# gundam: base_size=1024, image_size=640, crop_mode=True\n# base: base_size=1024, image_size=1024, crop_mode=False\nmodel.infer(\n    tokenizer,\n    prompt='&lt;image&gt;document parsing.',\n    image_file='your_image.jpg',\n    output_path='your\u002Foutput\u002Fdir',\n    base_size=1024, image_size=640, crop_mode=True,\n    max_length=32768,\n    no_repeat_ngram_size=35, ngram_window=128,\n    save_results=True,\n)\n\n# ── Multi page \u002F PDF only uses base (image_size=1024) ──\nmodel.infer_multi(\n    tokenizer,\n    prompt='&lt;image&gt;Multi page parsing.',\n    image_files=['page1.png', 'page2.png', 'page3.png'],\n    output_path='your\u002Foutput\u002Fdir',\n    image_size=1024,\n    max_length=32768,\n    no_repeat_ngram_size=35, ngram_window=1024,\n    save_results=True,\n)\n\n# ── PDF (convert pages to images, then multi-page parsing) ──\nimport tempfile, fitz  # PyMuPDF\n\ndef pdf_to_images(pdf_path, dpi=300):\n    doc = fitz.open(pdf_path)\n    tmp_dir = tempfile.mkdtemp(prefix='pdf_ocr_')\n    mat = fitz.Matrix(dpi \u002F 72, dpi \u002F 72)\n    paths = []\n    for i, page in enumerate(doc):\n        out = os.path.join(tmp_dir, f'page_{i+1:04d}.png')\n        page.get_pixmap(matrix=mat).save(out)\n\u003C\u002Fcode>\u003C\u002Fpre>\n",1784240408314]