If you find that your flash is being fooled into giving you the wrong output based on the scene in front of you tending toward either end of the brightness spectrum, consider using the flash exposure lock control to tell the camera precisely which element in the scene from which you’d like to take a meter reading. It’s like having a spot meter built into your flash.
The first step to using flash exposure compensation (or flash value lock as Nikon calls it) is to find the FEL or FV button on the camera. On a Canon 5D Mark III, for instance, the multifunction button adjacent to the shutter release is, by default, used for Flash Exposure Lock. But I find it more convenient to assign this duty to a thumb button, the one with an asterisk next to it that normally controls Auto Exposure Lock. Using the cameras custom controls you can change which button controls Flash Exposure Lock and many other functions. Nikon bodies work this way too. The FV lock functionality can be programmed in to different custom function buttons, so however you set it up it’s conveniently located in different places for different photographers.
Next, compose the scene so that the viewfinder’s center focus point is aimed directly at the area of the scene that you would consider average. This is why auto flash metering sometimes stumbles; it sees the whole scene and assumes it’s of “average” brightness. A largely black or largely white scene, of course, isn’t exactly average. In either of those scenarios, a human face or other element that approximates middle gray in brightness is the ideal area at which to point the center spot. With the center focus point aimed at the average area, press the Focus Exposure Lock button and it will fire and measure a pre-flash, determining the correct flash exposure for this precise average area.
The camera will retain this information for several seconds, allowing time to recompose the scene and fire the shot as usual. If you keep shooting without delay, the setting will remain. To clear it, simply press the FV Lock button a second time, and look for the indicator to disappear from the viewfinder. Or wait until the meter disappears from the viewfinder, resetting the Flash Exposure Lock. With Flash Exposure Lock (or Flash Value Lock) the TTL auto metering won’t be fooled, and your tricky lighting situation will be correctly exposed.
It’s also a super useful tool even if your subject isn’t off-center in a dark scene. If you want to fire multiple flashes for multiple shots, for instance, but you don’t want to fire a pre-flash each time, the Flash Exposure Lock is useful because it fires the single pre-flash to determine the exposure, and then keeps that information locked in until it’s cleared from the memory via the steps above. This way, if you’ve got a subject who is likely to blink in reaction to a pre-flash, you eliminate the need for a pre-flash with every shot.