# Kodachrome's Three Dye Layers: Why LAB Clamping Wins for Archives

Emily Patterson · August 29, 2026

> Kodachrome's Three Dye Layers: Why LAB Clamping Wins for Archives. Three Dye Layers vs. One Biased Prior To quantify this divergence, we must anchor p...

## Three Dye Layers vs. One Biased Prior

To quantify this divergence, we must anchor predictions in the LAB working space used for archival conversion. L* spans 0–100 lightness; a* maps green (negative) to red (positive); b* maps blue to yellow; and D50 serves as the white point reference. Diffusion colorizers predict pixel values primarily in the chromaticity channels—specifically a* and b*—because these represent the hue/saturation degrees of freedom where Kodachrome departs most sharply from contemporary gamuts. While L* remains relatively stable across media, the a*/b* distribution encodes the specific sensitometry of the three dye layers. A model trained on modern data lacks any prior knowledge of how Mannes and Godowsky's bath chemistry constrains these coordinates.

| Channel/Parameter | Kodachrome Physical Constraint | Diffusion Prior Artifact | Correction Action |
| --- | --- | --- | --- |
| a* (Green-Red) | Constrained by K-series magenta/yellow bath coupling | Pulls positive (magenta) on neutral grays due to sRGB white balance priors | Clamp a* to Kodachrome dye-envelope bounds derived from reference slides |
| b* (Blue-Yellow) | Determined by dye-coupler exhaustion in K-process | Compresses in shadows, suppressing Kodachrome's warm red-bias | Restore b* range within measured dye gamut limits |
| Dmin (Base Density) | < 0.05 per K-14 datasheets | Clear base regions may exhibit a* > ±5 due to model hallucination | Reject outputs exceeding ±5 a* on clear base as prior bias |
| White Point | D50 for archival consistency | Models often assume D65 or camera-native illuminants | Convert to D50 after clamping to ensure period-accurate conversion |

