My Wedding Photography Workflow
Over the course of the 18 years that I've been photographing weddings and other events, my workflow has been developed and refined to produce the best possible images in a manner that that is efficient, safe (in terms of doing everything possible to ensure images are not inadvertently lost), and practical. A photographer who is not able to efficiently store, backup, edit, and deliver the high volume of captured images that are typically associated with photographing weddings will quickly be overwhelmed by the process.
Shooting
Yes, in my view, workflow includes the actual photography! Taking steps to set up your cameras properly and with foresight can help speed things up later.
File Naming
Pretty much all camera bodies allow for a custom prefix to be set for file naming. It's a good idea to change this to something different on each camera rather than leaving at the default (which is typically "DSC") to avoid the possibility of file name conflicts when shooting an event with multiple cameras. True, there are ways to address duplicate file names during the ingestion process, but I'd rather not even have to mess with that, since it's so easily avoided by setting a different prefix for each camera.
Many photographers incorporate their initials, along with a number for each body (for example, a prefix of MC1 for one camera, MC2 for the second camera, and so on).
But the standard I settled on long ago is to use the last two digits of the camera's serial number as a prefix followed by an underscore character (so, my files are named, for example, 32_03912.ARW from one camera, and 18_05214.ARW from another). Of course, I will have to change this if I ever end up with two camera bodies that happen to have the same two digits at the end of the serial number!
Time Synchronization
When shooting with multiple cameras (and multiple photographers), you'll want to set the clocks of all the cameras to be precisely synchronized down to the second, so that when these images are combined and are sorted by capture date, they all appear in the correct order, at least within a second or so, with the goal being to avoid photographs of moments that clearly took place several minutes or more apart being sequenced next to each other.
This clock synchronization typically needs to be done for every wedding (or at least once each weekend), as no camera I've ever owned has a perfectly precise clock, so after a few weeks they might have drifted several seconds off from each other.
If you're shooting by yourself with two cameras, this is pretty easy to do. When a second shooter is involved, so there are three or four cameras, it gets trickier, and usually involves a 3-2-1 countdown at which time you push the buttons on all the cameras at (hopefully) the exact same time to register the clock setting.
A better way of handling this (if you forget to set the clocks before you begin your coverage, if you and your second shooter are starting in separate locations, or if you simply prefer to do it this way) is to not worry about the precise time your camera's clocks are set to, and instead bring up a display of a clock (with seconds shown) on your phone, such as from time.gov, and photograph this clock with each of your cameras. These shots don't have to be done at the exact time, or at any particular time for that matter, and can even be captured after the event is over (as long as the cameras' clocks have not been adjusted in the meantime, or too much time hasn't passed, as, again, the clocks may have drifted further out of sync since then), though for the sake of making the next step as easy as possible, I prefer to do these time synchronization shots before coverage begins, so that these shots are the first ones displayed in Lightroom for each camera and I don't have to go hunt for them.
Once in Lightroom, you filter your view in Library mode (thumbnail view) to display only images from one particular camera (using the "Camera Serial Number" metadata filter... but if your camera does not record the serial number in the metadata of captured images, you'll need to filter based on the file name prefix you assign to each camera), select the clock photo, then select all (leaving the clock photo highlighted as the primary photo), then use the Edit Capture Time feature (set to the "adjust to a specific date and time" option).
This can be a little confusing at first, as one would get the impression based on that wording that with all the images selected, this option would set all the selected images to that exact same time, and put you in an even worse situation than before. But that's not how it works. It actually sets only that first highlighted image to the specified time, with all the ones before or after it being shifted by the same relative amount. You then repeat this process for the other cameras' images, and the end result is an entire wedding's worth of photos that are perfectly synchronized.
But the bottom line is that if you don't either synchronize your clocks before you begin shooting, or take clock photos with each camera to facilitate easily shifting the time in post-processing, you're going to be faced with the possibly tedious prospect of having to manually figure out the time differences between cameras based on visual clues within the images (such as the first kiss).
White Balance
When photographing weddings, while I do try to get my images as close to perfect as possible in-camera, white balance is the one thing that I do not obsess over. There are a number of products and methods available for precisely setting a custom white balance on-location, but I see this as futile and unproductive.
Weddings almost always involve constantly shifting white balance depending on where you are in the space, since the multiple lighting sources (warm artificial light, cooler daylight coming in through windows, colored lights from the band, and your own flash, which will be daylight balanced, or tungsten balanced if gelled) are going to all contribute in different amounts as you move around, and as time progresses. Even when shooting outside in daylight can produce different color temperatures as cloud cover comes and goes, and you move in and out of shady areas.
So, setting a custom white balance is largely a waste of time and effort, as there's really nothing to be gained here in terms of efficiency, with the possible exception of formal group shots where you're going to be doing a long series of shots in the exact same spot with consistent lighting. But even then, there's simply not much (if any) difference in time between setting a custom white balance in-camera or, in post-processing, setting the white balance of the first image and syncing that setting to the rest. Given how much is typically going on during a wedding, this is not something worth wasting any mental effort on.
When shooting RAW, shooting with precise white balance vs. setting it later in post-processing, makes no difference in terms of quality. So, I'm almost always simply shooting in auto white balance (AWB). This usually gets it pretty close in-camera (especially for outdoor shooting), and then I can either make batch changes to groups of images that all have identical lighting, or tweak each image individually for those that don't.
I do, however, set my white balance in-camera to tungsten if I'm shooting with a CTO or CTS gelled flash (to make my flash match warm indoor lighting), but even this is merely for aesthetic reasons, to make the images not look orange when viewing them on the camera; most camera bodies when set to AWB and when they detect that a flash is being used, will not actually evaluate the scene to calculate the white balance, but instead will just assume that the daylight-balanced flash is the dominant light source and will set the white balance to around 5500K, but this will result in a very orange looking image if the flash is, in reality, gelled to around 3000K. Again, there's no harm in just letting images be captured in this setting and making the adjustment in post, but it just makes for an unnatural looking image when viewing on the camera.
Big Memory Cards, and RAW to Both
I always shoot with dual card slot cameras, and unless it's the occasional job (typically non-wedding) that requires immediate on-site delivery of unedited / straight-out-of-camera JPEG images, I shoot RAW to both cards. Some photographers choose to shoot weddings with JPEGs being written to the second card as a backup because of card space, which is certainly better than nothing, but I see no reason to not shoot RAW to both, so that I'm not giving up any post-processing exposure or white balance adjustment latitude on the off chance that the first card is corrupted somehow. This is especially the case if your camera uses SD cards, which are so inexpensive now.
Over the course of over 18 years photographing weddings, I've only had to rely on the secondary card a couple of times. Once was a CompactFlash card that had its directory structure corrupted... some image files were present, but were displayed in a scrambled series of nested folders. They perhaps could have been recovered, but I didn't even try, I just went straight to the second card. And I've had a few instances where the contents of the card were almost completely normal, but one or two individual files were corrupt (either couldn't be copied off the card at all, or just couldn't be opened).
I also always shoot with cards that are sufficiently large to avoid having to swap full cards during an event. Before dual card slot cameras were commonplace, the predominant thinking among wedding photographers was that it was safer to shoot with numerous smaller cards, so that if one was corrupted or misplaced, you wouldn't risk losing the entire wedding. But with dual card slots, that's not nearly as much of a concern, and I feel it's more prudent from a safety perspective to not handle cards at all during the event (since any such handling dramatically increases the chances of a card being misplaced).
This also gives the benefit of fewer cards to process after the event, just two for me, and one or two others if there was a second shooter.
I keep an absurdly large number of memory cards in my inventory, more than is really necessary, in order to eliminate any pressure to prematurely reuse cards from the second slot (I use faster UHS-II cards in the first slot for faster downloading to the computer, and these do typically get reused within a week or two of the wedding, but the second slot cards get set aside and preserved untouched until at least a month after the wedding has been edited and delivered).
Before I trust a newly-purchased card for a wedding, I first test it thoroughly. I use a simple command-line app called F3, which with one command writes a series of test files with a specific pattern of data to the card, completely filling it up, and then with another command reads/verifies all of those files. The original intended purpose of this utility was to confirm that a memory card (or flash drive) actually did have the capacity that it was advertised to have (and was not just a very small card that had its controller altered to fraudulently present itself as being a higher capacity device), but it also works great to put a new card through its paces and make sure it's operating correctly. I'll then use the card for a non-wedding shoot just as a further confirmation that it's working properly, and at that point it's put into circulation for regular wedding use.
Downloading & Importing
Once I arrive back home from a wedding, I immediately, without fail, start the process of downloading and backing up the images. Doesn't matter how badly I want to go to bed, this is something that must get done right away.
Converting to DNG
As my first step in post-processing, I convert all of my RAW files to compressed DNGs, and I do this directly from the cards, with Adobe's DNG Converter app. Another way to accomplish the same thing is to copy the RAW files from the cards to your computer first, and then either convert them with DNG Converter, or import the RAW files into Lightroom and do the DNG conversion there. But I find the quickest, most straightforward way to do the conversion is straight from the cards, with the destination being a temporary folder on the SSD where I store my current files. This also enables the processes of copying from the cards and converting to DNG to be executed as one step that can run without intervention, as opposed to copying the RAW files first, waiting for that operation to finish, then converting in a separate step.
I utilize multiple card readers so that I can convert all the cards at once rather than having to monitor the process of sequentially importing individual cards, which would be significantly more time-consuming and tedious. DNG Converter does not allow for multiple cards to be selected and converted in one batch process, so you need to have multiple instances of the DNG Converter open to be able to do this. On MacOS, here is a Terminal command to launch additional instances of an app, but the easiest way to accomplish this is to simply duplicate the DNG Converter app several times (naming them DNG Converter 1, DNG Converter 2, and so on), each of which you can launch as a separate instance of the app.
These will run in parallel as opposed to sequentially, and doing it this way may or may not drastically speed up the overall process, depending on various factors. If your computer's CPU is fully utilized by just a single instance of the app, multiple instances just result in that same CPU time being divided up among the instances, so it's not significantly faster, though it does end up being much more convenient, as you can set up all the cards to be converted while I go off and do other things, rather than having to babysit the process more by waiting until each card is done before I set up and start the next one.
But if your CPU is not completely saturated by one instance of the app, running several of them simultaneously will indeed be faster, as long as your memory cards (and card readers) are capable of supplying data at a higher rate.
I keep a "Temp" folder on my RAW drive that is always set as the destination in DNG Converter. When I first adopted this workflow, for each wedding or portrait session I would create the actual destination folder (with the client's names) and designate it in DNG Converter so that the images are converted straight into that folder, but I eventually realized that, because this folder had to be set every time in each of the multiple DNG Converter instances I was running, it was quicker to just leave it permanently set to one temporary folder, and then once the conversion is complete, I create the correct folder for the job and move the DNG files into it all at once.
One last time-saving step I stumbled on involves setting the sources (each individual card) for each instance of the DNG Converter app. Previously, when I'd open the multiple copies of the app, I'd have to then go to each one and select a card for each to convert. However, I found that if you drag a card's icon to the DNG Converter app, it sets that card as the source. So, I put aliases on my desktop for each of the copies of the app (I use four), and rather than launching the app and selecting the source, I just drag each card to its own copy of the app, which launches it and sets the source.
The process of converting all of the images to DNGs with my setup typically takes 10-20 minutes, so that's a perfect time to go take a shower, grab a late night snack, and get ready for bed (and, if there's another wedding the next day, get my batteries on their chargers).
A note about compressed DNGs. This is a lossy compression that does discard some information in exchange for significantly smaller files. But before I committed to using it, I did extensive testing, comparing the compressed DNGs to the original RAW files. I did this not only with ideal (low ISO and properly exposed) source images, but also with a variety of "torture test" images, at a variety of ISOs and levels of under- and over-exposure, in order to judge highlight and shadow recovery.
I found that for all but the most catastrophically bad exposures, there is no perceptible difference between the originals and the DNGs. And even when recovering these images, the differences are minor. But still, because I retain one set of memory cards from the wedding until after the editing is complete, if I do happen to encounter an image which I am struggling with and need to squeeze out every little ounce of highlight or shadow detail for recovery, I can always easily utilize the original RAW file if needed. I've had to do this exactly once in the eight years or so that I've been using DNGs.
That being said, in 2023, the DNG Converter app began using JPEG XL for its compression, which is reported to be a better format. Images converted with this new version of the app were about half the size of those converted with the prior version, though the conversion process took about three times as long. However, repeating my battery of tests, comparing the previous compression to the new method, I found that the JPEG XL compression did result in minor (but noticeable under scrutiny) changes to detail and color in some images. So, I will be sticking with the original compression (which can be retained even in the newer version of the DNG Converter app by selecting "Camera Raw 14.0 and later" as the compatibility setting).
Backups, Backups, and More Backups
I probably have more backups than I need, but I see it as a relatively inexpensive way to drastically decrease the chances of ever losing these priceless images. If there's one thing I fear, it's having to tell a couple that a computer mishap resulted in their images being lost forever, so I do anything I can to reduce the possibility of ever having to make that call!
Though I make general backups of my computer and external drives, I make additional specific backups of my RAW files and Lightroom catalog, using a powerful and comprehensive backup application called Carbon Copy Cloner. These backups include an always-connected hard drive (for easily initiating a backup whenever I feel the need), three portable SSDs (one of which is always in my car), a cloud backup (Backblaze), and a USB flash drive (which lives in my pocket and usually goes with me if I leave the house, especially if the cloud backup has not yet finished).
Are SSDs really necessary for the role of backup drives? No, of course not. But although SSDs are still substantially more expensive than equivalent capacity hard drives, the price difference is constantly shrinking, they have the benefit of being smaller and arguably more durable (since there are no fragile moving parts). But the most important factor for me is the speed. After a big wedding, running multiple backups onto portable hard drives takes a long time, and represents a significant pain point for me. Replacing those hard drives SSDs means those backups only take a minute or two.
Retaining Memory Cards
In addition to multiple backups, I set aside the second set of cards until after the wedding has been edited and delivered to the couple. I intentionally retain the second set (instead of the first set that was just downloaded), just in case there ends up being some corruption on the first set of cards that initially goes unnoticed. I have a pretty massive stockpile of SD cards that makes this easy and eliminates any pressure to prematurely reuse cards for other jobs.
Importing Into Lightroom
It's common practice for wedding photographers to use Photo Mechanic as a preliminary culling and sorting tool prior to bringing the images into Lightroom (or whatever editing app they use). Although Photo Mechanic is indeed a very speedy app for quickly going through RAW files, I personally see no benefit to this for how I work as long as a little preparation is done in advance, which I will expand on later.
I also just perpetually use one single Lightroom catalog file for all my current jobs, rather than a separate catalog file for each event or session, or having a catalog file for each month or year. This is partially driven by the fact that I heavily use Lightroom Mobile to edit images on my iPad Pro, which requires that one single catalog file be used, since only one can be designated to sync with the Creative Cloud server. But even before I started using Lightroom Mobile, I still just used one catalog file, as that was the simplest and most convenient method for me, as it gives me the ability to instantly switch around to work on different jobs as needed rather than having to quit and relaunch Lightroom each time (as is necessary when switching catalog files)
There are some anecdotal reports of Lightroom slowing down over time when using a single catalog file, with it being said that the catalog becomes bloated and corrupt over time. However, in the 12 years or so that I've been a Lightroom user, this has never been an issue for me, though I should note that I don't literally keep every single image I've ever captured in this one catalog file, as once a job is edited and delivered, I export a separate catalog file for that job onto a different drive for offline storage (which I keep for a while... I don't retain the RAW files indefinitely). So, in other words, jobs come and go out of this one catalog file, and although at any given time it may contain 10,000-20,000 images, it doesn't continue to grow and grow perpetually... jobs are cycled in and out of it as they come in and are completed). Additionally, I have Lightroom set to automatically prompt me to optimize this catalog file upon quitting the app.
Modifying Lightroom's default develop settings to automatically set imported images to a good starting point can be a big time saver. I like to have a Contrast boost, lifted Shadows a little, a bit of Clarity, and a light Post-Crop Vignette added to my images by default. Additionally, Lightroom has a fantastic (and largely hidden, if you don't know to look for it) feature that allows for ISO-specific default settings. What this means is that you can set up greater amounts of noise reduction to automatically be applied to higher ISO images upon import.
Additional Preliminary Lightroom Tasks
At this point, with backups run and the images imported into Lightroom, I set up several more processes to run before heading off to bed. Because I make heavy use of Lightroom Mobile, I create a Collection for each job (which is a step needed in order for the job to be synced to Adobe's server), and I generate Previews. These tasks, running in parallel, can take an hour or so to complete, so I like to have the computer working on them while I'm away.
Building Previews in advance, for me, makes culling with Lightroom efficient enough so as to not feel a need to use Photo Mechanic for this.
This can be a point of contention for some. Photo Mechanic's big draw is that it enables the photographer to very quickly see an image, rate it (or just flag/reject), then instantly jump to the next image. But for Lightroom to run as fast and efficiently in culling, it's best to build Previews first. Otherwise, there's a slight delay (less than a second typically) when moving from one image to the next, during which time a low-res version of the image will appear while a larger version is being rendered.
The time required for building Previews is what is commonly cited as a reason for using Photo Mechanic. But again, I set these Previews to run beforehand, so that I'm not waiting on them to be built when I'm ready to start editing. If the type of work I commonly did involved a need to instantly get to work culling immediately after returning from the event, I could see a benefit to Photo Mechanic. But I'm not going to start editing until the next day at the soonest, so there's no time penalty for me by first building Previews, which simplifies my workflow by keeping everything in Lightroom from start to finish, and lets me edit on the computer or iPad at any given time.
I typically build Standard Previews, which are sufficient for normal culling. If you want to also have the ability to instantly zoom in on your images, building 1:1 Previews instead will allow for that (otherwise, it takes several seconds to render when you zoom in). Additionally, I also build Smart Previews (which Lightroom can utilize to speed up the editing process, and can also allow for editing if the drive that stores my RAW files is not available). Whether you want to build Standard Previews or 1:1 Previews, along with Smart Previews, both of these processes can be initiated at the same time and can run in parallel, so no need to wait for one to finish before you start the other.
Editing
I'll initially do a quick scan through the wedding to see if there are any large groups of images that could benefit from a batch correction, especially white balance.
Continuing, there are a couple of schools of thought of how to proceed, with some people preferring to do two passes, with the first pass being strictly for culling and the second pass being the editing of the resulting keepers, while others like to just do a single pass during which culling and editing are done simultaneously. Admittedly, I vacillate between these two methods, as I personally believe a single pass is the most efficient way, but sometimes I just feel like culling and am not in the mood for editing, so I'll just do a preliminary first pass. Either way, I'm not heavy-handed with culling, I only edit out images that are clearly unusable.
As mentioned before, I make extensive use of Lightroom Mobile to edit on my iPad, both when on the go and when simply wanting a change of scenery (away from the computer) at home. Lightroom Mobile makes this simple, with images (and edits to them) automatically being sync'd between devices.
When editing on the computer though, I like to use my Monogram Creative Console setup. This hardware control surface enables me to edit much quicker than I'd be able to by dragging on-screen sliders in Lightroom (or fiddling with Lightroom's limited keyboard shortcut abilities).
Finalizing
As a final step once editing is complete, I run a Lightroom plugin called Apply Bulk Develop Settings, mainly to make batch noise reduction adjustments. This useful plugin is somewhat redundant given that Lightroom already allows you to automatically designate higher noise reduction (as well as other settings) based on the ISO of each image upon import, but this plugin goes even further and analyzes the exposure adjustments you've made to the images (for example, if you've increased exposure or boosted the shadows, which increase noise), and adds whatever additional noise reduction you have it configured to do.
I also, of course, rename the images at this point, typically to the client's last names and sequential numbers.
Exporting
Edited JPEGs are then exported, with a high resolution set going to one folder (for archiving and delivery to the client) and another lower resolution to a different folder for uploading to my gallery system. In the past, with my i9 MacBook Pro, this process would take a few hours and the heavy CPU usage would result in the laptop's fans spinning up to an annoyingly audible level, so I would usually arrange my schedule to let this process run overnight or when I otherwise was going to be away from my computer for a while.
But, as mentioned above, the new Apple Silicon MacBook Pro computers are much better in this regard. Exporting JPEGs takes half the time as before, and the fan noise ranges from barely audible to modest, meaning I am free to run my exports whenever it's convenient.
Archiving
I don't retain my RAW files indefinitely (just the edited JPEGs), and after the job is exported and delivered, I move it from my active RAW drive and Lightroom catalog onto a secondary drive by using the Export as Catalog function, which exports the specified folder of RAW files as its own catalog. There, it lives for the next six to twelve months or so, just in case I subsequently have a need to re-edit an image, which is rare, but I still feel more comfortable keeping these files around at least for a while.
And That's It!
That's my system, which I've basically used for the past 12 years or so with great success.