Everything you need to build, test and refine rulesets — conditions, actions, examples, and how to make your own.
Imagine turning your technical photography knowledge into simple code to speed up your workflow and do complex tasks - A simple if this, then that process. For instance, if lens is canon 100mm macro lens, focus distance is less than 30cm, and was taken with 2 second delay with bracketing of two exposures, then select the subject of the brighter exposure and overlay it on the darker exposure image, and add highlights in the shadows. Something that would time consuming process now happens automatically. Focusbatch has 100s of conditions from which you can build presets and create edits with absolutely every tool available in photoshop. You can be shooting in real-time while these images get edited dynamically, uploaded and ready-to-share without a PC present on where you're shooting.
For instance you can be shooting a wedding and identify groups shots, indoor ceremony shots with flash and terrible lighting, candid shots with off-camera flash, bride portraits in window light, and your specific trademark ,let's say, trademark composite shots of the couple that make you unique. The shots you rate on your camera throughout the day, where you say "yeah they'll like that", are sent to your computer at home. Adaptive edits, that you control, are applied specifically to those scenarios with cropping. These photos are immediately sent to lightroom on your phone as you continue shoot the wedding, and you do a quick review and shift the sliders with the exposure, shift the crop a little to the left, let's say, and share the gallery before the wedding has even made it to the reception.
Is this possible? Absolutely. And you can do far more sophisticated things than that. Your imagination and vision is the only limit here. Some of this can be a little tricky to set up and some of it can be super simple. For the hard stuff however these guides, AI assistance, templates, and supportive chat group help, you can easily make this happen and test it until it works perfectly to your workflow. It's likely that this process will also make you think about your process more creatively and logically, and expand your abilities as a photographer whatever type of photography that is.
This is really what the main part of tool is all about - setting up the tool recognise specific scenarios based on conditions. There over 100 types of conditions and counting ranging from the controls you used on your camera to set up the shot to specific tones colours and subjects in the image. It's the combination of these conditions that make a scene.
For instance this may indicate a group portrait taken at sunset with a flash:
Overall EV___<___8___Sky Area___>___5___Red In Sky___>___10___Face Area___<___0.7___Subject Area___>___20___Flash Fired___=___True___Time___>___18:00:00
So you can see that it's the combination of conditions that make a scenario.
You can then save these scenarios and mix and match them. Most the time you accurately predict a scene with combination of conditions that are in the image or were controls taken during the shot. For everything else you can build custom conditions, or on your camera actually tell it that it's a sunset by rating it or something else.
There are largely four major types of conditions which you will use. I will give a quick summary of what exists with going through each condition individually.
This is all the deep metadata that is stored in the image that tells precisely how the image was taken. A rule of thumb, newer cameras have more more metadata to work with but even the old ones have lots of information.
Examples: In camera styles, White balance modes, Measured brightness of a scene (EV), Autofocus modes and points used, bracketing mode, timers, copyright and author information, flash compensation, focal length, focus distance, pitch and roll (at what angle the camera was held).
Examples: Blown-out highlights on subject face, Midtones in background, comparing shadows in sky vs in the subject, reds in sky, saturated blues in subject.
Examples: star rating, locked image, rotation, captions added in camera, voice memos.
These are conditions made from a combination of multiple conditions mentioned above, that makes a scenario. The custom conditions a made with a combination of conditions with coding so you can, let's say, find out if the eyes are of subject are blue. These can be very specific.
Pre-made scenario examples:
Custom condition examples:
This is central to how FocusBatch works: rulesets run top to bottom in the order they are placed and turned on, and each ruleset whose conditions pass hands its edited result on to the next. Editing is cumulative down the list — the image a later ruleset sees is the one earlier rulesets already changed, and a JPG is written after each ruleset that fully passes.
Because of this, order is critical:
#). A ruleset with no # is skipped.*) contributes its conditions to other rulesets when nested but performs no editing itself.Because edits accumulate, you sometimes want to bank a safe state and return to it if a later step goes wrong or you want to branch. Use ACR___savtrue early to save a history point, and ACR___loatrue later to load it back. This is your "undo to a known-good point" mechanism inside an accumulating run.
The edit starts at capture — Focusbatch is only as good as the metadata you feed it.
Settings baked in the moment you pressed the shutter — white balance, shutter, aperture, ISO, focal length, lens, flash, and more. Each condition below follows the same shape: what it reads, its range and syntax, what it pairs well with, notes & tips, and an example ruleset.
Category: Controls & Settings Used During The Shot
Description: Adobe's estimated colour temperature — a fast proxy for sunny vs cloudy vs indoor. Close to but not identical to your dialled value.
Range/syntax: 2000–10000. Wb Kelvin___>___6000, Wb Kelvin___<___3500.
Pairs well with: Time, Date, Overall EV, WB Tint, Manual WB, Flash Fired, Metering, ISO, Keywords, Voice Memo/Text File
Notes & tips: Tells you the usual things white balance tells us — whether it's sunny, cloudy, or indoors at night. It's a great idea to manually identify a scene or use manual WB because it's accessible on all cameras, so you can tell exactly what scene it is. A minor WB shift can signal the exact editing a scene needs without changing the white balance too much. RAW only — for JPEG/HEIF pull it via exiftool: Voice Memo/Text File___Analyse___Color Temp Kelvin>2800, and the precise tag label varies from camera to camera. Adobe's guess may not match the actual Kelvin you set, but it's very close, so use ranges rather than exact = tests.
Ruleset — warm indoor scene, neutralise background but keep skin warm:
Wb Kelvin___<___3400___Overall EV___<___6___face Area___>___0.1@@@select background___select background___Auto White Balance___Auto White Balance___ACR___tem-4 locked___Batch Processor___Deselect___getSelection___subject,Skin___ACR___tem6 sor6 exp0.2 locked___Batch Processor___Deselect
Category: Controls & Settings Used During The Shot
Description: The tint bias. Ranges green↔magenta. Can indicate WB bracketing, or that specific lighting like fluorescent was detected.
Range/syntax: 100 to −100. WB Tint___<___-15, WB Tint___>___20.
Pairs well with: Wb Kelvin, Green, Keywords, Overall EV, Manual WB, Voice Memo/Text File, Date, Time, Subject Area, Sky Area
Notes & tips: If white balance is on auto and it compensates with a lot of magenta (e.g. −20), it could suggest the camera was looking at a green scene like a forest. Because this is inference rather than fact — a magenta-lit stage reads the same way as foliage compensation — corroborate with Green, Keywords or Overall EV before applying a green-cast fix.
Ruleset — green-cast foliage, correct globally then re-warm skin separately:
WB Tint___<___-15___Green___>___30___Keywords___Match Word___Plants@@@ACR___tin12 sgr-8___getSelection___subject,Skin___ACR___tin-6 sor5 locked___Batch Processor___Deselect
Category: Controls & Settings Used During The Shot
Description: Simply whether WB was manual or not. If a preset like Cloudy was selected, it reads manual.
Range/syntax: 0 auto, 1 manual. Wb Kelvin___=___5500___Manual WB___=___1 (Cloudy done manually). JPEG/HEIF: Voice Memo/Text File___Analyse___White Balance=Cloudy.
Pairs well with: Wb Kelvin, WB Tint, Overall EV, Time, Date, Metering, Exposure Mode, Flash Fired, Keywords, Voice Memo/Text File
Notes & tips: To check whether it's Cloudy, Tungsten or whatever, open the image in Adobe Camera Raw and read the exact Wb Kelvin for that setting — this varies camera to camera, so read the actual value per body rather than assuming. You can set WB Kelvin to the control ring of your lens for very specific descriptions. For a sunny beach you might choose Sunny with a WB shift towards amber +1; for a desert, +2. This makes the WB more accurate to the scene and lets a minor shift signal the exact editing without changing the look much.
Ruleset — deliberate outdoor cloud preset, auto-tone whole frame then lift subject shadows:
Manual WB___=___1___Wb Kelvin___>___5800___Wb Kelvin___<___6200@@@Auto Camera Raw___Auto Camera Raw___ACR___vib-8 sha10___select Subject___select Subject___Batch Processor___Gamma Exposure 1 Shadow___Batch Processor___Deselect
Category: Controls & Settings Used During The Shot
Description: Exposure time. Hints at action-freezing, long exposure, or a flash-driven studio workflow.
Range/syntax: 1/20000 to ~1000s. A solid number is seconds, a fraction is faster; 1 is greater than 1/20. Focal Length___>___200___Shutter Speed___<___1/800; Overall EV___<___-5___Shutter Speed___>___30; Shutter Speed___=___1/2500 (assigned = bird in flight).
Pairs well with: Aperture, Focal Length, Lens, Flash Fired, Overall EV, Subject Size Metres Squared, ISO, Metering, Keywords, Voice Memo/Text File
Notes & tips: You can always assign a specific shutter speed to mean a specific scenario — e.g. Shutter Speed___=___1/2500 is a bird in flight while 1/2000 is a sports event. In a studio, because flash doesn't change your exposure, you can use anything between 1/80 and 1/200 to describe a lighting setup. Adding Subject Size Metres Squared___>___1 to a fast-shutter long-lens rule points to a sports person; <___0.001 points to a small bird in flight. The comparison is numeric, so a fraction is less than a whole number — <___1/500 means "faster than 1/500," the opposite of what beginners expect.
Ruleset — long-exposure water, cool and soften the water only, sharpen the subject:
Shutter Speed___>___1___Keywords___Match Word___Water@@@getSelection___water___ACR___con-8 tem-4 cla-6 locked___Batch Processor___Deselect___select Subject___select Subject___ACR___cla6 srp30 locked___Batch Processor___Deselect
Category: Controls & Settings Used During The Shot
Description: Sensitivity. Tells you the usual — very bright or dark — but should be used with aperture, shutter speed, or Overall EV for a better picture.
Range/syntax: 8–200000. ISO___>___6400___Overall EV___<___2; ISO___>___6400___Overall EV___>___10. Partner: Global Histogram Range___>___full0->20=20%.
Pairs well with: Overall EV, Global Histogram Range, Shutter Speed, Aperture, Camera Model, Lens, Flash Fired, face Area, Subject Histogram Range, Voice Memo/Text File
Notes & tips: ISO doesn't behave the same at the same value every time — using high ISO 6400 in daylight vs at night, the night image will appear much noisier, especially if you're rescuing shadows. So ISO___>___6400___Overall EV___>___10 and ISO___>___6400___Overall EV___<___2 may call for different noise reduction, and it's a good idea to pair with Global Histogram Range___>___full0-20=>20% to catch how much deep shadow there is. ETTR is your best noise defence — a brighter unclipped exposure means less shadow-lifting, which is where noise shows.
Ruleset — dark high-ISO frame, NR the noisy background hard, keep the face crisp:
ISO___>___8000___Overall EV___<___3___Face Area___>___0.1@@@select background___select background___ACR___lre34 lde40 cre20 locked___Batch Processor___Deselect___Batch Processor___Select Face___ACR___srp30 sde30 lre6 locked___Batch Processor___Fill Mask
Category: Controls & Settings Used During The Shot
Description: Depth-of-field driver. Useful with Focus Distance to get bokeh, and with focal length can indicate landscape or a very bright scene.
Range/syntax: 0–64+. Focus Distance___<___2___Aperture___<___2.8___Face Area___>___0.1___Focal Length___>___50. Bokeh-highlight check: background Histogram Range___<___background0->20=2%___background Histogram Range___>___background230->255=7%.
Pairs well with: Focus Distance, Focal Length, Face Area, background Histogram Range, Time, Lens, Camera Model, Subject Size Metres Squared, Keywords, Overall EV
Notes & tips: The bigger the number, the greater the f-stop but the smaller the opening — this is the reverse of how aperture is normally expressed, so f/2.8 is less than f/10 even though it's a wider aperture. "Wide aperture" is therefore Aperture___<___2.8, not greater; get this backwards and every depth-of-field rule inverts silently. The bokeh-highlight check above verifies there are white bokeh highlights in a portrait background. Useful alongside Time, Date, Shutter Speed and Lens.
Ruleset — shallow portrait, auto-tone then lift only the background bokeh highlights:
Aperture___<___2___Focus Distance___<___1.5___background Histogram Range___>___background230->255=6%@@@Auto Camera Raw___Auto Camera Raw___ACR___vib-6___select background___select background___Batch Processor___Blending Options Highlights Only___ACR___exp0.4 tem8 locked___Batch Processor___Deselect
Category: Controls & Settings Used During The Shot
Description: True focal length. Certain lengths suit certain scenarios (50–100 for portraits), but the same length is used for others too.
Range/syntax: 5–1600mm. Subject Area___=___0___Focal Length___>___100___Sky Area___>___5; add Focus Distance___<___10 to suggest a near element.
Pairs well with: Aperture, Focus Distance, Subject Area, Sky Area, Lens, Camera Model, Sensor Size, face Area, Subject Size Metres Squared, Keywords
Notes & tips: Useful when a zoom lens (say 24–105) is attached, to identify scenes: for a studio, 28–35mm might mean a group shot, 50 a full-length portrait, 105 a close-up portrait — so you'd crop each differently. You can assign whole rulesets to specific lengths. Adding Focus Distance___<___10 to a distant-landscape rule suggests the undetected subject is something like a tree; >___10 suggests distant mountains. This is actual focal length, not 35mm-equivalent — on a crop body 50mm frames like ~80mm, so combine with Sensor Size or Camera Model when mixing bodies; on a zoom the value changes shot to shot, so use >/< bands.
Ruleset — 105mm studio headshot, crop to face, retouch skin, pop eyes:
Focal Length___>___95___Focal Length___<___110___Face Area___>___0.1@@@Crop to Face___Crop to Face___Batch Processor___Oily Skin Fix___Batch Processor___Eye Pop
Category: Controls & Settings Used During The Shot
Description: How far focus was set, in metres. Can distinguish macro from landscape photography.
Range/syntax: 0.001 to infinity. Focus Distance___<___0.50___Focal Length___>___50.
Pairs well with: Aperture, Focal Length, Subject Size Metres Squared, Lens, Camera Model, Sensor Size, Subject Area, face Area, Keywords, Voice Memo/Text File
Notes & tips: A lot of lenses don't report focus distance if they're older than 2008. Certain lenses report it more accurately, and most are only accurate up to about 10 metres away — often the newer the lens, the more accurate. A missing value silently breaks any dependent rule, so consider a guard like Focus Distance___>___0, and gate distance-sensitive rules with a Lens___Match Word___ test on lenses you've verified.
Ruleset — macro close-focus, auto-tone base then sharpen the subject only:
Focus Distance___<___0.3___Lens___Match Word___Macro@@@Auto Camera Raw___Auto Camera Raw___select Subject___select Subject___ACR___srp55 sra0.8 sde30 cla8 locked___Batch Processor___Deselect
Category: Controls & Settings Used During The Shot
Description: The shooting mode — a strong intent signal.
Range/syntax: 0–9. 1 Manual, 2 Program (p), 3 Av, 4 Tv. Exposure Mode___=___4___Shutter Speed___<___1/500 (Tv + fast → bird photography).
Pairs well with: Shutter Speed, Metering, Focal Length, Aperture, ISO, Overall EV, Lens, Flash Fired, Keywords, Voice Memo/Text File
Notes & tips: Numeric mode codes can vary between manufacturers — verify your body's values via exiftool before trusting = tests, especially the P/Av/Tv ordering.
Ruleset — manual mode means trusted exposure, only refine colour:
Exposure Mode___=___1___Overall EV___>___8@@@Auto Colour Curves___Find Dark and Light Colors
Category: Controls & Settings Used During The Shot
Description: Metering pattern. Generally at least four modes exist; most we don't use.
Range/syntax: 0 Unknown, 1 Average, 2 Centre-Weighted, 3 Spot, 4 Multi-Spot, 5 Evaluative/Matrix, 6 Partial, 255 Other. Metering___=___3___Sky Area___>___20.
Pairs well with: Exposure Mode, Overall EV, Sky Area, Flash Fired, Subject Histogram Range, Sky Histogram Range, Shutter Speed, Aperture, Keywords, Voice Memo/Text File
Notes & tips: It can be quite useful to have a mode equal a scenario. Spot metering could indicate a backlit subject or a very dark background, like shooting against a bright sky. The more targeted the metering mode, the more manual control it indicates on the exposure — so Evaluative might work well with Av or Tv. It still only describes how you measured, not the result, so pair it with a tonal or area test.
Ruleset — spot-metered against bright sky, recover sky highlights and lift subject shadows:
Metering___=___3___Sky Area___>___20___Subject Histogram Range___>___subject0->15=30%@@@select Sky___select Sky___Batch Processor___Gamma Exposure -1 Highlight___Batch Processor___Deselect___select Subject___select Subject___Batch Processor___Gamma Exposure 1 Shadow___Batch Processor___Deselect
Category: Controls & Settings Used During The Shot
Description: Identifies the body in a multi-camera rig.
Range/syntax: Camera Model___=___Canon EOS R5; Camera Model___Match Word___Canon EOS R (all Canon R bodies).
Pairs well with: Lens, ISO, Sensor Size, Focal Length, Crop, Flash Fired, File Name, Author, Copyright Info, Voice Memo/Text File
Notes & tips: You can apply specific ISO settings or anything else to a particular camera. If you were syncing two cameras in a timelapse to make a stereo timelapse, this makes it easy to put images from the two together. Great for identifying two different setups — one for the wedding, another for a photobooth — meaning two totally different editing paths. The string must match exactly for = (spacing and casing included); use Match Word for a family. A misbehaving two-body pairing is almost always a model-string mismatch on one file.
Ruleset — photobooth body, film look then punch subject colour:
Camera Model___=___Canon EOS 6D@@@Batch Processor___Film Kodak___select Subject___select Subject___ACR___sat8 cla6 locked___Batch Processor___Deselect
Category: Controls & Settings Used During The Shot
Description: The exact lens model — different from focal length.
Range/syntax: Lens___Match Word___Canon; Lens___Match Word___Macro; Lens___=___Canon RF 600mm F/11 STM.
Pairs well with: Shutter Speed, Focus Distance, Focal Length, Camera Model, Aperture, Subject Size Metres Squared, ISO, Keywords, Sensor Size, Voice Memo/Text File
Notes & tips: You can identify all Canon lenses, or all macro or zoom lenses. Some lenses really have only a few uses (e.g. the Canon RF 600mm f/11) — match the lens with a specific shutter speed to mean different uses, and apply specific sharpening and noise reduction. Third-party lenses sometimes report odd or generic names (or an adapter's electronics), so verify the recorded LensModel string.
Ruleset — 600 f/11 wildlife, sharpen and NR the subject, keep background soft:
Lens___=___Canon RF 600mm F/11 STM@@@select Subject___select Subject___ACR___cla10 sha12 srp40 sre6 locked___Batch Processor___Deselect___select background___select background___ACR___lre16 locked___Batch Processor___Deselect
Category: Controls & Settings Used During The Shot
Description: The size of the sensor — a number multiplying the width and height in mm.
Range/syntax: Sensor Size___>___850.
Pairs well with: Focal Length, Subject Size Metres Squared, Crop, Camera Model, Lens, Focus Distance, Aperture, Pixel Width, Pixel Height, face Area
Notes & tips: A standard 24×36mm full frame is greater than 850 but less than ~900 — there are slight variations even among sensors that all count as full frame, so use a range rather than an exact match. This value underpins Subject Size Metres²; if that's off, check the sensor reading first.
Category: Controls & Settings Used During The Shot
Description: Whether the flash fired. Useful with the histogram ranges and flash compensation.
Range/syntax: True/False. Flash-in-shot suspicion: Subject Area___<___10___Flash Fired___=___True___Subject Histogram Range___>___subject125->255=40%___background Histogram Range___<___background125->255=20%___Focus Distance___>___5.
Pairs well with: Shutter Speed, Flash Comp, Subject Histogram Range, background Histogram Range, face Histogram, Sky Histogram Range, Overall EV, Focus Distance, Metering, Voice Memo/Text File
Notes & tips: Manual flash shows 0 flash compensation. Best combined with the histogram ranges and measured EV. The flash-in-shot pattern above means the flash is illuminating the subject but not the background, with a lot of empty frame for the flash to be in — a candidate for the AI-gen remove tool, which needs a user present. If the flash is actually in the shot, the background will likely have very bright highlights, so you can select the highlights, expand, and use the AI gen/remove tool. True only means the flash triggered, not that it did anything useful.
Ruleset — likely bare-flash in frame, isolate blown background, hand off to AI-remove, relight subject:
Flash Fired___=___True___background Histogram Range___>___background250->255=3%___Focus Distance___>___4@@@select background___select background___^AIGenByVoice___"remove the visible flash unit", true___Batch Processor___Deselect___select Subject___select Subject___Auto Camera Raw___Auto Camera Raw___ACR___exp0.2 sha8 locked___Batch Processor___Deselect
Category: Controls & Settings Used During The Shot
Description: Flash exposure compensation. Uses the same settings as Flash Fired.
Range/syntax: −3 to 3. Manual flash reports 0. Flash Comp___<___-1___Subject Histogram Range___<___subject125->255=5%.
Pairs well with: Flash Fired, Subject Histogram Range, face Histogram, background Histogram Range, Shutter Speed, Overall EV, Metering, ISO, Focus Distance, Voice Memo/Text File
Notes & tips: Because manual flash records 0 comp, a 0 value doesn't mean "no adjustment intended" — it may mean you set power manually, so corroborate with actual subject brightness.
Ruleset — intentional dark fill with dragged shutter, deepen the mood, protect the subject:
Flash Comp___<___-1___Shutter Speed___>___1/15@@@ACR___con12 bla-14 deh6___select Subject___select Subject___ACR___exp0.25 sha6 locked___Batch Processor___Deselect
Category: Controls & Settings Used During The Shot
Description: Whether an in-camera crop/aspect-ratio mode was used (e.g. 1:1, 16:9).
Range/syntax: True/False. Camera Model___=___Canon EOS R5___Crop___=___True___Pixel Width___=___5864___Pixel Height___=___5864 (a square crop).
Pairs well with: Pixel Width, Pixel Height, Camera Model, Sensor Size, Lens, Focal Length, File Name, Star Rating, Overall EV, Colour Space
Notes & tips: Match it with Pixel Width or Height to confirm the shape. On RAW, an in-camera aspect ratio is often only a flag and the full sensor data may still be present, so the actual dimensions can differ from the intended crop — verify with Pixel Width/Height.
Ruleset — square capture for social, auto-tone, punch contrast, save:
Crop___=___True___Pixel Width___=___5864___Pixel Height___=___5864@@@Auto Camera Raw___Auto Camera Raw___Batch Processor___Strong Contrast___Save As JPG___Save As JPG
Category: Controls & Settings Used During The Shot
Description: Identify sizes of images, what crops (if any) were done, and whether it was shot landscape or portrait.
Pairs well with: Crop, Camera Model, Sensor Size, File Name, Colour Space, Focal Length, Lens, Star Rating, Subject Area, Sky Area
Notes & tips: For orientation, prefer the Manual Crop action's built-in landscape/portrait test over hand-comparing width vs height — a rotated file can report dimensions that don't match the visual orientation. Absolute pixel counts differ per body, so don't hardcode them across cameras.
Category: Controls & Settings Used During The Shot
Description: The working colour space of the file (e.g. sRGB / Adobe RGB) — useful for routing export/conversion.
Pairs well with: File Name, Camera Model, Pixel Width, Pixel Height, Crop, Star Rating, Author, Copyright Info, Date, Voice Memo/Text File
Notes & tips: RAW files don't carry a final colour space the way JPEGs do — the tag reflects the camera setting, not necessarily your export intent, so decide colour space at the save step.
Category: Controls & Settings Used During The Shot
Description: Season/event routing. Can tell different seasons through to a very specific event.
Range/syntax: YYYY-MM-DD (e.g. 2026-02-01). This format sorts correctly as plain text, so >/< comparisons work directly. Date___>___2026-09-10___Date___<___2026-10-11 (a date range); Date___Match Word___^2026 (year); Date___Match Word___-(06|07|08)- (summer months); Date___Match Word___-01$ (the 1st of any month).
Pairs well with: Time, Overall EV, Wb Kelvin, Keywords, Colours, Subject Size Metres Squared, Author, Copyright Info, File Name, Voice Memo/Text File
Notes & tips: Useful with GPS (not yet available but coming soon), Time, and even colours to check whether you're outside in autumn. If you know you do specific things on certain dates, correspond those with specific editing styles. Because the format is YYYY-MM-DD, greater/less-than range gates behave like normal string sorting. Mind timezone/DST offsets stored in EXIF when a shoot straddles midnight.
Ruleset — autumn, warm-grade the whole frame then push foliage reds/oranges:
Date___Match Word___-(10|11)-___Red___>___20___Yellow___>___20@@@Auto Camera Raw___Auto Camera Raw___ACR___tem4 vib-6___Batch Processor___Red Enhance
Category: Controls & Settings Used During The Shot
Description: Time-of-day routing; captures specific times of a day or of an event.
Range/syntax: HH:MM:SS. Time___>___18:00:00___Date___>___2026-09-10___Date___<___2026-10-11 (likely sunsets).
Pairs well with: Date, Overall EV, Wb Kelvin, Metering, ISO, Colours, Keywords, Sky Area, face Area, Voice Memo/Text File
Notes & tips: With Date it helps determine sunset, twilight and golden hours; it's possible to tell if you're outdoors from Time, Date, Kelvin WB and Overall EV if you set it up correctly. For a timelapse you can make gradient exposure adjustments between sunset and astronomical darkness. Golden/blue hour shift dramatically with date and latitude — 19:00 is golden in June and dark in December — so always pair Time with Date (ideally Overall EV), and confirm the camera clock and timezone, since a wrong clock poisons every time-based rule.
Ruleset — golden hour with a face, auto-tone then warm skin only:
Time___>___19:00:00___Time___<___21:00:00___Face Area___>___0.1@@@Auto Camera Raw___Auto Camera Raw___getSelection___subject,Skin___ACR___tem6 sor8 exp0.2 locked___Batch Processor___Deselect
Category: Controls & Settings Used During The Shot (doubles as a live control channel)
Description: Text fields set on-camera. Beyond keyword matching they drive ACR from the camera and can auto-email finished frames.
Range/syntax: 64 characters each. Author___Match Word___Portrait___Copyright Info___Match Word___@; Copyright Info___=___lightcomp (workflow flag).
Pairs well with: File Name, Star Rating, Camera Model, Documents Open, Date, Caption, Keywords, Overall EV, Colour Space, Voice Memo/Text File
Notes & tips: Both fields give effectively infinite possibilities. You can set ACR settings directly from the camera by starting either field with ACR followed by the first three letters of the tones and a value (e.g. ACR bla-10 whi10 vib-30); for colours, start with HSL and the first two letters of the colour (hgr hue green, lye lightness yellow, sre saturation red). Type an email address (e.g. [email protected]) and every photo taken with that address is sent to that email as soon as the address changes — i.e. when you move to the next person. You can then rewrite the copyright information with your own. 64-character hard limit each — long recipes truncate. To let camera fields override an ACR action, that action must not be locked, and you must type ACR in uppercase followed by the codes; it's much easier on cameras with a touchscreen, and not every camera lets you enter these fields.
Ruleset — client email present and high rating, auto-tone and mail out:
Copyright Info___Match Word___@___Star Rating___>___3@@@Auto Camera Raw___Auto Camera Raw___Save As JPG___Save As JPG
Category: Controls & Settings Used During The Shot (scene-brightness reading)
Description: Your single most versatile scene proxy — describes an enormous range of situations on its own, and far more when combined.
Range/syntax: −10 to 20. Bands:
Overall EV___>___12.5 → Sunny/bright Overall EV___<___12.5___Overall EV___>___8 → Bright cloud/shade Overall EV___>___4.7___Overall EV___<___8 → Dark shade/cloud/indoors Overall EV___<___4.7___Overall EV___>___0 → Night/twilight/artificial
Pairs well with: Time, Date, Metering, Exposure Mode, Shutter Speed, ISO, Aperture, Wb Kelvin, Keywords, Voice Memo/Text File
Notes & tips: Works best with Measured EV and Measured EV 2 (specific to the camera, via Analyse), Metering, Exposure Mode, Shutter Speed, ISO, Aperture, WB Kelvin, and is particularly useful with Time and Date. Example: Overall EV___>___4.7___Overall EV___<___8___Voice Memo/Text File___Analyse___Measured EV>7.5 might mean a high-key shot indoors; add Keywords___Match Word___Plants / Buildings to tell whether it's a portrait or flowers. Because EV is influenced by scene reflectance and metering (snow reads brighter, black backdrops darker), the bands can misclassify high-key/low-key scenes — add a Time/Date or histogram corroboration for critical routing.
Ruleset — blue hour, auto-tone, enhance blues in the sky only, lift the foreground subject:
Overall EV___<___4.7___Time___>___20:30:00___Blue___>___30@@@Auto Camera Raw___Auto Camera Raw___select Sky___select Sky___Batch Processor___Enahnce Blues___Batch Processor___Deselect___select Subject___select Subject___Batch Processor___Gamma Exposure 1 Shadow___Batch Processor___Deselect↑ Back to top
Values read from the pixels — areas, histogram ranges, colours, and geometry.
Category: Histogram, Subject, Sky and Colour Information
Description: Compositional read-outs — their balance suggests scene type.
Range/syntax: 0.1–100 (% of frame each occupies). Subject Area___<___2___Sky Area___>___20___background Area___>___50___Subject Top___<___10.
Pairs well with: Subject Size Metres Squared, Keywords, face Area, Colours, Saturated Colours, Boundaries, Overall EV, Focal Length, Focus Distance, Sky Histogram Range
Notes & tips: Works well with Subject Size Metres Squared and with Keywords (via cloud.canon). Getting the Subject, Background and Sky areas is useful for understanding composition. Subject/sky detection is done by Adobe's cloud AI selection — it can fail or mislabel on unusual subjects, low contrast, or busy scenes, and needs connectivity. If an area reads 0 when you can clearly see a subject, the selection failed rather than the scene being wrong; sky detection struggles with white/overcast skies.
Ruleset — small subject, big sky, dehaze the sky then auto-tone the subject separately:
Subject Area___<___5___Sky Area___>___30___face Area___<___0.1@@@select Sky___select Sky___Iceland Landscapes___Dehaze___Batch Processor___Deselect___select Subject___select Subject___Auto Camera Raw___Auto Camera Raw___Batch Processor___Deselect
Category: Histogram, Subject, Sky and Colour Information
Description: How much the face fills the frame — the backbone of crop/portrait routing. You can select all faces, which changes the value.
Range/syntax: 0.1–100. >___0.1 a face is present; <___0.61 mid group shot; >___0.91___<___2.1 mid shot; >___2.2 a closer headshot.
Pairs well with: Boundaries, face Histogram, Subject Size Metres Squared, Subject Area, Focal Length, Aperture, Star Rating, Keywords, Overall EV, Time
Notes & tips: Best matched with the Face/Subject boundaries for building crop rulesets. Also best worked with the face Histogram to correct exposure — e.g. Face Area___>___0.1___face Histogram___>___face230-255=>5%@@@Batch Processor___Eye Pop___Batch Processor___Oily Skin Fix___ACR___hig-20. Selecting "all faces" changes this value — a group read as one combined face won't behave like a single portrait, so decide up front whether a ruleset is single-face or all-faces. Detection can miss profile/obscured faces.
Ruleset — group shot, even the light globally then oily-skin-fix all faces:
face Area___<___0.61___Subject Area___>___30@@@Auto Camera Raw___Auto Camera Raw___ACR___sha10 hig-8___Batch Processor___Oily Skin Fix
Category: Histogram, Subject, Sky and Colour Information (derived from Subject Area + Sensor Size + Focus Distance)
Description: The real-world physical size of the subject — a 2D image plane of the subject in relation to the sensor at a given focus distance. Great at telling you precisely how big the subject is, whether bird, person or insect.
Range/syntax: 0–1000 m². Baby: Subject Top___!=___0___Subject Left___!=___0___Subject Right___!=___0___Subject Bottom___!=___0___Subject Size Metres Squared___<___0.2___face Area___>___0.1.
Pairs well with: Lens, Camera Model, Focus Distance, face Area, Keywords, Date, Subject Area, Sensor Size, Colours, Boundaries
Notes & tips: Excellent for differentiating animal types, poses, and the size of a person (baby, adult, or a group). Best used with Lens, Camera Model and Focus Distance for determining more accurate lenses (e.g. Lens___Match Word___Canon EF___Focus Distance___<___4). You can use Date to better identify certain species, or combine with colours. If the environment is noted (e.g. "Irish bog" in copyright data) you may identify other species. Older lenses or focus distances beyond ~10m give more inaccurate results; expect ~85% accuracy across all lens types from 2008 onwards when closer than 4m. It depends on Focus Distance, so it's unreliable or absent when the lens doesn't report distance. The != 0 boundary tests confirm the subject isn't touching a frame edge, which would make the size read wrong.
Ruleset — tiny bird on a long lens, sharpen the subject, NR the background:
Subject Size Metres Squared___<___0.02___Focal Length___>___300@@@select Subject___select Subject___ACR___srp50 sra1 cla10 locked___Batch Processor___Deselect___select background___select background___ACR___lre18 locked___Batch Processor___Deselect
Category: Histogram, Subject, Sky and Colour Information
Description: The workhorses for comparing tones between areas of the photo — for correcting exposure, colour, or understanding mood. Each reads what percentage of a region falls inside a tonal band (0–255).
Syntax:
Subject Histogram Range___>___subject130->214=5% background Histogram Range___<___background0->47=72% Sky Histogram Range___>___sky220->255=5% Global Histogram Range___>___full87->202=6% face Histogram___<___face98->211=49%
Comparing two regions — read the direction carefully: the written result belongs to the second region named, and the number is that second region's % minus the first region's % in the band. The label words (shadows/darks/lights/mids) are just there to help you — only the number matters.
face Histogram___subject___face has +45%Mids highlights vs subj(91-211) Subject Histogram Range___face___Subj has -45%Mids highlights vs face(91-211) background Histogram Range___face___back has +66%shadows darks vs face(0-73) face Histogram___background___face has -64%shadows darks vs back(0-77) — meaning a lot more of the background is darker than the face (say 10% of the face vs 74% of the background in that range = −64%).
Cross-image logic: when comparing to another image, if(b>=0){return a>=b;}else{return a<=b;}, where a is this image's difference (computed the same way) and b is the difference you're comparing against. It only works with positive numbers — to compare in reverse, switch the two regions around.
Pairs well with: Overall EV, Flash Fired, Colours, Saturated Colours, Subject Area, Sky Area, face Area, Time, Metering, Voice Memo/Text File
Notes & tips: Best combined with times of day, studio setups (pre-made rulesets), or anything describing a light set. They can tell what the light is doing — e.g. whether something is backlit with a flash that rims the subject while the flash isn't in the shot. The format is likely to change, so verify the current syntax against a working ruleset before hand-writing new ones. The comparison maths handles positive differences only (swap regions to reverse), and region histograms depend on the Adobe selection succeeding, so a failed subject/sky selection gives a meaningless read. Shoot with the live histogram and zebras on and expose to the right — inconsistent exposure is the number-one reason a histogram rule that worked on one file fails on the next.
More histogram examples:
1 — Blown skin on the subject:
face Area___>___0.1___face Histogram___>___face250->255=3%@@@Batch Processor___Select Face___ACR___hig-30 whi-15 locked___Batch Processor___Fill Mask
2 — Crushed shadows in the background:
background Histogram Range___>___background0->10=40%@@@select background___select background___Batch Processor___Gamma Exposure 1 Shadow___Batch Processor___Deselect
3 — Flat / low-contrast whole frame:
Global Histogram Range___<___full0->20=2%___Global Histogram Range___<___full235->255=2%@@@Batch Processor___Strong Contrast
4 — High-key scene, protect from over-brightening:
Global Histogram Range___>___full200->255=60%@@@Auto Colour Curves___Find Dark and Light Colors___ACR___hig-10
5 — Low-key / moody scene, keep it dark:
Global Histogram Range___>___full0->60=70%@@@ACR___bla-8 con10 sha-6
6 — Backlit subject vs bright sky (comparison direction: result belongs to the sky):
Subject Histogram Range___sky___sky has +55%highlights vs subj(200-255)___face Area___>___0.1@@@select Subject___select Subject___Batch Processor___Gamma Exposure 1 Shadow___Batch Processor___Deselect___select Sky___select Sky___Batch Processor___Gamma Exposure -1 Highlight___Batch Processor___Deselect
7 — Face darker than its background, open the face only:
face Histogram___background___back has +40%mids vs face(80-200)___face Area___>___0.1@@@Batch Processor___Select Face___Batch Processor___Gamma Exposure 1 Shadow___Batch Processor___Fill Mask
8 — Rim-flash detection (bright subject edge, dark elsewhere, flash not in frame):
Flash Fired___=___true___Sky Area___<___5___background Histogram Range___<___background220->255=1%___Subject Histogram Range___>___subject220->255=3%@@@select Subject___select Subject___ACR___cla6 sre4 locked___Batch Processor___Deselect
9 — Flat sky worth adding drama to:
Sky Area___>___5___Sky Histogram Range___<___sky242->255=1%___Sky Histogram Range___>___sky0->30=1%@@@select Sky___select Sky___ACR___deh12 con8 locked___Batch Processor___Deselect
10 — Subject brighter than background (studio separation good, add glow):
Subject Histogram Range___background___back has -30%highlights vs subj(180-255)@@@select Subject___select Subject___Batch Processor___Blending Options Highlights Only___ACR___exp0.2 locked___Batch Processor___Deselect
Category: Histogram, Subject, Sky and Colour Information
Description: How much of each hue is present, as a percentage of the image. Each hue also has a selection counterpart (made with Photoshop's colour-selection tool).
Range/syntax: 0–100, expressible as e.g. 5.43. Blue___>___70, SaturatedRed___>___10.
Pairs well with: Sky Area, Subject Area, Keywords, Date, WB Tint, Overall EV, Boundaries, Saturated Colours, Time, face Area
Notes & tips: An image with a blue sky and a blue lake is likely Blue___>___70 and will likely have a lot of cyan too. For vivid hues use the Saturated versions. You can make custom conditions that identify these colours in just the Subject, Sky, face etc. — the condition name is written the same as the function name with no spaces. These are whole-image percentages, so a colour can be "present" while living entirely in a corner you don't care about; to act on colour in a region use getSelection or the custom colour-in-region scripts. Plain and Saturated are separate readings.
Ruleset — fiery foliage, enhance reds then greens on their own selections:
SaturatedRed___>___12___SaturatedYellow___>___12___Keywords___Match Word___Plants@@@Batch Processor___Red Enhance___Batch Processor___Enhance Greens
Category: Histogram, Subject, Sky and Colour Information (geometry)
Description: Largely for cropping and compositional techniques. Express one boundary relative to another using boundaries + units.
Range: 0–100 each. Absolute top is 0 and bottom is 100; left is 0 and right is 100. Quick example: Subject Top___<___faceTop-2.2faceHeight. Form: Face Top___<___(Boundary)(+ or −[n×])(Unit). Boundaries: faceTop/Bottom/Left/Right, subjectTop/Bottom/Left/Right, selectionTop/Bottom/Left/Right. Units: percent, faceWidth, faceHeight, subjectWidth, subjectHeight.
Pairs well with: face Area, Shift, Crop to Face, Metadata Crop, Subject Area, Subject Size Metres Squared, Star Rating, Pixel Width, Pixel Height, Focal Length
Notes & tips: Subject Top___>___20 means the top is below the near-top of the image; Subject Top___<___20 is very near the top. Because top is 0, "higher in the frame" is a smaller number, which trips people constantly. When using a selectionTop (etc.) reference, the selection must already exist — run a Shift/select step first or the relative term has nothing to reference. The interactive visualiser at the end of this document lets you see boundary offsets and Shifts drawn on a sample frame.
Ruleset — too much headroom, nudge the crop up then commit:
face Area___>___0.6___Subject Top___>___selectionTop+1.2faceHeight@@@Shift___up 0.6 faceHeight___Batch Processor___Crop↑ Back to top
Things you or software attach — ratings, captions, voice memos, keywords, filenames, runtime state.
Category: Information Added To The Shot
Description: A very versatile, easily accessible button on most cameras. Can be added to all conditions and rulesets to determine how a photo is edited after it's taken.
Range/syntax: 0–5. Voice Memo/Text File___Analyse___Rating=1.
Pairs well with: face Area, Subject Area, Copyright Info, Author, Documents Open, Overall EV, Keywords, Date, Camera Model, Voice Memo/Text File
Notes & tips: Effectively every ruleset now has 6 variations. Combined with Image orientation (three rotations) and locked/unlocked (on most cameras), that's 6×3×2 = 36 variations if used together, or at least 11 simple variations. Use it to influence a type of crop, different colours, or to signal different scenarios — it should always be considered when building any ruleset. On some pipelines the rating arrives as an EXIF/XMP field read via Voice Memo/Text File___Analyse___Rating= rather than a native Star Rating, so confirm which your files carry; ratings don't always survive certain transfer paths.
Ruleset — 5-star, full portrait polish across regions, save PSD:
Star Rating___=___5___Face Area___>___0.1@@@Batch Processor___Oily Skin Fix___Batch Processor___Eye Pop___Batch Processor___Face retouch___select background___select background___ACR___exp-0.1 sat-6 locked___Batch Processor___Deselect___Save As PSD___Save As PSD
Category: Information Added To The Shot
Description: Has similar functions to Star Rating. Many professional cameras can add captions via FTP transfer or beforehand.
Pairs well with: Star Rating, Copyright Info, Author, File Name, Camera Model, Documents Open, Keywords, Date, Overall EV, Voice Memo/Text File
Notes & tips: On the Canon R6/R5 you can transfer with a caption, with about 20 options to choose from. This varies quite a bit from camera to camera (more documentation for Sony etc. to follow), and some options require the FTP/transfer step — so don't port a caption-based ruleset between bodies without re-checking the available strings.
Ruleset — "BW" caption → mono:
Caption___Match Word___BW@@@Batch Processor___BW
Category: Information Added To The Shot (and the gateway to all EXIF)
Description: Two superpowers: (1) attach a voice memo — e.g. on the Canon R5 over FTP, which adds a transcript as it passes through the FTP app — to trigger very specific editing after a shot was taken; (2) reach any EXIF tag for your camera. Always used with Analyse (for tags) or Match Word (for transcript / raw text). This adds extensive metadata via exiftool, so you can access nearly every control you set on the camera to take the photo — from the exact white balance to the exact autofocus point and mode — in both JPEG and RAW files. Look up all tags for your make of camera at https://exiftool.sourceforge.net/TagNames/
Transcript / voice examples (verbalised, then sent over FTP):
Voice Memo/Text File___Analyse___Transcript=Dark sky Voice Memo/Text File___Match Word___transcript=dark sky Voice Memo/Text File___Match Word___TRANSCRIPT: (checks a transcript exists at all) Voice Memo/Text File___Match Word___remove background flash Voice Memo/Text File___Match Word___this is the keeper
White balance / colour tags:
Voice Memo/Text File___Analyse___Color Temp Kelvin>2800 Voice Memo/Text File___Analyse___White Balance=Cloudy Voice Memo/Text File___Analyse___ColorTempAsShot>5500 Voice Memo/Text File___Analyse___WBShiftAB: (detects a WB A/B shift was applied) Voice Memo/Text File___Analyse___WB_RGGBLevelsAsShot=2056 1024 1024 1840
Exposure / metering tags:
Voice Memo/Text File___Analyse___MeasuredEV=6.5 Voice Memo/Text File___Analyse___MeasuredEV2=-4.5 Voice Memo/Text File___Analyse___LightValue>6 Voice Memo/Text File___Analyse___MeteringMode=3 Voice Memo/Text File___Analyse___CanonExposureMode=4
Angle / orientation tags (for straighten/crop logic):
Voice Memo/Text File___Analyse___RollAngle<1___Voice Memo/Text File___Analyse___RollAngle>-1 (near-level) Voice Memo/Text File___Analyse___PitchAngle>-6.5 Voice Memo/Text File___Analyse___AutoRotate=0
Focus / lens tags:
Voice Memo/Text File___Analyse___FocusDistanceUpper<3.6 Voice Memo/Text File___Analyse___FocusDistanceLower>2.6 Voice Memo/Text File___Analyse___FocusMode=0 Voice Memo/Text File___Analyse___AFAreaMode=13 Voice Memo/Text File___Analyse___SubjectToDetect=1 Voice Memo/Text File___Analyse___EyeDetection=0 Voice Memo/Text File___Analyse___MacroMode=2
Bracketing tags (the backbone of the composite rulesets):
Voice Memo/Text File___Analyse___Bracket Mode=AEB Voice Memo/Text File___Analyse___AEB Bracket Value>-1 Voice Memo/Text File___Analyse___AEB Bracket Value=-3 Voice Memo/Text File___Analyse___AEB Sequence=-,0,+ Voice Memo/Text File___Analyse___FocusBracketing=0
Body / capture housekeeping:
Voice Memo/Text File___Analyse___Rating=2 Voice Memo/Text File___Analyse___ShutterCount>124000 Voice Memo/Text File___Analyse___HighISONoiseReduction=2 Voice Memo/Text File___Analyse___CameraTemperature>28 Voice Memo/Text File___Analyse___Cropped Image Left=0 Voice Memo/Text File___Analyse___LensModel=RF28mm F2.8 STM
Pairs well with: Star Rating, Flash Fired, Lens, Camera Model, Overall EV, Documents Open, Date, Time, Author, Copyright Info
Notes & tips: This adds infinite possibilities after the image was taken — a two-second memo captures intent no sensor can. Tag names differ per manufacturer and model, so the Canon R5 examples here won't be identical on Sony/Nikon — look yours up. The voice-transcript path needs the FTP/transcription pipeline (e.g. R5 over FTP); without it there's no transcript to match. Always use Analyse for tags, since a bare comparison won't reach EXIF. Transcription can mis-hear words, so keep your trigger vocabulary short and distinct.
Ruleset — camera reports near-level, skip straighten and just crop:
Voice Memo/Text File___Analyse___RollAngle<1___Voice Memo/Text File___Analyse___RollAngle>-1@@@Batch Processor___Crop
Category: Information Added To The Shot (often AI-generated, e.g. cloud.canon)
Description: Tags usually made by software. When using cloud.canon this is especially useful, as the service uses AI to label a lot of the subject matter and for culling.
Range/syntax: Keywords___Match Word___Plants___Keywords___Match Word___Water___Keywords___Match Word___[^Buildings]___Keywords___Match Word___[^Mountains] (a countryside lake with no buildings or mountains).
Pairs well with: Subject Size Metres Squared, Colours, Saturated Colours, Subject Area, Sky Area, Date, Time, Overall EV, Focal Length, Voice Memo/Text File
Notes & tips: Available labels include People / Living things / Animals / Dogs / Cats / Birds / Plants / Vehicles / Cars / Trains / Airplanes / Foods / Sports / Buildings / Mountains / Water / Night views. You can include blur and exposure flags where appropriate, and see whether people are smiling, have eyes closed, or are out of focus (see https://image.canon/st/en/image-sort.html). You can also register faces. Keywords depend on the external AI service having processed the file, so they can be missing or wrong — never let a keyword be the only gate on a destructive edit; back it with a pixel/metadata test.
Ruleset — pet portrait, sharpen the subject, soften the background:
Keywords___Match Word___Dogs___Subject Size Metres Squared___>___0.3@@@select Subject___select Subject___ACR___cla8 srp35 locked___Batch Processor___Deselect___select background___select background___ACR___cla-6 locked___Batch Processor___Deselect
Category: Information Added To The Shot
Description: Useful for getting the file type or certain information from the file name. On many camera systems it's easy to change the letters before the number, and when transferring over FTP from your phone (e.g. Android's Power FTP) you can type new info into the file name.
Range/syntax: File Name___Match Word___hif|heif; File Name___Match Word___T\d+; File Name___Match Word___ IMG_(\d{5,}|[3-9]\d{3}|2[6-9]\d{2}|25[1-9]\d|250[1-9]) (image number 2500 or higher).
Pairs well with: Colour Space, Voice Memo/Text File, Camera Model, Star Rating, Sky Histogram Range, Date, Author, Copyright Info, Documents Open, Keywords
Notes & tips: These are regex matches, so a stray metacharacter or an unexpected extension case (.HIF vs .hif) will miss silently — test complex patterns against real filenames, and keep FTP renaming consistent so a naming-gated ruleset doesn't skip files unpredictably.
Ruleset — HEIF/TIFF ingest → LUT convert:
File Name___Match Word___.tiff@@@Batch Processor___Lut canon R5
Category: Information Added To The Shot (runtime state)
Description: How many documents are currently open in Photoshop. Lets multi-image workflows (compositing, stereo, wigglegram) branch on stack state.
Range/syntax: Copyright Info___=___lightcomp___Star Rating___=___0___Documents Open___=___2.
Pairs well with: Star Rating, Author, Copyright Info, Camera Model, Lens, Voice Memo/Text File, File Name, Caption, Date, Overall EV
Notes & tips: This reads live application state, not the file, so the same image can pass or fail depending on what's currently open. Order matters — a stray open document (a leftover run, or a snapshot) throws the count off and misfires composites — so keep the workspace clean and sequence Set/Get Image Aside carefully.
↑ Back to topSaved combinations of conditions reused as one named variable, and coded custom conditions. (Naming conventions, notation and mistake-recovery variations are in the Build Your Own tab.)
A scenario is several conditions saved under one name and reused as a variable. Every ruleset can hold up to 10 conditions, and each of those can itself be a ruleset — so up to 100 conditions in one ruleset. You cannot nest further than one level. Because editing passes forward, a saved scenario applies its actions to whatever the previous passing ruleset produced.
Drop a function into external function.jsx and call it by name with arguments (^functionName___arg1,arg2). Colour-in-region selectors return a percentage and can save an alpha — e.g. getColourAreaInSky, skinColourInSubject (saves alpha "skinperson"), CyanColourInSubject, yellowColourInBackground. Intro custom ideas: hatHeight = (subjectTop − faceTop) / faceHeight; "reds in sky"; "brightness of magentas."
↑ Back to topAn action is Folder___Action Name. The folder is Batch Processor or Default Actions (LUT/dehaze actions live in Iceland Landscapes / Colour Correction). So Action: Gamma Exposure -1 Highlight → Batch Processor___Gamma Exposure -1 Highlight. Scripts take arguments (CropToFace___5,4); an item with no input repeats its own name (Metadata Crop___Metadata Crop). Custom scripts use ^name___args. Remember editing passes forward: each action operates on the image left by the previous passing ruleset, and it's best to do processing and saving after all images in a composite are stacked.
Several recorded actions contain machine-specific absolute paths (the LUT actions point at C:\Program Files\Adobe\…\3DLUTs\…; "Save as Photoshop PDF" has a hardcoded output folder) — re-point after import. Many composite actions rely on the "Layer 0 / Background" naming convention and the correct Documents Open count; run them only in their intended ruleset order. Neural Filters and AI selections need the feature installed/enabled and often connectivity.
When an action misbehaves you can slow Photoshop down and watch it run step-by-step to see exactly where it fails. In the Actions panel menu → Playback Options there are three modes:
Set it to Step by Step (or Pause For) while you're hunting a bug, then switch it back to Accelerated before your next real batch — otherwise every run crawls. Watch for the usual culprits: a step referencing a layer/channel name that doesn't exist yet (naming-convention drift), an AI selection that failed silently, a Neural Filter that isn't installed, or an absolute file path that's wrong on this machine. Test each new action on a handful of representative images before adding it to a ruleset, and re-test after any Photoshop update.
Call any Lightroom-panel setting with ACR___ + code+value, space- or dash-separated.
Basic tones (first three letters): hig highlights, bla blacks, exp exposure, whi whites, sha shadows, con contrast, deh dehaze, cla clarity, vib vibrance, sat saturation. Also usable: tem temp, tin tint, tex texture.
HSL (h/s/l + first two letters of the colour): e.g. sre = saturation red, hgr = hue green, lor = lightness orange. Also sye sat-yellow, hye hue-yellow, sor sat-orange, hor hue-orange, sgr sat-green, sbl sat-blue, etc.
Colour grading (start with c):
cmh Midtones Hue (CgMH) cms Midtones Sat (CgMS) csl Shadows Lum (CgSL) cml Midtones Lum (CgML) chl Highlights Lum (CgHL) cbl Blending (CgBl) cgh Global Hue (CgGH) cgs Global Sat (CgGS) cgl Global Lum (CgGL) csh Shadows Hue (STSH) css Shadows Sat (STSS) chh Highlights Hue (STHH) chs Highlights Sat (STHS) cba Balance (STB)
Noise reduction & sharpening:
lre Luminance NR (⚠ clashes with Lum-Red "lre") lde Luminance Detail lco Luminance Contrast cre Color NR cde Color Detail csm Color Smoothness srp Sharpen Amount sra Radius (float) sde Sharpen Detail sma Masking (⚠ clashes with Sat-Magenta "sma")
Don't use both members of a clashing pair in one ACR string.
Layers / blending / history (the alternate ACR menu — language and which layer each targets):
laytrue runs at the beginning: duplicates the current layer, so all these edits apply to the duplicate. If laytrue is NOT present, every option below acts on whatever layer it's currently on.savtrue saves this history pointloatrue loads the saved history point (savtrue + loatrue = your "go back" pair: bank a state, then return to it)seltrue selects the top layerflatrue flattens the document (happens at the end)blendMode<Name> changes the blend mode of the duplicated layer (or, if no duplicate, the layer it's on) — e.g. blendModeDarken, blendModeLighten, blendModeColor Burnopa opacity of the duplicated layer (or the current layer if none exists)fil fill of the duplicated layer (or the current layer if none exists)smo smoothing (a good idea to include)blendIfThisBlack41 · blendIfThisWhite207 · blendIfUnderBlack29 · blendIfUnderWhite194 blend-if ranges applied to the layer it's on, so you can blend it against what's beneathlocked protects this ACR from being overwritten by the camera Author/Copyright fieldsExample combining them:
ACR___exp0.94-sha23-whi-35-savtrue-flatrue-seltrue-loatrue-laytrue-blendModeDarken-smo18-opa64-fil52-blendIfThisBlack41-blendIfThisWhite207-blendIfUnderBlack29-blendIfUnderWhite194-locked
The dash isn't necessary — a space works too. To overwrite a locked ACR from the camera, remove locked and type ACR in uppercase in the Author/Copyright field followed by any codes. You can open the Make Ruleset maker (see the Build Your Own tab) to preview ACR changes live on your image; anything you move from its default position is appended to the ACR command.
Auto Camera Raw___Auto Camera Raw — Adobe's consistent one-click look; works well if that's the look you're after, and it's a great starting point otherwise. Counter its HDR-ish tendency inline, e.g. Auto Camera Raw___Auto Camera Raw___ACR___sha-25 hig10 sat-10. A common tasteful move is auto, then remove some vibrance, add a bit more shadows, and boost the highlights so it doesn't look like the vibrant HDR look.
Reshape the Auto result per tone, with basic maths, as variables. RAW only, and you must select the ACR Auto Reading at batch time. It does not use vibrance or saturation. Each tone is called by its lower-case name: exposure, contrast, highlights, shadows, whites, blacks.
Tweak Auto___exposure contrast=0 highlights/2+7 shadows/2-10 whites*0.2 blacks=0 Tweak Auto___exposure=0 contrast=0 highlights shadows-30 whites=0 blacks=0 (highlights only, darker shadows)
Two invocations, plus the four Photoshop auto algorithms. * = snap to neutral colours.
Auto Colour Curves___Brightness and Contrast Auto Colour Curves___Find Dark and Light Colors (add * to snap neutral)
| Algorithm | What it does | Best for | Weaker for | Snap-Neutral effect |
|---|---|---|---|---|
| Enhance Brightness and Contrast | Analyses image content and adjusts brightness/contrast as a whole; moves the black/white/midtone sliders; most aggressive of the four | Everyday photos — portraits, landscapes, snapshots | Images with colour casts; delicate tonal images may be over-corrected | Not available for this algorithm |
| Enhance Monochromatic Contrast | Treats RGB as one composite; pushes darkest pixels to black, lightest to white; original colour relationships preserved | Correct colour but flat contrast; studio and product shots | Photos with colour casts — preserved, not fixed | Finds a near-neutral colour and adjusts midtone gamma to neutralise it — adds basic cast removal |
| Enhance Per Channel Contrast | Adjusts R, G and B independently for maximum tonal range; more dramatic but can introduce casts | Images needing both contrast and colour correction, e.g. mixed-lighting landscapes | Intentional colour (golden hour, neon) — can introduce new casts | Neutralises midtones on top, helping counteract casts the stretch introduces |
| Find Dark and Light Colors | Finds average lightest/darkest pixels to maximise contrast while minimising clipping; gentler | Colour casts from artificial light — tungsten, fluorescent, underwater; good all-rounder | Images with no neutral reference, e.g. all-warm sunsets | Most significant here — shifts midtone gamma, making it equivalent to Auto Color |
Notes: on Curves, the auto options can be more subtle for brightness/darkness — sometimes doing nothing if the image is already correctly exposed. Snap-to-neutral can cause dramatic unintended colour shifts, so it may be better to deselect "Use Original File Name" when running the batch, so a variation of your edit survives if the error occurs. It also helps to apply this via a mask on a neutral part of the image and then fill the mask, so the correction applies across the whole image. If you select snap-to-neutral-midtones in Photoshop's Auto Color options it defaults this to all options, and you can't turn it on and off within a batch run — switch it manually (a start-of-run toggle is planned).
Focusbatch can make any selection Photoshop can, then run an edit only inside it. This is how you edit separate parts of one image in a single ruleset. Selections come from four engines: Photoshop's Colour Range / colour-selection tool (the hue selections), Adobe AI Select Subject / Sky / people / landscape, the Liquify + difference-blend trick for fine sub-parts, and Neural / Depth filters for depth-based isolation.
These three already exist and are called as name-repeats — they're only for these selections:
select Subject___select Subject select Sky___select Sky select background___select background
Face options: Face (Liquify) — imperfect but quicker; Face (AI); Select All Faces. When running a batch you can switch these on for every image: Sky, Subject, Face (with an all-faces option) and a cloud selection toggle for a more accurate sky.
Hair, skin, eyebrows, iris, pupil, lips, teeth, upper lip, lower lip, nose, jaw, neck, ear (left/right), face skin, head, torso, arms (upper/lower, left/right), hands (left/right), fingers, legs (upper/lower, left/right), feet (left/right), clothing (shirt, pants, shoes, sleeves, glasses, hat), facial hair/beard, body silhouette.
Sky, water, ground/floor, mountain, building, vegetation/foliage, tree, grass, road/path, sand, rock, wall, ceiling, sea, river, cloud, snow, fence, bridge, field. (Water bodies such as a lake come through the water/landscape selector.)
You can build selections like Left Jaw Line (and other fine facial contours) with a Liquify + difference-blend action: duplicate the layer, Liquify the target contour (e.g. push the left jaw line a bit to the side), then difference-blend the two layers so only the shifted contour is selected. This isolates parts the AI selectors don't name directly.
Use Neural Filters and the Depth Filter (depth map) to isolate subjects and separate depth planes within a landscape. The depth map is often a nicer selection for lighting than a hard subject cut — it doesn't jarringly detach the subject from its background, so relighting reads naturally.
Every colour has a selection (made with Photoshop's colour-selection / Colour Range tool): Yellow, Blue, Red, Cyan, Green, Magenta, Skin, plus the Saturated version of each. These correspond to the Batch Processor colour actions (Blue, Cyan, Green, Magenta, Yellow, Red, Skin).
getSelection___Region,Colour finds a colour inside a region; getSelection___Colour gets the colour alone. Note on Skin: getSelection___Skin does not just get skin on the subject — it grabs skin-toned pixels across much of the image, so you're usually better using getSelection___subject,Skin to keep it to the person. Intersections are the whole point — e.g. saturated red in shoes. Examples:
getSelection___Blue just blue in the whole image getSelection___Sky,Blue blue within the sky getSelection___water the water/lake/sea selection getSelection___subject,Skin skin only within the subject (preferred over Skin alone) getSelection___Sky,SaturatedCyan vivid cyan within the sky getSelection___shoes,SaturatedRed vivid red on the shoes getSelection___foliage,Green green within vegetation getSelection___clothing,Blue blue clothing getSelection___iris,SaturatedBlue vivid blue eyes getSelection___tree,Yellow yellow within trees (autumn) getSelection___building,Magenta magenta on a building (neon signage) getSelection___torso,SaturatedRed vivid red on the torso/shirt getSelection___sea,Cyan cyan in the sea getSelection___grass,SaturatedGreen vivid green grass getSelection___hair,Red red tones in hair getSelection___background,Skin stray skin tones in the background to tame
Save any selection as an alpha for reuse: saveAlpha___saveAlpha.
Shift___up 0.5 faceWidth direction · multiple · unit Shift___Enlarge 1.11 grow the selection Shift___Centre on Face horizontally centre on face(s)
Units: faceWidth, faceHeight, pct (percent of the relevant dimension), px. Best paired with the boundary conditions so you can verify a crop before committing, and with Metadata Crop___Metadata Crop.
There's also a dedicated face/portrait crop: CropToFace___5,4 (an 8×10 around a group portrait) — nudge with Shift, built for studio cropping.
| Action | Use | Notes |
|---|---|---|
| Blue / Cyan / Green / Magenta / Yellow / Red | Per-hue selection | Colour Range by colour cluster (the colour-selection tool). |
| Skin | Skin selection | Colour Range + Face Detection, fuzziness 40 — broad and forgiving; note it grabs skin tones across much of the image, not just the subject. |
| Select Skin | Load stored "Skin" channel | Needs a colour action that created channel "Skin" first. |
| Select All / Select Face | Whole doc / face mask | Select Face copies the layer and builds a reveal mask from the "face" channel; pair with Fill Mask to commit. |
| select subject again | Re-run subject selection | Select Subject without sampling all layers. |
| Increase Range | Boost a channel selection | Invert + brightness/contrast, load as selection, deletes helper layers. |
| Select Top Pixel Layer / Select Layer Below | Stack navigation | Skip past adjustment layers to land on pixels. |
| Action | Use | Notes |
|---|---|---|
| Gamma Exposure 1 Shadow / 2 Shadow | Graded shadow lift | Exposure-adjust + Apply-Image multiply; 2 is stronger; flattens. |
| Gamma Exposure -1 Highlight / -2 Highlight | Graded highlight tame | Same technique inverted; -2 adds a levels gamma; flattens. |
| Auto Flat Image | Auto B/W point recovery | Auto black/white curve + luminosity copy at 35% + slight red correction. |
| Auto Curve Layer Clip | Clipped auto curve | Auto Enhance Brightness & Contrast on a clipping-mask curve. |
| Strong Contrast | Punchy S-curve | Levels (21–249, γ0.91) + Curves, then flatten. |
| BW | Mono conversion | Black & White adjustment, custom channel mix, flatten. |
| Reduce Fill And Vibrance | Pull back an over-cooked layer | Fill 26% + vibrance −11, flatten. |
| Colour and Exposure Fix | Studio tone/colour repair (face channel) | Auto-contrast curve masked via "face" channel + blend-if + levels. |
| Colour and Exposure Fix 2 | Clipped auto B/W curve | Auto Black & White clipping curve, flatten. |
| General Colour And Exposure Fix | General repair (used by GENERAL AUTO) | Pair after Layer Via Copy + Auto Camera Raw. |
| Correction for trininty | Trinity backdrop correction | Per-channel curves (R62/G51/B46 black points) + fill 68→36% + blend-if. |
| Oily Skin Fix | Tame shine (lighter skin) | Selects Nose/Facial/Upper-body skin, selective-colour whites + luminosity curve. |
| Oily Black Skin Fix | Tame shine (deeper skin) | Facial-skin select, curve to 133, blend-if, selective-colour neutrals −15 cyan, hue/sat −19/−15. |
| Colour Shadow | Colour into shadows (used by INDOOR AUTO RAW) | Runs after Gamma Exposure 1 Shadow. |
| Dehaze | Dehaze pass | Used as Iceland Landscapes___Dehaze and Batch Processor___Dehaze. |
| Lut canon R5 | Canon R5 HIF/TIFF LUT convert | Batch Processor___Lut canon R5 / Colour Correction___Lut canon R5. |
| Action | Use | Notes |
|---|---|---|
| Red Enhance | Boost reds | Red channel colour-fill (16% color) + hue/sat +26 on reds, flatten. |
| Enahnce Blues | Boost blues (spelling as recorded) | Blue channel hue/sat +35 + blue colour-fill, flatten. |
| Enhance Greens | Boost greens | Green channel hue/sat +43 + green colour-fill, flatten. |
| Colour Increase Reds | Warmer reds | Vibrance +15 + hue/sat +11 on reds. |
| Action | Use | Notes |
|---|---|---|
| Face retouch | Skin smoothing | Neural Filter skin-smoothing at 73% fill; flattens. |
| Eye Pop | Brighten eyes/iris/teeth | Selects Eyes/Iris/Teeth, then conditionally runs Eye Pop Finish. |
| Eye Pop Finish | The eye-pop curve | Expand 5 + feather 3 + curve at 82% luminosity, flatten. |
| Colorize Neural | Colourise / colour shift | Neural Filter at 40% fill, flatten, deselect. |
| GenVar 1 / 2 / 3 | Pick a generative variation | Selects generated variation index 0/1/2, flatten (needs a gen layer). |
| Action | Use | Notes |
|---|---|---|
| Set Image Aside / Get Image Aside / Layer Image Aside | Stash a frame to combine later | Stacks as Layer 0, Layer 1…; backbone of Lightcomp/AEB/Stereo/Macro. Process & save after all frames are stacked. |
| Align 2 layers | Register a bracket pair | Exposure-clip helpers + auto-align by content; top layer → screen. |
| Copy All Layers / Background Layer To Top | Composite housekeeping | Rely on the layer-naming convention. |
| Hide Middle Layers / Show All Layers / All Layers Visible / Middle Layers Invisible | Layer-visibility passes | Used across Lightcomp; keep the "Layer 0/Background" names intact. |
| Blend Screen / Blend Lighten / Blend Colour / Blend Shadows | Set blend mode/range | Blend Shadows applies a shadow-only blend-if range. |
| Blending Options Highlights Only | Highlight-only layer | Blend-if so a layer affects only highlights. |
| Selective Lighting Blue | Painted dappled cool light | Long recorded diamond-gradient sequence + exposure clip. |
| Sunset lighting through leaves | Warm dappled light | Clouds → levels → warm colour fill in a mask. |
| Space Background | Space composite backdrop | Used by BASIC SPACE ANIMATION / SPACE NORMAL EDIT. |
| Make Stereo Image / Make Wigglegram | Stereo & wiggle output | Used by the Stereo/Wigglegram rulesets with Documents Open. |
| Macro Light Comp Arrange | Build the macro light stack | Stacks + masks the bracketed exposures with subject selection. |
| Macro Light Comp Animation | Animate the macro stack | Keyframes opacity across the Timeline, then Save As PSD + Animation. |
| Toggle Layer / Toggle Document / Go Back | Navigation utilities | Toggle Layer = select forward layer; Go Back = previous history state. |
| Layer Via Copy / Duplicate / Duplicate Background / Create Snapshot | Copy utilities | Snapshot = new doc from current history state. |
| Deselect / Flatten / Fill 50% / Fill Mask / Move Selection | Housekeeping | Fill Mask commits a white mask then flattens; Move Selection transforms + feathers + fills. |
| Content Aware Expand | Grow canvas & fill | Canvas 105%, content-aware fill the new edge, flatten. |
| Close | Close a doc without saving | Used to end composite chains. |
| Action | Use | Notes |
|---|---|---|
| Vignette (selection) | Darken edges | Feather 5px, fill white on a moved layer. |
| Frame Channel - 50 pixel | Border channel base | Builds "photo edge" channels; needs ≥100px. |
| Wood Frame - 50 pixel | Wood-textured border | Bevel/emboss + noise + motion blur on the frame. |
| Cast Shadow (type) | Type drop-shadow | Rasterise type first; multiply @75%. |
| Water Reflection (type) | Type reflection | Ripple + motion blur @65%. |
| Custom RGB to Grayscale | Weighted mono | Channel Mixer (R24/G68/B8) → grayscale. |
| Molten Lead | Metallic texture effect | Clouds → Find Edges → Plaster → Unsharp. |
| Sepia Toning (layer) | Sepia | Desaturate + colorize hue 30/sat 25. |
| Quadrant Colors | Four-quadrant colour split | Desaturate + curves, then per-quadrant Color Balance. |
| Gradient Map | Blue/Red/Yellow gradient map | Adjustment layer @70% overlay. |
| Mixer Brush Cloning Paint Setup | Painterly rework scaffold | Flattens then builds Underpainting/Intermediate/Detail layers — artist-present. |
| Action | Use | Notes |
|---|---|---|
| Crop | Commit the current crop | Crop + delete cropped pixels + deselect. |
| Metadata Crop | Apply a crop stored in metadata | Metadata Crop___Metadata Crop; verify with boundary conditions/Shift first. |
| Manual Crop | Ratio crop with orientation logic | Tests landscape vs portrait, calls Horizontal/Vertical. |
| Manual Horizontal Crop / Manual Vertical Crop | Fixed-ratio crops | Content-Aware fill at edges. |
| Crop to Face | Portrait/group crop around faces | CropToFace___5,4 (8×10 group); nudge with Shift. Studio-tuned. |
| saveAlpha | Save selection as alpha | saveAlpha___saveAlpha for reuse. |
A JPG is already written after each ruleset that fully passes — these add extra/interim saves and other formats.
| Action | Use | Notes |
|---|---|---|
| Save As JPG | Standard deliverable | Drop mid-pipeline for a "before extra grade" copy. |
| Save As PSD | Keep layers | Ideal after compositing/stereo stacking. |
| Save As Animation | Video/motion export | Set Timeline/video options before this save. |
| Save As GIF | Wigglegrams / short loops | End of the stereo/wigglegram chain. |
| Save as Photoshop PDF (Default Actions) | Print-ready | "High Quality Print" preset; output path machine-specific — re-point. |
Copy a function into external function.jsx, call by name + arguments: ^thisIsMyFunction___argument1value, argument2value. Examples from the rulesets: ^autoWhiteB___"bleh", ^makeSelectionWithWBShift___2, ^AIGenByVoice___"", true.
↑ Back to topGolden-hour skin warmth — auto-tone, then warm skin only.
Time___>___19:00:00___Time___<___21:00:00___Face Area___>___0.1@@@Auto Camera Raw___Auto Camera Raw___getSelection___subject,Skin___ACR___tem6 sor8 exp0.2 locked___Batch Processor___Deselect
Group shot even lighting — even the light globally, then oily-skin-fix all faces.
face Area___<___0.61___Subject Area___>___30@@@Auto Camera Raw___Auto Camera Raw___ACR___sha10 hig-8___Batch Processor___Oily Skin Fix
Dark, high-ISO frame — NR the noisy background hard, keep the face crisp.
ISO___>___8000___Overall EV___<___3___Face Area___>___0.1@@@select background___select background___ACR___lre34 lde40 cre20 locked___Batch Processor___Deselect___Batch Processor___Select Face___ACR___srp30 sde30 lre6 locked___Batch Processor___Fill Mask
Small subject, big sky — dehaze the sky, then auto-tone the subject separately.
Subject Area___<___5___Sky Area___>___30___face Area___<___0.1@@@select Sky___select Sky___Iceland Landscapes___Dehaze___Batch Processor___Deselect___select Subject___select Subject___Auto Camera Raw___Auto Camera Raw___Batch Processor___Deselect
Long-exposure water — cool and soften the water only, sharpen the subject.
Shutter Speed___>___1___Keywords___Match Word___Water@@@getSelection___water___ACR___con-8 tem-4 cla-6 locked___Batch Processor___Deselect___select Subject___select Subject___ACR___cla6 srp30 locked___Batch Processor___Deselect
Tiny bird on a long lens — sharpen the subject, NR the background.
Subject Size Metres Squared___<___0.02___Focal Length___>___300@@@select Subject___select Subject___ACR___srp50 sra1 cla10 locked___Batch Processor___Deselect___select background___select background___ACR___lre18 locked___Batch Processor___Deselect
105mm studio headshot — crop to face, retouch skin, pop eyes.
Focal Length___>___95___Focal Length___<___110___Face Area___>___0.1@@@Crop to Face___Crop to Face___Batch Processor___Oily Skin Fix___Batch Processor___Eye Pop
Client email present and high rating — auto-tone and mail out.
Copyright Info___Match Word___@___Star Rating___>___3@@@Auto Camera Raw___Auto Camera Raw___Save As JPG___Save As JPG
Camera reports near-level — skip straighten and just crop.
Voice Memo/Text File___Analyse___RollAngle<1___Voice Memo/Text File___Analyse___RollAngle>-1@@@Batch Processor___Crop
Second frame arrived → blend — when the paired exposure is open, screen-blend it.
Author___Match Word___doubleexpose___Documents Open___=___2@@@Batch Processor___Get Image Aside___Batch Processor___Blend Screen___Batch Processor___Flatten
Square capture for social — auto-tone, punch contrast, save.
Crop___=___True___Pixel Width___=___5864___Pixel Height___=___5864@@@Auto Camera Raw___Auto Camera Raw___Batch Processor___Strong Contrast___Save As JPG___Save As JPG
Nothing here is finished until it's tested on real images. The tools below let you build against real metadata, run a batch, read the results, and tighten the rules — a loop you repeat with help from the community, an AI, and the developer.
A scenario is several conditions saved under one name and reused as a variable. Every ruleset can hold up to 10 conditions, and each of those can itself be a ruleset — so up to 100 conditions in one ruleset. You cannot nest further than one level. Because editing passes forward, a saved scenario applies its actions to whatever the previous passing ruleset produced.
# on a name means the ruleset is turned ON (active in the run). No # = the ruleset exists but is skipped. Turning rulesets on/off is one of your main tuning levers.* on a name means the ruleset is conditions-only — it has no actions and is meant to be nested inside other rulesets as a reusable condition block. On its own it edits nothing.___x___x, e.g. SUNSET CROP WITH NEGATIVE SPACE___x___x.SUNSET___x___x___CLOSE UP PORTRAIT___x___x___BACKLIT PORTRAIT___x___x → save as SUNSET CLOSE UP PORTRAIT BACKLIT. That combined name cannot then be called further (SUNSET CLOSE UP PORTRAIT BACKLIT___x___x is invalid).NAME@@@timestamp@@@conditions@@@actions, where @@@ separates the four blocks and ___ separates items inside conditions and actions. Example:CANON R5 HIF CORRECTION@@@Tuesday, June 09 2026 16:12:44@@@File Name___Match Word___.tiff@@@Batch Processor___Lut canon R5~ prefix references a ruleset used as a condition, e.g. ~MID PORTRAIT___x___x___~CLOSEUP PORTRAIT___x___x.^ prefix calls a custom script from external function.jsx, e.g. ^makeSelectionWithWBShift___2.locked on an ACR action stops the camera Author/Copyright fields from overwriting it.Drop a function into external function.jsx and call it by name with arguments (^functionName___arg1,arg2). Colour-in-region selectors return a percentage and can save an alpha — e.g. getColourAreaInSky, skinColourInSubject (saves alpha "skinperson"), CyanColourInSubject, yellowColourInBackground. Intro custom ideas: hatHeight = (subjectTop − faceTop) / faceHeight; "reds in sky"; "brightness of magentas."
Create custom actions and functions for tasks like file renaming and uploading, along with custom triggers. Record an action in Photoshop, then call it as Folder___Action Name. Test each new action on a handful of representative images before adding it to a ruleset, and re-test after any Photoshop update. Use the Actions panel Playback Options (Step by Step or Pause For) to slow a run down and watch exactly where a step fails, then switch back to Accelerated for real batches.
Build rulesets in graded pairs so a near-miss still gets handled, and add a recovery ruleset for when an Auto over/under-corrects — modelled on the SUNNY CORRECTION set, which has a strong + variant and a milder variant with different histogram thresholds.
Graded pair — strong vs mild subject-shadow lift:
SUBJECT SHADOW LIFT STRONG → Subject Area___>___1___Subject Histogram Range___>___subject0->10=20%@@@select Subject___select Subject___ACR___exp0.6 hil-20 locked___Batch Processor___Deselect SUBJECT SHADOW LIFT MILD → Subject Area___>___1___Subject Histogram Range___>___subject0->10=5%___Subject Histogram Range___<___subject0->10=20%@@@select Subject___select Subject___ACR___exp0.3 hil-10 locked___Batch Processor___Deselect
Misfire recovery — Auto crushed the frame:
AUTO MISFIRE RECOVER → Global Histogram Range___<___full0->5=30%___Subject Histogram Range___>___subject0->5=12%@@@Batch Processor___Gamma Exposure 2 Shadow___Batch Processor___Auto Flat Image
Safe-variant habit: when running Auto Colour Curves with snap-to-neutral, deselect "Use Original File Name" in the batch so a non-snapped variant survives if the neutral snap shifts colour badly.
Neutral-snap over-shift catch:
NEUTRAL SNAP OVERSHIFT CATCH → Global Histogram Range___>___full0->10=1%___Green___>___45@@@ACR___tin8 hgr6 (re-warm if the snap threw a green cast).
A builder for assembling rulesets from the conditions using dropdown menus and search, rather than typing raw ___ strings. Crucially, it works from the information that already exists in a reference photo — the loaded image's own metadata seeds the values, so the picture becomes your reference point for setting thresholds. A typical flow:
Because the maker uses the photo's real data, the fastest way to a reliable rule is to build against a known-good example, then test against edge cases to find where it wrongly fires or wrongly skips.
Each batch run produces a log (e.g. Batch Process Log.txt) recording, per image, which rulesets were evaluated and whether each passed (conditions met → actions applied) or was rejected (conditions not met). The most useful logs also record which condition failed and the actual value it saw. This is your feedback signal: it tells you, in the field's own numbers, why a rule fired or didn't.
read your log's header row first. A typical line has the image name, the ruleset name, a pass/reject outcome, and (ideally) the failing condition with the value observed. If yours records only pass/reject without the failing value, turn on the more verbose logging option if available, or add a temporary "diagnostic" ruleset (conditions only, *) that isolates the single condition you're testing.
How an AI should read the log (advice to paste to an assistant):
What the person should change based on the log:
The loop: run the batch → read the log → change one thing → re-run → compare. Small, single-variable changes make the log readable and the cause of any improvement (or regression) obvious.
Treat every ruleset as provisional until it survives a batch of varied real images. Share and borrow rulesets with the community, use an AI to draft conditions and read logs, and raise gaps or bugs with the developer for new conditions and fixes. Each of those raises accuracy and lets Focusbatch fit whatever working style you have — but only testing turns a plausible rule into a dependable one.
↑ Back to topStep-by-step walkthroughs. Each links to its own page with the video embedded.