Add commentMore actions
Astro image processing demo : A beginner-friendly workflow with Siril, GraXpert & Affinity.

Astro image processing demo : A beginner-friendly workflow with Siril, GraXpert & Affinity.

11 Dec. 2025

Following our Astro Image Collection Challenge held in November, here's our image processing demo.
The image we’re going to build comes from a dataset kindly provided by Vaonis community member Frédéric Courteix. He captured the Elephant’s Trunk Nebula (IC 1396) with a Vespera 2 smart telescope over several nights, then exported a pre-stacked 16-bit TIFF from the Singularity.

In this guide, we’ll walk through a complete processing workflow based on that dataset:

  • Siril – clean the background and calibrate colors
  • GraXpert – refine background and reduce noise
  • Affinity – stretching, color, contrast, and final polish
  • StarXTerminator (plugin) – separate stars from the nebula

The explanations are aimed at beginners and intermediate users. You don’t need to be an expert to follow along; just some basic familiarity with opening files and working with layers is enough.

Here's the video and transcript.

1. The Dataset & the Tools

The data:

  • Object: Elephant’s Trunk Nebula (IC 1396)
  • Telescope: Vaonis Vespera smart telescope
  • Integration: ~21 hours over 8 nights
  • Mode: Mosaic to frame the whole nebula
  • Environment: Suburban sky, sometimes with the Moon up
  • File: Pre-stacked 16-bit TIFF exported from the Vaonis app

Why start from the TIFF and not a JPEG? Because the TIFF is:

  • Linear (no edit applied yet)
  • 16-bit, preserving faint details and subtle nuances
  • Much better for serious processing than an 8-bit compressed JPEG

Software we’ll use:

  • Siril – free, cross-platform astro processing tool
  • GraXpert – free tool specialized in background extraction and noise reduction
  • Affinity Photo – paid but affordable; powerful layer-based editor
  • StarXTerminator – paid plugin for star removal (optional but very useful)

2. First Contact with the Image in Siril

2.1. Open the linear stack

  1. Launch Siril.
  2. Open the 16-bit TIFF from Vespera.
  3. At first it will look almost completely black. That’s normal:
    1. The data is linear, meaning it hasn’t been brightened yet.
    2. All the nebula signal is stuck in the darkest part of the histogram.

2.2. Use the visual stretch (for your eyes only)

At the bottom of the Siril window:

  1. Choose a display transformation (AutoStretch).

Important: this doesn’t modify the data, it only helps you see what’s there.

3. Cleaning the Sky Background in Siril

Under suburban skies or with the Moon up, you almost always get a gradient: the sky is brighter on one side of the image.

3.1. Background extraction

  1. Go to Image Processing → Background Extraction.
  2. Recommended simple settings for this kind of large, diffuse nebula:
    • Method: Polynomial
    • Order: 1 (a gentle, global gradient)
    • Enable dither
  3. Let Siril place its sample points automatically (or adjust if needed).
  4. Click Compute / Apply.

Then look at before / after (toggle the preview):

  • The nebula should look the same.
  • The background should be more evenly dark across the frame.
  • No strong bright band or corner anymore.

4. Astrometry & Color Calibration in Siril

To get natural colors, we’ll use photometric color calibration, which needs to know where in the sky the image is.

4.1. Plate solving (astrometry)

  1. Go to Tools → Astrometry.
  2. Enter the target name: IC 1396.
  3. Check focal length and pixel size to match your setup (for Vespera, Siril may auto-detect them).
  4. Start the plate solve.

If it succeeds, Siril now knows the exact coordinates and can match stars against catalogs.

4.2. Photometric color calibration

  1. Go to Image Processing → Color Calibration.
  2. Use Photometric Calibration only (skip spectrophotometric if it doesn’t work on this dataset).
  3. Define a background reference area:
    • Select a region with as little nebula as possible.
    • Not easy here, since IC 1396 is very extended
  4. Run the calibration.

5. Export a Linear FITS from Siril

We’ve cleaned the gradient and calibrated colors, but we still haven’t permanently stretched the image. We'are going to do this in Affinity

  1. Go to File → Save As…
  2. Choose FITS and keep it 16-bit (or 32-bit if you prefer and your editor supports it).
  3. Siril may warn you that the image is linear – that’s exactly what we want.

We’ll now move to Affinity.

6. First Stretch and Star Separation in Affinity Photo

6.1. Open the FITS and apply the initial stretch

  1. Open the FITS in Affinity Photo.
  2. Affinity will usually add a Tone Stretch adjustment automatically.
  3. In the Tone Stretch settings:
    • Method: Structural
    • Gamma: 1
    • Stretch Factor: push fairly high
    • Compression: start at 0

You should now see the nebula clearly, but the image will still look somewhat flat.

6.2. Create a starless and a stars-only layer (StarXTerminator)

