28

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.

6
  • 6
    Figured I'd do a quick search before going to bed. This seems pretty legit: blog.kam88.com/en/expanding-smart-objects-script.html
    – Joonas
    Jul 29, 2013 at 22:08
  • Thanks, I'll look into it. couldn't find that myself (I did do some search before asking)
    – matan129
    Jul 29, 2013 at 22:09
  • @Joonas Nice script, thanks. It doesn't move or scale the object though. If you'll write this as answer I'll accept it, for the rep.
    – matan129
    Jul 29, 2013 at 22:15
  • @matan129 I don't think that's possible, only applying the effects from the smart layer is the only thing that you can transfer. I'd be surprised if anyone could write a script applying the same transformations to each individual object of the smart object, because you are transforming it with respect to the group not the singular object-- the results would never be the same. Jul 29, 2013 at 22:19
  • Yeah, I thought so, but wasn't certain though.
    – matan129
    Jul 29, 2013 at 22:23

17 Answers 17

17
  • Double-click the Smart Object to open it in a new window
  • Highlight all the layers in the .psb (smart object) which opens
  • Choose Layer > Group from 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.

0
6

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+

Features

  • 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/

4

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.

4
  • I was very happy about your answer, tried it and got hit by "Transforms applied to the Smart Object will not be retained". Adobe. Please. Come on, what the hell. Still a good answer, if this happens to not be a problem. Dec 27, 2020 at 13:01
  • i merged 3 text objects. is there any way to undo that?
    – oldboy
    Jan 4, 2021 at 10:32
  • 1
    @oldboy if you merged the layers the only way to undo is before you close the file. Once you merge layers there's no un-merge - it essentially becomes a bitmap layer, can't unmerge pixels.
    – Luciano
    Jan 4, 2021 at 10:59
  • @Luciano thanks!
    – oldboy
    Jan 4, 2021 at 12:27
3

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.

Edit: 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

0

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.

0

Here's an easy way to unsmart a smart object in Adobe Photoshop CC:

  1. on a Mac control + click the smart object layer
  2. select "select pixels"
  3. go into the Layer menu / New / Layer Via Copy or click command + J

Note: this his non-destructive to the smart layer.

1
  • This, incorrectly, assumes the smart object is comprised of pixels. There could absolutely be vector content or text layers within any smart object. These are very different than pixels.
    – Scott
    Nov 27, 2019 at 22:10
0
  1. Open Smart Object by double-clicking icon at the left edge of SO layer.
  2. Ctrl+Alt+I then resize image to match that of original destination.
  3. Select all layers in the Smart Object
  4. Right-click on the selected layers and choose Duplicate.
  5. From destination list, choose Main (or New) Doc
  6. Close without saving/Hide, or Delete your smart object.

You're done. The new duplicated layers retains any style mods, as well.

0

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.

0

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.

1
  • In some cases it surely does decrease the size. Just made a test with a 1000 x 1000 px image. The flat image is 2.7 MB and if I turn the background layer into a smart object and save it becomes 10.8 MB.
    – Wolff
    Nov 25, 2020 at 16:50
0

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.
1
  • Actually it's now possible to "unsmart" objects in Photoshop and no script is needed. Check out Luciano's answer. But perhaps this script does more?
    – Wolff
    Feb 3, 2021 at 17:03
-1
  1. Scail each smart object to the exact size they are represented in your final file.
  2. Select all the layers in the smart object and drag then to your final file
  3. Use the smart object to aling and check the scail of the new files that you dragged from it.
  4. 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.

1
  • this has already been said in another answer, you're not adding anything new here. There are plenty of other unanswered questions that might benefit from your input, go check it out!
    – Luciano
    Feb 8, 2017 at 9:35
-2

This might help some of you:

  1. Select the Smart Object layer
  2. Ad new Layer (put it below the Smart Object Layer if you want to keep the naming)
  3. Select New Layer & Smart Object Layer
  4. 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.

1
  • that would rasterize the layer, the question requests specifically a solution without doing it
    – Luciano
    Mar 7, 2017 at 14:33
-2

Double click on smart object to open it, select all layers, right click -> duplicate layers -> select original project as destination.

1
  • Please explain better what you mean ... Welcome!
    – Mensch
    Mar 21, 2018 at 1:31
-2

Highlight all your smart object layers and press

Ctrl/Command+Alt/Option+Shift+E.

This puts all the smart objects into one layer. Done.

-3

This script worked fine for me for this purpose. https://github.com/thommeo/Expand-SmartObject/blob/master/README.md

2
  • Welcome to the site! While I am a huge fan of Github we request all answers to have the minimum information in the answer since links can rot and in this case the repo can be deleted. If you'd like to link the repo that is fine but the answer should be edited to include the script and explain how or what is going on from it. If you do not choose to make an edit and if this gets flagged as spam we may have to remove it. Look forward to your edit!
    – user9447
    Jun 7, 2018 at 17:57
  • The script is for CS4 and it's not working on CS6
    – brasofilo
    Jun 8, 2018 at 20:56
-3

Right click on the Smart Object Thumbnail and Rasterize it.

1
  • 1
    It does not preserve layers. The result will be only one layer.
    – Jarda
    Oct 23, 2018 at 18:06
-3

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.

1
  • 1
    read the question again: OP explicitly says I do not want to do Rasterize Layer. Also do not let your email address out in the open like this, spammers will find it and use it for all sorts of purposes. Regardless, this is a really old question, please only add an answer if there's some new information. Check How to Answer to learn more.
    – Luciano
    Nov 5, 2019 at 9:25

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.