Add ability to save clipping masks in PSD files and make it cross compatible as much as possible

I know Krita has its own workaround that gives similar functionality within Krita itself, but lacking actual clipping masks severely impairs compatibility with other apps via PSD, as all clipping mask info fails to translate to and from PSDs. As everyone knows, PSD is the format that bridges all painting apps together, regardless of how we each feel about Photoshop (personally I’m trying to avoid ever using it again).

This failure to transfer clipping info however, instantly eliminates Krita as an option for any artist that needs to share layered files with others who aren’t using Krita, something that is often a professional necessity (collaboration with colleagues that can’t/aren’t using Krita, sharing of PSD files with Patreon supporters, clients, etc.). It also disallows Krita from feasibly being part of a multi-app workflow, something that is quite common.

This presents a massive barrier to using Krita professionally. For me at least, with something as fundamental as this missing, I can’t really justify using it.

2 Likes

It’s not a “workaround”, it’s a feature. That is different from how other applications do something similar. That’s why it has its own name, too. If you want to see a workaround, look at the duct-taped together text tool :stuck_out_tongue:

Maybe it just needs an automated conversion between Krita’s inherit alpha to PSD’s clipping masks, when saving? It would need a proper comparison between those two programs first, though, because there are stuff you can do with inherit alpha that you can’t with clipping masks, I think (someone just today mentioned nested “clipping masks”?) (and it’s probably true the other way around too).

Krita masks are simply superior though. Clipping masks are the less useful way to do it

Regarding why people don’t use Krita more there is a whole thread about it though and people speak about working with it as did I too.

But expecting to use PSD at full capacity in Krita is silly. PSD is the Photoshop file format not the Krita file format, that is the KRA. Krita uses the PSD that is open to the people now that does not open everything right for the current PS. To use PSD like you do with ZBrush and Mari you have to pay Adobe an annual fee for that compatibility but that will not happen because Krita is open source and everyone can look at the code. So Adobe will not do that either.

To sum it up if you really need PS you should use PS because there will not be much of a change regardless unless PS goes open source or something :joy:

Sorry, I use workaround in the sense that it requires additional step(s) to get the same/similar result.

Huh, I didn’t realize it could actually do things that clipping masks can’t do though. I’m a bit confused on this point, because functionally, inherit alpha does the exact same thing, just with the added requirement that the layer inheriting the mask, and the layer inherited from, must be in a group first. There are apps that allow for clipping masks to be assigned to groups (and vice versa), which sounds functionally the same as nesting inherit alpha groups, again with significantly fewer steps and UI clutter from repeated group indentations.

That aside, if an automated conversion could be made to work reliably, that would suffice, the only drawback being a bunch of functionally unnecessary groups when opening the PSD in other apps. It definitely wouldn’t be the barrier it currently is.

Could you please elaborate on why it is superior? Playing with it myself for a while, I haven’t seen anything except the nuisance of mandatory grouping. I’m not comparing to Photoshop, which I haven’t used in years, but rather the programs I left Photoshop behind for (CSP and SAI 2), which allow for robust clipping, such as to groups (and vice versa).

Ah I see, that complicates things and explains why paid apps have much better compatibility. I don’t want to use PSD at all, and as I originally stated I am trying to avoid using Photoshop ever again. PSD is simply a necessity in most professional settings, whether working for a company or being funded for files through Patreon.

1 Like

Well I have entered studios where I was forced to learn software I personally hate like 3ds max and some others. It is park of the course. You gotta use what is needed for the pipeline.

I haven’t used clipmasks for CSP or SAI but I can take a look. I feel it is superior because you can convert it into a layer or a mask and use it everywhere with all the perk operations of layers added to them. They can look ugly but there very flexible.

5 Likes

You can inherit alpha from a group and a group can inherit alpha from anything under it, with the appropriate structure and settings.
Combine that with composition pass-through and you can make any ‘clipping’ structure you can imagine.

I think other applications should be persuaded to incorporate alpha inheritance in that way because it would make them so much better.

Hm, I’m still not seeing anything unique to Krita here that other programs aren’t also capable of doing but with less folders required. Been fiddling with things a while, comparing Krita and CSP and I haven’t produced anything uniquely possible in Krita. All the structures with inherit alpha, I can also do in CSP, even down to the folder organization, it’s just that the first folder is optional. I think there’s a bit of lag here comparing things to Photoshop (since it’s the industry standard), even though it’s been left behind in many features by other art-focused applications. I welcome anyone showing otherwise though!

Anyways, Krita being able to do the same things as clipping masks in other programs with inherit alpha groups is all well and dandy, I don’t actually mind Krita’s system that much, aside from organizational/aesthetic cleanliness gripes, which I can live with and others here clearly seem to prefer.

