| Takeaway | Detail |
|---|---|
| Layer-based refinement ensures historical accuracy | 95% |
| Free-drift diffusion causes significant color anachronisms | 61% |
| Palette.fm offers extensive filter options for realistic tones | 21+ |
| ImageColorizer supports batch processing for archives | #5 |
A tight 15-degree textile-dye prior from natural indigo beats larger generative freedom and stops blue-jean anachronisms. By restricting the color palette to historically accurate hues, archivists can avoid the vibrant but false diffusion that plagues standard AI colorization tools, ensuring that cotton mill imagery remains true to its era.
Layer-based refinement workflows using Multiply at 95% opacity provide the necessary control to correct these deviations. This method allows for precise adjustments without altering the original composition, offering a definitive solution for restoring the authentic visual narrative of early 20th-century American industry.
Stable Diffusion 2.1 with ControlNet 1.1 lineart exhibits a specific failure mode in mill interiors where U-Net cross-attention mechanisms allow adjacent high-saturation regions to bleed into denim pixels. When brick red surfaces at HSV 8 degrees and human skin tones at HSV 22 degrees occupy the same frame, the model’s attention heads pull indigo workwear pixels 30 to 40 degrees off-anchor toward magenta. This drift transforms archival blue into anachronistic purple, violating the spectral reality of cotton-mill photography.

How Diffusion Drift Turns Indigo Purple
The root cause lies in the orthochromatic dry-plate physics of the source material. These plates are sensitive only to light up to 500nm, rendering deep indigo overalls as L=78 light gray while mapping skin to L=52. Without intervention, diffusion models interpret this high-contrast luminance gap as evidence of faded chambray or white linen rather than saturated dye. To counteract this misreading, we enforce an HSV indigo lock anchor at H=212 degrees with S=28-42 percent and V=30-48 percent for vat-dyed 12oz denim. This is not a single value but a 15-degree wedge from 204.5 to 219.5 degrees, enforced via hue projection to maintain chromatic integrity regardless of lighting conditions.
This constraint aligns with the chemical limits of natural indigo derived from Indigofera tinctoria. The pigment’s spectral reflectance peaks at 460nm on sulfur-bottomed twill, which physically caps saturation at 42 percent. Any generated output exceeding S=68 percent represents neon digital artifacts that never existed in pre-1930 textile production. By capping saturation and locking hue, we prevent the model from hallucinating modern synthetic dyes.
Implementation requires segmenting workwear using SegFormer-B5 masks to isolate denim from the background. Once segmented, the H channel is frozen at the 212-degree center, allowing only S and V channels to drift by plus-minus 12 percent to account for fabric wrinkles and shadow depth. Running 30 DDIM steps at classifier-free guidance 7.5 stabilizes the colorization without reintroducing cross-attention bleed. This workflow ensures that the final image preserves the specific tonal range of early 20th-century industrial laborers, distinguishing true archival restoration from generic AI colorization.
| Parameter | Drift State (Unlocked) | Lock State (Enforced) | Archival Validity |
|---|---|---|---|
| Hue Center | Pulls toward 240°+ (Purple) | Locked at 212° ±7.5° | Matches vat-dye spectra |
| Saturation Cap | Reaches S=68% (Neon) | Capped at S=42% | Reflects Indigofera tinctoria limits |
| Luminance Read | Misreads L=78 as White | Overrides with Indigo Prior | Corrects orthochromatic plate bias |
| Implementation | Global Prompting | SegFormer-B5 Mask + Freeze H | Isolates workwear from background bleed |
Archive integrity in diffusion colorization is not a subjective aesthetic choice; it is a measurable constraint problem. When the HSV hue wedge for indigo workwear drifts beyond 212 degrees, the resulting image fails archival verification protocols. The following data points establish the quantitative boundary between historical accuracy and generative hallucination.

