In 2015 Leon A. Gatys, Alexander S. Ecker, Matthias Bethge published A Neural Algorithm of Artistic Style. A new artificial network algorithm to apply a style of an image to a content of another image.
In fine art, especially painting, humans have mastered the skill to create unique visual experiences through composing a complex interplay between the content and style of an image. Thus far the algorithmic basis of this process is unknown and there exists no artificial system with similar capabilities. However, in other key areas of visual perception such as object and face recognition near-human performance was recently demonstrated by a class of biologically inspired vision models called Deep Neural Networks. Here we introduce an artificial system based on a Deep Neural Network that creates artistic images of high perceptual quality. The system uses neural representations to separate and recombine content and style of arbitrary images, providing a neural algorithm for the creation of artistic images. Moreover, in light of the striking similarities between performance-optimised artificial neural networks and biological vision, our work offers a path forward to an algorithmic understanding of how humans create and perceive artistic imagery.
Justin Johnson published a Torch implementation of this algorithm on github. You can install it on Linux but will require a NVidia card with CUDA if you want images to be rendered into a reasonable time.
Neural Painting Style Transfer
A video to understand how it works.
Neural Painting Applications
If you want to play with neural paintings there are numeral applications using this algorithm. Here a list I found.
DeepArt, DeepArt Turbo, DeepDream Generator, DreamScope
Android for Pictures
Alter, Artbot, Artify, DeepArt Turbo, DreamScope, Mlvch, Paintnt, Picas, Pikazo, Prisma, Vinci, Wizart
Android for Pictures & Video
Alter, Artisto, DeepArt Turbo, Pikazo, Mlvch, Prisma, Lucid, Wizart
Lowres neural painting
As this algorithm requires a lot of resources the different applications available offer only low resolution result, less than 1MP. I give an example of how using those applications to create a simili high resolution neural painting pictures without the need of tremendous resource.
For the example I will use DeepDream Generator.
On main menu choose Deep Style
Upload the picture you want to apply painting effect to.
Use any build-in style provided or upload your own style.
|Original Image 1920×1080||Style|
Click on settings and adjust some parameters
- Resolution Medium 0.6 MP
- Adjust Style Scale and Style Weight
Click on generate.
You will get a low resolution (800×450 pixels) after a delay of 15 min like this one.
Resizing without artifacts
If you higher the resolution using simple rescale tools artifacts will be very noticeable. A more effective tool is needed to resize the picture. ReShade will make the job.
Click on open.
Select the neural painting image.
Reduce Artifacts 100
Processing Fidelity 100
Smooth gradients 20
Click on save.
To achieve the final render you can mix the original picture with the neural picture resized using two different layers into a painting software like Gimp. Using a transparency of 60% for the neural picture.
Mixing original picture with NN resized (60%)