@vanstriendaniel: Uploaded a dataset of 1,080,814 public domain images, mostly from 19th-century books, to the Hub. https://huggingface.c…
Summary
Daniel van Strien uploaded a dataset of 1,080,814 public domain images from 49,455 digitised books (c.1510–1900) from the British Library to Hugging Face Hub, organised into four configs by image type.
View Cached Full Text
Cached at: 08/09/26, 03:25 PM
Uploaded a dataset of 1,080,814 public domain images, mostly from 19th-century books, to the Hub. https://huggingface.co/datasets/biglam/british-library-book-images…
biglam/british-library-book-images · Datasets at Hugging Face
Source: https://huggingface.co/datasets/biglam/british-library-book-images 1,080,814 images cut out of 49,455 digitised books (65,227 volumes, ~25 million pages) published between c. 1510 and c. 1900, digitised by theBritish Libraryin partnership with Microsoft and released byBritish Library Labson Flickr Commons as the “1 Million Images from Scanned Books” release. The books cover geography, philosophy, history, poetry and literature, in several languages.
https://huggingface.co/datasets/biglam/british-library-book-images#the-four-image-typesThe four image types
British Library Labs deposited these as four separate records, split by an algorithmic estimate of what each cut-out region is. Each is a config here:
configimagesearliest dateembellishments416,9351510plates385,2311528medium217,1001567covers61,5481510
The type labels arealgorithmic, not curatorial. The deposit states the images were “algorithmically gathered” but does not state the method, soplates/medium/embellishmentsare best read as size-and-position heuristics over the page, not as an art-historical taxonomy. Expect the boundary betweenmediumandplatesin particular to be fuzzy. Filter on your own classifier if the distinction matters to your task.
from datasets import load_dataset
# pick a config — the whole thing is ~621 GB, so stream unless you mean it
ds = load_dataset("biglam/british-library-book-images", "covers", split="train", streaming=True)
print(next(iter(ds)))
https://huggingface.co/datasets/biglam/british-library-book-images#images-per-decadeImages per decade
decadeembellishmentsplatesmediumcoverstotal1510s600171520s320161540s11000111550s420171560s602191570s000111580s101131590s1854041931600s474611681610s422012561620s49019591630s7831321008981640s28261453341650s17020392111660s2201013703131670s2571221183891680s2282719953691690s338611442641700s32393831571710s7765074959951720s1,66357106631,8891730s1,64434881331,8991740s9686663941,1911750s76820281359511760s1,044133551871,4191770s1,13875512811,5451780s1,278127653211,7911790s64889694261,2321800s1,9244,6821,2821,3909,2781810s1,8435,1381,6712,18310,8351820s3,5855,1831,7012,34312,8121830s6,12911,8363,9822,39624,3431840s17,81919,66410,1943,67251,3491850s28,86831,49315,4595,69281,5121860s40,03531,23417,3477,28095,8961870s70,75255,66531,8578,607166,8811880s102,32093,51549,20910,853255,8971890s128,075123,45482,63714,136348,302 The 1890s alone hold a third of the corpus, and everything before 1800 together holds about 1.6% of it. Anything trained on the whole set is overwhelmingly a model of late-Victorian book illustration.
Note theplatescolumn before and after 1800: 86 images in the entire 1690s against 4,682 in the 1800s. Full-page plates are a 19th-century printing phenomenon here, not an even feature of the date range.
https://huggingface.co/datasets/biglam/british-library-book-images#data-fieldsData fields
image— the JPEG, at source resolutiondate— publication year as astring, not an integer. 5,291 rows (0.5%) carry"Unknown", and 2,151 rows carry a date after 1900 — up to 1946 — which the deposit’s own c. 1510–c. 1900 framing marks as catalogue errors rather than genuinely 20th-century books. Cast and filter before doing anything arithmetic with it.fname— the original filename. The leading digits are the British Library system number (see below), and the rest encodes volume/page position plus the book title. The exact layout differs between image types, so parse defensively.image\_type— one of the four above, redundant with the config but kept so the configs can be concatenated.
https://huggingface.co/datasets/biglam/british-library-book-images#joining-images-to-their-page-textJoining images to their page text
The leading digits offnameare the British Library system number, which is therecord\_idinbiglam/blbooks\-parquet— the OCR text from the same digitisation programme. In a 20,000-row sample, 8,497 of 8,846 distinct system numbers (96%) matched a record there, so most images can be traced back to the book they were cut from and its text.
# system number -> the book this image came from
fname = "002543810_3_Dzieje Narodu Polskiego...jpg"
record_id = fname.split("_")[0] # "002543810"
The 4% that don’t match are books present in the image deposit but absent from the OCR release. The join is atbooklevel, not page level —fnameencodes a page position, but it is not guaranteed to align with thepgcolumn in the OCR corpus, so treat page-level alignment as something to verify rather than assume.
https://huggingface.co/datasets/biglam/british-library-book-images#what-was-selected-and-by-whomWhat was selected, and by whom
The date range is not a sampling frame. The corpus is what the British Library and Microsoft chose to digitise from what the Library had acquired from what happened to survive — three selection layers stacked before any image reached this dataset — and digitisation programmes of this era were driven partly by preservation priorities and out-of-copyright status rather than by any attempt at representativeness. The 19th century dominates. Treat the collection as a record of what a large British institution digitised in the early 2010s, not as a sample of printed illustration.
Colonial-era publishing is heavily represented, and images carry the depictions, captions and categories of their period. Nothing here has been reviewed for offensive content.
https://huggingface.co/datasets/biglam/british-library-book-images#related-datasetsRelated datasets
The OCR text from the same digitisation programme isbiglam/blbooks\-parquet(14,011,953 pages).
https://huggingface.co/datasets/biglam/british-library-book-images#licensingLicensing
The images were published on Flickr Commons underno known copyright restrictions— the British Library placed them in the public domain, and the underlying works are out of copyright. Taggedcc0\-1\.0here for machine-readability; the deposit’s own statement is the Public Domain Mark.
No licence attaches to the images themselves that would restrict reuse. Attribution to the British Library is expected practice rather than a legal condition.
https://huggingface.co/datasets/biglam/british-library-book-images#creditCredit
Mirrored and repackaged byDaniel van Strien(Machine Learning Librarian, Hugging Face); all source data created by the British Library, digitised in partnership with Microsoft and released by British Library Labs.
The four image types were deposited as four separate records on the British Library Research Repository (bl.iro.bl.uk), which is intermittently unavailable — this dataset is the more reliable route to the images.
Against the counts those deposits state, this dataset is a handful of images short: 6 fewer plates, 1 fewer medium, 13 fewer covers. The shortfall predates this repackaging and no cause has been established for it.
Point of contact for the original deposit:[email protected]
Maintenance:Limited Maintenance— this is a mirror of a static 2014 deposit and is not expected to change.
https://huggingface.co/datasets/biglam/british-library-book-images#citationCitation
@misc{bl_labs_book_images,
title = {Digitised Books. c. 1510 - c. 1900. JPG},
author = {{British Library Labs}},
year = {2014},
publisher = {British Library},
howpublished = {\url{https://bl.iro.bl.uk/}}
}
https://huggingface.co/datasets/biglam/british-library-book-images#siglip2-embeddings-siglip2_embeddings-configSigLIP2 embeddings (siglip2\_embeddingsconfig)
Every image in this dataset, embedded withgoogle/siglip2-so400m-patch16-256(1152-d float32, images resized to 256x256 before encoding — the model’s own preprocessing shape). One split per image config; rows are sorted to match the source parquet exactly, sorow N of splitplatesis row N of configplates. Each row also carriessource\_filenameandfile\_row\_number, the direct coordinates of its image in this repository.
from datasets import load_dataset
emb = load_dataset("biglam/british-library-book-images", "siglip2_embeddings", split="plates")
Because SigLIP2 is a dual encoder, text queries embed into the same space — encode a phrase with the model’s text tower and rank rows by cosine similarity for free-text search over the collection.
Notes: embeddings were produced with vLLM serving SigLIP2 as a pooling model on Hugging Face Jobs; all 1,080,814 images are covered, one embedding each. 768 image pairs (1,536 filenames) are near-duplicates differing only in title spacing (same system number/volume/page/block) — these are distinct rows here, as in the source configs.
Downloads last month753## Models trained or fine-tuned onbiglam/british-library-book-images
Space usingbiglam/british-library-book-images1
Similar Articles
@huggingface: We've just hit 1M open datasets on the Hugging Face Hub Open models need open data. Today we hit that milestone, togeth…
Hugging Face announces that its Hub has reached a milestone of 1 million open datasets, highlighting the importance of open data for open models.
@vanstriendaniel: Can a 2.6B model earn permission to edit the @huggingface Hub? I put @liquidai's LFM2.5 on library duty. It investigate…
Daniel van Strien puts Liquid AI's 2.6B LFM2.5 model to work on Hugging Face as a 'librarian bot' that investigates datasets with tools and writes one-sentence summaries, with plans to let it propose dataset-card PRs once the community provides 500 ratings.
@vanstriendaniel: You can now run SQL over 2.19 BILLION web pages. Zero download! @CommonCrawl April 2026 crawl + URL index are on @huggi…
A Hugging Face Space allows running SQL queries over 2.19 billion web pages from Common Crawl without downloading, using DuckDB to read directly from Hugging Face storage buckets.
@vanstriendaniel: Hugging Face is the home for AI & ML across every domain, including biomedical! The @NIH just added the @huggingface Hu…
The NIH has added the Hugging Face Hub to its official list of Generalist Repositories for data sharing, allowing NIH-funded researchers to use it in their data sharing plans.
1M datasets on HF !
Celebrating a community milestone of 1 million datasets on Hugging Face, highlighting the collaborative effort to advance AI through open data.