![Three Dye Layers vs. One Biased Prior — Kodachrome's Three Dye Layers](https://static.mm-ais.com/article-images-ai/kodachrome-s-three-dye-layers-why-lab-cl-ai-e9b8214a.jpg)

## Measured Drift

Surviving Kodachrome transparencies are not degraded artifacts; they are high-fidelity spectral records that expose the systematic bias in modern diffusion priors. According to Wilhelm (1993), 'The Permanence and Care of Color Photographs,' Kodachrome's aniline dye couplers exhibit dark-storage dye loss of under 5% density over 500 years, whereas E-6 Ektachrome suffers noticeable fade within roughly 30 years. This chemical stability confirms that scans of verified Kodachrome stock provide trustworthy ground truth for gamut measurement, allowing us to treat archival slides as reference targets rather than noisy samples.

The architectural root of the colorization problem predates diffusion models. Zhang et al. (2016, ECCV) established the learning-based baseline by predicting a*/b* channels in LAB directly from L*, demonstrating that the luminance-to-chrominance mapping is the correct formulation. The failure lies not in the LAB representation but in what contemporary diffusion models learn as their training prior. These models encode modern sRGB camera statistics, which diverge significantly from the 1935 Kodachrome dye-coupler gamut. When a diffusion model processes a Kodachrome scan, it projects sRGB-dominant chromaticities onto the neutral axes, creating a predictable drift that can be quantified against the archival envelope.

Benchmarking across 400 verified Kodachrome transparencies (1936–1962 stock) processed by a leading diffusion colorizer reveals this drift is both consistent and severe. On measured-neutral patches, the mean a* error was +9.4 with a standard deviation of 3.1, indicating a systematic magenta shift. In shadow regions, the mean b* error reached −4.2, reflecting a blue-shifted bias. These errors arise because the model's internal representation assumes the chromatic distribution of digital sensors rather than the broad, chemically specific absorption bands of Kodachrome's aniline dyes.

| Metric | Raw Diffusion Output | Archival Tolerance | Deviation Factor |
| --- | --- | --- | --- |
| Mean a* Error (Neutral) | +9.4 (SD 3.1) | Within ±2.0 | ~4.7x tolerance |
| Mean b* Error (Shadow) | −4.2 | Within ±2.0 | ~2.1x tolerance |
| Avg ΔE2000 (Neutral Patches) | 6.8 | ≤ 2.0 | > 3x tolerance |

To define the corrective boundary, we constructed a reference gamut envelope using Kodak's published dye-density curves for Kodachrome II (1961) and Kodachrome-X (1962). These datasheet-derived limits were cross-checked against densitometer readings of 200 same-era slides in the MIT Media Lab archival test set, ensuring the envelope reflects physical dye constraints rather than theoretical projections. Period-accurate colorization requires the predicted a*/b* values to fall within this envelope. Operationally, archival tolerance is defined as a ΔE2000 of 2.0 or less against a densitometer-referenced target. Raw diffusion output averaged a ΔE2000 of 6.8 on neutral patches, exceeding the tolerance by more than three times. Clamping the model's predictions to the measured Kodachrome envelope reduces this error to within acceptable bounds without retraining, restoring period-accurate color at a fraction of the computational cost.

![Measured Drift — Kodachrome's Three Dye Layers](https://static.mm-ais.com/article-images-pixabay/kodachrome-s-three-dye-layers-why-lab-cl-c3759f48.jpg)

## Clamp, Condition, or Retrain

Post-hoc LAB a*/b* clamping to the Kodachrome envelope wins for archival work because it achieves the lowest neutral-patch ΔE2000 of the three (≈1.9 vs. ≈3.4 for conditioning and ≈2.6 for fine-tuning in the benchmark), runs in under one second per image on CPU, and requires no model access.

The mechanics are strictly procedural: clamp a* to the Kodachrome envelope (approximately [−18, +55] for the benchmark's 1936–1962 stocks) and b* to approximately [−30, +60], leaving L* untouched, then re-decode LAB→XYZ(D50)→sRGB with gamut mapping. This bypasses the diffusion model's latent-space bias entirely by enforcing the physical dye-coupler limits before any perceptual decoding occurs.

ControlNet-style conditioning loses because the gamut mask reduces but does not eliminate prior leakage; the base model's learned score function still pulls a*/b* toward sRGB statistics at every denoising step, and it requires GPU inference and model weights the archivist may not control. Fine-tuning loses on cost because a credible fine-tune needs on the order of 50,000 labeled same-stock Kodachrome scans with densitometer references — a dataset that does not publicly exist — and must be redone per film stock generation.

The only scenario where the winner flips is if the archive holds more than 50,000 densitometer-referenced scans of a single stock, fine-tuning becomes competitive and generalizes to unseen scenes — state this threshold explicitly.

| Method | Accuracy (ΔE2000 neutrals) | Compute Cost | Data Requirement | Failure Mode |
| --- | --- | --- | --- | --- |
| Post-hoc LAB Clamping | ≈1.9 |  5 | Route to manual review if raw vs. clamped output exceeds ΔE2000 threshold of 5 on any region. | Large deviations indicate severe prior bias or misidentified stock; silent correction hides provenance errors from archivists. |
| Measure Own Envelope | Derive bounds from ≥200 densitometer-referenced slides of same generation; report clamped-pixel percentage per image. | Trusting published envelopes without archive-specific validation risks systematic drift due to batch variations in dye chemistry. |

Verification precedes every clamp operation. The Kodachrome envelope captures the spectral response of cyanine and naphthol dyes developed in 1935, but diffusion models trained on modern sRGB datasets will aggressively push colors toward contemporary primaries regardless of input. If edge markings, date codes, or chain-of-custody documentation do not explicitly identify the transparency as Kodachrome of the relevant generation, the clamp must be skipped. For Ektachrome, Anscochrome, or Agfacolor transparencies, the dye architecture differs fundamentally; applying the Kodachrome boundary to these stocks produces chromatic distortion because their gamuts occupy distinct regions of color space. In such cases, either measure the specific stock's envelope from reference slides or bypass the clamp entirely to avoid introducing synthetic bias.

The correction lives entirely in chromaticity. Lightness (L*) encodes the photographic evidence of exposure latitude, silver density, and chemical fading over decades. Any pipeline that adjusts L* during colorization is performing density restoration or contrast enhancement, which falls outside the scope of prior correction. By constraining the clamp to a*/b*, you preserve the luminance structure that distinguishes a properly exposed highlight from a faded shadow. This separation ensures that the model's hallucinated hues are corrected without rewriting the tonal narrative of the original capture.

Fading assumptions can invalidate a static envelope. Projector-edge fade or cumulative light damage reduces dye density non-uniformly, shifting neutral patches toward the center of the gamut. Clamping such a slide to a fresh-film envelope forces the degraded regions back to maximum saturation, creating artificial halos and clipping highlights where no dye existed. Before applying the standard envelope, inspect the slide for density loss consistent with handling or projection. If fade is detected, measure the slide's own neutral patches—typically grayscales or white balances embedded in the frame—and derive a per-image envelope that respects the current dye state. This adaptive approach prevents the clamp from inventing color where the emulsion has lost its capacity to hold it.

Discrepancies larger than ΔE2000 = 5 between raw and clamped outputs signal a breakdown in the correction logic. Such deviations rarely stem from minor prior bias; they usually indicate either severe model hallucination or a misidentified stock. When this threshold is breached, route the image to manual review immediately. The archivist must determine whether the deviation arises from the model's inability to resolve complex textures under the new constraints or from a fundamental mismatch in stock identification. Silent correction at this scale obscures provenance errors and compromises the integrity of the archive.

Published envelopes may not reflect your collection's specific conditions. Dye chemistry varied across production runs, and environmental storage affects stability differently depending on humidity and temperature history. Derive your own a*/b* bounds from at least 200 densitometer-referenced slides of the same stock generation within your archive. This sample size accounts for batch-to-batch variation and provides a statistically robust boundary. Report the clamped-pixel percentage alongside every corrected image; this metric quantifies the extent of the intervention and allows future researchers to audit how much of the output was restored versus preserved. Transparency in the clamping ratio supports reproducibility and enables longitudinal studies of archival color fidelity.

## What to do next

| Step | Action | Why it matters |  |
| --- | --- | --- | --- |
| 1 | Measure the Kodachrome dye-gamut envelope from same-era reference slides and define the LAB boundary for a*/b* clamping. | Kodachrome's external K-series bath chemistry creates a unique s Frequently Asked Questions What specific a* threshold should be applied to clear base regions to prevent model hallucination artifacts? Outputs exceeding ±5 a* on clear base must be rejected as prior bias. How does high-humidity storage affect the pre-clamp LAB coordinates and what corrective step is required before applying the envelope? High humidity causes a positive b* warm shift that clips legitimate archival warmth, so soft thresholding must be applied first. What is the exact computational cost and hardware requirement for post-hoc LAB clamping compared to ControlNet conditioning? Post-hoc clamping runs in under one second per image on CPU, whereas ControlNet conditioning is GPU-bound and takes approximately twelve seconds per image. At what dataset size does fine-tuning become computationally competitive with post-hoc clamping for a single film stock? Fine-tuning only becomes competitive if the archive holds more than 50,000 densitometer-referenced scans of that single stock. What ΔE2000 tolerance defines period-accurate archival colorization against a densitometer-referenced target? Archival tolerance is strictly defined as a ΔE2000 of 2.0 or less. Why do raw diffusion outputs consistently show a mean a* error of +9.4 on neutral patches across verified Kodachrome transparencies? The model's internal representation assumes modern sRGB camera statistics rather than the broad, chemically specific absorption bands of Kodachrome's aniline dyes. Quick answers Why do diffusion models primarily predict pixel values in the a* and b* channels when processing Kodachrome scans? | Because these chromaticity channels represent the hue/saturation degrees of freedom where Kodachrome departs most sharply from contemporary gamuts. |
| What is the measured mean a* error on neutral patches for raw diffusion output, and what does it indicate? | The mean a* error was +9.4 with a standard deviation of 3.1, indicating a systematic magenta shift caused by the model's sRGB-dominant chromaticities being projected onto neutral axes. |  |  |
| How is archival tolerance defined for period-accurate colorization in this context? | Archival tolerance is defined as a ΔE2000 of 2.0 or less against a densitometer-referenced target. |  |  |
| Why does post-hoc LAB clamping win over conditioning or fine-tuning for archival work? | It achieves the lowest neutral-patch ΔE2000 (≈1.9), runs in under one second per image on CPU, and requires no model access. |  |  |
| What specific data requirement causes fine-tuning to lose on cost compared to clamping? | A credible fine-tune needs on the order of 50,000 labeled same-stock Kodachrome scans with densitometer references—a dataset that does not publicly exist—and must be redone per film stock generation. |  |  |

Also worth reading: **2026 Diffusion Wins: +4.2dB PSNR vs Histogram on Faded Kodachrome**: [2026 Diffusion Wins: +4.2dB PSNR](https://colorizethis.io/blog/2026-diffusion-wins-42db-psnr-vs-histogram-on-faded-kodachrome.php) · **Understanding the Color Science Behind AI Image Generation From RGB to LAB Color Spaces**: [Understanding the Color Science Behind](https://colorizethis.io/blog/understanding_the_color_science_behind_ai_image_generation_f.php) · **How to transform your old black and white photos into vibrant memories with professional AI colorization**: [How to transform your old](https://colorizethis.io/blog/how-to-transform-your-old-black-and-white-photos-into-vibrant-memories-with-professional-ai-colorization.php)

### Related reading

- [2026 Diffusion Wins: +4.2dB PSNR vs Histogram on Faded Kodachrome](https://colorizethis.io/blog/2026-diffusion-wins-42db-psnr-vs-histogram-on-faded-kodachrome.php)
- [4-Point FID Drop: 4 Colorizers Tested on 4,812 Tomato Scans](https://colorizethis.io/blog/4-point-fid-drop-4-colorizers-tested-on-4812-tomato-scans.php)
- [Stabilize Archival Video With ControlNet Reference Cuts](https://colorizethis.io/blog/stabilize-archival-video-with-controlnet-reference-cuts.php)
- [5 Free B&W Conversion Tools Tested: Why Darktable Wins](https://colorizethis.io/blog/5-free-bw-conversion-tools-tested-why-darktable-wins.php)
- [sRGB's 35.9% Gamut Ceiling: The Export Pipeline That Wins](https://colorizethis.io/blog/srgbs-359-gamut-ceiling-the-export-pipeline-that-wins.php)
- [How to Buy DJI in the US in 2026: Authorized, Gray, or Used](https://colorizethis.io/blog/how-to-buy-dji-in-the-us-in-2026-authorized-gray-or-used.php)

### Latest

- [4-Point FID Drop: 4 Colorizers Tested on 4,812 Tomato Scans](https://colorizethis.io/blog/4-point-fid-drop-4-colorizers-tested-on-4812-tomato-scans.php)
- [Stabilize Archival Video With ControlNet Reference Cuts](https://colorizethis.io/blog/stabilize-archival-video-with-controlnet-reference-cuts.php)
- [5 Free B&W Conversion Tools Tested: Why Darktable Wins](https://colorizethis.io/blog/5-free-bw-conversion-tools-tested-why-darktable-wins.php)

Canonical: https://colorizethis.io/blog/kodachromes-three-dye-layers-why-lab-clamping-wins-for-archives.php
Markdown: https://colorizethis.io/blog/kodachromes-three-dye-layers-why-lab-clamping-wins-for-archives.php/index.md
