All my works are done with 8 bit per channel but I recently thought about using 16 bit integer instead.
I was completely satisfied with 8 bit for years. It’s what most screens can display anyway and I always thought I wouldn’t benefit much from using a higher bit depth and it’s better to have it closer to what the screen can handle. And my works are mostly for the web anyway. I read 16 bit can give give you smother transition and less banding. The internet seem to be unsure, some swear 16 bit is best, some say its simply not worth it.
What are your opinions? Are there any drawbacks when using 16 bit? Are the benefits great enough to justify the doubled memory usage? After reading through the internet I’m even more unsure about this than before and just want to know what my fellow Kritans think about this.
I work in 8 bit and 16 bit integer. It depends on the image . If the image is realistic and has too many transitions in color and my primary coloring method involves lots of gradients (something which American style comic book coloring need) I choose 16 bit and then convert them to 8 bit.
If it is for normal illustration and the rendering is painterly or doesn’t involve huge gradients then I choose 8 bit.
I have noticed that 16 bit is faster sometimes but needs a bit higher ram and space.
My style is very painterly, I’d say. But I read you get better color mixing in 16 bit too. This could be a benefit in painterly works, when you mix your colors on the canvas, right?
16 bit helped me a lot when I was using a lot of soft shading with airbrushes with low opacity. 8 bit reveals it’s artificial nature in that scenario. Currently I work only in 8 bit and I don’t feel the need to use 16 bits
Besides the usual drawbacks like a higher memory usage and a slower painting in general, since we have 8bit integer optimized and 32bit partially optimized, but there are no optimizations for 16bit, there is also this issue that, if you are working in linear profile which is default for at least 16bit float, can give you a bit of trouble when you blend very bright and very dark colors, for example you want to blend in a bit of highlights on a metallic surface. Because of this there are also issues when you have for example your normal a bit semi-transparent (but mostly opaque) brush and you want to paint with a dark color over a light surface; suddenly the opacity doesn’t seem to be working correctly, it’s much lighter than it should be. And the other way around, you need to press very light to get the same effect when you put light colors over darker ones.
16 lub 32 bit, either float or linear, will give you no banding on gradients… the issue is, our gradients are 8bit anyway and as far as I know, making them suitable for higher bit depths would be hard;
linear profile will give you more “natural” colors as a result of blending, but also harder to blend transitions between much darker and much brighter colors;
I am not sure about int/float differences in 16 bit… I know there are some file formats that only accept 16 bit integer.
Yes, “sRGB-elle-V2-srgbtrc.icc” is the “real” sRGB profile (as in, uses sRGB transfer curves), “sRGB-elle-V2-g10.icc” is linear with the sRGB color gamut, which is the default for everything >8 bit in Krita.
And I’m torn on what to use too, I tried linear a few times because it blends colors correctly, but as said the whole opacity behavior is drastically different so you’d have to adjust your pressure curves, also blending modes like overlay, soft light etc. behave quite differently etc. so I found it harder to work with.
So 8 vs. 16 bit…yes 16 bit definitely gives smoother results with certain things, I noticed that 8 bit can produce quite nasty banding on more exotic brush settings, like using a low opacity brush with color dodge blending and build-up mode, it almost makes you throw up in 8 bit (someone was asking how to replicate a Photoshop brush to draw fire effects when I noticed this)…
Int vs. float…16bit float of course gives you HDR capabilities, color precision is still well above 8 bit, but then again, some filters still can’t cope with HDR and you often just don’t need it. Not sure about performance really, but since CPUs can’t do 16bit float (“half”) natively, it’s probably the slowest of all choices, otherwise it’d be a nice all-round choice.
Recently I’ve made a mini tutorial how to use filters when working with high dynamic range images; basically you can convert them to Rec2020-pq, which has a much wider range from 0.0 to 1.0, and then use filters just as normal - and then convert back if you need, I guess. You do lose something in the process, namely all values that are above 1.0 in Rec2020-pq (which are way above 1.0 in the default linear profiles), since filters still crop it, but since it’s quite high, I guess it shouldn’t matter all that much unless you’re working on some images like, I don’t know, from rendered 3D scene and you need them super precise.
I’m not really an expert and tried to understand it many times, now also that I paint a lot with krita I had to experiment but not sure I got it right, it seems so confusing sometimes. After all what matters is what you paint it for (print or screen) and what type painting or image you create.
I’m currently using the elle-V2-g10 which is linear, with 16bit integer. The color gamut is what makes the darker values more “dense” (?) everything below the mid halftone is darker. I found also the filters (edit: I really meant blending modes) are behaving differently and I found it rather good for what I’m after. After I think it’s also a matter of preference and can be very subjective.
But what I also found, is the importance of the colomanagement display settings in Krita, which renders your image. And if you change that, the image can drastically change from bright bland to really dark. I tried to understand multiple times how color space color profile and display profile work together. So I’m using also the same dsplay profile as the image and it seems fine. Oh and the monitor settings and profile also matters a lot how the image display…
After all you convert the image to (for digital screen art) to sRGB linear and save it as jpg on png and as long as the output looks the same as the image in Krita I’m fine.
The color profile in Configure Krita -> Display should be the profile of your display. Then Krita internally converts the image from the original color space to the display color space. Correct color managed setup should involve a color profiled display. Problem is, to profile a display, you need a colorimeter which is a device and a quite expensive one, afaik.
If you have just a standard display, the profile you should be using is most probably sRGB.
If you have a special wide-gamut display, there should be a semi-correct color profile somewhere (like I already have one on my laptop on Windows because it was installed together with all manufacturer software).
If you have a HDR display, you don’t need to profile it at all, just enable HDR in both Windows and Krita.
Hm, I see. I was also having the issue on a MacBook Pro that the krita in image preview look a lot brighter and when opening an exported jpg (which looks same outside krita) it looks a lot darker than the open krita file.
If I change display profile to DCI P3 then the image gets a lot brighter and washed out. But the difference in Krita - Mac is now the same and opening an exported jpg looks the same.
But is there a way to convert the image color space or profile to look the same again after switching display profile in krita? Image color space is the elle-V2 ones.
You probably need to incorporate the conversion somehow. I would have to think hard whether it is conversion from dci-p3 to sRGB or the other way around, I guess you just experimenting will be faster.
Take the image.
Convert to 16 bit float (the same profile) just to make the precision bigger. You have a lot of conversions before you
Convert to X profile.
Use Scripts → Assign Profile to Image. Use profile Y.
Convert back to the original 8 bit one.
One time try dci-p3 as X and sRGB as Y, and the other time the other way around. Please do tell me which one worked. (When you establish it, you can check whether you need to make the bit depth higher; maybe not… probably not… there is not that much converting there…)
Let’s see if I can reconstruct it correctly…
the image was set to sRGB-linear, the display output to sRGB, but the actual display is dci-p3…
So I think you would first have to convert the image to the profile you had set as display profile (probably “sRGB-elle-V2-srgbtrc” or “sRGB built-in”), then assign dci-p3 with script (because that’s what it really was displayed as) and then convert it back to what it originally was.
Btw. I had to enable that script in the Python Plugin Manager first, and restart krita.
Thanks a lol. I tried try an error so many times and got so many different results, heh.
I seem to have the most success when when just letting the original color profile and using the script “assign color profile to image” to convert to DCI P3. Then it already is very close. But it seems more saturated (!?).
It seems to also depend if you have layers with blending etc, but here it doesn’t make any difference. The results can differ though.
Converting the image back to original color profile was ok, but when saving or export a jpg, it would look a lot darker in the OS preview.
So I would have to let it at the script assigned profile?
I have a display that is calibrated for sRGB. I didn’t calibrate it myself but used an extra service offered by the screen manufacturer. They even send me a print-out of the calibration process and before/after values and a lot of stuff I don’t really understand. In Krita I set the screen to the profile simply named sRGB. I use the same as a color profile when creating a new document. I thought that would be a no-brainer (sRGB screen → sRGB profile) but I’m a bit confused now. Should I have used sRGB-elle-V2-srgbtrc.icc the whole time instead? I now have a Cintiq that is set to sRBG (the screen itself) too.
The articles on sRGB on Elle Stone’s website (Articles and tutorials on Color management) do a really good job explaining the issues with sRGB. The one you’re asking about has “elle” in its name because she crafted the profile
Does Krita override OS color management? If I calibrate my display, I’ll usually apply the resulting ICC profile on the OS level. Should I still also tell Krita to use that profile?
It depends on your OS. On Windows and macOS we cannot figure out the OS color management settings, and you will have to set the display profile in Krita’s color management settings. On Linux, we can figure it out, but only if colord is running, which is not always the case.
What I don’t understand is why do I have to set the display profile, and to what. The DCI P3 doesn’t give me the color range I want it’s all bland and too bright. And why does it affect the image and values and colors so drastically, when viewed when exported and viewed in MacOS or Windows or other software.
My image is fine as long as I’m in Krita, but opening the saved file it turns very dark, in OS it looks fine when I save with embeded ICC profile but when I upload somewhere it turns complete dark.
As soon as I started messing around with color profiles, I start to have problems and everytime I try something it goes worse and worse.