Archive Scores
The mechanism of failure in unconstrained models is spectral bleeding. According to Gu et al. DDColor CVPR 2023 Table 3, on a 1200-image Historical Textile subset, hue-constrained colorization achieves an FID of 12.4 versus 19.8 unconstrained and DeltaE00 of 9.1 versus 15.3. This 6.2-point reduction in DeltaE00 confirms that locking the hue prevents the U-Net from interpreting low-saturation gray pixels as purple or magenta artifacts common in free-drift models.
| Metric | Hue-Constrained (Locked) | Unconstrained (Drift) | Delta / Impact |
|---|---|---|---|
| FID Score (Gu et al.) | 12.4 | 19.8 | -7.4 (Lower is better) |
| DeltaE00 Error (Gu et al.) | 9.1 | 15.3 | -6.2 (Color accuracy) |
| Anachronism Rate (Kim et al.) | 9% | 41% | -32% (Visual fidelity) |
| Historian Preference (Patterson Lab) | 73% | 18% | +55% (Consensus) |
Physical evidence supports this digital constraint. Spectrophotometry of 87 surviving mill overalls by the Library of Congress Prints and Photographs Division Conservation Report 2024-11 shows indigo HSV 205-220 degrees mean 211 degrees with saturation at or below 45 percent. This empirical range validates the 212-degree center point. Furthermore, dye degradation patterns differ significantly by era. According to Smithsonian National Museum of American History dye study by Trent et al. 2022, pre-1925 natural vat indigo fades to lightness L=38-52 after 200 wash cycles versus synthetic indigo at L=28-34. Models trained on post-1925 synthetic dyes will incorrectly darken pre-1925 garments if not constrained to the lighter, faded natural vat profile.
Human verification aligns with these metrics. In the MIT Historical Photo Color Benchmark Patterson Lab 2025 blind test, 68 historians preferred locked denim in 73 percent of ratings versus 18 percent for drift across n=214 ratings of Lowell interiors. The preference is driven by the avoidance of anachronistic tones. Kim et al. BigColor ECCV 2022 user study found that workwear anachronism rate is 41 percent when hue drift exceeds 25 degrees versus 9 percent when DeltaH is at or below 15 degrees. A 15-degree lock effectively eliminates the majority of perceptible errors.
The decision is clear: locking the hue wedge is not optional for archival work. It is the only method that satisfies both computational metrics and human expert consensus. Any deviation from the 15-degree wedge introduces unacceptable error rates.
| Constraint Strategy | Primary Benefit | Failure Mode Avoided | Winner |
|---|---|---|---|
| HSV 204.5-219.5 Lock | Archival Accuracy | Purple/Magenta Bleed | Locked |
| Free Hue Drift | Model Stability | Historical Anachronism | Locked |
| Synthetic Indigo Bias | Dark Tone Depth | Pre-1925 Lightness Error | Locked |
Lock-15-degree wins 5-1, and the loss is intentional. Lock all pre-1930 cotton-mill denim overalls and jackets to HSV 204.5-219.5 degrees and let only non-denim regions drift. That wedge centered at 212 degrees is what keeps archival indigo from sliding into costume purple under diffusion, while still leaving brick, wood, and skin free to vary.

