ShadeMaker, a new palette making plugin

CURRENT VERSION: SHADEMAKER v.1.1b 2023-03-19T05:00:00Z

Get ShadeMaker Here ► ShadeMaker v1.1b

image

Release Notes for v1.1b:

  • Fixed an error that occurred when drawing ShadeMaker’s UI in some versions of Krita (see this post)

Release Notes for v1.1a:

  • Fixed an error that occurred when setting the bottom value global adjustment
  • Removed some debug code

Release Notes for v1.1:

  • Now properly supports a custom Krita app data location. This folder path is set in Krita’s settings.
  • HSY color blending has been improved; HSY color space now produces more colorful, predictable results.(See this post detailing v1.0’s limitations in this area)
  • Improved starting behavior when ShadeMaker first opens along with Krita.
  • The shade series can now be arranged within the tray using drag-and-drop behavior.


ORIGINAL POST BELOW

Hey all,

I’m currently developing a plugin for Krita based on how I personally like to manage colors while painting.

image

While Krita has many useful methods for picking colors and even a few specifically for creating a series of variations on a color, there were still some particular problems I wanted simple solutions to.

I like to pre-mix shading series for direct painting. This requires a carefully controlled transition between colors and there are many ways to achieve the desired results, but I want to eliminate as much of the menial work of palette making as possible (for more on this, see The Dimensions of Colour, shading series, shadow series)

Currently, this docker will take a “pilot color” and use it to generate a string of shades. Where things go from here is more interesting.

image

ShadeMaker uses an “anti-pilot” to put color of your choosing into the darkness of your palette. This is desirable for a number of reasons.

Scaling straight to black results in a “dead” series and most artists work to avoid this; not only are colorful darks more pleasant to look at, real shadows are almost always lit to some extent and therefore influenced by color.

Separate from this, many pigments used in traditional painting are only “effectively” black. In other words, they are perceived as black, but are in reality an intensely absorptive color such as blue or red. Again, there are many ways to recreate this phenomena digitally, but because digital “black” is always red (Hue:0) steps must be taken to recreate this behavior.

image

Of course, you can adjust the number of steps in your series or the number of series themselves. There are more features I’d like to add, including:

  • Toggle to switch between linear scaling and angle-of-reflectance scaling.
  • Alternate anti-pilot blending methods for different results
  • Color “anchoring,” a shift in color toward a particular swatch on a series.
  • Auto-generation from palette (scaling could be an issue here, it may be a bad idea).
  • Auto-generation from gamut (same reservations as above)
  • Global and local color influences (all series vs single series adjustments).
  • Setting the bottom value at any desirable value, not just black

A few of these are already under way.

I thought things were in a good enough way to start showing things, so I opened this thread. If any challenges or interesting additions come up, I’ll put them here too. If there are any features you’d like to see in such a plugin, please let me know.

For now, thanks for looking! Here’s an image put together with some of these ideas:

34 Likes

Thanks :two_hearts:

2 Likes

great idea ! It is possible to test it at this point of development yet ?

Thanks for asking. Yes, here is a version you can test out.

Before a finished version, I would like to art persistence between sessions, clean up the appearance, and give the code some cleanup as well.

Proton Drive

Let me know if you run into any errors or have any feature requests.

ShadeMaker is now feature complete for v1.0 (I think!)

Now, I’m going to tidy up the code and appearance. I may expose a few styling parameters to the user as well.

ShadeMaker instantly makes a shading series for you.

image
image

Current features include:

► Up to 10 shade series
► Up to 21 steps per series
► Global Anti-Pilot to put color in
shades
► Auto-save data per session
► Manually load and save data
► Toggle between linear and “realistic” value scaling
► One-click color access for speed

7 Likes

Ok, I’ve released a full version!

You can support ShadeMaker with a download here at Gumroad ► ShadeMaker v1.1b

Current features include:

  • Up to ten shading series
  • Up to twenty-one steps of value per series.
  • Add color to your darks with the “Antipilot Color” adjustment.
  • Adjust the overall lightness or darkness of your values with the “Bottom Value” adjustment.
  • “Linear” and “Realistic” value scaling modes to imitate real-world perceptual changes in value.
  • HSY and HSL “Shade Space” modes to manipulate color in shades.
  • Data persistence per session.
  • Load/Save function to save and restore settings.

Also some simple error logging on my end in case any issues pop up.

I hope someone else finds it as useful as I do!

Soon I’ll get around to making some demonstrations.

5 Likes

This thread and [NEW PLUGIN] - TF Easy Colors Map should probably be moved to Plugins - Krita Artists , so that people looking for plugins can have an easier time finding them.

