Fixed-ground nightscapes, and the foreground this tool will not invent

A nightscape here is two products, not one: the sky is stacked, the ground is taken from a reference frame or reduced at the same pixel coordinates across several frames, and the two are joined along a sky region you mark — because nothing in this tool can register, warp or reconstruct a foreground, and pretending otherwise is how a landscape ends up subtly melted.

Two products, not one

The reason most nightscape stacks look wrong is that one operation was applied to two subjects. Stars move and a treeline does not, so a stack that aligns on stars smears the ground and a stack that aligns on the ground smears the stars. Averaging both without saying which you meant produces a picture that is slightly wrong everywhere and obviously wrong nowhere.

So this mode keeps them apart on purpose. The sky is built by the same accumulator every other mode uses. The ground is built separately, from frames whose tripod did not move, and the two meet along a boundary you draw.

What happens to the ground, exactly

There are two methods and neither of them moves a pixel:

Which frames contribute is recorded rather than assumed: the result carries where its ground came from, so "the trees are from frame 3" is a fact you can read rather than a thing you have to remember.

What it will not do, and why that is the honest answer

Nothing here can register, warp or reconstruct a foreground. If the tripod was nudged between frames, this mode cannot put the ground back together — and it does not try. A tool that warped a landscape into alignment would be inventing detail at the seams and inventing it convincingly, and the one place a viewer will never look for a fault is the part that looks sharp.

The practical consequence is a rule for the night rather than a setting: whatever else you change, do not touch the tripod. If it did move, the reference method on a single good frame is still a real picture; the median across frames that disagree about where the trees are is not.

Marking the sky, and the edge between them

The boundary is explicit because a guessed one is worse than a drawn one. A sky-detection model was considered and rejected on licence grounds rather than on quality — the reasoning is recorded in this repository — so what ships asks you where the sky is instead of pretending to know.

The edge is feathered rather than cut, so the join is a gradient rather than a line. That is the one place a composite normally announces itself, and a hard edge over a hundred exposures of slightly different sky brightness announces itself loudly.

Try it on your own night

Open the stacker Nothing is uploaded and nothing is installed; the frames are read in your browser.