Skip to main content
Participant
December 21, 2016
Question

Auto-update linked smart objects in Photoshop

  • December 21, 2016
  • 4 replies
  • 48444 views

HI everyone,

we have one header file used across multiple psd files as a linked smart object.  What we do now is open find the changes in the header and update.  But we have quit a few files and its tedious.  Is there a way to for the psd files to auto-update with the changes in the smart objects without  opening and re-saving manually?

thanks

4 replies

Stephen Marsh
Community Expert
Community Expert
January 12, 2022

It is the same in say InDesign or Illustrator, if you have a linked object and update the object, then each file that uses the linked object has to be opened/updated/saved.

 

As JJMack said, this could be scripted to some degree in finding and updating the files, but would still need to be "triggered" manually.

 

@Admirable_Companion5D67 if you have a simple "flat" linked SO layer structure, a Batch Action should do the job as illustrated below.

 

To illustrate the Adobe Bridge Batch route, one has to find all files that use the header file as a linked smart object, then select them and a batch script be run to update the files. This requires a little work, but a whole lot less work than scripting.

 

Step 1: Find the files that use the common header image that has been modified:

 

 

Here is the filtered result from Bridge > Edit > Find...

 

 

Step 2: Bridge > Tools > Photoshop > Batch...

 

 

Here I have created an action and used the "insert menu item command" to build the action steps. This could just as easily use a script that provides more abilities than what an action can provide.

 

Here is the result of the batch action:

 

Participating Frequently
January 12, 2022

Thank you so much for being interested in solving this issue.

I was able to create and run the action but for some reason still not able to update the only two required images (BACK.psd and TITLE.psd).

Do you think you could open the file and take a look at it to see why the action is not working the way it should? 

I really appreciate.

 

VERSIONER-01.psb

This is how it looks now but it does not reflects what the colors of the linked files have.

 

Here is how the three file colors look like, but for some reason they wont update on the VERSIONER-01.psb.

 

 

Here is the link to download the folder containing the files.

https://www.dropbox.com/s/hyotqx3kqof02pz/02-ASSETS.zip?dl=0

Thank you so much for your help,

 

Participant
November 14, 2022

Thank you for the encouragement, Stephen,

I'll try to learn about scripting and keep my fingers crossed, some how there could be a straight forward solution for this need.

This case became personal to me because sinse I've been trying to prove to this team I am working with that the way they want to go about this is not the rightone, they wanted to work the three proportions using three separated photoshops. I caped telling them they taking the wrong route and that I was not interested in being part of a project that would not consider more practical solutions. The key here is that we are processing hundreds of artworks that way so any step that can be skiped represents hours being saved. So when it came time for me to prove my process was the way to go I hit the wall of photoshop shortcomings, but I still can prove them wrong because there's always a way where there's a will. Feel free to reach out in private if you think you have some time available to make an estimate to work on making this workflowwork so we can have this puzzle solved. 

Thanks again for all your time put into this!


I don't have much scripting experience but I have recently made a script with the help of a developer.

 

The file contained layers in groups in artboards, and it took some searching to figure out what those were all called in Visual Studio so maybe I can help you out with that part...

 

To access a layer inside a group inside an artboard, do this:

 

var artboard = app.activeDocument.layers[0];

 

var groupInArtboard = artboard.layerSets[0];

 

var layerInGroupInArtboard = groupInArtboard.artLayers[0];

 

For the first artboard/group/layer use 0, for the second one use 1, for the third one use 2 etc. 

I hope this helps! And hope I didn't mess it up typing. Good luck 👍 

Participating Frequently
November 18, 2017

I had the same struggle but overrode it with action in Photoshop (update all modified links, save and close) which I'm launching in Bridge by Tools > Photoshop > Batch... and then, in Photoshop popup window selecting my action and that's it.

It may take a while depends on how many projects you want to update but it's the most almost-self-automatic method I figured out. Hope it helps

Known Participant
June 10, 2020

Thank you for your input but no: that is not the right/good/expected solution, sorry.

 

I HAVE SOLVED IT FINALLY MYSELF exactly as it should be (the only thing that annoys me is that it always opened every SMARTOBJECT for a sec, it would be great if it could be done without that...anzwaz, it is fully functional even with locked and disabled layers)!

 

I posted my own solution on Stackoverflow here: Photoshop CC2019 auto-update all linked smart objects including nested ones 

 

martink15467522
Inspiring
June 16, 2020

Tried using your script on my psd and it gets stuck in a loop trying to update the smart objects. Any ideas why this could be ?

tmyusuf74
Inspiring
December 22, 2016

That should work for your situation. Please try go to Layer > Smart Objects > Update all Modified Content another option download the file Name : Update All Modified Content.jsx and then In File > Scripts > Scripts events manager... add the script to be triggered on Open document and it's done.


Known Participant
June 9, 2020

It would be GREAT if you actually give a link to that .jsx file, this way it is useless, unfortunatelly (Google search gave no result for such file)

 

EDIT:

So I find it on graphicdesign.stackexchange.com forum, the link is here (it is the code in the accepted answer for that page):

Update All Modified Content.jsx 

 

In case someone only needs the content of the .jsx file, here it is:

 

 

 

// Update all modified content
var idplacedLayerUpdateAllModified = stringIDToTypeID( "placedLayerUpdateAllModified" );
executeAction( idplacedLayerUpdateAllModified, undefined, DialogModes.NO );

 

 

Also this DOES NOT WORK in CC2019 when you have linked layer (PNG image in my case) inside another smart object - it only work for top most objects, so any nested object containing linked object will not work with this.

 

So can be be modified somehow so that it would work when I have like "PSD document with smar object -> smart object -> smart object with linked layer (PNG image)"?

 

JJMack
Community Expert
Community Expert
December 21, 2016

If documents with link smart object layer are open in Photoshop the smart object layers  with linked object will be automatically updated when the linked object is updated.   If other PSD have smart object linked to that master file are not opened in Photoshop they will not be updated till the next time they are opened in Photoshop.  When these PSD are opened opened in Photoshop they will automatically be updated.  If you want all PSD with a linked smart object to be automatically be updated if a inked master is updated you would need to implement something to do that. 

If you search the Photoshop Scripting forum you may find something.  I believe that subject has been addressed in that forum. I believe the PSD will need to be opened in Photoshop so Photoshop can render new pixels or just store the  pixels for the smart object layer content.  However its an automated process. Not a manual process.  I believe it involvers metadata in the the master file list document  that have linked smart object links to the master file.  Something like programmed events must record and use the metadata.

JJMack
Participant
December 22, 2016

Thanks for this.  Will give a look for the script but I think Adobe should consider as its something that is needed.  Consider a site design with multiple pages that have a repeating header - if the header changes then you have to open each file, update the smart object and resave. 

JJMack
Community Expert
Community Expert
December 22, 2016

Use Adobe's feedback site Photoshop Family Community submit your suggestion then

JJMack