name: donut
description: "Use Donut for OCR-free document understanding, checkpoint
inference, fine-tuning, evaluation, and SynthDoG synthetic document
generation."
disable-model-invocation: true
metadata:
disco-role: operating
license: MIT
Donut
Use this repo skill when the task involves NAVER/ClovaAI Donut: OCR-free document understanding with a Swin encoder and BART-like decoder, plus SynthDoG synthetic document generation. This skill is self-contained; do not reopen the original checkout for routine Donut usage.
Route by task
| User intent | Read or run |
|---|
| Load a Donut checkpoint, run one-image prediction, compare prompts, or start the Gradio demo | sub-skills/inference/SKILL.md |
| Fine-tune, validate dataset JSONL, evaluate a checkpoint, read metrics, or debug configs/checkpoints | sub-skills/training/SKILL.md |
| Generate synthetic document images, render SynthDoG configs, or adapt resources/fonts/corpora | sub-skills/synthdog/SKILL.md |
| Inspect public package APIs, signatures, token helpers, and object relationships | references/api-reference.md |
| Decide which bundled workflow helper or sub-skill owns a request | references/workflow-map.md |
| Diagnose install/import, Hugging Face, CUDA, Gradio, dataset, or SynthDoG dependency failures | references/troubleshooting.md |
| Check source baseline, commit, version, and refresh triggers | references/repo-provenance.md |
Fast start
- Install a Donut-capable Python environment. For inference only,
pip install donut-python plus a compatible PyTorch build is the starting point. Training needs CUDA-capable PyTorch. SynthDoG generation also needs synthtiger and its image/text dependencies.
- Smoke-check the environment without the source repo:
python scripts/runtime_smoke.py
python scripts/runtime_smoke.py --check all --require-cuda # when training and SynthDoG are in scope
- Route to a sub-skill before giving detailed commands. Each sub-skill owns its own scripts and troubleshooting notes.
Core facts to preserve
- Package distribution:
donut-python; import module: donut.
- Public exports include
DonutConfig, DonutModel, DonutDataset, JSONParseEvaluator, load_json, and save_json.
DonutModel.from_pretrained(...) loads local or Hugging Face checkpoints and requests the Donut repositories' official revision.
DonutModel.inference(...) returns a dictionary with a predictions list; parsed JSON is the default output.
- Dataset rows use
file_name plus a JSON-encoded ground_truth string containing either gt_parse or gt_parses.
- Training is GPU-oriented in the original scripts; do not promise CPU training equivalence.
- No model weights, datasets, or large SynthDoG assets are bundled in this skill. Users must provide checkpoints, images, datasets, and SynthDoG resources.
Bundled helpers
Boundaries
Use Donut for OCR-free document-image understanding, classification, extraction, visual QA, and synthetic-document pretraining data generation. Do not use this skill for generic PDF parsing, OCR engines, RAG chunking, non-document computer vision models, or unrelated Transformers training unless Donut APIs, checkpoints, config files, errors, or data formats are central to the request.