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

P: SmartObject Relink to affects all same path instances instead of just the selected layer instance

Explorer ,
Dec 05, 2022 Dec 05, 2022

Issue: Relinking single linked SmartObject relinks all SmartObjects with same path

  • Photoshop version: noticed on current latest 24.0.1 but also present on other versions
  • OS: macOS 12.6.1 - Monterey


Steps to reproduce:

  1.  Create 2 SmartObject layers with File > Place Linked ... using the same target image (or create one such layer and duplicate it)
  2.  Select 1 of the linked layers
  3.  Relink it by using the Layer > Smart Objects > Relink to File ... and chose another image to replace it

 

Expected result: Just the selected layer's link being updated, while the "duplicate" remains linked to old image reference.


Actual result: Both layers are linked to same new image reference

 

Since the whole Layer menu location implies that we are operating on a single layer it is weird, that it modifies all layers with same referenced path. This is causing issues when we are creating overviews with linked files and updating them over time. Currently we need to delete the old layers and create new links and then redo the whole transfomring for the overview.

 

Saw similar posts of other users ... that still have no answer:

Bug Unresolved
TOPICS
macOS , Windows
11.5K
Translate
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
20 Comments
Contributor ,
Apr 28, 2022 Apr 28, 2022

I have placed a linked image in the PSD.

 

It's duplicated a few times in the doc. 

 

I only want to relink 1 instance of it to another image.

 

But when relinking, it changes all the instances.

 

What's the trick?

Translate
Report
Community Expert ,
Apr 28, 2022 Apr 28, 2022

Instead of duplicating it as a layer normally, choose New > Smart Objects > New Layer via Copy. That creates a copy that is not connected to other Smart Objects.

Translate
Report
Community Expert ,
Apr 28, 2022 Apr 28, 2022

When using Ctrl + J (Duplicate Layer) to duplicate Smart Object layer it will create so called "cloned Smart Object layer". Changing content on any of "cloned" including parent or first in sequence will automatically update all other instances.

Translate
Report
Enthusiast ,
May 19, 2022 May 19, 2022

In my Photoshop document, I have two layers, both linked to the same file. If I modify that linked file, it updates both layers in Photoshop. Good!

 

Now I need to duplicate both of those layers and link the two new layers to a different file. If I duplicate those linked files, and try to relink, it relinks all four of those layers. 

 

If I convert that original linked layer to an embedded layer, it still treats it as the same source for all four. 

 

Any ideas beyond just creating a new file for each instance of this thing? 

Translate
Report
Adobe Employee ,
May 19, 2022 May 19, 2022

Instead of duplicating the Smart Object layer, use the "New Smart Object Via Copy" command. That breaks the link to the original smart object for it to act on its own.

Translate
Report
Enthusiast ,
May 19, 2022 May 19, 2022

You can not use "New Smart Object Via Copy" if your layer is a linked layer. 

So I would need to do the following

  1. Convert my first two layers to Embedded
  2. Duplicate those two layers via "New Smart Object Via Copy"
  3. Relink the original two layers to the file outside of photoshop
  4. Relink the two new layers to their linked file

 

Unless there's another way? 

Translate
Report
Enthusiast ,
May 19, 2022 May 19, 2022

Jk that doesn't work because my file has dependencies on other layers and different visibilities...

trashcaneron_0-1652993771869.png

 

Translate
Report
Community Expert ,
May 19, 2022 May 19, 2022

Maybe package the images and documents together? (Using File > Package on the menu bar.) You're then free to modify just those linked Smart Objects in that "package". (All it is is the PSD with its associated images, neatly contained within a specified folder. It would require more than one PSD to manage, though.)

Translate
Report
New Here ,
Aug 17, 2022 Aug 17, 2022

To relink one linked object without affecting any of the others:
1) Right-click the linked layer, select "Convert to Smart Object".

2) Right-click the smart object, select "Edit Contents".

3) Right-click the linked layer, select "Relink to File…", and link it to your desired file.

4) Save the smart object and go back to the original project.

5) Right-click the smart object, select "Convert to Layers". 

This should convert the smart object back to the linked file within it. Job done. 

Translate
Report
New Here ,
Oct 04, 2022 Oct 04, 2022

This worked so simple. Shukran

Translate
Report
Community Beginner ,
Nov 07, 2022 Nov 07, 2022

For me, the menu item for linked (non-embedded) images under "Layer" > "Smart Objects" > "New Layer via Copy" is greyed out. I know you wrote: "New" > "Smart Objects" ...., but where is this "New" menu item, I may be blind, but I just can't find it... 

Translate
Report
Contributor ,
Nov 07, 2022 Nov 07, 2022

Just right click on the layer.

Screen Shot 2022-11-08 at 10.04.05 am.jpg

Translate
Report
Community Beginner ,
Nov 08, 2022 Nov 08, 2022

Thanks, but in your example you have a "real" SmartObject, not a linked image.
I think this is a missing feature in Photoshop, to also make a copy of linked images.
It is helpful, for example, if you have made transformations on the image that you want to apply to another image later. But I have found a workaround and will post it as another answer in this thread.

 
 

 

 

Translate
Report
Community Beginner ,
Nov 08, 2022 Nov 08, 2022

I have the following workaround for this problem:

  • In the current file, create a new file copy via the history panel (file icon with a plus symbol).
  • In this new copy replace the linked image
  • Drag the replaced image or layer back to the original file while holding down the Shift key to keep the exact position in the original file as well.
Translate
Report
Engaged ,
Nov 18, 2022 Nov 18, 2022

I had a similar issue crop up. In my PSD file, I wanted to link to a different artboard in an AI file that was already linked.

