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

Smart Object PSD instead of PSB format

Explorer ,
Apr 05, 2024 Apr 05, 2024

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?

TOPICS
Windows
636
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
Adobe
Community Expert ,
Apr 05, 2024 Apr 05, 2024

To my little knowledge smart objects have always been .psb files

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
Community Expert ,
Apr 05, 2024 Apr 05, 2024

@Giddy_neighbors16E5 

 

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?

 

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
Community Expert ,
Apr 05, 2024 Apr 05, 2024

@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

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
Community Expert ,
Apr 06, 2024 Apr 06, 2024
LATEST
quote

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? 

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