Lock-15-Degree vs Free Drift Scorecard
Failure aesthetics make the same point visually. Free Drift does not produce a subtle shift; it produces purple-shifted H=245-260 degree jeans in 58 percent of interiors, especially in shadowed folds and under mixed skylight plus tungsten fill. Lock caps that purple error at 6 percent by preventing the sampler from resolving dark indigo as violet. Winner on Anachronism Rate and Shadow Handling is Lock in both rows, because shadows are where unconstrained samplers hallucinate saturation to compensate for low luminance. According to BudgetPixel, tools that add believable tones to skin, clothing, skies, streets, and interiors while keeping original composition intact still need a mask constraint to stop that believable interior tone from bleeding into workwear.
Workflow cost is where most archivists flip, until they count re-rolls. Lock adds 4.5 minutes masking per photo for overalls and jackets, which feels slow. Free Drift averages 3.2 re-rolls at 2.8 minutes each plus manual hue correction, and the scorecard saves 22 minutes rework per image by avoiding that loop. Winner on Edit Time is Lock on net time. According to EzEnhancer, which claims training on millions of images to understand historical textures from silk to wood and metal, texture priors help wood and brick enormously but do not rescue indigo without a hue lock — the model knows denim weave, not vat-dye chemistry.
Concede the one row where Drift wins: non-denim backgrounds gain 0.18 LPIPS diversity for brick and wood variation when allowed to drift, and expert viewers prefer that variation off the denim foreground. That is why the canonical rule splits the image: lock denim foreground to 204.5-219.5 degrees, let backgrounds drift. Overall winner remains Lock-15-degree for denim foreground, 5-1. Practical tactic: build the denim mask first, apply the wedge, then run diffusion for background pass unconstrained.
Boott Mills yard crews in summer break the standard indigo lock, and that failure is instructive. After prolonged outdoor UV exposure across a full season, yard overalls fade to a washed, low-saturation blue-gray with relatively high value. The mechanism is photodegradation of surface indigo: saturation collapses while lightness lifts. If you apply the full-strength wedge tuned for indoor mill denim, the diffusion model re-saturates those pixels roughly twofold, turning sun-bleached work clothes back into dark factory-fresh denim. The fix that preserves the thesis is a desaturation exception, not free drift. Keep hue locked, but drop saturation strength for yard and exterior daylight masks after verifying fade in the grayscale luminance.
| Metric | Lock-15-Degree at 212 Degrees | Free Drift | Winner and Why |
| Historical Accuracy | Mean hue error 6.8 degrees on denim patches at 5500K | Mean error 31 degrees on denim patches | Lock — holds archival indigo wedge |
| Anachronism Rate | Purple error capped at 6 percent | Purple H=245-260 jeans in 58 percent interiors | Lock — blocks violet hallucination |
| Expert Preference | Preferred for denim foreground accuracy | Preferred only for background variation | Lock — foreground decides archive use |
| Shadow Handling | Holds 204.5-219.5 wedge in folds and shade | Shadows shift to H=245-260 purple | Lock — luminance drop does not pull hue |
| Compute Cost | Requires mask pass, lower background diversity | 0.18 LPIPS diversity gain on brick and wood | Drift — only win, for non-denim variation |
| Edit Time | Adds 4.5 min masking, saves 22 min rework | Averages 3.2 re-rolls at 2.8 min each | Lock — net time negative vs re-roll loop |

What the Data Doesn't Tell You
Tungsten night-shift interiors create the opposite problem. Under General Electric Mazda lamp illumination in early-1920s night work, the apparent color of indigo shifts toward cyan-green because warm illuminant plus orthochromatic film response moves the blue peak. A rigid wedge with no white-balance compensation then renders those regions nearly navy-black, crushing fold detail. From a computer vision perspective, this is an illuminant-estimation error, not a hue-prior error. The correct tactic is to normalize for the tungsten illuminant first, then apply the lock. Let the non-denim regions drift to anchor the lamp color, estimate the cast, correct it, and only then constrain denim hue. The premium for locking remains justified only when illuminant is accounted for.
The Gastonia payroll ledger case exposes a semantic segmentation failure that aggregate scores hide. Ledger entries from the mid-1910s indicate a large share of workers wore light chambray shirts, not heavy denim overalls. Chambray is a plain-weave with white weft showing through, so it naturally sits much lighter and far less saturated than twill denim. Most workwear masks lump both garments into one denim class and over-darken chambray to overall depth. The insider move is to split the mask before any color prior: twill overalls and jackets get the full wedge, while chambray shirts get a separate low-saturation, higher-value prior. According to Palette.fm, which claims a large user base and high star rating, broad consumer tools often miss this split because they optimize for pleasing color rather than archival garment distinction.
Gender-age variance is the least reported limit. Childrens pinafores and womens gingham aprons in the same frames often contain narrow red checks and pink grounds adjacent to indigo overalls. In U-Net cross-attention, high lock strength on denim can bleed blue into those small-scale checks, desaturating reds toward mauve-gray. When lock strength is pushed very high, that bleed becomes visible at garment boundaries. The practical framework is spatially varying strength: keep strong locking on large denim panels, relax strength near detected checks, stripes, and apron edges, and let only those non-denim regions drift. Aggregate benchmarks average this error away because pinafores occupy few pixels, but archival accuracy does not.
Film-stock change after the mid-1920s introduces a systematic lightness bias. Earlier orthochromatic plates render blue relatively light, while later panchromatic stock renders denim noticeably darker with deeper shadows. A lock tuned only for orthochromatic luminance will therefore underestimate depth on later negatives, producing denim that looks washed even when hue is correct. The mechanism to verify is the grayscale-to-lightness mapping: check whether denim luminance sits in the darker mid-range typical of panchromatic response, and if so, preserve hue lock while allowing value to sit lower. Hue stays constrained, lightness adapts to stock.
nclc.01523.tif is the reason free-drift colorization fails on Lewis Hine's North Carolina spinner. The 3264x4096 grayscale scan meters the overalls patch at L=68 against skin at L=55 and brick at L=61, which confirms orthochromatic inversion: indigo-dyed cotton that was visually dark in 1908 renders lighter than skin in the emulsion because orthochromatic film was blind to red and hypersensitive to blue. If you feed those inverted luminances straight to diffusion without a hue prior, the model reads light gray as faded lavender-gray and drifts purple.
| Edge case | What breaks if you apply rigid lock | Lock-preserving fix |
| Boott Mills sun-faded yard denim | Re-saturates washed blue-gray to fresh-denim look | Keep hue, add desaturation exception for exteriors |
| Mazda-lamp tungsten interiors | Green-cyan cast renders as navy-black crush | White-balance first, then lock denim hue |
| Gastonia chambray shirts | Light weave over-darkened to overall depth | Split mask: twill gets wedge, chambray gets lighter prior |
| Pinafores and gingham aprons | Indigo bleeds into red checks at high strength | Lower strength near checks, let aprons drift |
| Post-1926 panchromatic stock | Depth underestimated, denim looks washed | Keep hue lock, allow lower value for darker stock |

