NGC 7000 — how NOVA processed it
Workflow seestar_nebula v1.17.1 · physics score 8.5. 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.
Crop
Trims the ragged stacking borders — the low-coverage edges where dithering and field rotation mean only some frames contributed, so the signal there is noisier and the gradient is worst.
NOVA evidence
- Open DynamicCrop on the integration and drag the rectangle inside the ragged low-coverage border.
- To find the true common-coverage area, integrate with Generate integration weight map and crop to where the weight is full.
- Keep north-up; DynamicCrop updates the WCS/
CRPIXfor you.
- Drag a rectangle inside the ragged stacking border, then Image Processing → Crop (or the
crop x y w hcommand). - Siril preserves the WCS after the crop, so plate-solve stays valid.
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
- 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.
- The clean way is ImageCalibration → Output pedestal when you build the master, so it's already removed.
- 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.
- Set an output pedestal at calibration (
-pedestal=) so it's gone before stacking, or - subtract the floor afterward with PixelMath:
iif(I>m, I-m, 0)wheremis the background level from Statistics.
- Use only when calibration provenance independently establishes a residual offset in each channel; a positive image minimum is not enough.
- SASpro subtracts each channel's minimum and has no adjustable amount. Record the minima first, then compare clipping, channel statistics, and color.
- 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.
sigma = 5.0, kernel_size = 5NOVA evidence
- Run on the registered frames (ideally pre-integration).
- Without a master dark, enable Use Auto detect and set Hot/Cold Sigma ≈ 3–5 — only true outliers, never star cores.
- Use Real-Time Preview to confirm hot pixels vanish while stars are untouched.
- In Calibration enable Cosmetic correction with CC from sigma: Cold ≈ 3, Hot ≈ 3–5.
- Or run
find_hotto build a bad-pixel map and apply it. Confirm star cores are untouched in the preview.
- Enable it while calibrating light frames, before registration and integration.
- Match the input state: use Bayer-aware correction for undebayered CFA data; use the debayered/mono path only for matching inputs.
- 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.
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.
spcc_lp_filter = True, allow_sssc = TrueNOVA evidence
- Plate-solve first (ImageSolver / Image > Astrometry) so SPCC knows the field — it needs the local Gaia DR3 database configured.
- Pick the Sony Color Sensor + filter that matches the SeeStar S50; white reference Average Spiral Galaxy is a safe default.
- Run on linear data; check the residual scatter plot for a tight fit.
- Plate-solve first (Image Information → Astrometry).
- Choose the OSC sensor + your filter; run on linear data.
- No solve? Fall back to Color Calibration → Background Neutralization + manual white reference.
- Run SSSC on a linear, plate-solved color image and record the Gaia-XP matches, response solution, coefficients, and any fallback.
- 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.
- 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.
stellar_amount = 0.5, nonstellar_amount = 0.3NOVA evidence
- Run on linear data, after BGE/SPCC.
- Set Automatic PSF; start Sharpen Stars ≈ 0.25 and Sharpen Nonstellar ≈ 0.7–0.9.
- Classical alternative: Deconvolution with an external PSF from DynamicPSF and a star mask + local deringing.
- Generate a PSF from stars (PSF from stars), then Richardson–Lucy, ~10–20 iterations, with a moderate regularization to avoid ringing.
- Linear data only. Siril has no AI decon — for BlurXTerminator-class results use PixInsight or SASpro's Cosmic Clarity Sharpen instead.
- Run the Cosmic Clarity Sharpen module (Stellar / Non-Stellar modes), amount ~0.5 stellar / 0.3 non-stellar — the AI-decon equivalent of BlurXTerminator.
- Linear data; check star profiles for ringing.
Denoise Linear nxt
Reduces noise while the data is still linear — the most effective place to denoise, because the noise statistics are well-behaved and the stretch hasn't yet amplified them.
NOVA evidence
- Run on linear data (it's linear-aware).
- Denoise ≈ 0.8, Detail ≈ 0.15 — back off Detail if structure smears.
- Classical alternative: MultiscaleLinearTransform with noise reduction on the first 3–4 wavelet layers, or TGVDenoise.
- Anscombe VST + NL-Bayes; leave modulation at 1.0, enable cosmetic correction off. Run on linear data.
- Preview at 1:1 to confirm faint structure survives.
- Run on linear data, strength ~0.5; it's a learned denoiser that preserves faint structure better than a blur.
Star Sharpen bxt_correct_only
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.
NOVA evidence
- Enable Correct Only — this fixes star shape with no deblurring.
- Set both Sharpen amounts to 0; let it round and de-elongate stars only.
- Run after denoise if denoise has bloated the stars on a dense field.
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
- Enable Generate star image so you get both a starless layer and a stars-only layer that recombine by screen.
- Run it before stretching so the nebula can be pushed without bloating stars.
- Check the starless layer for dark pits where bright stars were.
- Run on the linear image; Siril produces a starless image and a stars-only image you can recombine later.
- DarkStar removes stars and can generate the stars-only layer for later recombination — the SASpro path the pipeline uses.
Stretch stat
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
- Read the auto-STF first (ScreenTransferFunction → wrench) to see a good starting black/midtone point.
- GHS: set SP (symmetry point) near the sky peak in the log histogram, raise D for strength, b for local contrast — preview live.
- Or drag STF into HistogramTransformation and apply to bake it in. Keep RGB linked to protect the SPCC colour.
- Aim the sky background into its per-type band and leave highlight headroom (don't clip the core).
- GHS: set the Symmetry point (
SP) just above the background, raiseD(stretch intensity) andb(local intensity) to lift the galaxy without blowing the core. - Autostretch (the eyeball icon) is a fast starting point but not final.
- 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.
- For galaxies, keep the target median low (darker sky) and let contrast come from Curves after.
Narrowband Norm
PixInsight NarrowbandNormalization — balances the Ha and OIII channels of duo-band data so neither dominates unnaturally.
o3_boost = 1.25, hoo_boost = 0.0NOVA evidence
- Feed the Ha and OIII channels; choose Equalize to balance them or a max-stars method to keep a dominant Ha.
- It's an aesthetic balance — judge against your intended palette, not a metric.
Color Boost
Hue-selective saturation boost — lifts the specific colours that matter for the target type while leaving the rest alone.
preset = nbn, global_sat_lift = 0.06NOVA evidence
- ColorSaturation: lift the curve only over the target hues — blue (spiral arms) or red/cyan (Ha/OIII) — and hold the rest flat.
- Protect stars/background with a range or star mask so the boost doesn't leak into the sky.
- Raise saturation modestly (background protection on) so only the galaxy midtones gain color, not the sky.
Curves pi_curves
Parametric tone curve for the final brightness/contrast/colour shaping, applied to the starless stretched image before recombination.
NOVA evidence
- Gentle S-curve on the RGB/K channel for contrast; pull a highlight rolloff point down to protect a bright core.
- Keep the shadow end anchored — don't lift the already-dark sky (that kills contrast).
- Use the Saturation channel here too for subtle colour depth.
- Gentle S-curve: lift the upper-mid for contrast, pin the shadow point so the sky doesn't crush. Small moves only.
Stretch Stars
Stretches the stars-only layer on its own, so star brightness, size and colour are controlled independently of the nebula.
stretch_factor = 2.5, saturation = 1.2, do_scnr = True, scnr_amount = 0.9, gamma = 1.0- Stretch the star image on its own, gentler than the nebula — keep stars secondary (p90 ≈ 0.25).
- ArcsinhStretch preserves star colour well; raise Stretch factor gradually with Real-Time Preview.
- 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.
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
- With the processed
starlessand stretchedstarsimages open, run PixelMath:1 - (1 - starless) * (1 - stars)(the screen operator, the exact inverse of StarXT unscreen removal). - Check bright stars for doubling/halos from imperfect removal.
~((~starless)*(~stars)) (screen), or use Image Processing → Pixel Math to add the stars back over the galaxy.- 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.
Halo Suppression
Reduces the colour halos and bloat around bright stars — the violet/blue rings refraction and the optics leave.
reduction_level = 1, is_linear = FalseNOVA evidence
- Build a mask isolating bright-star halos (StarMask, or StarXT residual).
- Through the mask, pull the violet/blue ring with CurvesTransformation (reduce saturation + slight darken), or use MorphologicalTransformation erosion.
- On dense fields keep it minimal so you don't crush thousands of small stars or cast the field blue.



























