Last year I was building a retouching action for a mid-sized e-commerce client who needed consistent skin softening applied across several thousand product shots. The action worked beautifully in testing. Then I handed it off to a junior editor on their team, opened the results two days later, and found that the softening brush strokes were painting at 40 pixels on their machine instead of the 400 pixels I’d set on mine. Same action file. Completely different output. The problem wasn’t the action. It was that I’d never thought carefully about how I built the brush it depended on.
If you work with Photoshop actions at any real scale, brush behavior is one of the quieter failure points. Most tutorials will tell you to define a brush tip and move on. What they skip is the part that actually matters when your brush has to perform the same way across different canvas sizes, operator setups, and automation contexts.
Why Brush Size Breaks Inside Actions
Photoshop stores brush size in two ways depending on how a stroke is recorded into an action. If you use an absolute pixel value, the action replays that exact pixel size regardless of the document resolution or canvas dimensions. On a 72 ppi web comp, a 200-pixel brush covers a lot of ground. On a 300 ppi print file at the same physical size, it barely registers.
The smarter approach is to record your brush strokes with the size expressed as a percentage of the document’s short side, but Photoshop doesn’t do this automatically. You have to set it up before you hit record. Go to Edit, then Preferences, then Cursors, and make sure you understand which size display mode you’re working in. More importantly, before recording any brush-based step inside an action, set your canvas to the resolution and size that represents your most common output scenario. Actions are snapshots. They remember what they saw, so make sure what they see is representative.
Building the Brush Tip Itself
When I create a brush for use inside an action, I start on a white background at exactly 2500 x 2500 pixels, 72 ppi. The size ceiling for a Photoshop brush tip is 2500 pixels, and building at that ceiling gives me the most flexibility to scale down without losing detail. I paint my brush mark in pure black on that canvas. Photoshop reads darkness as opacity when defining the tip, so a 50% gray mark will produce a 50% opacity stroke regardless of how your flow or opacity sliders are set. Pure black gives you maximum control to dial those settings yourself.
Once the mark looks right, I go to Edit, then Define Brush Preset, and I name it with a consistent convention. I use a format like CLIENT-TYPE-SIZE-DATE, so something like EC-SOFT-2500-2024. That naming structure means when I’m inside an action referencing a specific brush, I can find it instantly rather than hunting through a library of untitled presets. I keep a separate folder of source PSDs for every brush tip I build, backed up in two locations, because rebuilding a brush tip from scratch when a preset file corrupts is a miserable way to spend an afternoon.
The Settings That Actually Need to Match
Inside the Brush Settings panel, the settings that travel with the brush tip when you save a preset are not the same as the ones that get recorded into an action step. This distinction tripped me up early in my career and still catches people who haven’t thought about it.
Brush tip shape settings like spacing, roundness, and hardness are stored in the preset itself. Dynamics like size jitter, opacity jitter, and scatter are too. But the master opacity and flow values are layer-level or tool-level settings, and those are what the action records at playback. When I build a brush for a softening or texture step inside an action, I lock down spacing to around 15% for smooth coverage, set the hardness between 0 and 15% depending on whether I want a feathered edge, and I turn off every dynamic that could introduce randomness. Jitter is the enemy of a repeatable action. I want the same result every time.
Testing Before You Trust It
I built my first serious action-based workflow at 26, a basic sharpen-and-export sequence for a small commercial studio I was working at. I remember feeling like I had discovered something. That workflow saved around three hours a week, and the discipline of building it correctly from the start is something I’ve carried into everything since.
The test I run on every brush that’s going inside an action is simple. I open three documents: one at 800 x 800 pixels at 72 ppi, one at 3000 x 2000 pixels at 150 ppi, and one at 5000 x 4000 pixels at 300 ppi. I run the action on all three. If the visual result looks proportionally consistent across the three files, the brush is behaving correctly. If the stroke looks fine on the small file but disappears into nothing on the large one, I’ve got an absolute pixel problem. Fix the recording conditions, not the brush tip.
One additional step I never skip: I save the brush preset into a dedicated action-support library that lives separately from my general brushes. These files travel with the action whenever I share or archive a workflow. A Photoshop action that depends on a brush the recipient doesn’t have is just a collection of error messages waiting to happen.
Exporting and Keeping It Portable
Brush presets export as ABR files through the Preset Manager. I export the specific brushes tied to each action set as their own ABR, named to match the action set, and I drop both files into the same folder before delivery or archiving. A one-page plain text ReadMe explaining which brush goes with which action set takes about four minutes to write and has saved me from confused client emails more times than I can count.
The one thing I wish someone had told me earlier: brush creation for automated workflows is really documentation work wearing a creative hat. The mark you make matters, but the structure around it is what determines whether the thing works for someone else on a different machine six months from now.
Comments
Leave a Comment