M 51 — how NOVA processed it

Workflow seestar_galaxy v · physics score 9.0. Every step below is what the AI actually did, with the settings it chose — and how to reproduce it by hand in PixInsight, Siril, or SASpro.

Remove Pedestal

Removes the ADC bias pedestal — the constant electronic offset the camera adds so the sensor never reads true zero. It sets the real black point to exactly zero.

NOVA evidence

after remove pedestal in this recorded runbefore remove pedestal in this recorded run
beforeafter
remove pedestal in this recorded run
Process: PixelMath (or set it at calibration time).
  1. Skip by default on a calibrated stack. A positive global minimum is not evidence of an electronic pedestal; sky signal, noise, or a cold pixel can set that value.
  2. The clean way is ImageCalibration → Output pedestal when you build the master, so it's already removed.
  3. Only when calibration provenance confirms a remaining constant offset, use PixelMath uniformly: $T - min($T) (rescale off), which pins true black to zero while keeping channel ratios intact.
PixelMath / offset.
  1. Set an output pedestal at calibration (-pedestal=) so it's gone before stacking, or
  2. subtract the floor afterward with PixelMath: iif(I>m, I-m, 0) where m is the background level from Statistics.
Pedestal Removal — conditional.
  1. Use only when calibration provenance independently establishes a residual offset in each channel; a positive image minimum is not enough.
  2. SASpro subtracts each channel's minimum and has no adjustable amount. Record the minima first, then compare clipping, channel statistics, and color.
  3. Otherwise skip this step. Undo if a cold pixel or real sky signal set the subtraction, or if channel balance changes.

Cosmetic Correction

Removes residual hot and cold pixels — single bright/dark pixels left by sensor defects, cosmic-ray hits, or stacking misses that survived rejection.

NOVA used: sigma = 5.0, kernel_size = 5

NOVA evidence

after cosmetic correction in this recorded runbefore cosmetic correction in this recorded run
beforeafter
cosmetic correction in this recorded run
Process: CosmeticCorrection.
  1. Run on the registered frames (ideally pre-integration).
  2. Without a master dark, enable Use Auto detect and set Hot/Cold Sigma ≈ 3–5 — only true outliers, never star cores.
  3. Use Real-Time Preview to confirm hot pixels vanish while stars are untouched.
Cosmetic correction (at calibration).
  1. In Calibration enable Cosmetic correction with CC from sigma: Cold ≈ 3, Hot ≈ 3–5.
  2. Or run find_hot to build a bad-pixel map and apply it. Confirm star cores are untouched in the preview.
Stacking Suite — Cosmetic Correction.
  1. Enable it while calibrating light frames, before registration and integration.
  2. Match the input state: use Bayer-aware correction for undebayered CFA data; use the debayered/mono path only for matching inputs.
  3. Start with Hot σ 5.0 and Cold σ 5.0, then inspect corrected frames and a difference image. Raise the relevant threshold if star cores or compact detail change.

Background Extraction

Removes large-scale gradients — light pollution, moon glow, vignetting, and amp glow — that tilt or dome the background. The single most important step for a clean, neutral sky.

NOVA used: correction = Subtraction, smoothing = 0.5, gpu = True

NOVA evidence

