rishinaren/public-domain-art-restored
Public-Domain Art Restoration Archive Public-domain museum artworks with scan damage detected and repaired by a diffusion model where present, then upscaled 4x with a GAN super-resolution model. Released CC0. 25,135 restored images are published in images/ (15.4 GB of AVIF), with per-item provenance in manifest/restored.parquet. 2,785 images (11.1%) were routed to the diffusion repair tier and 2,785 were inpainted. Median output long edge: 4,096 px. What is… See the full description on the dataset page: https://huggingface.co/datasets/rishinaren/public-domain-art-restored.
Public-Domain Art Restoration Archive
Public-domain museum artworks with scan damage detected and repaired by a diffusion model where present, then upscaled 4x with a GAN super-resolution model. Released CC0.
25,135 restored images are published in `images/` (15.4 GB of AVIF), with per-item provenance in manifest/restored.parquet. 2,785 images (11.1%) were routed to the diffusion repair tier and 2,785 were inpainted. Median output long edge: 4,096 px.What is published
Published images by source:
Sources
Every item comes from an institution that publishes its open-access collection under CC0, and every item carries that institution's own per-item license flag, checked at ingest:
A collection-level policy is a statement about a collection; collections contain exceptions. The per-item flag is how an institution expresses them, so it — not the terms page — is the gate.
Method
ingest (bounded-resolution IIIF)
-> OpenCV prep: mount/border removal, scanner-edge trim, deskew,
white balance from the mount, bounded fade correction
-> damage detection: 1.1M-parameter U-Net trained on synthetic damage
-> route: only images whose detected damage crosses threshold take the
expensive path (the two-tier cost design)
-> diffusion repair on routed images: Stable Diffusion 1.5 inpainting
(`stable-diffusion-v1-5/stable-diffusion-inpainting`), empty prompt,
classifier-free guidance OFF, 12 DPM++ steps at the model's native
512px, deterministic per-item seeds
-> 4x super-resolution (Real-ESRGAN compact, GAN), tiled, seams blended
by a custom CUDA kernel
-> AVIF encode (quality 65)The 4x claim is exact. Output is asserted in code to be precisely four times the linear size of the tensor fed to the model; the pipeline raises rather than publishing anything else.
Diffusion is contained by construction. The inpainting output re-enters the image through the detected mask with a feather whose support is hard-clipped at 9 px: any pixel further than that from detected damage is bit-identical to the un-inpainted image. Whatever the model invents, it invents inside the mask. Masks covering more than half the image are refused outright. Repairs are seeded per item and reproduce exactly.
Limitations — please read
- Inpainted regions are synthesized. Inside detected damage, the diffusion model fills with plausible material continuation at 512-base resolution, not with recovered information. The
inpaintedmanifest column says which images contain synthesized regions; the damage masks ingallery/show where. - Super-resolution invents plausible detail everywhere. A GAN does not recover information that was not captured. These files are not substitutes for the institutions' own masters, and must not be used for connoisseurship, attribution, condition assessment, or any conservation decision.
- Damage detection was validated against synthetic damage (precision 0.308, recall 0.516, F1 0.386 at the routing operating point). Real damage the detector misses is not repaired; artist marks the detector mistakes for damage can be repaired — the mask gallery is the honest record.
- The diffusion pipeline's stock safety checker is disabled, deliberately: it blacks out its false positives, and its false-positive class includes classical nudes — a meaningful fraction of museum holdings. Sources are curated public-domain museum collections.
- Tonal correction is bounded on purpose. Aged paper is genuinely cream; correcting it to white would falsify the object. Corrections move toward neutral without arriving.
- Some sources cap resolution below 1024 px (Cleveland's web tier is ~900 px), so 4x of those lands below 4096 px. Per-item input and output dimensions are in the manifest.
Provenance
Every row records source institution, object ID, title, artist, date, classification, medium, the license flag as observed, the object's public page, the exact image URL fetched, and a dHash perceptual hash for duplicate analysis. CC0 waives the requirement to attribute, but an archive without provenance is much less useful — and misattributing a repaired artwork is its own kind of harm.
Citation
@misc{parc_archive,
title = {Public-Domain Art Restoration Archive},
author = {rishinaren},
year = {2026},
url = {https://huggingface.co/datasets/rishinaren/public-domain-art-restored}
}Artworks are CC0 from the institutions above. The pipeline code is MIT.
