User manual for Halcyon Days
How to install
- Download and unzip the software, if the latter isn’t done automatically. The resulting folder contains the main script HalcyonDays.jsx and action sets, ending in .atn.
- Quit Photoshop.
- Copy the script HalcyonDays.jsx to Photoshop’s scripts folder. On Mac it’s in /Applications/Photoshop 202x/Presets/Scripts and on Windows 10 it’s in C:\Program Files\Adobe\Adobe Photoshop 202x\Presets\Scripts. You may have to change the permissions of this folder to copy the script there.
- Start Photoshop and make sure Halcyon Days shows up in the menu File/Automate.
- Install the Photoshop actions by double-clicking on the files ending in .atn, or by loading it in the Actions palette.
How to run
You run the script by running one of the supplied actions, or by making your own actions. If you expand an action and double-click on the recorded Halcyon Days step you can edit the saved script settings in the full settings dialog.
Using and editing the ready-made actions
Halcyon Days actions are built from saved script settings that determine the resulting look. Older action steps recorded with the original recipe string are still supported; when you open and resave them, Photoshop stores the newer full settings format while keeping backward compatibility with the old recipe-based actions.
By default, the images won’t be saved after the script runs, leaving them intact. Because of this, the actions won’t work for automation (such as droplets) just yet. If you make a droplet at this stage you’ll be prompted to save the image on every droplet run.
When you’re ready to have an action save the resulting image, or when you want to edit an action’s look, expand the action (click on the right bracket) to show the recorded script name, Halcyon Days. When you double-click on this, a dialog will open where you can edit the saved settings. Use Update Settings to save your changes when editing an action step.
If you check Save and close when done the script will start saving and closing the image after it runs, so leave this unchecked while you’re still trying out different settings.
Making your own actions
Make your own settings-based actions by duplicating an existing action (click on the small hamburger menu in the upper right corner of the Actions palette and choose Duplicate) and change the name (by double-clicking on it) and edit the settings as outlined above.
You can also record your own actions from scratch by having an image open and then clicking on the plus icon in the Actions palette, naming the action and starting recording. Choose Halcyon Days from the File/Automate menu, set the look you want in the settings dialog, make sure Save and close when done isn’t checked (otherwise the image will close and you can’t stop the recording) and click Run With These Settings to run the script. When it’s finished, open the settings again as outlined above, check Save and close when done, and use Update Settings if you’re ready for the script to start saving your images.
You can make as many actions with different settings as you like.
The settings dialog
The Halcyon Days settings dialog is organized into visual groups so you can build the look without editing any text manually.
- Glow Colors — this section contains separate Inner Glow and Outer Glow controls. Each glow has a live swatch, RGB fields, and a Pick… button that opens Photoshop’s color picker. These colors define the inner and outer halation tints.
- Threshold Settings — this section controls which parts of the image are treated as highlight sources. Highlight Cutoff Mode lets you choose
AutoorManual. Below that are sliders for Highlight Cutoff Value, Minimum Highlight Cutoff, Highlight Hardness, Highlight Tonal Range, and Perceptual Gamma. - Effect Settings — this section controls the shape and intensity of the local halation itself, with sliders for Bloom Radius, Bloom Fraction, Bloom Brightness, and Bloom Multiply, plus the Halation Grain checkbox.
- Global Effects — this section contains Add Global Halation, Boost Highlight Chroma, and Smooth Chroma Transitions. The first two have both a checkbox and a percentage slider/field on the same row, so you can both enable the effect and control its strength. Smooth Chroma Transitions is a simple on/off checkbox.
- Work in 16-bit — this checkbox sits outside the grouped panels, just above Save and close when done. When enabled, the script temporarily converts the document to 16-bit during processing.
- Save and close when done — this checkbox determines whether the script saves and closes the document after processing.
When the script is launched normally from the menu or while recording a new action, the main button is Run With These Settings. When you edit an already-recorded action step, the button changes to Update Settings.
Hard-coded / script-default settings
Some behaviour and defaults are set directly in the .jsx source and are not exposed in the dialog or the recipe string. To change these you must edit HalcyonDays.jsx.
- halation_grain_opacity — controls the opacity of the halation grain layer after it is created. Default:
50.
Global halation
Global halation is a broad, image-wide glow effect that recreates an atmospheric quality seen in certain film stocks and exposure conditions. In analog film, global halation occurs when light scatters through the entire film base and emulsion layers, creating a subtle veil that affects the entire image rather than just individual highlights. This is particularly visible in high-contrast scenes or when shooting toward bright light sources—the overall image takes on a softer, more ethereal quality as if wrapped in a gentle haze.
The script emulates this by creating a heavily blurred duplicate of the image, analyzing its highlight energy to determine appropriate opacity, and applying halation color tints (primarily the outer color, with inner color applied to the brightest areas). Unlike local halation (which creates distinct glows around individual bright sources), global halation responds to the overall luminosity and tonal character of the entire image, becoming more pronounced in bright, high-key scenes and more subtle in darker images. This adaptive behavior mimics how film base scatter varies with exposure intensity.
Enable global halation from the dialog with the Add Global Halation checkbox. Use the percentage field or slider on the same row to control the strength (1–100). Lower values (20–40%) give a subtle atmospheric veil suitable for adding dimension without obvious glow. Medium values (50–70%) produce classic film-like diffusion. Higher values (80–100%) create pronounced, dreamy halation for high-key or backlit scenes. The effect combines with your Inner Glow and Outer Glow color settings, allowing warm golden veils or cooler tones depending on your settings.
Boost Highlight Chroma
The Boost Highlight Chroma option selectively reinforces color saturation in highlight regions, mimicking how film emulsions often retain and even intensify chroma in bright areas rather than washing out to white. This is a key characteristic of analog film that digital sensors typically don’t reproduce.
The script builds a highlight mask from the image’s luminance channel focused on the brightest tonal regions, then applies targeted chroma smoothing and selective color curve adjustments in Lab color space to both the a and b channels. The result is blended back using Color blend mode, which preserves luminance while enriching chroma—ensuring that highlights become more colorful without changing their brightness.
The percentage control (1–100) determines the strength of the chroma boost. In the dialog this is exposed as a percent field plus slider on the Boost Highlight Chroma row. Lower values (20–40%) provide subtle, naturalistic enhancement suitable for most images. Higher values (50–80%) create more pronounced film-like color intensity in highlights, useful for high-key scenes or when emulating specific film stocks with strong chroma retention. The effect automatically scales based on your Highlight Tonal Range setting to maintain coherent results.
This feature is particularly effective when combined with warm inner halation colors, as it helps preserve the golden/amber glow that characterizes many classic film stocks in backlit scenes.
Smooth Chroma Transitions
The Smooth Chroma Transitions option applies microscopic Lab-channel softening to recreate the organic color blending characteristic of film grain and dye clouds. Film emulsions don’t render perfectly sharp color transitions—the physical structure of grain clumps and dye layers creates subtle color diffusion that softens chroma boundaries while preserving luminance detail.
The script applies tiny, carefully calibrated micro-blurs primarily to the perceptual Lab a and b color channels, with minimal impact on the lightness channel. This removes the harsh, “digital” feel of pixel-perfect color edges and introduces the gentle chroma roll-off you see in film scans. The effect is subtle but crucial for authenticity—it’s the difference between a clinically sharp digital render and the softer, more painterly quality of analog film.
Highlight and bloom — how they work and how they interact
Highlight Tonal Range controls how far down from the absolute brightest pixels the script includes data for the bright-pass (0–255). Small values restrict the bright-pass to the very tips of highlights, producing thin rim details; larger values include more of the nearby tonal ramp and create a wider base for rim and bloom effects.
Highlight Hardness controls how sharply the bright-pass is shaped before rim and bloom are generated (0–60). Higher values steepen the tonal slope around highlights so that brightness is concentrated into a thin, bright edge with a darker falloff immediately outside, producing a narrow, high-contrast rim. Lower values keep the slope gentle, spreading brightness over a wider area and creating a softer, more gradual halo.
Bloom Radius is the base blur radius used to create the halation glow (scaled by document size). Larger radii produce a broader, softer glow that extends further from highlight sources; smaller radii keep the glow compact.
These three settings form a chain: Highlight Tonal Range selects which pixels are considered highlight sources, Highlight Hardness sculpts those sources by modulating midtone compression, and Bloom Radius then blurs the sculpted sources into the visible glow. For example, a large tonal range with high hardness yields a rim that originates from a wide band but appears narrow and contrasted; increasing bloom radius in that case spreads the rim into a softer halo.
Additional related controls: Bloom Fraction sets the inner-to-outer blur ratio (inner blur = Bloom Radius / Bloom Fraction), and Bloom Brightness adjusts post-blur brightness/contrast to compensate for darkening from large radii. Perceptual Gamma remaps the Highlight Tonal Range response for perceptual responsiveness, so slider steps may have non-linear visual impact.
Tips and tricks
- If you want to change the color values in actions, darker colors results in a weaker effekt and brighter colors in a stronger effect. If you set the red, green and blue color to the same value you get a grayscale color, useful for monochrome halation.
- Setting Highlight Cutoff Mode to
Automeans the script will determine the brightest level in your image and calculate where to place halation from there. Minimum Highlight Cutoff then sets the lower limit for that automatic result.