20

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.

  • 5
    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 '13 at 22:08
  • Thanks, I'll look into it. couldn't find that myself (I did do some search before asking) – matan129 Jul 29 '13 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 '13 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. – Adam Schuld Jul 29 '13 at 22:19
  • Yeah, I thought so, but wasn't certain though. – matan129 Jul 29 '13 at 22:23

14 Answers 14

5

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/

16
  • 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.

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

1

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.

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
  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.

-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.

  • 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 '17 at 9:35
-1

Highlight all your smart object layers and press

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

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

-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.

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

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

  • Please explain better what you mean ... Welcome! – Mensch Mar 21 '18 at 1:31
-3

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

We're looking for long answers that provide some explanation and context. Don't just give a one-line answer; explain why your answer is right, ideally with citations. Answers that don't include explanations may be removed.

  • 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! – DᴀʀᴛʜVᴀᴅᴇʀ Jun 7 '18 at 17:57
  • The script is for CS4 and it's not working on CS6 – brasofilo Jun 8 '18 at 20:56
-3

Right click on the Smart Object Thumbnail and Rasterize it.

  • 1
    It does not preserve layers. The result will be only one layer. – Jarda Oct 23 '18 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
    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 at 9:25

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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