Image processing tools: Affinity becomes free and gains a new astrophotography feature (+ Tutorial)
07 Nov. 2025
Affinity Photo has long been a valuable complement to specialized astrophotography tools such as PixInsight, Siril, or AstroPixelProcessor. It offers native FITS support, compatibility with key astrophotography plugins like StarXTerminator and BlurXTerminator, and a fast, real‑time, non‑destructive workflow that lets you fine‑tune every step of your processing pipeline. Its sleek, modern interface makes it an excellent companion for smart telescopes like Vespera, where ease of use is key.
The new version, now simply called Affinity, is available on Windows and macOS — and it’s completely free. Among its improvements is an integrated Tone Stretching tool dedicated to revealing faint deep‑sky details.
Introducing tone stretching: revealing the hidden details in your data
In astrophotography, stretching is one of the most fundamental and crucial steps of post‑processing. To understand why, let’s begin with what happens when you capture and open a RAW image.
RAW data: the foundation of astrophotography
Post‑processing should always be performed on RAW files rather than JPEGs or other compressed formats. RAW preserves the entire dynamic range recorded by your telescope’s sensor, from the faintest glow of a nebula to the brightest stars. JPEGs are already tone‑mapped, compressed, and potentially clipped; lost information in the shadows cannot be recovered. RAW keeps all the subtle signal you need for deep‑sky processing.
Why your Vespera RAW TIFF looks black
When you open a RAW TIFF from your Vespera (or any smart telescope) in an image editor, you might be surprised to see almost nothing. The image often appears completely black or extremely dark, even though your capture session was successful.
This happens because the file is still in a linear state, the pixel brightness values directly correspond to the amount of light recorded by the sensor, with no adjustment for human perception.
The faint glow of a nebula may only be a few counts above the background noise, while stars are thousands of times brighter, but all that signal is packed into the darkest part of the histogram.

The same image before (RAW) and after stretchning
Linear data and the histogram
The histogram represents the distribution of brightness (intensity) values in your image, from black on the left to white on the right.
In a linear astrophotography image, almost all the signal - galaxies, nebulae, faint dust - sits tightly compressed near the left edge. The right side (bright tones) remains mostly empty, because the sensor has captured a huge dynamic range that hasn’t yet been adjusted for visual display.
Stretching: shaping the signal
Stretching remaps the histogram. It redistributes pixel values to favor the dark and mid‑tone regions where faint deep‑sky structures live, while mitigating the bright tones to avoid overexposure of stars and galaxy cores. Think of it as carefully unrolling compressed data so hidden details emerge.
- Expand dark/mid‑tones to reveal dim nebulosity and galactic structure.
- Compress highlights to preserve star color and protect bright cores.

Signal repartition (histogram) of an unstretched (left) and stretched (right) image
From linear to non‑linear
After stretching, the image becomes non‑linear: tone mapping no longer directly reflects the sensor’s raw response but is optimized for viewing. At this point, you can proceed with color balance, denoising, sharpening, and other refinements.
Stretching is arguably the most crucial stage of astrophotography post‑processing. It turns invisible raw data into a visible window onto the Universe, and everything that follows depends on the quality of this step.
Benefits of performing stretching and further adjustments in Affinity?
Affinity is layer‑based and fully non‑destructive, which brings several advantages:
- Edit anytime: Any adjustment, including Tone Stretching, can be edited or reverted later, even after you’ve added curves, levels, color, saturation, or masks.
- Live adjustments: All changes update instantly on the canvas; zoom freely to judge fine details while moving sliders.
- Speed for iteration: Affinity is fast, encouraging multiple iterations and fine‑tuning until you reach the desired result.
Quick Tutorial: Stretch a Vespera Image in Affinity
Example target: the Hidden Galaxy (Caldwell 5) in Camelopardalis, one of the few galaxies visible within the Milky Way’s band. Captured with Vespera II X_edition
About file formats
Affinity’s Tone Stretching works natively with FITS and camera RAW files. You can still use it with Vespera RAW TIFF via a simple workaround, or export a FITS from Siril/PixInsight after your initial steps (gradient extraction, color calibration, etc.).
Step 1 — Activate the Retouching Workspace
The new Affinity unifies pixel, vector, and publishing tools under different workspaces, each tailored to a specific task.
The Retouching workspace is particularly well-suited for astrophotography processing.
- Use the workspace selector at the top‑left. If “Retouching” is hidden, open the three‑dot menu, enable Retouching, and select it.
Activating and selecting the Retouching Studio
Step 2 — Open Your Image
- Go to File → Open and select your RAW/FITS/TIFF, or drag‑and‑drop it into Affinity.
Step 3 — Apply the Tone Stretching Adjustment
If you open a FITS file, Affinity automatically adds a Tone Stretching adjustment layer.
If you open a TIFF, you’ll need to add it manually:
- In the left panel, open the list of adjustment layers.
- Scroll down to find Tone Stretching.
- Click its icon to display the presets list.
- Select Default to apply the adjustment to your image.

Affinity user interface
Step 4 — Adjust the Stretching Parameters
In the Layers panel (on the right), you should now see two layers: your RAW image (background) and the Tone Stretch adjustment.
- Click the Tone Stretching icon to access its settings.
Choose the stretching method
Affinity offers several stretching algorithms, each producing slightly different results. Because edits are live, you can easily experiment with each.
According to the documentation:
- Basic – Standard stretch, brightens the image globally.
- Arcsinh – Gentle logarithmic stretch that preserves relative color intensity.
- Logarithmic – Similar to Arcsinh but with slightly more highlight compression.
- Structural – More aggressive stretch with brighter highlights.
- Color Preserving – Aggressive stretch that maintains color intensity.
For this example, choose Arcsinh, as it provides a balanced stretch that enhances faint detail while preserving color.
Adjust the sliders
- Stretch Factor – Controls the strength of the stretch. Move it left until faint details become visible. (Set to 1 in our example.)
- Gamma – Adjusts overall contrast between the galaxy and background. Avoid over-darkening the sky; we used 0.8.
- Compression – Fine-tunes overall contrast. At 0%, you get maximum contrast; at 100%, highlights are dampened, and blacks raised. We use 0% for this image to preserve contrast.
Once done, you can add other adjustments such as Vibrance (to boost colors) or White Balance (to correct a yellow cast).
Note that you can still revisit and modify the stretching at any time.

Result of a basic post-processing workflow
Going Further
With the basic stretch complete, you can now enhance your image further.
Use Curves and Levels for additional contrast. You can apply plugins like StarXTerminator and NoiseXTerminator directly within Affinity.
This approach helps prevent noise from becoming too visible when pushing the image further and allows you to process stars and galaxies separately.
You can also switch between Affinity and other specialized software as needed.
Export your image as a 16-bit TIFF, edit it in PixInsight or Siril, then re-import it into Affinity by simply dragging and dropping the file — it will appear as a new layer in your stack.

Result with an advanced processing workflow