The actual point of this request is that importing/exporting PSDs breaks both of these systems when sharing layered documents, which is a critical problem for most professional workflows. I know that isn’t likely to be the case for many posters here (you’re already using Krita, after all), but I think this is a huge and unnecessary barrier to many who have professional requirements that necessitate sharing of layered documents. The world we currently exist in requires PSDs for the closest thing to universal compatibility, as much as we might wish otherwise.

Again, the main point of this request is that Krita is being eliminated from being an option in many (I would say most) pipelines needlessly, because of a core feature like clipping not translating, for reasons that I still can’t see.

For reference, here is the same nested clipping structure, in both CSP and Krita. I know which one I clearly prefer, organizationally and appearance-wise, and they function the same. Again, this isn’t the main point of this request, but at this point I’m confused as to why inherit alpha is supposedly superior and not just an encumbrance.
CSP Clipping Masks

Krita Inherit Alpha

As a matter of interest, can you do anything with clipping type work in CSP that you can’t do in krita?

I can export to PSD with the clipping mask structure intact. I, or anyone else, can then open this PSD in their program of choice. Bonus: my layer UI is cleaner, and I have less folder indentations :stuck_out_tongue:

Strictly speaking functionality within their own file types: not that I can see, since again, functionality is almost literally the same, aside from mandatory folders with inherit alpha.

I guess we’re getting multiple related topics here at this point.

  1. Inherit Alpha over Clipping Masks: I have never used CM, especially in CSP, unfortunately, so I can’t tell. I did notice that you only included one way of clipping in your demonstration, but you also said that it works two-way, so maybe you just included one example. I did make however a document, which I think might or might not show some differences - please tell me if you think it would be possible to make it in CSP, it would be very interesting to know. I never used any other system (maybe Gimp, but its floating layers are even funnier and curioser :smiley: ), so it’s not a “gotcha” moment of any kind, I’m just curious now. Link to .kra file: https://drive.google.com/file/d/1TjwKUqS9y23d8u4YcwJfr4ry2v-ctigt/view?usp=sharing

  1. Regarding Krita automatic reading and saving from/to clipping masks. I do agree it would be beneficial, unfortunately, it has been mentioned multiple times. I’m not sure if it’s truly possible - but I can check the basics. Could you please make a test PSD file (similar to what I made here for you) ? I’d just want to see whether Krita can even see the clipping layers (in which case the task would be: convert to Krita system), because since PSD file format is closed, it’s possible that Krita simply cannot read them (like the text layers) which would make the task much, much bigger, closing to impossible, depending on external circumstances. I hope to work less on resources in near future, so maybe I’ll have time for such features. But I can’t promise anything.

There’s Destination In/Destination Atop mode. With Destination In, you can actually clip all layers below it. There’s clone layers, etc to make work easier.

That being said, I don’t disagree that Krita could use improvement on Inherit Alpha. I do think that changes to Inherit Alpha to allow for different targets could solve the clipping mask issue.

@Agitato
is this what your trying to make?

From Google Translate:
If it’s just for sharing with others, I think merging the layers will do. Because artists are a very willful group, some people like to draw a few strokes to create a new layer, and there are even hundreds of layers in the end; some people like to paint on a few layers, or even only one. But they did not encounter difficulties when they submitted the psd. The purpose of obtaining the psd file may be just because it is a source file and not really to look at it…unless it needs to be standardized to make things like live2d.
But well, I also studied how to make their files more compatible.Inspired by an artist who uses ps. He doesn’t like to use Clipping Masks, but often applies transparency masks after selection. I found that normal masks are compatible, so I did this:


I also made an automated script based on the template of the script page (because the Task Sets function cannot be played)

Blockquote
def action_triggered(self):
Krita.instance().action(‘create_quick_group’).trigger()
Krita.instance().action(‘split_alpha_into_mask’).trigger()
Krita.instance().action(‘move_layer_up’).trigger()
Krita.instance().action(‘add_new_paint_layer’).trigger()
pass

The mask made by the selection has errors in translucency. And it is better to be compatible with each other. However, if you want to change the scope of the bottom layer, it is a little troublesome. I originally wanted to simply fill the bottom layer with layers and paint on the mask. Later, I considered multiple colors.
Also, due to my poor English and python skills. It does not judge the filling layer, so when applied to other layers, krita will be turned off. I asked on the forum but no one answered (it should be that this question is too idiotic… :slightly_frowning_face:)

Finally, it has an error in 5.0

