What's new

Problem with Smart Object and Content-Aware fill


I recently ran into a problem where I created a Smart Object, applied a Camera Raw Filter, mad adjustments (all perfectly normal), then did some clean up in Content Aware fill using layers to continue the non-destructive workflow.

During subsequent processing, as the image evolved, I went back into the Camera Raw Filter and further refined the image. Which caused a significant mismatch with the layers containing Content Aware fill output.

I asked in the Photoshop forum, but the only answer was to take a sledgehammer to the problem and trash a bunch of layers.

Since there ARE Smart Objects, and they're being pushed as "non-destructive". And there are layers and they're being pushed as "non-destructive". As is content-aware fill in all its forms, it would be nice if they worked together.

I see the Camera Raw Filter touted in posts and in some documentation, claiming seamless round-trips from Photoshop. Unfortunately, it appears doing so is a good way to make a mess of a bunch of very time-consuming work in Content-Aware fill-created layers.

I'm not sure when the Camera Raw filter or content-aware fill were introduced, but it had to have been at least a couple YEARS ago, so is there some method in Photoshop to tell it to update layer X (that contains a bunch of pixels derived from pixels in layer X-1 or 2 or 10) with those pixels altered by a smart filter? Or even better, to KEEP layer X current with pixels altered by the smart filter on the Smart Object?

Or at LEAST some workaround less destructive than trashing layers into the garbage can and redoing everything?


Hi @GracieAllen
First the bad news
The problem that you see is not limited to use of Smart Objects.
Any time you change pixels above another pixel Layer or masked adjustments Layers, and then go back and change the underlying pixels (whether in a Smart Object or not), those underlying pixel changes are done independently of the Layers above. So this can cause a lot or rework or throwing out Layers. One must be careful in creating the Layer Stack to avoid those situations whether it is a Smart Object or any other pixel Layers below.

There is a way to help with this problem so you can access the Camera Raw Filter or any other filter and have it apply to multiple Layers (so now the good news)
All you have to do is select all the Layers you want adjusted together and turn that into a Smart Object (even if one of the existing Layers is already a Smart Object).
Then, when you apply Filters to this new multi-Layer Smart Object, they all get adjusted together.

When you include a Smart Object by itself with or without other Layers, this is know as a hierarchical Smart Object. It can come in handy in many situations and your is one.
As a specific example

1) Make one Layer a Smart Object and make Filter adjustments (know when in a Smart Object as Smart Filters).
2) Make a second Layer with pixels that interacts with the Smart Object below
3) Select both of the these Layers and turn them into a Smart Object - now you can adjust both at the same time and the results won't be trashed.

Also note that this is non destructive. You can go back into this multi-Layer Smart Object and make additional changes.

So whether it is Photoshop or any other graphics editor that supports Layers, you have the same issue of careful construction of the Layer Stack to avoid the problem you see. Hierarchical Smart Objects can help to some degree get around those problems.

Hope this helps
John Wheeler


Thanks John. Yeah, I hit that sort-of solution last night. I don't LIKE it, but it's there.

Create smart object. Go into ACR and lower exposure and shove shadows all the way up.
Create new layer, do content aware for cleanup. So far things look OK.
Decide I ALSO want to do Shadows/Highlights. Have to do that on a Smart Object, so I take the 2 layers and make a NEW Smart Object with my original Smart Object in it.
Add Shadows/highlights and it looks OK.
Realize my ACR from previously is totally garbage and I need to UNDO it.
Open ACR again and when I go in, everything is back to zero.

It kind of works, but it’s WEIRD! And it makes my brain hurt.
And in six months when I open this how do I easily (idiot proof-ly) tell I now have two layers of Smart Objects? I can OPEN them, and open again, but in six months how am I going to remember I HAVE all these layers of smart objects?

I’m not involved in Photoshop engineering and I have NO idea how painful it would be, but since we’re now in an environment where non-destructive is being pushed a lot and tools like Content-Aware fill work the way they do – and I suspect other tools do or will – it would be nice to have some way to update layers derived from the Smart object when modified by a smart filter modification. A “I know Layer ‘X’ got it’s pixels from me (smart object in layer X-4, and my perceived output is different because of a smart filter, so here are all the altered pixels you’re using X.” Now any layer that had pixels from the smart object would match again…

It is, of course, a really EASY thing to suggest, but may be immensely difficult to do...