Skip to main content
J_F_S
Inspiring
August 27, 2021
Answered

Duplicate folder and smartobjects to edit

  • August 27, 2021
  • 1 reply
  • 785 views

Hi,
does anybody know how can I duplicate a folder and create all child smartobjects as seperate editiable copies?

Cheers

This topic has been closed for replies.
Correct answer c.pfaffenbichler

If you want all the contained SOs to become SOs as if created via »New Smart Object via Copy« I would recommend Image > Duplicate, then duplicating the copy’s Group to the original image. 

1 reply

c.pfaffenbichler
Community Expert
c.pfaffenbichlerCommunity ExpertCorrect answer
Community Expert
August 30, 2021

If you want all the contained SOs to become SOs as if created via »New Smart Object via Copy« I would recommend Image > Duplicate, then duplicating the copy’s Group to the original image. 

Stephen Marsh
Community Expert
Community Expert
September 1, 2021

@c.pfaffenbichler  – Can I presume that this is a typo and that it should be: Layer > Duplicate ?

 

My bad. I was looking at a way to script this, which I just completed for dupe layer... back to the drawing board! :]

Stephen Marsh
Community Expert
Community Expert
September 1, 2021

My bad. I was looking at a way to script this, which I just completed for dupe layer... back to the drawing board! :]


For those using a "relatively newish" version of Photoshop, there may be a very simple action based approach, with only a few steps...

 

Select the layer group/set that contains SO layer that you wish to "disassociate" from other SO layers:

 

1) Layer > Smart Objects > Convert to Smart Object

 

2) Layer > Smart Objects > Convert to Layers (I'm not sure which version/build introduced this?)

 

Optionally insert a conditional to only run the action on a layer group

 

Or as a script (4th September 2021 - original script updated to include conditional checking):

 

 

#target photoshop

// (app.activeDocument.activeLayer.typename === "LayerSet")

if (app.activeDocument.activeLayer.typename === "LayerSet" && app.activeDocument.activeLayer.layers.length > 0) {

    var idnewPlacedLayer = stringIDToTypeID("newPlacedLayer");
    executeAction(idnewPlacedLayer, undefined, DialogModes.NO);

    var idplacedLayerConvertToLayers = stringIDToTypeID("placedLayerConvertToLayers");
    executeAction(idplacedLayerConvertToLayers, undefined, DialogModes.NO);

} else {
    alert("This layer type is NOT a layer set/group")
}

 

 

The beauty of this is that the layer group stays in the same position in the layer stack, it appears that simply creating a SO and then "decomposing" the SO back to a layer group achieves the desired end result of making the smart objects independent.