The way I did it:

  1. Dupe the original PSD.
  2. Select the layer in the PSD you want to relink.
  3. Go up to the Layer menu > Smart Objects > Relink to File, and navigate to the file you want to link to. (This option is also in the right-click menu in the layers palette.)

In my situation, the PSD files are used in a creative concept presentation. PSD files for each concept are separate documents; there are only a few to keep track of for each project. This may not work for your situation.

(That said, I really do need to explore layer comps, I think they would be perfect for my workflow. As always, the less files you have to keep up with, the better.)

Translate
Report
Engaged ,
Nov 30, 2022 Nov 30, 2022

I have the same issue. There should be a simple way to just replace the one linked object without having to use a workaround. Either by a dedicated menu entry or by holding an extra key while selecting the normal menu item.

Translate
Report
New Here ,
May 19, 2023 May 19, 2023

This was the only workaround that solved it for me - thank you! 

Translate
Report
Explorer ,
Mar 21, 2024 Mar 21, 2024

Best solution. Can't believe this is still an issue in 2024 when I can follow it back to 2015 and beyond. Why is there no option to make a linked asset "unique"? Usual Adobe madness.

Translate
Report
Community Expert ,
Mar 21, 2024 Mar 21, 2024

The New Smart Object via Copy command only applies to embedded smart objects. There is no way to break the relationship between an original and a copy for a linked file. It makes logical sense as this is a linked file. 

 

The command originated before linked smart objects were available. One could argue that it needs to be renamed to include the word embedded, i.e. New Embedded Smart Object via Copy – to clarify the intended use now that there are both linked and embedded options.

 

I created a script to help automate the process of creating a New Linked Smart Object via Copy:

 

/*
New Linked Smart Object via Copy.jsx
v1.1 - 27th January 2024, Stephen Marsh
https://community.adobe.com/t5/photoshop-ecosystem-discussions/why-is-new-smart-object-via-copy-greyed-out-for-linked-smart-objects/td-p/14371680
*/

#target photoshop

// Smart object action manager properties
var ref = new ActionReference();
ref.putProperty(charIDToTypeID("Prpr"), stringIDToTypeID("smartObject"));
ref.putEnumerated(charIDToTypeID("Lyr "), charIDToTypeID("Ordn"), charIDToTypeID("Trgt"));
var so = executeActionGet(ref).getObjectValue(stringIDToTypeID("smartObject"));

// Conditional check for the active layer being a linked smart object
if (so.getBoolean(stringIDToTypeID("linked"))) {
    // Single history stage undo
    activeDocument.suspendHistory("New Linked Smart Object via Copy.jsx", "main()");
}


function main() {

    // Doc path, name and extension variables
    var thePath = so.getPath(stringIDToTypeID("link")).fullName.replace(/(^.+\/)(.*)/, '$1');
    var theName = so.getString(stringIDToTypeID("fileReference")).replace(/\.[^\.]+$/, '');
    var theExt = so.getString(stringIDToTypeID("fileReference")).replace(/(.+)(\.[^\.]+$)/, '$2');

    // Duplicate the linked file adding copy to the name
    var theCopy = new File(thePath + theName + " copy" + theExt);
    if (!theCopy.exists) {
        new File(thePath + theName + theExt).copy(thePath + theName + " copy" + theExt);
    } else {
        throw alert('File "' + thePath + theName + theExt + '" exists, script cancelled!');
        //throw null;
    }

    // Set the reference to the original doc name
    var origDocName = activeDocument.name;

    // Dupe the smart object layer to a new temp doc
    function s2t(s) {
        return app.stringIDToTypeID(s);
    }
    var descriptor = new ActionDescriptor();
    var reference = new ActionReference();
    var reference2 = new ActionReference();
    reference.putClass(s2t("document"));
    descriptor.putReference(s2t("null"), reference);
    descriptor.putString(s2t("name"), "tempDoc");
    reference2.putEnumerated(s2t("layer"), s2t("ordinal"), s2t("targetEnum"));
    descriptor.putReference(s2t("using"), reference2);
    descriptor.putString(s2t("layerName"), activeDocument.activeLayer.name);
    executeAction(s2t("make"), descriptor, DialogModes.NO);

    // Relink to the duplicated file copy
    var idplacedLayerRelinkToFile = stringIDToTypeID("placedLayerRelinkToFile");
    var desc15 = new ActionDescriptor();
    var idnull = stringIDToTypeID("null");
    desc15.putPath(idnull, new File(thePath + theName + " copy" + theExt));
    executeAction(idplacedLayerRelinkToFile, desc15, DialogModes.NO);

    // Dupe the relinked temp doc layer back to the original doc
    function s2t(s) {
        return app.stringIDToTypeID(s);
    }
    var descriptor = new ActionDescriptor();
    var reference3 = new ActionReference();
    var reference4 = new ActionReference();
    reference3.putEnumerated(s2t("layer"), s2t("ordinal"), s2t("targetEnum"));
    descriptor.putReference(s2t("null"), reference3);
    reference4.putName(s2t("document"), origDocName);
    descriptor.putReference(s2t("to"), reference4);
    descriptor.putString(s2t("name"), activeDocument.activeLayer.name);
    executeAction(s2t("duplicate"), descriptor, DialogModes.NO);
    activeDocument.close(SaveOptions.DONOTSAVECHANGES);
}

 

https://prepression.blogspot.com/2017/11/downloading-and-installing-adobe-scripts.html

Translate
Report
New Here ,
Jun 11, 2024 Jun 11, 2024
LATEST

Crazy that this is still an annoying issue and hasn't been fixed, InDesign has had a simple solution for re-linking a single instance of a linked file forever. Why can't this same approach by adopted in Photoshop?

Translate
Report