![]() Registered Member ![]()
|
The context
For artists who work primarily in a sketch -> line -> flat color -> shade workflow, there are many ways to give color to lineart. The two major current methods implemented in Krita have their own problems and drawbacks, and their own strengths. Below I'll discuss both of them, and what I believe can be changed about each as to make the process significantly faster, and maybe even easier. I'm a full-time artist and not really a developer, so I will try to explain the ideas as best I can from my perspective, while providing context to how and when these tools or options would be used in the above artistic workflow. To better understand each problem and solution, I drew a random shirt that I'll use throughout this to explain since I'm pretty bad with words. ![]() ![]() __________________ Section 1 : The fill tool My preferred way of coloring lineart, it's quick and easy, and since I'm the literal poster child for 'ideal situation' for this tool, it still has several limitations that I'll give suggestions for. My lineart is a standard round hard brush, producing lightly anti-aliased 100% dark lines. I never leave gaps between lines and my lines are usually several pixels thick. When I'm feeling adventurous, I may apply a slight texture to the edges. Theoretically speaking, fill tool should work well for me.
Section 2: The colorize mask While it's never been my preferred method of coloring, I can see it's use and it's place. Unfortunately, I don't have lines between all of my colors so this severely limits its use. Disregarding the fact that I'm a creature of habit and don't like switching workflows, I gave it a try for several pictures and here were my findings:
I thought I had more problems with the colorize mask but really that was the only major concern, but it was a big one that rendered it unusable so unfortunately it was all that was needed to get me disinterested. Thank you for reading through, I hope I was concise and helpful enough in giving my perspective as an artist. I want to see Krita grow and make life easier for us artists in any way possible. Currently, unfortunately that's only through bug reports and suggestions. |
![]() Registered Member ![]()
|
Your ideas are all good and it would be nice if they could be implemented eventually. That 'crevice filling' would be a difficult one to implement properly.
There are a couple of workarounds you might want to consider: For the 'reference layers' when using the Fill tool, you can create a new image and then copy/paste the layers you want as reference to that new image and then do a colouring fill operation in the new image, then copy/paste the resulting colour filled layer back into your working image. With the Colorize Mask tool, you can put a colourize mask on a group and have the group contain your original artwork plus additional layers with 'boundary lines' which would simulate your idea of temporary boundaries. After performing the Colorize operation, you can hide the layer(s) containing the additional lines. Here is a quick example using your original shirt lineart where I used one simple additional layer (not visible) for the temporary boundary lines. Any roughness is due to my shaky hands: ![]() |
![]() KDE Developer ![]()
|
The first one in your case can be solved by making the fuzzy higher so it will ignore the semi-transparent pixels, which is what is preventing the crawling into smaller areas.
For the fill tool speed, we would need someone to come up with a faster algorithm than we already use. The fill tool processing area is already scaled with the area it is trying to fill... at the least, when I try to use it here, bigger areas are slower than smaller areas. For the colorize mask, it is indeed intended to be used within a larger workflow where you do cleanup afterwards. If you are getting crashes with it, you should report those. The reference layers might be possible, but it is going to take a very very long time before we have room on our todo. It will require a different compositing of the layers for instance, new icons, new ui, etc. etc. |
![]() Registered Member ![]()
|
Seems a bit tedious and it likely won't line up properly when copying back assuming the temporary canvas is a different resolution. The workaround I had been using up until now is using the magic wand on the lineart layer with 'only this layer' selected, then selecting the color layer, and doing ctrl+backspace (don't know if that's default or if I set it) to fill the area with foreground color.
For some reason this idea completely slipped my mind. i knew you could put the mask on a group, but It never occured to me to use an invisible layer to define boundaries. I'll definitely be using that from now on. It'd be neat to have something built in for the future, though.
What is 'the fuzzy'? If you mean the tolerance/threshold, even at 100 it still doesn't fill crevices. If you mean feathering, that produces unwanted results across the board and I'd imagine would be used for more niche circumstances and not for hard lineart.
I love problem solving, and while I absolutely don't have the expertise to tinker around with Krita itself, I might be able to concept up something in an easier language such as Python? If I knew how Krita stored layer data, I would definitely give both 'fill crevices' and speed testing a try. Thing is I don't know if that would be helpful at all considering how insanely different the two are at processing things, but I wouldn't even know where to start on C++ and compiling. I'm willing to do whatever I can to help, though, and if that means trying to learn C++ to make proof of concepts then I'm down.
Only time it's crashed was when i was working on the shirt example, caught me off guard. I would report it if it happened again, because right now I have no idea how to reproduce it. My bug report would be 'it crashed, and i don't know why or what I was doing at the time' |
Registered users: bancha, Bing [Bot], Evergrowing, Google [Bot], Sogou [Bot]