Copy link to clipboard
Copied
my smart objects open as PSB files all of a sudden, and not as PSD anymore, which I need for my workflow.
Any ideas how to change it back to the PSD format?
Copy link to clipboard
Copied
To my little knowledge smart objects have always been .psb files
Copy link to clipboard
Copied
If you convert a layer into a SO then it's a PSB. If you place a file then the SO is the same format as the original (JPG, PSD, TIFF, AI, PDF etc).
What problems does it cause in your workflow if the edited SO is a PSB and not a PSD?
Can I assume that you only have embedded smart object PSB files and no linked smart object layers?
Copy link to clipboard
Copied
@Giddy_neighbors16E5 – Although I'm unsure on why something like this is needed, you can try this script (work on duplicated images and check the results with care to ensure that this is what you are looking for):
/*
Convert Embedded PSB Smart Object Layer to PSD.jsx
v1.0 - 6th April 2024, Stephen Marsh
https://community.adobe.com/t5/photoshop-ecosystem-discussions/smart-object-psd-instead-of-psb-format/td-p/14536909
*/
#target photoshop
// Check that the active layer is a SO
if (app.activeDocument.activeLayer.kind === LayerKind.SMARTOBJECT) {
// Check that the active layer is an embedded SO
var ref = new ActionReference();
ref.putEnumerated(charIDToTypeID("Lyr "), charIDToTypeID("Ordn"), charIDToTypeID("Trgt"));
var layerDesc = executeActionGet(ref);
ref.putProperty(charIDToTypeID("Prpr"), stringIDToTypeID("smartObject"));
ref.putEnumerated(charIDToTypeID("Lyr "), charIDToTypeID("Ordn"), charIDToTypeID("Trgt"));
var so = executeActionGet(ref).getObjectValue(stringIDToTypeID("smartObject"));
if (so.getBoolean(stringIDToTypeID("linked")) === false) {
// Set the active layer
var theSO = app.activeDocument.activeLayer;
// Get the active layer name
var theSOname = theSO.name;
// Edit the original embedded SO
app.runMenuItem(stringIDToTypeID('placedLayerEditContents'));
// Get the original SO path
var theSOpath = app.activeDocument.path;
// Strip the extension
var docName = activeDocument.name.replace(/\.[^\.]+$/, '');
// Create the PSD file object path and name
var savePSDName = File(theSOpath + "/" + docName + ".psd");
// Save the PSD
savePSD(savePSDName);
// Close the original SO without saving
app.activeDocument.close(SaveOptions.DONOTSAVECHANGES);
// Select the SO layer
app.activeDocument.activeLayer = theSO;
// Place the PSD version of the PSB
placeEmbedded();
// Rename the SO layer
app.activeDocument.activeLayer.name = theSOname;
// Remove the original SO layer
theSO.remove();
} else {
alert("The layer isn't an Embedded Smart Object!");
}
} else {
alert("The layer isn't a Smart Object!");
}
///// Functions /////
function savePSD(saveFile) {
psdSaveOptions = new PhotoshopSaveOptions();
psdSaveOptions.embedColorProfile = true;
psdSaveOptions.alphaChannels = true;
psdSaveOptions.layers = true;
psdSaveOptions.spotColors = true;
activeDocument.saveAs(saveFile, psdSaveOptions, true, Extension.LOWERCASE);
}
function placeEmbedded() {
function s2t(s) {
return app.stringIDToTypeID(s);
}
var descriptor = new ActionDescriptor();
descriptor.putInteger(s2t("ID"), 6);
descriptor.putPath(s2t("null"), new File(savePSDName));
executeAction(s2t("placeEvent"), descriptor, DialogModes.NO);
}
https://prepression.blogspot.com/2017/11/downloading-and-installing-adobe-scripts.html
Copy link to clipboard
Copied
my smart objects open as PSB files all of a sudden, and not as PSD anymore, which I need for my workflow.
What difference does it make in your workflow?
Find more inspiration, events, and resources on the new Adobe Community
Explore Now