Automatic Flat Colouring

Contact: Michalina Pacholska

Create an automatic tool for flat comic colouring.

Master Students


On the left is a line-art image [0]. When creating the comic, the artists will create line-arts for every panel of the comic, that will have to be coloured. It’s often more convenient to add so-called flat colours first, shown on the right, and only later add shading and other effects. There are specialists, called flatters [1] whose job is exactly to prepare high-quality colour images. However, small projects and independent artists cannot afford to hire a flatter. This creates a need for automatic colouring of lineart.

There are existing solutions that provide automatic line-art colouring, but they all have their drawbacks.

This is an image generated by the neural network [2]. Such images look pretty and can deal with messy line-art [3], but they do not produce flat colours. Sometimes they change the line-art itself. It would be a desired behaviour if the output of the network were to be the finished picture, but in this case, we would like to have flat colours that will be the basis for shading.

Above on the left, there is an image coloured by G’MIC [4] filter in Krita. It produced good quality flat regions, but the colours are random. On the right, we can see the quality of the colouring: there are no empty spaces below the lineart, the algorithm correctly guesses where the lineart should be connected even if there are gaps (though, not always). G’MIC is based on a designed algorithm [5].

The goal of this project is to combine Neural Net and G’MIC approaches to obtain an automatic colour selection and flat colours.

An automatic tool, written in Python (can be just command line) for flat colouring line-art, creating consistent colours.

[0] Image from Pixabay
[1] Flatter
[2] Petalica Paint
[3] Deepcolor: automatic coloring and shading of manga-style lineart [4] GREYC’s Magic for Image Computing
[5] S. Fourey, D. Tschumperlé and D. Revoy, “A fast and efficient semi-guided algorithm for flat coloring line-arts”, 2018.

Some experience in Python is a must, as well as basics of machine learning and image processing or computer vision. Experience with Pytorch, TensorFlow, Kubernetes, ssh, C++, Pybind 11 or graph algorithms is a plus. 

This is a complex project, and although I believe you can learn everything on the fly, prepare yourself to be challenged. 

Type of work: 
Data processing (or generation) 30%, network architecture (or algorithm) design 30% and implementation 40%