StellarPix
← Back to Learn
ProcessingPublic tutorial · No membership required12 min read

Stretch with GHS: When to Choose It or MAS

Make a controlled first stretch with GeneralizedHyperbolicStretch, refine contrast in selected brightness ranges, and compare the result with MultiscaleAdaptiveStretch. Learn which approach fits your data and how much control you want.

Sources reviewed October 25, 2026

Two stretching approaches to compare

A permanent stretch turns a dark linear image into a display-ready image. GeneralizedHyperbolicStretch, or GHS, gives you direct control over the shape and focus of an intensity transformation. MultiscaleAdaptiveStretch, or MAS, offers an adaptive multiscale approach. Both belong at the stretching stage, after the appropriate linear preparation.

Use these as alternative first-stretch experiments on separate copies. You do not need to apply MAS and then GHS as a required sequence. Neither can recover clipped data or turn weak signal into additional exposure time.

The comparison below is practical guidance, not a claim that either tool always produces a better image. A bright galaxy core, faint dust, and a starless narrowband nebula can call for different compromises.

ChooseUseful starting situationWhat to evaluate
MASYou want an efficient adaptive baseline with integrated contrast-recovery controlsFaint detail, star profiles, and the balance of recovered contrast
GHSYou want to place contrast deliberately in a particular brightness rangeCurve shape, background, highlight behavior, and the effect of each pass
Compare bothOne trial makes the background, cores, or stars difficult to balanceResults from the same linear checkpoint at comparable presentation brightness

1. Open the process and prepare the checkpoint

Use the GHS publisher’s current installation instructions and compatibility information. Its process module is GeneralizedHyperbolicStretch; older tutorials may use a script with different spelling and controls. The publisher states that from PixInsight 1.9.4 its repository installs the process rather than the superseded script.

Begin with an integrated, gradient-corrected linear image after the appropriate channel combination and calibration. Complete operations that require linear data before stretching. Save Target_linear_ready.xisf, then make separate Target_GHS_trial and Target_MAS_trial copies.

If using StarXTerminator, follow the star-separation lesson and extract stars before this stretch. GHS can change star profiles in ways that complicate later removal. Keep a separate stars branch and use the same star-restoration setup when comparing finished object branches.

Find GeneralizedHyperbolicStretch through All Processes and reset the instance. Confirm the intended view is active. For the first global-stretch exercise, disable unintended masks and record that choice.

2. Understand the controls before applying

Keep a small set of controls in focus and use the installed help for version-specific labels. These controls describe intensity ranges, not particular physical objects: a star and a nebular feature can share similar pixel values.

ControlPurpose in this exercise
Stretch factorOverall transformation strength; zero provides an unchanged starting comparison
Symmetry point (SP)Brightness value around which contrast is focused
Local intensity (b)How concentrated that contrast redistribution is around SP
Protect shadows / Protect highlightsModify behavior toward the dark and bright ends of the range
ModeHow the transformation is applied to grayscale or color data

3. Explore a first stretch in preview

Start with a conservative global RGB/K trial. This simplifies the color options for learning; more specialized color-preserving modes can be compared later. Do not adjust red, green, and blue independently to conceal an unfinished calibration problem.

  1. Choose the Generalized hyperbolic transformation type, leave Invert off, and select RGB/K for this baseline. Start with Stretch factor at zero and leave blackpoint and whitepoint at their neutral endpoints where applicable.
  2. Use STF temporarily to locate faint structure in the linear source. With broadcast readouts enabled, sample a small representative region near the faint signal you want to reveal. Inspect its actual source readout and use Send to SP to set an initial focus. Avoid a lone noisy pixel or saturated star.
  3. Turn STF off before judging the real-time stretch preview. Zoom the histogram if needed to see the dark linear data. A dark source view is expected before the transformation is applied.
  4. Raise Stretch factor gradually while exploring Local intensity and small SP changes. Hold two controls steady while testing the third. Bring out useful structure without forcing a fixed background brightness or clipping bright regions.
  5. Compare fit-to-window and 1:1 views of faint areas, bright cores, and stars. Once a modest first pass is useful, save its process instance and apply once to the working copy. Save Target_GHS_pass01.xisf and confirm its appearance with STF off.