after background extraction in this recorded runbefore background extraction in this recorded run
beforeafter
background extraction in this recorded run
Process: GradientCorrection (modern) or DynamicBackgroundExtraction (DBE).
  1. DBE: place samples only on star-free background; raise Tolerance so samples on faint signal are rejected.
  2. Set Correction: Subtraction for additive light pollution, Division for vignetting.
  3. Inspect the generated background model — it must be smooth, with no imprint of the galaxy/nebula (that means it's eating real signal).
Do this on linear data only.
Image Processing → Background Extraction.
  1. Samples per line ≈ 20; raise Tolerance so samples on nebulosity are rejected. Use RBF for busy gradients, polynomial (deg 4) for smooth ones.
  2. Correction: Subtraction for light pollution. Run on linear data.
  3. Check the generated model shows no imprint of the target.
ADBE — Automatic Dynamic Background Extraction.
  1. Run ADBE on the cropped linear image. Choose polynomial complexity and optional RBF correction from the gradient actually present; there is no target-specific universal preset.
  2. Save and inspect the background model. Compare representative sky regions and extended target structure before accepting the subtraction.

Color Calibration

Photometric colour calibration (SPCC). Sets a physically correct white balance so star colours — and therefore nebula/galaxy colours — match their real spectral types instead of the camera's raw response.

NOVA used: spcc_lp_filter = False

NOVA evidence

after color calibration in this recorded runbefore color calibration in this recorded run
beforeafter
color calibration in this recorded run
Process: SpectrophotometricColorCalibration (SPCC).
  1. Plate-solve first (ImageSolver / Image > Astrometry) so SPCC knows the field — it needs the local Gaia DR3 database configured.
  2. Pick the Sony Color Sensor + filter that matches the SeeStar S50; white reference Average Spiral Galaxy is a safe default.
  3. Run on linear data; check the residual scatter plot for a tight fit.
If the solve fails, SPCC can't run — fall back to BackgroundNeutralization + manual ColorCalibration.
Image Processing → Spectrophotometric Color Calibration (SPCC) (Siril 1.2+; else Photometric CC).
  1. Plate-solve first (Image Information → Astrometry).
  2. Choose the OSC sensor + your filter; run on linear data.
  3. No solve? Fall back to Color Calibration → Background Neutralization + manual white reference.
SSSC — Seti Astro Spectral Calibration.
  1. Run SSSC on a linear, plate-solved color image and record the Gaia-XP matches, response solution, coefficients, and any fallback.
  2. Treat it as a related physical calibration path, not as the identical SPCC process. Too few spectrum-bearing stars can force a reduced solution or fallback.
  3. If the field cannot support a stable solution, repair the astrometry, use a validated SPCC path in PixInsight or Siril, or record the fallback explicitly.

Deconvolution

Recovers spatial detail that seeing and optics blurred away — tightens stars and sharpens fine structure. Done on linear data, where the blur is a true convolution with the PSF.

NOVA used: stellar_amount = 0.5, nonstellar_amount = 0.3

NOVA evidence

after deconvolution in this recorded runbefore deconvolution in this recorded run
beforeafter
deconvolution in this recorded run
Process: BlurXTerminator (the modern choice).
  1. Run on linear data, after BGE/SPCC.
  2. Set Automatic PSF; start Sharpen Stars ≈ 0.25 and Sharpen Nonstellar ≈ 0.7–0.9.
  3. Classical alternative: Deconvolution with an external PSF from DynamicPSF and a star mask + local deringing.
Image Processing → Deconvolution.
  1. Generate a PSF from stars (PSF from stars), then Richardson–Lucy, ~10–20 iterations, with a moderate regularization to avoid ringing.
  2. Linear data only. Siril has no AI decon — for BlurXTerminator-class results use PixInsight or SASpro's Cosmic Clarity Sharpen instead.
Cosmic Clarity — Sharpen.
  1. Run the Cosmic Clarity Sharpen module (Stellar / Non-Stellar modes), amount ~0.5 stellar / 0.3 non-stellar — the AI-decon equivalent of BlurXTerminator.
  2. Linear data; check star profiles for ringing.

Star Sharpen cc_stellar

BXT in correct-only mode: fixes star shape (roundness, elongation) without deblurring the background. Runs after denoise on dense fields where denoise has bloated the stars.

Comparison not recorded. This run did not preserve a separate before-and-after preview for this step.
Process: BlurXTerminator (Correct Only).
  1. Enable Correct Only — this fixes star shape with no deblurring.
  2. Set both Sharpen amounts to 0; let it round and de-elongate stars only.
  3. Run after denoise if denoise has bloated the stars on a dense field.
No direct equivalent. Siril sharpens stars only via the same deconvolution pass. For a stars-only correct-only sharpen, use PixInsight BlurXTerminator (Correct Only) or SASpro Cosmic Clarity on the star layer.
Cosmic Clarity — Sharpen (Stellar only) on the star layer, or skip in SASpro and let PixInsight BlurXTerminator Correct-Only handle stars.

Remove Stars Linear

Splits the image into a starless layer and a stars-only layer before stretching. The starless layer goes through the rest of the pipeline; the stars are stretched separately and screened back in at the end.

NOVA evidence

after remove stars linear in this recorded runbefore remove stars linear in this recorded run
beforeafter
remove stars linear in this recorded run
Process: StarXTerminator.
  1. Enable Generate star image so you get both a starless layer and a stars-only layer that recombine by screen.
  2. Run it before stretching so the nebula can be pushed without bloating stars.
  3. Check the starless layer for dark pits where bright stars were.
Image Processing → StarNet Star Removal (StarNet++ must be configured in Preferences → Miscellaneous).
  1. Run on the linear image; Siril produces a starless image and a stars-only image you can recombine later.
Cosmic Clarity — DarkStar (or StarNet).
  1. DarkStar removes stars and can generate the stars-only layer for later recombination — the SASpro path the pipeline uses.

Stretch stat_bright

The critical perceptual step: converts linear data (where the faint signal is a fraction of a percent above black) into a non-linear image the eye can read. Everything before this is invisible; this is where the picture appears.

NOVA evidence

after stretch in this recorded runbefore stretch in this recorded run
beforeafter
stretch in this recorded run
Process: GeneralizedHyperbolicStretch (GHS), HistogramTransformation, or MaskedStretch / ArcsinhStretch.
  1. Read the auto-STF first (ScreenTransferFunction → wrench) to see a good starting black/midtone point.
  2. GHS: set SP (symmetry point) near the sky peak in the log histogram, raise D for strength, b for local contrast — preview live.
  3. Or drag STF into HistogramTransformation and apply to bake it in. Keep RGB linked to protect the SPCC colour.
  4. Aim the sky background into its per-type band and leave highlight headroom (don't clip the core).
Image Processing → Generalized Hyperbolic Stretch (GHS) for control, or Histogram Transformation / Asinh for a quick stretch.
  1. GHS: set the Symmetry point (SP) just above the background, raise D (stretch intensity) and b (local intensity) to lift the galaxy without blowing the core.
  2. Autostretch (the eyeball icon) is a fast starting point but not final.
Statistical Stretch.
  1. Set the target median (background) and enable linked channels to protect color; it places the sky and lifts signal in one measured step — the SASpro tool behind the pipeline's stretch candidates.
  2. For galaxies, keep the target median low (darker sky) and let contrast come from Curves after.

Color Boost

Hue-selective saturation boost — lifts the specific colours that matter for the target type while leaving the rest alone.

NOVA evidence

after color boost in this recorded runbefore color boost in this recorded run
beforeafter
color boost in this recorded run
Process: ColorSaturation (hue-selective) or a saturation CurvesTransformation.
  1. ColorSaturation: lift the curve only over the target hues — blue (spiral arms) or red/cyan (Ha/OIII) — and hold the rest flat.
  2. Protect stars/background with a range or star mask so the boost doesn't leak into the sky.
Image Processing → Color Saturation.
  1. Raise saturation modestly (background protection on) so only the galaxy midtones gain color, not the sky.
Color / Saturation controls (or the SCNR + saturation pass). Boost galaxy midtone saturation with background protection so the sky stays neutral.

Curves pi_curves

Parametric tone curve for the final brightness/contrast/colour shaping, applied to the starless stretched image before recombination.

NOVA evidence

after curves in this recorded runbefore curves in this recorded run
beforeafter
curves in this recorded run
Process: CurvesTransformation.
  1. Gentle S-curve on the RGB/K channel for contrast; pull a highlight rolloff point down to protect a bright core.
  2. Keep the shadow end anchored — don't lift the already-dark sky (that kills contrast).
  3. Use the Saturation channel here too for subtle colour depth.
Image Processing → Curves (Siril 1.2+).
  1. Gentle S-curve: lift the upper-mid for contrast, pin the shadow point so the sky doesn't crush. Small moves only.
Curves Utility. Gentle S-curve for contrast; pin the shadow so the sky doesn't crush, lift the upper-mid where the galaxy structure lives.

Stretch Stars

Stretches the stars-only layer on its own, so star brightness, size and colour are controlled independently of the nebula.

NOVA used: stretch_factor = 1.5, saturation = 1.2, do_scnr = True, scnr_amount = 0.9, gamma = 1.0
Comparison not recorded. This run did not preserve a separate before-and-after preview for this step.
Process: ArcsinhStretch or HistogramTransformation on the stars-only layer.
  1. Stretch the star image on its own, gentler than the nebula — keep stars secondary (p90 ≈ 0.25).
  2. ArcsinhStretch preserves star colour well; raise Stretch factor gradually with Real-Time Preview.
Stretch the stars-only image separately with GHS/Asinh, lighter than the galaxy, then bump saturation ~1.2 and SCNR the green before recombining.
Star Stretch.
  1. On the stars-only layer: the Star Stretch module auto-picks a stretch from the star profile, with a saturation boost and SCNR — exactly what the pipeline runs.

Sky Mute

Comparison not recorded. This run did not preserve a separate before-and-after preview for this step.
No specific recipe recorded for this tool — see the other two tabs.
No one-click tool. Build a range-selection mask on the background and pull its level down with Curves, protecting the galaxy — the manual equivalent of the pipeline's masked sky-mute.
No dedicated tool. Use a mask + Curves to pull the background down while protecting the galaxy.

Combine Stars Screen

Screen-blends the separately-stretched stars layer back onto the processed starless image — the inverse of the star split, restoring the stars to a fully-processed nebula/galaxy.

NOVA evidence

after combine stars screen in this recorded runbefore combine stars screen in this recorded run
beforeafter
combine stars screen in this recorded run
Process: PixelMath (screen blend).
  1. With the processed starless and stretched stars images open, run PixelMath: 1 - (1 - starless) * (1 - stars) (the screen operator, the exact inverse of StarXT unscreen removal).
  2. Check bright stars for doubling/halos from imperfect removal.
PixelMath screen blend. With the stretched starless and stars-only images loaded: ~((~starless)*(~stars)) (screen), or use Image Processing → Pixel Math to add the stars back over the galaxy.
Image Combine — Screen blend.
  1. Combine the stretched starless galaxy and the stars-only layer with the Screen blend mode to lay the stars back over the galaxy without clipping.