The goal: process the nebula independently from the stars, so you don’t bloat them or blow them out.

  1. Merge visible:
    • Right-click in the Layers panel → Merge Visible.
    • You now have a single layer with the current stretched image.
  2. Remove stars:
    • With that layer selected, run StarXTerminator (Filter → Plugins → StarXTerminator).
    • Choose settings for “Stars only” vs. “Starless” according to the default preset.
    • After processing, you should see a starless nebula layer.
    • Rename it to “starless”.
  3. Create a stars-only layer:
    • Place the starless layer above the original stretched layer.
    • Set the starless layer’s blend mode to “Difference”.
    • You should now see mostly stars.
    • Right-click → Merge Visible → this gives you a stars-only layer.
    • Set the stars layer’s blend mode to “Screen” so stars appear correctly.
    • Set the starless layer back to Normal.

You now have:

  • Nebula (starless) layer
  • Stars layer on top

You can hide the stars layer while working on the nebula.

7. Revealing the Nebula with Curves

With stars hidden, let’s bring out the structure of the nebula.

  1. Add a Curves Adjustment above the starless layer.
  2. Look at the histogram: most of the signal is crowded toward the left (shadows).

Basic curve shape:

  • Add a point slightly right of the main peak and pull it up → brightens the nebula.
  • Add a point in the lower shadows and pull it down → darkens the background.
  • Flatten the upper part of the curve a bit → avoids clipping highlights.

8. Background & Noise Treatment in GraXpert

To refine the background and tame noise, we’ll pass through GraXpert.

8.1. Export from Affinity

  1. With your current nebula stretch (and stars turned off), export as:
    • 16-bit TIFF

8.2. Background extraction in GraXpert

  1. Open that TIFF in GraXpert.
  2. Ensure the displayed image isn’t re-stretched by default (you’ve already done the main stretch in Affinity).
  3. Enable Background Extraction:
    • Method: AI
    • Smoothing: start around 0.5
  4. Compute the background model, then apply.

Check the before / after

8.3. Noise reduction in GraXpert

  1. Go to the Noise Reduction section.
  2. Start with default settings, then increase strength gradually.
  3. Aim for:
    • Noise clearly reduced
    • Nebula details still visible, not smeared
  4. Once you’re happy, export again as 16-bit TIFF

9. Final Polish in Affinity Photo

9.1. Re-import the GraXpert result

  1. Back in Affinity Photo, drag the new GraXpert TIFF into your document.
  2. Place it above your previous nebula layer.
  3. Make sure the Stars layer is still on top and can be turned on/off.

Zoom in:

  • The background should be smoother.
  • Faint structures should still be there.

If there’s still some grain, you can use Affinity’s Denoise filter:

  1. Filter → Noise → Denoise.
  2. Set Luminance Detail to high (to protect details).
  3. Raise Luminance gently (e.g., 20–40%) until noise is acceptable.

9.2. Second curves pass: shape the contrast

Add another Curves Adjustment:

  • Slight S-curve:
    • Lift mid-tones (nebula).
    • Slightly lower shadows for depth.
  • Watch the brightest parts and avoid a flat white “burned” region.

Again, check before/after often.

9.3. Color refinement with Selective Color

Now let’s tune the color of the nebula.

  1. Add a Selective Color adjustment layer.
  2. In the drop-down, choose Reds:
    • Reduce Cyan (e.g., −20 to −40).
    • Slightly increase Magenta (+0 to +10).
    • Increase Yellow (+30 to +60) for a warmer emission tone.

9.4. Orientation and stars reintegration

  • Use Rotate / Flip so that the Elephant’s Trunk “trunk” points downward.

Then:

  • Turn the Stars layer back on (blend mode: Screen).
  • Adjust the layer opacity if the stars feel too dominant.

9.5. Sharpening the nebula

For fine detail:

  1. Hide the Stars layer again (you don’t want to sharpen star noise).
  2. Apply Multiband Sharpen (or a similar sharpening filter) to the nebula:
    • Base radius: small (around 0.5–1 px as a starting point).
    • Increase contrast in a gentle way.

Check at 100% zoom:

  • Fine structures should pop.
  • Noise should not explode.

If noise becomes too visible, slightly increase denoising or reduce the sharpening strength.

Finally, show the Stars layer again and make sure the whole image feels balanced.

10. An Important Point: The Background Is Not Pure Black

A common reflex is to force the background to absolute black. For IC 1396, that’s not realistic.

In this field:

  • You’re looking into a rich region of the Milky Way.
  • There’s emission and dust everywhere.
  • The darkest “blobs” you see are dark nebulae and Bok globules:

If you crush the background to pure black:

  • You lose the subtle luminosity of the gas.
  • The dark nebulae lose their contrast (they’re no longer darker than the surroundings).
  • The image looks more “graphics” than “astrophotography”.

So, let your background stay slightly luminous and textured, especially in Milky Way regions. It’s physically more accurate and visually more interesting.

11. Final Export 

When you’re satisfied:

  1. Save your layered Affinity Photo file so you can revisit it later.
  2. Export:
    • A 16-bit TIFF for archiving or printing.
    • A JPEG for web sharing (resize and add mild sharpening if needed).

With this workflow, you can go from a flat, linear stack to a detailed, natural-looking portrait of the Elephant’s Trunk, and apply the same approach to many other deep-sky targets captured with your smart telescope.