imazen-26 image corpus

September 10, 2026 · View on GitHub

This repository is the canonical home of the imazen-26 corpus — provenance manifests, the canonical train/validate/test split, the variant-set registry, and generation tooling. Image bytes are not in git on canonical branches: they are served from public R2 (see ACCESS.md); local checkouts may sync them into the class folders (gitignored). Derived render sets live on variant/* branches in Git LFS, with the objects served from R2 rather than GitHub — see Variant branches. Moved out of imazen/codec-corpus on 2026-08-23 so the corpus versions as one unit (git tags cover corpus + splits + registry together). Predecessor record: codec-corpus PR #12.

imazen-26 image corpus

A test corpus for image codecs and processing — 2,160 images, ~5.9 GB across 21 categories. Deliberately diverse: real photographs, stock photography, artwork reproductions, born-digital government documents, document/manuscript scans, synthetic charts and line patterns, UI screenshots, and AI-generated graphics. It spans the hard cases that codecs trip on — photographic noise, hard-edged vector graphics, bilevel scan texture, dense text, and large flat regions.

Every file follows one naming convention (lowercase throughout):

<NNNN>_<category>_<descriptor>[_<keyinfo>...]_<WxH>.<ext>

NNNN is a unique id from the folder's block; descriptor carries the description and attribution; keyinfo holds page/variant/camera/iso (f-stops written f1p8, no dot).

Folders

FoldernSizeFormatDims (MP)SourceLicenseContents
1000-lilith-photos-general720.26 GBjpg/heic6.9–12.2lilith (own)PD-ownEveryday photographs (phones: Note9…S25U, iPhones), mixed subjects
1200-lilith-interiors490.20 GBjpg/heic/png3.0–12.2lilith (own)PD-ownInterior & architecture photos
1400-lilith-nature1570.75 GBheic/jpg/png/dng1.6–124lilith (own)PD-ownLandscape/nature; incl. HEIC + 3 DNG raws + panoramas
1600-lilith-food410.13 GBjpg/heic7.4–24.5lilith (own)PD-ownFood & plated dishes
2000-unsplash-people280.08 GBjpg6.0–32.7UnsplashUnsplash-LicenseStock portraits / people
2200-unsplash-renders130.04 GBjpg5.8–99UnsplashUnsplash-LicenseAbstract / 3D renders
2400-unsplash-textures100.09 GBjpg5.6–102UnsplashUnsplash-LicenseSurfaces / textures
3000-art-institute-of-chicago-photos150.04 GBjpg1.8–20.9Art Institute of ChicagoCC0Open-access artwork reproductions (paintings, prints)
3300-met-museum-photos240.06 GBjpg0.2–16The MetCC0Open-access artwork reproductions
5000-national-park-service-brochures590.56 GBpng0.5–55.6NPSPD-USGovPark brochures/maps (born-digital PDF→PNG), color + grayscale variants
5200-epa-climate-impact-2021-report250.03 GBpng11.4EPAPD-USGovReport pages — text, tables, charts
5300-noaa-hurricane-documents440.06 GBpng8.4NOAA/NHCPD-USGovHurricane report pages — text, maps, charts
6000-lilith-scans-public-patents1130.09 GBpng/jpg7.9–8.0USPTOPD3 US patents × {1-bit CCITT original, color rescan, gray rescan} — bilevel + scan texture
6600-ia-scans-manuscript-illustrations361.04 GBpng6.0–37Internet ArchivePDPD plate scans (Haeckel, Hokusai, Owen Jones, Redouté, Shin-Bijutsukai, Trouvelot)
6800-ia-scans-manuscript-text360.32 GBpng6.0–30Internet ArchivePDPD manuscript text-page scans (same works)
7000-lilith-plots1260.02 GBpng1.0lilith (generated)PD-ownSynthetic charts + line/polygon test patterns (hard-edge graphics)
8000-lilith-mobile-screenshots320.04 GBpng/jpg2.3–5.6various web/appsscreenshot-unverifiedPhone UI/web screenshots — third-party content
8100-lilith-web-screenshots3700.27 GBpng0.2–5.2various webPD (PD-filtered)Website viewport crops at multiple resolutions/dpr
9000-lilith-ai-clipart860.04 GBpng1.0–1.6lilith (AI-gen)PD-ownAI-generated clipart (flat / transparent)
9094-lilith-ai-illustrations750.26 GBpng1.6lilith (AI-gen)PD-ownAI-generated illustrations
9226-lilith-ai-products7491.53 GBpng/jpg1.0–17lilith (AI-gen)PD-ownAI-generated product images, by product-category subfolders

Licensing status

LicenseFilesNotes
PD-own1,360lilith's own photos, generated plots, AI images — released to public domain
PD533US patents + Internet-Archive scans of PD works; per-file pd_basis in manifests
PD-USGov128NPS/EPA/NOAA federal works (17 USC §105)
Unsplash-License51Free to use; attribution appreciated (photographer in filename). Unsplash terms apply
CC039Met + Art Institute open-access (public-domain dedication)
Mailing-list-PD / PD-tool17within the web-screenshot set
screenshot-unverified32mobile screenshots of third-party sites — not cleared for redistribution

~2,128 of 2,160 files are public-domain or PD-own (freely usable). The 51 Unsplash images follow the Unsplash License; the 32 mobile screenshots are unverified and should be excluded from any redistribution until cleared.

Caveats: license is folder-level best-effort, not per-file legal clearance. Artwork "photos" are reproductions of PD works (CC0 on the reproduction). Document and screenshot renders may embed third-party logos/photos whose rights differ from the page. For redistribution, verify the 8000 set and spot-check embedded media.

Variant branches

Derived render sets are distributed as variant/* branches of this repository, with the bytes in Git LFS, so a consumer can check out exactly one variant without the corpus carrying any of them on main.

BranchContentsPointersSize
variant/png-v3SDR (+ HDR where present) PNG renders2,23315.4 GB
variant/pristine-8thartifact-free 1/8 references, SDR + HDR5810.23 GB
git clone --branch variant/png-v3 --single-branch --depth 1 \
  https://github.com/imazen/imazen-26.git

The LFS objects themselves are not on GitHub's LFS store. Each variant branch's .lfsconfig points Git LFS at imazen-lfs.pages.dev, imazen's instance of git-lfs-s3-proxy, which answers a download request with plain https://codec-corpus.r2.imazen.org/lfs/imazen-26/<sha256> URLs. A clone therefore needs no credentials and draws no GitHub LFS bandwidth; the objects are the same bytes as the R2 prefixes in ACCESS.md, stored once more under lfs/imazen-26/ keyed by sha256 (ACCESS.md §7). main carries the same .lfsconfig, so a branch created from it inherits the proxy before its first object is pushed; main itself tracks nothing in LFS.

Pushing a new variant branch needs write access to that prefix: an R2 API token with Object Read & Write on codec-corpus, handed to Git LFS as the username/password for the proxy host — at the credential prompt on the first push, or with git config lfs.url in your own clone set to the .lfsconfig URL with <id>:<secret> as its userinfo. That URL never goes in the repository. scripts/lfs_r2_migrate.py plans, server-side copies, and hash-verifies a branch's objects against its pointers.

Each variant branch carries a VARIANT.md saying what the set is, how it was produced, and where its coverage is incomplete — variant/png-v3 mirrors 2,157 of the 2,160 canonical images and lists the three that have no render in its MISSING.tsv.

corpus-guard enforces the split: canonical branches carry no image bytes, and on a variant/* branch images must be LFS pointers with the filter declared in .gitattributes and a credential-free .lfsconfig naming the proxy. A variant/* branch is never merged into main, and a new render pass gets a new branch rather than rewriting an existing one.

The same bytes stay available over plain HTTPS for consumers who want a handful of files without git or an LFS client — see ACCESS.md.

Manifests

  • <folder>/MANIFEST.tsv — per-folder, one row per image, with full provenance (original_filename, camera/artist/contributor/pd_basis/url/sha256 where applicable) and license. Source of truth.
  • CORPUS-MANIFEST.tsv — unified aggregate (regenerate via python3 scripts/build_corpus_manifest.py). Column docs in CORPUS-MANIFEST.README.md.

Excluded from the corpus: nope/ (rejected candidates) and the build-history archive at /mnt/v/output/codec-corpus/imazen-26-archive-2026-06-09/.