The operation of “move_layer_up” is different from the 4.0 era. However, the strange thing is that under my manual operation, the effect is the same as before

  1. Ok so, I exported your example file from Krita as a PSD, and opened it up in CSP, and then tried to replicate the structure. I was able to replicate it, but I can see how in this instance, with a complex set of clipping relationships, Krita actually manages it with one less group :laughing:. CSP’s isn’t bad looking either though, and in both cases, this amount of clipping doesn’t seem very practical and is weird to wrap my head around, but it was neat to see!

  1. I exported the PSD from CSP after I set the clipping layer stuff up, and opened it back up in Krita. The clipping relationships were of course lost, but I was pleasantly surprised that it was easy to reestablish the relationships just by toggling inherit alpha wherever there was a layer/folder set to clip to the layer/folder below it. You can see this easily by comparing the CSP image with the Krita one. So while the extra folder in the PSD/CSP structure is unnecessary, it is fully functional in Krita once the proper inherit alpha switches are flipped, and the group Krita requires for its first inherit alpha toggle is made.

And here’s the PSD as well: https://drive.google.com/file/d/12zVpwvNd0TnS-JVyfcjRbb4l7LzfZ5uu/view?usp=sharing

Huh? I wasn’t trying to make anything, I was just trying to demo how clipping masks can do everything inherit alpha can. Admittedly my demo failed to cover everything, but that’s what I was trying to do :laughing:

Still haven’t encountered anything, but specifics of structure do differ

Sorry for going off topic.

Can’t you share the .kra files the patrons will not need to invest money to buy photoshop just to open your files. @Deevad offers all his source files in kra format.

I work with two - three comic companies and I started sharing kra files to them, they asked how to open it first and when I introduced them to krita they switched their studio to use Krita slowly. Now we just share kra files. Same goes for my other colleagues.

Yes occasionally I need to share a psd file and it would be good if the alpha inheritance would translate into clipping mask of PSD but I can manage it by converting the files to behave well with psd. I have to do it anyway since photoshop doesn’t even have some blending modes and clone layers feature etc.

The 100% psd compatibility is just a myth, Last I saw affinity lacked text editing from psd file, there also many feature that photoshop doesn’t have and saving a csp file to psd also leads to lose of that data which uses features that photoshop doesn’t have. At this point why use a closed black box of a format as industry standard interchange format. Send the native file, people will slowly start using the alternative apps which are also cheap or outright free than photoshop. You are not only saving your money but also your client and patron’s money. Be the change you want to see in the world.

P.S I am no way disregarding the original feature request to improve the alpha inheritance if it needs any improvement or making it interoperable. I am just saying try to use native file format while sharing source files.

7 Likes

Yes, I thought about this. The thing about PSD is, again, it’s often being used as a bridge to any art program out there, and not actually Photoshop. Thus it is the file format that least inconveniences one’s clients/supporter base. .Kra is only useable in Krita, which is not even available on certain platforms such as iPad (and never will be, as I’m sure you know). Making clients/supporters download a new software just to view my layered files seems a bit selfish, but at least it is free, so there is that.

Rather than inconveniencing others, I could inconvenience myself and dig through all the layers to reestablish clipping layers in another software. But again, I don’t understand for what? Why is this incompatibility even a thing?

And I severely doubt I’m going to be saving anyone money. If they’re paying Adobe a sub already, in all likelihood they’ll continue. If they’re using a one-time purchase app like CSP etc., their money was already (well) spent.

I’m aware PSD isn’t completely compatible because, yes, each program has its own unique features that don’t translate entirely. This is why I said “the closest thing to universal compatibility.” The majority of stuff does translate however, and one can avoid certain features if they intend their file to be fully functional in another program. Certainly something as basic as clipping mask relationships translates. This was my main reason for this request topic: Krita doesn’t play nice with others with layer masks, for no discernable reason other than “this is just how we do it here.” I have not found a single thing that the inherit alpha system allows for that CSP’s clipping masks do not, other than a familiarity bonus for its current userbase, and a penalty for everyone else :sweat_smile:. IMO, reinventing the wheel is not something that should be done without good reason, especially when there are clear drawbacks.

I also often bounce works from iPad to desktop, and vice versa. Krita can’t do this without breaking all clipping relationships. It breaks them for every other app out there, on every platform, just because its method of doing clipping masks is singularly unique, while offering no discernable unique benefits. Why?

Krita’s export to PSD even already works decently enough aside from breaking clipping masks (I think, maybe I haven’t used it enough to encounter more problems, but I’ve bounced a PSD elsewhere a couple times, which was what prompted me to post in the first place). This is why my request was to improve this specific incompatibility, which again, as far as I can see, is needless and presents a major barrier for many potential users. I just don’t want this barrier to be there if it doesn’t need to be, that’s all! I want to use Krita, and I want to see it grow :slight_smile:

Perhaps someone should suggest to adobe to support kra files, which would be more reasonable and easier to implement than the other way around.

1 Like