Why Siril

Siril is free, open source, runs on Windows, macOS and Linux, and will take a folder of raw subframes all the way to a finished image without a subscription or a licence key. It is not a cut-down version of anything. The stacking engine and the calibration are as good as the expensive alternatives; what you give up is polish and a certain amount of hand-holding.

Every image in the gallery went through it. This is the route I take, in order, and the order genuinely matters — several of these steps stop working correctly if you do them after stretching.

The pipeline

Linear work first, then the stretch, then everything else Lights Darks Flats Bias Calibrate Register Stack Linear master remove sensor signal align every frame average out noise dark, flat, and correct one script does this whole row Background Colour Sharpen Stretch Stars & noise Export gradient removal SPCC deconvolution GHS or histogram StarNet, denoise 16-bit TIFF still linear — everything left of the line comes first non-linear from the stretch onwards
The vertical dashed line is the one rule that matters. Gradient removal, colour calibration and deconvolution all assume the data is still linear, and they misbehave badly if you stretch first.

The row you can automate

Siril ships with scripts, and for a one-shot-colour camera the OSC_Preprocessing script does the entire first row unattended. Put your subframes in folders named lights, darks, flats and biases, point Siril at the parent folder, run the script and go and make tea. It calibrates, demosaics, registers, rejects the frames that are worse than the rest, stacks, and leaves a single linear result behind.

There is a drizzle variant worth knowing about. If your pixels are large relative to the seeing and you dithered properly during capture — which the ASIAir does for free — drizzling recovers real resolution rather than merely resampling. If you did not dither, it does nothing useful.

What each calibration frame is for

  • Darks record the sensor's own signal — thermal noise and hot pixels — at the same exposure, gain and temperature as your lights. A cooled camera makes these reusable for months, which is one of the quieter arguments for cooling.
  • Flats record the optical path: vignetting, dust motes, uneven illumination. Shoot them at the end of the session, before anything is moved or rotated. An evenly lit white screen or the dawn sky both work.
  • Biases record the sensor's read floor. They take a fraction of a second each, so take plenty.

If you take nothing else, take flats. Missing darks costs you some noise. Missing flats costs you a corner-darkened frame with dust shadows that no amount of later processing will convincingly hide.

The stretch

Everything up to this point has been arithmetic. The stretch is where the image appears, and it is the step most worth spending time on. Astronomical data is overwhelmingly dark: almost every pixel sits within a whisker of black, with a handful of stars far out to the right. A screen cannot show that range, so you compress the bright end and expand the dark end until the nebula lifts clear of the background.

The same data, before and after the stretch Linear — straight out of stacking black white everything is jammed against zero After a generalised hyperbolic stretch background, lifted just clear of black black white faint signal now has room to be seen
Aim to land the background peak a little way off the left wall, not against it. Pushed hard against black you have thrown away the faintest outer structure permanently; too far right and the image looks washed out and grey.

Siril's histogram transformation with its autostretch preview is the quick route. The generalised hyperbolic stretch is the better one: it gives you separate control over where the stretch is centred and how hard it bites, so you can lift faint nebula without inflating every star into a white disc.

The steps people get wrong

  • Stretching before background extraction. Gradients from streetlights or moonlight are additive and roughly smooth while the data is linear. Once stretched they are neither, and the extraction can no longer model them.
  • Colour calibrating too late. Run SPCC on linear data. It plate-solves the frame, looks up the actual stars in your field, and sets the colour balance from real spectra rather than from what you think looks right.
  • Too much deconvolution. It is the fastest way to make an image look processed. Small amounts, on linear data, and stop before it starts ringing.
  • Denoising early. Noise reduction is close to last. Applied early it removes the faint detail you spent all night collecting.

Stars, and knowing when to stop

StarNet separates a stretched image into a starless version and a star mask. That lets you stretch the nebula hard without the stars swelling, then recombine them at whatever weight looks right. It is the single biggest step up in the look of an image once the fundamentals are in place, and it is also the easiest thing to overdo — a nebula with no stars in front of it stops looking like a photograph.

The last thing to say is that more integration beats better processing, every time. Six hours of subframes processed carelessly will out-perform one hour processed brilliantly. If an image is fighting you, the answer is usually another night on the same target rather than another hour at the keyboard.