Here is a node group to fix your HDR lighting issues.

This drove me nuts for the longest time: what do I do if my HDRI background does not illuminate my scene like I want?
If I change the Background node strength, everything would change together.

BlenderNation recently showcased a node setup by Reynante Martinez called ‘IBL Controller’ ( that allows you to fix your lighting with a few input settings.

I needed something more primitive and gave me more control.
Here is a node-group called HDRI Splitter (this does not use anything from Martinez’s node setup).
It only has two inputs: the background image and the illumination image. They don’t have to match at all, although that would be an unusual application.
Typically you would modify a copy of the ‘Sky for Background’ color input, maybe darker or less color, then feed it into the ‘Sky for Illumination’ color input. All differences between the background and the lighting are up to you, no easy sliders, but you have full control. Go crazy!

The node and all the following images are in the blend file at

It’s hard to show a realistic application because the differences would normally be subtle.

Here is an extreme application. The ball is seeing a different sky than the actual background.
In a realistic application the ball might be seeing a darker version of the background, for example.
The different sky here is a full HDRI and affects all lighting of objects in the scene, not just the reflection.

Here is an example from the blend file of how you might use the node group.

Here is a detailed look inside HDRI Splitter, also from the blend file. The trick is learning how the Lighting Path node works. I also added some special nodes that will keep extra fireflies from appearing if one of the inputs is a solid color.
My goal with the setup was to discover which ray-tracing rays were coming directly from the background to the camera.
Unfortunately, it would have been very easy if the Light Path node had a ‘Is sky?’ output, but it doesn’t, for shame.
So I used a combination of the other node outputs to work it out. This was partially trial-and-error so I can’t explain exactly how that part works, but seems to work on anything I can throw at it (piles of reflective and glass balls, emitting light sources both on and off camera.)
If somebody finds a situation where it doesn’t work, let me know.

Hope this is useful to you, I know it will be a great relief for me to have in my tool box.