• Global community
    • Language:
      • Deutsch
      • English
      • Español
      • Français
      • Português
  • 日本語コミュニティ
    Dedicated community for Japanese speakers
  • 한국 커뮤니티
    Dedicated community for Korean speakers
Exit
0

Auto-update linked smart objects in Photoshop

New Here ,
Dec 21, 2016 Dec 21, 2016

Copy link to clipboard

Copied

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

Views

38.4K

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Adobe
Community Expert ,
Dec 21, 2016 Dec 21, 2016

Copy link to clipboard

Copied

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

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
New Here ,
Dec 22, 2016 Dec 22, 2016

Copy link to clipboard

Copied

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. 

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Expert ,
Dec 22, 2016 Dec 22, 2016

Copy link to clipboard

Copied

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

JJMack

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Enthusiast ,
Dec 22, 2016 Dec 22, 2016

Copy link to clipboard

Copied

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.

AFUV6.png

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Explorer ,
Jun 09, 2020 Jun 09, 2020

Copy link to clipboard

Copied

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)"?

 

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Beginner ,
Nov 18, 2017 Nov 18, 2017

Copy link to clipboard

Copied

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

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Explorer ,
Jun 10, 2020 Jun 10, 2020

Copy link to clipboard

Copied

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 

 

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Participant ,
Jun 16, 2020 Jun 16, 2020

Copy link to clipboard

Copied

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 ?

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
New Here ,
Aug 18, 2020 Aug 18, 2020

Copy link to clipboard

Copied

Same with me. It keeps updating the same smart object over and over again.

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
New Here ,
Dec 27, 2020 Dec 27, 2020

Copy link to clipboard

Copied

This is the only script that seems to get the furthest but it gets stuck in a loop and you have to close photoshop via task manager.

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Explorer ,
Jan 11, 2022 Jan 11, 2022

Copy link to clipboard

Copied

Hello,

I am experience the same issue. I wonder if is related to the fact that I have different Artboards within the document.

Do you think there could be a solution if this is the case that the script would get stuck because of the use of Artboards in the document?

Thank you so much for your help and time put in to this since I have no idea about codding yet.

 

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Participant ,
Jan 21, 2022 Jan 21, 2022

Copy link to clipboard

Copied

Any ideas how to get that script working in 2021?

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
New Here ,
Apr 28, 2022 Apr 28, 2022

Copy link to clipboard

Copied

On a file will multiple embedded objects, each containing linked content, the script got stuck for me too, just spinning, but hitting ESC popped open the last embedded object, I hit save, and going back to original file, ALL the embedded-linked content was updated. 

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
New Here ,
Mar 01, 2023 Mar 01, 2023

Copy link to clipboard

Copied

LATEST

For me deleting this line stopped the script from looping:

  // CONTINUE INSIDE THIS ACTIVE SMARTOBJECT
  autoupdateAllSmartObjects(app.activeDocument, stackNr);

Now it works very well.

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Expert ,
Jan 11, 2022 Jan 11, 2022

Copy link to clipboard

Copied

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.

 

@Diego_Disc 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:

 

1-bridge-find-setup.png

 

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

 

2-bridge-find-results.png

 

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

 

3-bridge-batch.png

 

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:

 

4-bridge-batch-result.png

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Explorer ,
Jan 11, 2022 Jan 11, 2022

Copy link to clipboard

Copied

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.

Diego_Disc_0-1641969771903.png

 

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

Diego_Disc_1-1641970191894.png

 

 

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,

 

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Expert ,
Jan 12, 2022 Jan 12, 2022

Copy link to clipboard

Copied

Yes, it does appear that the artboards are making this more complex.

 

Attempting to isolate the issue to just one artboard, it appears that you have an embedded SO layer in the artboard:

1-artboard-embedded-so.png

 

Editing that single layer, there are linked SO layers to be updated:

2-artboard-linked-so.png

 

Result after updating the linked SO inside the embedded SO:

3-artboard-linked-so-updated.png

 

So the challenge would appear to be scripting a loop over each artboard, looping over layers in each artboard and editing any smart object layer to update the linked layers, then closing/saving before moving onto the next artboard and repeating.

 

I'm looking into this, I really hate artboards though!

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Expert ,
Jan 12, 2022 Jan 12, 2022

Copy link to clipboard

Copied

In the short term, I'd suggest a semi-automated approach.

 

1) Filter the layer panel view to only show smart object layers

1-filter-layer-view.png

 

2) Create an action and run the action on each smart object layer, one layer at a time:

2-action.png

Note: there are scripts which can run an action against multiple selected layers!

 

3) The final result of only the background being updated (left original, right updated):

3-updated.png

Note: The logo has not been updated in this example (I cropped off some artboards to save space).

 

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Explorer ,
Jan 12, 2022 Jan 12, 2022

Copy link to clipboard

Copied

This is pure gold!

I am looking in to this as we speak and will let you know how it went!

Cant thank you enough!

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Explorer ,
Jan 12, 2022 Jan 12, 2022

Copy link to clipboard

Copied

Hello Stephen,

I was able to follow all of the steps and the Action seem to work. Non the less I still have a few questions...

1)- In the Close Action... the "Without Maximize Compatibility" necessary or would "Maximize Compatibility" be a different outcome?

Diego_Disc_1-1642048401519.png

2) About your note: there are scripts that can run an action against multiple selected layers!

Is there a way you could find one I could use? I barely know that changing the extension of a text file to .jsx would make the code into a script, but there will be so many nuances that could take place before getting to that final part of the process.

I was able to find this site where I believe there are some of these scripts you mention, but I will not even have an idea of how to apply the workflow of what the ultimate goal I am trying to accomplish (forcing all of the assets to update when opening the Master file).

https://www.ps-scripts.com/viewtopic.php?f=66&t=6723&p=33455&hilit=multiple+selected+layers&sid=5421...

 

3)- I wish this script from above made by Anka Petkova could work on my master file. I believe it gets stuck for the fact that does not consider Artboards.

Photoshop CC2019 auto-update all linked smart objects including nested ones

 

4)- I am not a friend of Artboards either but in this exact case is necessary to be able to adjust sizes and positions within the same file and at the same time be able to export all of these different versions.

 

I hope that there will be a solution for this at the end of the day. I'll keep my fingers crossed.

Thank you so much for your help

 

 

 

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Expert ,
Jan 12, 2022 Jan 12, 2022

Copy link to clipboard

Copied

Glad you are making progress!

 

1) For a smart object PSB save,  it shouldn't matter and would only bloat things further.

 

2-3) You are likely correct, the artboards are probably going to mess up scripts, even if using the layers panel to isolate the layers, more testing would be required. You would indeed search the web for files tha can play actions on all or selected layers, ideally ones that are designed around artboards.

 

4) I guess it is a trade off with the pros/cons of working with and around artboards, as you are finding, they are helpful in one area but in another a hindrance. 

 

I'll revisit, however, you may just have to apply an F-key shortcut to the action and manually run it on each isolated SO layer.

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Explorer ,
Jan 13, 2022 Jan 13, 2022

Copy link to clipboard

Copied

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!

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
New Here ,
Nov 14, 2022 Nov 14, 2022

Copy link to clipboard

Copied

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 👍🏼 

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines