OmniDocLayout-1M is a large-scale dataset for document layout generation, featuring about one million document pages across six contemporary document types. The dataset is designed to support research on layout generation, layout representation learning, and coarse-to-fine LLM learning for Document AI.
The dataset focuses on diverse and realistic document layouts, including document types that are underrepresented in prior layout generation datasets (e.g. PubLayNet and DocBank), such as newspapers, textbooks, magazines, exam papers, academic papers, and slides.
OmniDocLayout-1M contains page-level document layout annotations. Each sample describes the canvas size of a document page and a sequence of layout elements represented by category labels and bounding boxes.
The current released files are organized by document types:
OmniDocLayout-1M/
βββ README.md
βββ data/
βββ academic.json
βββ exam.json
βββ magazine.json
βββ newspaper.json
βββ slide.json
βββ textbook.json
| Type | File | Volume |
|---|---|---|
| Textbook | textbook.json | 200,000 |
| Newspaper | newspaper.json | 207,679 |
| Magazine | magazine.json | 195,008 |
| Exam paper | exam.json | 90,360 |
| Academic paper | academic.json | 200,000 |
| Slide | slide.json | 100,000 |
| Total | - | 993,047 |
The dataset contains about 1M pages in total.
OmniDocLayout-1M covers six common document types:
Each JSON file contains a list of page-level samples. Each sample has the following structure:
{
"Document Type": "document_type",
"Canvas Width": W,
"Canvas Height": H,
"Bbox Number": N,
"Layout Info": [
["category_1", x_1, y_1, w_1, h_1],
["category_2", x_2, y_2, w_2, h_2],
["category_3", x_3, y_3, w_3, h_3],
...
["category_N", x_N, y_N, w_N, h_N]
]
}
| Field | Type | Description |
|---|---|---|
Document Type | string | The document type of the current page, such as magazine, textbook, academic, exam, newspaper, or slide. |
Canvas Width | int | Width of the document canvas in pixels. |
Canvas Height | int | Height of the document canvas in pixels. |
Bbox Number | int | Number of layout elements on the page. This should correspond to the length of Layout Info. |
Layout Info | list | A list of layout elements. Each element is represented as [category, x, y, width, height]. |
The category label is stored as a string in each layout element. The released JSON files use layout-related categories such as:
text, title, image, table, image_caption, table_caption, image_footnote, table_footnote, equation
Different document types may contain different distributions of categories.
Each bounding box in Layout Info follows the absolute xywh pixel format:
[category, x, y, width, height]
where:
category is the semantic category of the layout element.x and y denote the element position on the canvas.width and height denote the element size.Canvas Width and Canvas Height.Since each document type is stored as a standalone JSON file, the dataset can be loaded directly with Python:
import json
json_path = "magazine.json"
with open(json_path, "r", encoding="utf-8") as f:
data = json.load(f)
print(type(data))
print(len(data))
print(data[0].keys())
print(data[0]["Layout Info"][0])
To load all types:
import json
from pathlib import Path
root = Path("OmniDocLayout-1M/data")
document_files = {
"magazine": "magazine.json",
"textbook": "textbook.json",
"academic": "academic.json",
"exam": "exam.json",
"newspaper": "newspaper.json",
"slide": "slide.json",
}
all_data = {}
for document, filename in document_files.items():
with open(root / filename, "r", encoding="utf-8") as f:
all_data[document] = json.load(f)
for document, samples in all_data.items():
print(document, len(samples))
OmniDocLayout-1M was constructed to provide a large-scale and diverse source of document layouts. The dataset was collected from 36 public and copyright-clean sources and processed through an automated pipeline.
The general construction process includes:
The dataset covers multiple contemporary domains, including education, academia, news, publishing, and slides.
Fully automatic using MinerU toolkit. Newspaper layouts with dense/complex structure are additionally refined via fine-tuned DocLayout-YOLO.
Human evaluation on 1,200 pages shows β₯92% perceived quality consistency between automatic annotations and manual labels.
If you find OmniDocLayout-1M useful in your research, please cite:
@inproceedings{kang2026omnidoclayout,
title={OmniDocLayout: Towards Diverse Document Layout Generation via Coarse-to-Fine LLM Learning},
author={Kang, Hengrui and Gu, Zhuangcheng and Zhao, Zhiyuan and Wen, Zichen and Wang, Bin and Li, Weijia and He, Conghui},
booktitle={Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition},
pages={3208--3218},
year={2026}
}
9 commits
OmniDocLayout-1M is a large-scale dataset for document layout generation, featuring about one million document pages across six contemporary document types. The dataset is designed to support research on layout generation, layout representation learning, and coarse-to-fine LLM learning for Document AI.
The dataset focuses on diverse and realistic document layouts, including document types that are underrepresented in prior layout generation datasets (e.g. PubLayNet and DocBank), such as newspapers, textbooks, magazines, exam papers, academic papers, and slides.
OmniDocLayout-1M contains page-level document layout annotations. Each sample describes the canvas size of a document page and a sequence of layout elements represented by category labels and bounding boxes.
The current released files are organized by document types:
OmniDocLayout-1M/
βββ README.md
βββ data/
βββ academic.json
βββ exam.json
βββ magazine.json
βββ newspaper.json
βββ slide.json
βββ textbook.json
| Type | File | Volume |
|---|---|---|
| Textbook | textbook.json | 200,000 |
| Newspaper | newspaper.json | 207,679 |
| Magazine | magazine.json | 195,008 |
| Exam paper | exam.json | 90,360 |
| Academic paper | academic.json | 200,000 |
| Slide | slide.json | 100,000 |
| Total | - | 993,047 |
The dataset contains about 1M pages in total.
OmniDocLayout-1M covers six common document types:
Each JSON file contains a list of page-level samples. Each sample has the following structure:
{
"Document Type": "document_type",
"Canvas Width": W,
"Canvas Height": H,
"Bbox Number": N,
"Layout Info": [
["category_1", x_1, y_1, w_1, h_1],
["category_2", x_2, y_2, w_2, h_2],
["category_3", x_3, y_3, w_3, h_3],
...
["category_N", x_N, y_N, w_N, h_N]
]
}
| Field | Type | Description |
|---|---|---|
Document Type | string | The document type of the current page, such as magazine, textbook, academic, exam, newspaper, or slide. |
Canvas Width | int | Width of the document canvas in pixels. |
Canvas Height | int | Height of the document canvas in pixels. |
Bbox Number | int | Number of layout elements on the page. This should correspond to the length of Layout Info. |
Layout Info | list | A list of layout elements. Each element is represented as [category, x, y, width, height]. |
The category label is stored as a string in each layout element. The released JSON files use layout-related categories such as:
text, title, image, table, image_caption, table_caption, image_footnote, table_footnote, equation
Different document types may contain different distributions of categories.
Each bounding box in Layout Info follows the absolute xywh pixel format:
[category, x, y, width, height]
where:
category is the semantic category of the layout element.x and y denote the element position on the canvas.width and height denote the element size.Canvas Width and Canvas Height.Since each document type is stored as a standalone JSON file, the dataset can be loaded directly with Python:
import json
json_path = "magazine.json"
with open(json_path, "r", encoding="utf-8") as f:
data = json.load(f)
print(type(data))
print(len(data))
print(data[0].keys())
print(data[0]["Layout Info"][0])
To load all types:
import json
from pathlib import Path
root = Path("OmniDocLayout-1M/data")
document_files = {
"magazine": "magazine.json",
"textbook": "textbook.json",
"academic": "academic.json",
"exam": "exam.json",
"newspaper": "newspaper.json",
"slide": "slide.json",
}
all_data = {}
for document, filename in document_files.items():
with open(root / filename, "r", encoding="utf-8") as f:
all_data[document] = json.load(f)
for document, samples in all_data.items():
print(document, len(samples))
OmniDocLayout-1M was constructed to provide a large-scale and diverse source of document layouts. The dataset was collected from 36 public and copyright-clean sources and processed through an automated pipeline.
The general construction process includes:
The dataset covers multiple contemporary domains, including education, academia, news, publishing, and slides.
Fully automatic using MinerU toolkit. Newspaper layouts with dense/complex structure are additionally refined via fine-tuned DocLayout-YOLO.
Human evaluation on 1,200 pages shows β₯92% perceived quality consistency between automatic annotations and manual labels.
If you find OmniDocLayout-1M useful in your research, please cite:
@inproceedings{kang2026omnidoclayout,
title={OmniDocLayout: Towards Diverse Document Layout Generation via Coarse-to-Fine LLM Learning},
author={Kang, Hengrui and Gu, Zhuangcheng and Zhao, Zhiyuan and Wen, Zichen and Wang, Bin and Li, Weijia and He, Conghui},
booktitle={Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition},
pages={3208--3218},
year={2026}
}
9 commits