Cosmetic Correction
Identify and replace isolated defective pixels or very small residual defects without treating stars, compact structure, or ordinary noise as defects.
schema 1 · revision 1Recognize it
- Stable hot or cold pixels recur at sensor coordinates in calibrated subframes.
- Sparse one-pixel colored specks survive integration and become conspicuous after stretch.
- Impulse defects would bias later denoise or sharpening operations.
Intended output
Calibrated subframes corrected from a master-dark or bad-pixel map when possible; otherwise a documented sparse residual cleanup whose corrected-pixel count and star preservation have been checked.
Required input state
- Prefer calibrated, pre-registration subframes plus a matching master-dark or bad-pixel map.
- For residual post-stack cleanup, use a linear integrated image and a sparse-defect hypothesis.
- Record CFA/debayer state because CFA-aware detection differs from RGB-image correction.
What NOVA does
NOVA's post-stack residual cleanup operates per channel with a 5x5 local median, flags absolute residuals above 5 times the median absolute residual, keeps only connected components of at most three pixels, and replaces them with the local median.
Use when
- A master-dark or bad-pixel map identifies repeatable sensor defects before integration.
- A linear stack contains sparse, isolated residual hot/cold pixels that survived rejection.
Skip when
- The candidate defects form stars, compact target structure, trails, or extended regions.
- The correction count or fraction is unexpectedly large.
- Blink/difference inspection shows real signal changing.
Limits
- Ordinary cosmetic correction does not repair gradients, broad artifacts, trails, or bad calibration.
- Post-integration cleanup is not equivalent to correcting every calibrated subframe before registration and stacking.
- Aggressive thresholds can replace star cores and real compact structure.
Scientific and aesthetic notes
- Pre-integration correction preserves the stacking engine's opportunity to reject and weight data correctly.
- A successful tool execution proves procedure, not that the chosen stage or threshold was appropriate.
- Judge sparse defects at native scale and inspect a difference image; a full-frame beauty slider can hide one-pixel damage.
Evidence and measurements
Cross-tool matrix
| Tool | Equivalence | Expected result | Evidence |
|---|---|---|---|
| nova | Exact replay | Only isolated components of at most three flagged pixels are replaced by local medians. | nova-cosmetic-source |
| pixinsight | Functional alternative | Repeatable isolated defects disappear from subframes without changing stellar profiles. | m66-manual-verification |
| siril | Functional alternative | Sparse hot/cold pixels are replaced without an obvious broad change or measurable compact-signal damage. | siril-calibration-1.4.4, siril-cosmetic-1.4.4, m66-manual-verification |
| saspro | Functional alternative | Sparse isolated hot and cold pixels are replaced during light-frame calibration without changing real compact signal. | saspro-source-1.18.0, saspro-synthetic-2026-08-14 |
NOVA Python pipeline 1.24.7
- Run on the linear stack only when sparse residual defects remain after integration.
- Use the standing code and ontology defaults for sigma, odd median-kernel size, and maximum connected-defect size.
- Review pixels_fixed, pct_fixed, a native-scale blink, and a difference image before accepting.
Controls and starting ranges
- sigma
- 5.0 standing ontology and implementation default
- kernel_size
- 5 pixels, odd; standing ontology and implementation default
- max_defect_size
- 3 connected pixels; standing implementation default
Mask behavior: No user mask; the connectivity filter is the implementation's structural safeguard.
Failure modes
- Threshold is low enough to flag star cores.
- Connected real structure fragments into small flagged islands.
- A large correction fraction is accepted without investigation.
Recovery
- Revert to the unchanged linear input and raise the threshold or correct subframes before integration.
PixInsight CosmeticCorrection exact version not recorded; procedure tool-tested
- Prefer applying CosmeticCorrection to calibrated subframes before registration and integration.
- Use a master-dark defect list when available; otherwise configure conservative hot/cold detection.
- Inspect the corrected subframes or rejection evidence at native scale before continuing.
Controls and starting ranges
- hot/cold sigma
- 3-5 is a tested range; tune from defect and star-preservation evidence
- input
- calibrated subframes; post-stack use is residual cleanup only
Mask behavior: Tool-specific defect lists/auto-detection; no handbook claim of ordinary image-mask behavior.
Failure modes
- Using the batch process successfully on an integrated stack and calling the recipe stage validated.
- Thresholds remove faint-star cores or compact detail.
Recovery
- Undo and move the correction to calibrated subframes or use a more conservative defect map.
Siril calibration or Cosmetic Correction 1.4.4 documentation; standalone procedure tool-tested in 1.4.2
- During calibration, prefer master-dark sigma detection or a bad-pixel map; enable CFA handling for Bayer data.
- Estimate the corrected count before batch processing; Siril flags estimates above one percent for review.
- For an already debayered residual stack, use the standalone Cosmetic Correction filter with CFA disabled and inspect the reported count.
Controls and starting ranges
- cold sigma
- 5.00 tested starting point; tune from the corrected-pixel evidence
- hot sigma
- 5.00 tested starting point; tune from the corrected-pixel evidence
- amount
- 1.00 tested starting point
- CFA
- on only for CFA/Bayer input; off for debayered RGB
- review threshold
- investigate when the calibration estimate exceeds 1%
Mask behavior: Siril documents cosmetic correction as full-image sensor-defect processing, not a mask-limited operation.
Failure modes
- CFA state is set incorrectly.
- A high corrected count is accepted without revisiting thresholds or calibration.
- Standalone post-stack cleanup is represented as equivalent to pre-integration correction.
Recovery
- Undo, correct the CFA setting, raise sigma, or return to sequence calibration with a master-dark/bad-pixel map.
Seti Astro Suite Pro Stacking Suite Cosmetic Correction 1.18.0 source-inspected and synthetic-array tested
- Enable Cosmetic Correction while calibrating light frames in the Stacking Suite, before registration and integration.
- Use Bayer-aware correction for undebayered CFA data and ordinary mono/color correction only for the matching input state.
- Start conservatively, then inspect corrected frames and a difference image for repaired defects and altered star cores.
Controls and starting ranges
- recommended hot sigma
- 5.0 in the installed Stacking Suite
- recommended cold sigma
- 5.0 in the installed Stacking Suite
- input mode
- Bayer pattern for CFA data; debayered/mono path otherwise
Mask behavior: The Stacking Suite selects a Bayer-aware or debayered/mono full-frame algorithm; defect handling is not an ordinary image mask.
Failure modes
- The wrong Bayer pattern or debayer state mixes unlike color samples.
- Thresholds classify a sharp stellar core as a hot pixel; the synthetic check showed this is possible and requires inspection.
- Interactive Blemish Blaster is mistaken for repeatable calibration-stage cosmetic correction.
Recovery
- Disable or raise the relevant threshold and recalibrate from the unchanged light frames.
Validation status
Not yet Jeff-validated. Use this as sourced guidance, not a certification.
Sources
- M66 manual recipe verification feedback
M66_Manual_Recipe_Verification_Feedback.md— Jeff validated - NOVA isolated-defect correction implementation and ontology defaults
nas_server/seti_astro.py:3133; nas_server/processing_ontology.json:325— NOVA source-confirmed - M66 workflow 1.24.7 execution record
critiques/20260802_045251_seestar_galaxy.json— NOVA execution record - Siril 1.4.4 calibration documentation — Vendor-documented
- Siril 1.4.4 cosmetic correction documentation — Vendor-documented
- Installed Seti Astro Suite Pro 1.18.0 processing source
saspro/pedestal.py; saspro/numba_utils.py; saspro/stacking_suite.py; saspro/abe.py; saspro/sssc.py— Artifact-confirmed - SASpro 1.18.0 synthetic-array operation checks
2026-08-14 local validation: pedestal, cosmetic correction, and ADBE— Tool-tested
Related evidence
The M66 recipe and Jeff-validation ledger will link here when their static exports are available. Until then, this article remains explicitly unvalidated.