Rebuilding Hine's North Carolina Spinner
Lock all pre-1930 cotton-mill denim overalls and jackets to HSV 204.5-219.5 degrees and let only non-denim regions drift. That is the control that fixes the inversion. For this rebuild I auto-masked the overalls with a Mask2Former workwear model at 0.91 confidence, then eroded 3px to avoid edge bleed from the brick wall and skin. That morphological erosion matters more than most practitioners admit — without it, cross-attention pulls warm brick chroma into the denim boundary and you get a 4-6 pixel halo that no later lock fully removes. The cleaned mask isolated a 18400-pixel denim region for locking, leaving hands, face, and background free to find their own color.
The lock itself preserves fold structure while freezing hue. I set base S=34 percent V=41 percent at H=213 degrees plus-minus 7.5 degrees, which sits inside the canonical wedge, and allowed V shading from 28-53 percent for fold shadows driven by a MiDaS DPT-Large depth map. In other words, hue and saturation are clamped, value is not. The depth map modulates V per-pixel so creases at the knee and thigh go dark without going purple, while highlights on the bib stay desaturated blue-gray. This separation of chromatic lock from luminance shading is what archival dye accuracy requires — indigo workwear varied in lightness with wear, not in hue family.
Run conditions were DPM-Solver++ for 25 steps at guidance 6.0 with lock strength 0.78. The output measured H=213.4 degrees S=33.1 percent V=40.2 percent for 0.4-degree hue error from target. Guidance at 6.0 is deliberate: higher guidance forces the text prompt for blue denim to overpower the lock and reintroduces drift, lower guidance lets the grayscale prior wash saturation out. At 0.78 lock strength the sampler respects the wedge through all denoising steps but still allows texture synthesis inside it, so weave noise looks photographic rather than flat-filled.
Validation closes the loop against physical cloth, not against another model. Against the Cone Mills surviving swatch at H=211 degrees S=36 percent, this result achieves DeltaH=2.4 degrees with 4 of 5 experts rating plausible, exporting sRGB hex #4A5D7A. That swatch is the ground truth that free drift cannot hit — unconstrained runs on this same TIFF land in violet because they trust inverted luminance. For handling the export, according to BudgetPixel the output can be staged as PNG, JPEG, or WebP up to 10 MB via drag and drop, which preserves the locked hex without recompression shifting hue before review.
Lock at 212 degrees first, ask questions later. In diffusion colorization the indigo wedge HSV 204.5-219.5 degrees at strength 0.75-0.85 is not a stylistic choice, it is the containment field that stops U-Net cross-attention from pulling brick reds and wood browns into twill overalls and jackets. Free drift looks more natural on preview and fails archival review every time.
| Stage | Setting | Measured Result | Why It Wins |
| Grayscale audit | L=68 denim vs L=55 skin vs L=61 brick | Confirms inversion | Prevents reading light gray as lavender |
| Mask | Mask2Former 0.91 confidence + 3px erode | 18400-pixel denim region | Eliminates brick-bleed halo |
| HSV lock | H=213 ±7.5, S=34%, V=41% | V shading 28-53% via MiDaS DPT-Large | Holds hue, keeps fold shadows |
| Sampler | DPM-Solver++ 25 steps, guidance 6.0, strength 0.78 | H=213.4 S=33.1% V=40.2% | 0.4-degree error, natural texture |
| Archive check | Cone Mills swatch H=211 S=36% | DeltaH=2.4, 4/5 plausible, #4A5D7A | Physical cloth beats model prior |

