I’ve created a design in Photoshop CS6, and used a large number of smarts object which made the workflow more easy (at least for me). Now I’ve finished working on the design, and I want to “unsmart” all the objects due to the large file size of the PSD. I do not want to do Rasterize Layer because I want to keep every layer which was originally on the Smart Object.
I want to convert each smart object (some of them have Layer Styles applied) to a group (folder) which will have all the layers inside + the FX applied originally to the Smart Object and it will be in the exact location of where the smart object was before.
I couldn’t find anything about this in the internet.
Also, some of the smart objects has inner smart objects inside of them. I don’t mind doing this manually, but to copy & paste every layer in smart object is very annoying way, because I must scale and transform the layers pasted.
Thank you for visiting the Q&A section on Magenaut. Please note that all the answers may not help you solve the issue immediately. So please treat them as advisements. If you found the post helpful (or not), leave a comment & I’ll get back to you as soon as possible.
- Double-click the Smart Object to open it in a new window
- Highlight all the layers in the .psb (smart object) which opens
Layer > Groupfrom the menu
- Hold the Shift key down and drag from the Smart Object Window to your original document window with the Move Tool.
- Drag the fx icon from the Smart Object layer to the new Layer Group you just dragged over
- Delete the Smart Object layer.
The only caveats to this method are scale and positioning. You may need to reposition some groups depending on how they interact with the edges of the original document. And if you scaled the Smart Object layer, you may need to scale the group as well.
This method is far from perfect, but it’s about the only method I’m aware of.
Per comments, (originally found by Joonas) there appears to be a script written by Kamil Khadeyev which automates some of this. You can view details of the script at the Captain Awesome web site. I make no claims as to the functionality of the script having never used it myself.
I first tried Captain Awesome script but not suit to me, so I wrote my own. But it will not works on CS6. Supported version is PS CC 2015.1.2+
- Puts content exactly on the same place.
- Works with multiple layers simultaneously.
- Respects selected composition in the smart object.
- Scales content if the “SO” has different size.
- Also scales layer effects.
Download here: http://bereza.cz/ps/
Well it seems our prayers (and complaints) were finally heard!
In the latest Photoshop release you can just right-click the smart object layers panel and select Convert to Layers. The smart object will be converted into a group containing the original layers.
Unfortunately, smart objects are dumb in that respect.
With all the magic that smart layers allows you to do, the negative is that there isn’t an easy way to ungroup them efficiently. The only way to bring the contents of that smart object into your Photoshop document is to export the smart object as a .psb file, or edit the smart object and then manually duplicate the layers back into the original document.
If you had filter effects on the smart object you would then need to reapply them. If at all possible, I would duplicate the smart object and then rasterize the copy, but if you have no other choice you might have to manually go through the contents of the smart object to bring them back to the original document.
Link to scripts that allow the expansion of a smart object – Kam88’s blog – this is a custom script that you can apply in your presets / scripts folder and use to expand the smart object. Works like a charm.
Credit to Joonas
I have a pretty effective method that works — although it’s not the most elegant workaround. If you double click on the smart object in your ‘Layers’ panel, it’ll open up in a new window.
Obviously, you can edit the contents of the smart object this way. But, if you select all the layers of your smart object — again, in the “layers” panel — then hover your move tool over the canvas, you’ll be able to drag and drop all the layers onto the original canvas’s window.
You might have to drag & drop to get the alignment of things back in order, but overall it’s a workaround for an otherwise difficult problem.
Here’s an easy way to unsmart a smart object in Adobe Photoshop CC:
- on a Mac control + click the smart object layer
- select “select pixels”
- go into the Layer menu / New / Layer Via Copy or click command + J
Note: this his non-destructive to the smart layer.
- Open Smart Object by double-clicking icon at the left edge of SO layer.
- Ctrl+Alt+I then resize image to match that of original destination.
- Select all layers in the Smart Object
- Right-click on the selected layers and choose Duplicate.
- From destination list, choose Main (or New) Doc
- Close without saving/Hide, or Delete your smart object.
The new duplicated layers retains any style mods, as well.
If file size is the only issue, what you propose to do wouldn’t solve it. A smart object or the equivalent of all its layers were grouped inside your main file, would result in the same files size. What you would want to do is change your embedded smart object to a linked smart object, which asks you to save the smart object out as its on file on your hard drive. So for each master file, you can create a Links folder and convert all your embedded smart objects to linked smart objects and save them into that Links folder for each master file. This will make your master file much smaller in files size, but still have all the layers nested inside the linked smart objects.
Converting the smart objects to layers and groups within the main document won’t reduce the size of the main document. @user144648 is correct about making your smart objects linked assets in order to reduce the main file size.
I’ve just found this handy script.
UnSmart Object.jsx (Photoshop script)
- Ungroup one or multiple smart objects at once.
- Option to resize back to smart object dimensions Note: this option doesn’t respect aspect ratio or original dimensions of the contents.
- Ignores non-smart object layers. Note: vector smart objects cause the script to fail.
Good to know
- Tested in Photoshop CC 2019
- Doesn’t work with vector smart objects.
- Though the script can keep the smart object size or at least tries real hard to do it… it doesn’t retain any other transformations, like skewing for example. It simply takes the original content and resizes that to fit the bounds of the smart object.
- Scail each smart object to the exact size they are represented in your final file.
- Select all the layers in the smart object and drag then to your final file
- Use the smart object to aling and check the scail of the new files that you dragged from it.
- Once scail and positioning are corect delete the smart object.
This must be done with each smart object converted back to layers in your final file.
This might help some of you:
- Select the Smart Object layer
- Ad new Layer (put it below the Smart Object Layer if you want to keep the naming)
- Select New Layer & Smart Object Layer
- CMD/CTRL+E (Merge both layer > your Smart Object should show exactly as you have arranged, sized it on your canvas)
We compared the same drawing with/without Smart Object technique > Result: without Smart Objects the file becomes smaller.
Double click on smart object to open it, select all layers, right click -> duplicate layers -> select original project as destination.
Highlight all your smart object layers and press
This puts all the smart objects into one layer. Done.
This script worked fine for me for this purpose.
Right click on the Smart Object Thumbnail and Rasterize it.
The solution is to rasterise your layer,
for example in a smart object layer if you want to crop or delete a selection then you have to right click the layer and select rasterise layer and rasterise it… now you can perform the same action and it is no more a smart object.
hope this helps,
if there is anything more i could help you with let me know.