4. Refine contrast in a separate pass

A first stretch need not finish every brightness range. From a saved pass-one duplicate, identify a midtone region that looks flat. Use its current pixel values for a new SP trial; the original linear readout no longer describes this stretched image.

Begin the second trial at zero Stretch factor again so a saved first-pass instance is not accidentally repeated. Increase gently and compare broader versus more concentrated Local intensity. Keep the first-pass result available and save the new configuration separately.

Explore shadow and highlight protection only to address an observed problem. They reshape the distribution of contrast; they are not absolute locks that guarantee unchanged background or star cores. Recheck the rest of the image whenever changing protection.

If a trial loses faint dust, weakens a bright core excessively, or amplifies noise, return to the prior checkpoint. Do not keep adding passes until every region looks equally prominent. Record the sequence of accepted passes so the result can be reproduced.

5. Check color and highlight tradeoffs

For a later comparison, test GHS’s Colour mode on a fresh copy at the same starting stage. Read the documentation for Colour blend and Clip type before using them. The mode can retain stronger color, but bright channel values need appropriate handling; it is not an automatic guarantee against clipping.

Inspect bright stars, saturated nebular regions, and smooth color transitions. Choose the mode and strength on the basis of the image, not the most vivid preview. Save the mode and any clip-handling choices with each pass.

Keep highlight recovery expectations realistic. If the linear source contains a clipped core, a different stretch cannot reconstruct it. If only the trial clips, return to the linear or previous-pass checkpoint and reduce or reshape the transformation.

Do not depend on an inverse stretch to replace saved originals. Clipping and some color-mode operations limit reversibility. Keep high-precision XISF checkpoints throughout.

6. Compare GHS with MAS fairly

Return to Target_MAS_trial made from the same linear-ready image and follow the MAS lesson. Compare the resulting display with STF off and at similar overall brightness. Do not run MAS on the already stretched GHS result for this comparison.

Inspect the same faint structure, smooth background, bright core, and star profiles at identical zoom. Include presentation size as well as 1:1. Avoid changing saturation, denoising, or HDRMT on only one branch during the initial comparison.

Prefer MAS when its adaptive baseline gets you to a satisfying balance with fewer adjustments. Prefer GHS when deliberate curve placement produces a balance you could not obtain as easily with the MAS trial. These are workflow preferences to test, not rules assigning a tool to every galaxy or nebula.

If both are poor, revisit the input’s gradients, noise, calibration, and actual dynamic range. More aggressive stretching can make defects easier to see without making the image better.

Troubleshooting and the finishing handoff

The preview looks washed out or too bright: check STF, active view, transformation type, and whether you accidentally reapplied a previous pass. Reset and compare from a known checkpoint.

SP changes seem extremely sensitive: use fine controls and inspect the source histogram and readout. A fixed numerical SP copied from another image is not a useful target.

Dark dust disappears: inspect shadows and blackpoint choices. Keep neutral endpoints for the baseline rather than clipping weak features to make the sky black.

Stars become harsh or lose color: lower strength, review mode and highlight handling, and compare the preserved stars branch if working starless. A stretched stars-only image needs its own restrained treatment rather than the nebula’s settings.

A predicted histogram disagrees with expectations: check the current view, masks, and color-mode options. The developer documentation notes limits to predicted-histogram behavior; inspect the applied trial itself before accepting it.

Save the accepted stretched image, linear source, each applied GHS instance in order, and comparison notes. Continue to masks, optional HDRMT or LHE, selective color work, and star restoration as appropriate. This is an original practice sequence; the process documentation governs current controls, while the older script primer supplies conceptual background.

See the technique in practice

This lesson is public. Detailed project workflows and dataset downloads require an active membership. Dataset selections follow your membership allowance; reading a workflow does not use a selection.

  • Revealing the East Veil filaments

    See this technique in the recorded East Veil Nebula NGC 6992 workflow. Use that project’s documented order, retained settings, and limitations.

    Public overview · Member-only detailed workflow

    Explore story and member workflow →

    View member dataset →Member-only download · selection allowance applies