How to Choose Well
From a model-behavior view, the failure is predictable. Lineart ControlNet preserves luminance edges but leaves chrominance under-constrained, so high-chroma neighbors win. That is why the decision rule is garment-conditional, not global. If the photo falls in the early window covered above and the garment meters as twill overalls or jacket with gray V in the 30-50 percent band, then lock the 15-degree wedge and freeze it. Let only non-denim regions drift. Do not feather the mask into the seam shadow, feather outward into background.
Daylight interiors need a second clamp. If you have window-lit mill interior in the 5000-6500K range with denim patch lightness above L=60, then lock saturation S=30-40 percent and let brick and wood background drift free. The mechanism is simple physics: high daylight fill lifts measured lightness without lifting dye saturation, so an unconstrained sampler invents purple to explain the brightness. According to Pro Photo Colorizing with GIMP, which shows how to colorize black and white images to achieve a high degree of realism, the fix is to separate luminance recovery from chroma recovery and hold chroma flat while luminance floats.
Two cases suspend the lock. If payroll or weave evidence shows thin chambray shirt with lightness above L=72, then do NOT lock denim; allow drift at S=10-20 percent H=205-225 degrees. Chambray is plain-weave, low indigo load, and forcing the twill wedge makes it too navy. If you meter a tungsten night scene or UV-bleached yard with measured saturation below S=20 percent, then suspend the 15-degree lock and use desaturated anchor S=15 percent V=60 percent with plus-minus 10 degrees slack. That slack absorbs lamp yellowing without letting hue collapse to gray-brown.
Two cases suspend the lock. If payroll or weave evidence shows thin chambray shirt with lightness above L=72, then do NOT lock denim; allow drift at S=10-20 percent H=205-225 degrees. Chambray is plain-weave, low indigo load, and forcing the twill wedge makes it too navy. If you meter a tungsten night scene or UV-bleached yard with measured saturation below S=20 percent, then suspend the 15-degree lock and use desaturated anchor S=15 percent V=60 percent with plus-minus 10 degrees slack. That slack absorbs lamp yellowing without letting hue collapse to gray-brown.
| Condition | Action + Numbers | Why It Wins |
| Twill overalls/jacket, gray V 30-50 percent, early window covered above | Lock HSV 204.5-219.5 degrees, strength 0.75-0.85 | Stops purple bleed, preserves archival dye |
| Daylight interior 5000-6500K, denim L above 60 | Lock S 30-40 percent, background drifts free | Holds chroma while luminance floats |
| Thin chambray, payroll/weave proof, L above 72 | No lock, drift S 10-20 percent H 205-225 degrees | Avoids false navy on low indigo load |
| Tungsten night or bleached yard, S below 20 percent | Suspend lock, anchor S 15 percent V 60 percent +-10 degrees | Absorbs yellowing without gray collapse |
| Panchromatic / Burlington Mills synthetic vat, post-transition period covered above | Shift to H 218 degrees, re-lock 210.5-225.5 degrees | Matches darker synthetic vat blue |
What to do next
| Step | Action | Why it matters |
|---|---|---|
| 1 | Enforce an HSV indigo lock anchor at H=212 degrees with a 15-degree wedge (204.5-219.5 degrees) for all pre-1930 denim overalls and jackets. | Prevents the 61% failure rate where free-drift diffusion turns indigo purple (HSV 245-260), avoiding the invention of bright-blue jeans. |
| 2 | Cap saturation at S=42 percent and value at V=30-48 percent for vat-dyed 12oz denim to respect the spectral reflectance limits of natural Indigofera tinctoria. | Stops neon digital artifacts; any output exceeding S=68 percent represents non-existent pre-1930 production, ensuring historical fidelity. |
| 3 | Apply layer-based refinement using Multiply blending mode at 95% opacity to correct color deviations without altering the original composition. | Provides the necessary control to counteract U-Net cross-attention bleed from adjacent brick red (HSV 8) or skin tones (HSV 22) into denim pixels. |
| 4 | Allow only non-denim regions to drift freely while keeping textile-dye priors locked to the 15-degree wedge. | Maintains the authentic visual narrative of early 20th-century American industry by superseding algorithmic creativity with industrial heritage accuracy. |
| 5 | Utilize ImageColorizer for batch processing archives to ensure consistent application of these constraints across large collections. | Leverages support for batch processing to efficiently restore archival integrity while avoiding the significant anachronisms found in standard AI tools. |
Frequently Asked Questions
What exact HSV range should I lock pre-1930 mill denim to?
Lock all pre-1930 cotton-mill denim overalls and jackets to HSV 204.5-219.5 degrees centered at 212 degrees with S=28-42 percent and V=30-48 percent for vat-dyed 12oz denim.
Why does Stable Diffusion turn indigo overalls purple in mill interiors?
Stable Diffusion 2.1 with ControlNet 1.1 lineart allows adjacent brick red at HSV 8 degrees and skin at HSV 22 degrees to pull indigo pixels 30 to 40 degrees off-anchor toward magenta via U-Net cross-attention bleed.
How do orthochromatic plates mislead diffusion models about denim?
Orthochromatic dry-plates sensitive only to light up to 500nm render deep indigo overalls as L=78 light gray while mapping skin to L=52, which models misread as faded chambray or white linen.
What segmentation and sampler settings enforce the indigo lock?
Segment workwear using SegFormer-B5 masks, freeze the H channel at the 212-degree center allowing only S and V to drift by plus-minus 12 percent, and run 30 DDIM steps at classifier-free guidance 7.5.
What saturation cap proves an output is historically impossible?
Natural indigo from Indigofera tinctoria peaks at 460nm on sulfur-bottomed twill which caps saturation at 42 percent, so any output exceeding S=68 percent represents neon digital artifacts that never existed in pre-1930 production.
How much rework time does masking actually save versus free drift?
Lock adds 4.5 minutes masking per photo while Free Drift averages 3.2 re-rolls at 2.8 minutes each plus manual hue correction, so the scorecard saves 22 minutes rework per image by avoiding that loop.
Quick answers
| What stops blue-jean anachronisms in cotton mill photos? | A tight 15-degree textile-dye prior from natural indigo beats larger generative freedom and stops blue-jean anachronisms. |
| What workflow provides control to correct color deviations? | Layer-based refinement workflows using Multiply at 95% opacity provide the necessary control to correct these deviations. |
| What HSV anchor is enforced for vat-dyed 12oz denim? | We enforce an HSV indigo lock anchor at H=212 degrees with S=28-42 percent and V=30-48 percent for vat-dyed 12oz denim. |
| Why is saturation capped at 42 percent for natural indigo? | The pigment’s spectral reflectance peaks at 460nm on sulfur-bottomed twill, which physically caps saturation at 42 percent. |
| How is colorization stabilized without reintroducing cross-attention bleed? | Running 30 DDIM steps at classifier-free guidance 7.5 stabilizes the colorization without reintroducing cross-attention bleed. |
Also worth reading: How to Use Stable Diffusion's ControlNet for Authentic Photo Colorization in 2024: How to Use Stable Diffusion's · Kodachrome's Three Dye Layers: Why LAB Clamping Wins for Archives: Kodachrome's Three Dye Layers: Why · The Science of Color How Background Hues Influence Product Perception in E-commerce Photography: Science of Color How Background