GOT-OCR-2-GUI

July 8, 2025 · View on GitHub

See English version here

🛑停止支持,以后随性更新

img.png

关于此项目

模型权重:镜像站原站点
原GitHub:GOT-OCR2.0
这个项目是在 Windows 下开发的,我本人没用过也不会 Linux,不能确保它能够在 Linux 下正常运行,如果你要在 Linux 下部署,可以参考一下这个 issue
部分代码来自: GLM4 Deepseek

点个star吧

待办

  • 日志内容本地化
  • 支持新模型 stepfun-ai/GOT-OCR-2.0-hf
  • 优化 PDF 相关的错误处理逻辑
  • 支持 GGUF 模型,希望能够加速推理(感谢 issue #19 提供的帮助)
  • 完善 GGUF 模型的支持
  • 新版渲染模式:优化性能,支持更多格式输出
  • 移除/隐藏旧版渲染器

使用方法

如果这里面提到的文件夹你没有,那就新建一个

选择一个分支

Alpha

更新最快的分支,最新的更改都会提交到这个分支。
代码有时会未经测试。
非常不稳定,有时甚至无法使用。

main

较为稳定的分支,但会缺失一些新特性。

依赖

此环境在python 3.11.9下经过测试能够正常工作

torch

torch官网选择适合自己的GPU版本的torch安装即可
我之前用的是 Stable 2.4.1 + cu124
目前在使用 Stable 2.0.1 + cu118 ,可以解决1 Torch is not compiled with Flash Attention,暂未发现其他问题

PyMuPDF

实测如果直接从requirements.txt里安装的话会报ModuleNotFoundError: No module named 'frontend' ,但单独安装的话就不会这样,具体原因不清楚
另外,如果还是报ModuleNotFoundError的话就先卸载fitzPyMuPDF,再重新安装一次应该能解决,实测pip install -U PyMuPDF 是没用的

pip install fitz
pip install PyMuPDF

使用pip安装

pip install -r requirements.txt

另,有人提到了自己使用requirements.txt安装依赖时出现了冲突问题,但我这里没有发现问题,pipdeptree 也没有显示任何冲突项,requirements.txt是直接pip freeze的我自己的虚拟环境的,按理来说应该没问题。
但由于确实出现了这样的问题,这里再提供一个不带版本号的requirements-noversion.txt,你可以试试看: 更多信息请查看这个 issue #4

pip install -r requirements-noversion.txt

其他

大伙的电脑里应该都有 edge 吧?应该吧?这玩意可是预装的来着......
文件结构应该是:

GOT-OCR-2-GUI
└─edge_driver
   ├─msedgedriver.exe
   └─...

下载模型文件

下列模型中只要有一个就能执行 OCR ,但要启用自动加载模型,那就要有Safetensors模型
GGUF 模型的支持还不完善,你目前可以在 GGUF 标签页单独体验

Safetensors

  1. 下载到models文件夹中
  2. 别少下载文件了
  3. 如果是新的GOT-OCR-2-HF模型(目前未完成支持),下载到models-hf文件夹中(但目前还没有添加对其的支持)
  • 文件结构应该是:
GOT-OCR-2-GUI
└─models
   ├─config.json
   ├─generation_config.json
   ├─got_vision_b.py
   ├─model.safetensors
   ├─modeling_GOT.py
   ├─qwen.tiktoken
   ├─render_tools.py
   ├─special_tokens_map.json
   ├─tokenization_qwen.py
   └─tokenizer_config.json

GGUF

GGUF 模型由got.cpp提供支持
前往MosRat/got.cpp仓库下载模型,Encode.onnx放到gguf\Encoder.onnx,剩下的 Decoder GGUF 模型放进gguf\decoders

开始使用

  1. 如果你想用命令行,那就用CLI.py
  2. 如果你想用图形界面,那就用GUI.py
  3. 如果你想修改设置,那就用Config Manager.py
  4. 如果你想执行自动化的渲染操作,那就用Renderer.py,它会自动渲染imgs文件夹里所有的.jpg.png图片

用 GUI 的可以不管,不过用 CLI 的各位记得把要OCR的图放进imgs文件夹里( CLI 目前只检测.jpg.png图片)

本地化支持

  • 你可以在Locales文件夹中找到各种语言的.json文件,CLI 和 GUI 的语言文件是分开存储的
  • gui子文件夹中,除了语言.json文件,还有一个instructions文件夹,里面是 GUI 的内置教程,命名为语言.md
  • 要修改语言支持,只需要修改config.json中的'language'的值,可用的选择就是语言.json的不带扩展名的文件名
  • 如果要添加语言支持,在 CLI 中,只需要添加新的语言.json(我强烈建议你使用已经存在的文件作为起点),在 GUI 中,还需要配套的语言.md文件
  • 你可以使用Config Manager.py来管理语言及其他配置文件

注意事项

  • 脚本闪退的话可以试一下用cmdpython +文件名,我自己测试时会出现闪退的情况,我也不知道为什么
  • result文件夹里的markdown-it.js不要删除,否则 pdf 导出会出错!

如果你不小心删除了,可以在scripts文件夹里找到备份,复制一份过去就行了

  • 确保你安装的torch是 gpu 版本,因为脚本里用了device_map='cuda'

常见问题

  • Q:CLI.py: error: the following arguments are required: --path/-P
  • A:用 PowerShell,CMD 不知道为什么会有这个 bug,暂时找不到原因

  • Q:什么是“HTML本地文件”?难道还有没保存在本地的HTML文件吗?
  • A:因为模型输出的HTML文件虽然保存在本地,但使用了外部脚本,因此即使文件在本地,还是需要网络来打开它。于是我把外部脚本下载了进来,就是前面提到的 mardown-it.js。这么做主要是防止网络问题造成的PDF导出失败。

  • Q:为什么我的模型加载失败了?
  • A:检查一下你是不是少了文件。从百度云下载的模型文件似乎缺少了文件,我建议你去前面提到的 Huggingface 下载。

  • Q:有什么部署这个项目的建议吗?
  • A:看这个issue #5

  • Q:我要去哪里看帮助文档?
  • A:对于 GUI 用户,你可以找到说明标签页,对于 CLI 用户,你可以用.\CLI.py --help查看 argparse 自动生成的帮助文档,也可以用.\CLI.py --detailed-help查看更详细的帮助文档

Star History

Star History Chart