Seems it’s been moved now.

Updated ShadeMaker to v1.0.1 today, fixing a bug with the Realistic scaling mode.

I also made a small demonstration of the plugin in action:

5 Likes

First of all, great plugin! It’s super handy and I’ve had fun experimenting with it. However, I have two issues to report:

  1. You have to double click to select the color you want, which is pretty lame.

  2. When HSY is enabled, there are certain colors (such as this specific shade of cyan) which wont tint the colors. Here’s a demonstration
    TheCursedCyan

Hey @Awez, thanks so much for checking out the plugin, I hope you continue to enjoy it! I plan on improving it as time goes on.

As for your comments, let me see if I can help:

  1. You have to double click to select the color you want, which is pretty lame.

It was designed to work with single clicks, so this is surprising to me! I did this specifically to make the tool as quick as possible.

Could it be a difference in OS? What OS are you using? Does this behavior occur on all swatches or just certain types (pilotcolor, shade, antipilot)?

It was developed on windows and all swatches operate by single clicks on my end. Let me know some details if you please, this feature is small but actually very important to me.

When HSY is enabled, there are certain colors (such as this specific shade of cyan) which wont tint the colors. Here’s a demonstration

I briefly discuss the nature of these modes in the manual, but briefly put: The HSY mode attempts to abide by perceptual standards of value; that is to say, some colors are naturally stronger or weaker at different values (i.e. yellow is strong at light values, weak at dark values.) This is “realistic,” but as you demonstrate, it sometimes produces results with vanishingly weak chroma.

I plan to look into improvements to the current HSY formulation and additional adjustment options in future versions, but for now here are some options for you:

  1. Manipulate the saturation or value of your Antipilot to get higher chroma, such as in the example below:

  2. Switch to HSL mode and reduce the chroma of your Antipilot to a more subtle result

Uh I think it would be useful to have a brightness picker too.
I like to use docker under cursor.
And so having a sort of one stop spot for values (shades and brightness) would be nice.
Maybe having a ruler to show even increments could help too.
increments brightness bar
the red bars serve as visual aid to see increments when selecting (on hover = picker)

Thanks for the suggestion @tachiko

I’ll keep this in mind when I get some time to work on the next version.

Cool. Except I made a mistake in that picture. I wanted to have it show lighter values. So begins from white. It would go from white to whatever initial color from whatever row you last selected.

1 Like

Hello all, ShadeMaker has been upgraded to v1.1

You can get it here ► ShadeMaker v1.1b

image

Release Notes:

  • Now properly supports a custom Krita app data location. This folder path is set in Krita’s settings.
  • HSY color blending has been improved; HSY color space now produces more colorful, predictable results.
  • Improved starting behavior when ShadeMaker first opens along with Krita.
  • The shade series can now be arranged within the tray using drag-and-drop behavior.

The top posted has been updated with current info.

6 Likes

Thank you for updating your plugin!

Michelist

1 Like

Hello again,

I’ve updated ShadeMaker to v1.1a. This is a small bug fixing update.

Release Notes:

  • Fixed an error that occurred when setting the bottom value global adjustment
  • Removed some debug code

The top post has been updated.

2 Likes

I would +1 vote to add a light feature. In 3d shaders light is usually additive algorithm to add the color of the light to the 3d shape(based on the grayscale map contribution). Thus it would be nice to have a lighten(not only darken) feature for ShadeMaker.

Also, I’m using the nightly builds and I get errors when opening the plugin.

I get the same with Pigment.O . Apparently the Qt version the nightly Krita is using is requiring the values are cast as ints for the function calls.

@okuma_10 Thanks for the feedback! I’ve gotten a number of requests for tinting now, so I will definitely look into some feature for that in future versions.

As for the nightly builds issue, I wonder what’s going on there…maybe I can add some kind of contengiency for that issue.

As I mentioned I had the same issue with Pigment.O plugin.
Because I use it daily, and it’s creator didn’t want to spend time fixing the issue(at this moment). I went into the code and fixed all the errors(at least the ones I could find) and all of them were the explicit casting of values to ints. Sometimes it was some division when providing an argument to a function. Since in Python all devisions are automatically converted to floats. So considering the error speaks of the same I assume it’s the same issue. Newer PyQt versions appear to want an explicit int casting

Hello again,

I’ve updated ShadeMaker to v1.1b. This is a small bug fixing update.

Release Notes:

  • Fixed an error that occurred when drawing ShadeMaker’s UI in some versions of Krita (see this post)

The top post has been updated.

3 Likes