A project that trains a convolutional neural network over a dataset to repaint an novel image in the style of a given painting. This is the implementation of Neural Style Transfer from the paper A Neural Algorithm of Artistic Style in Keras 1.0.2. This is also the code for 'Build an AI Artist' on Youtube
Use pip to install any missing dependencies
If you have dependency version issues, use virtualenv
There are 3 images to identify when we run the script
Run the following comand to generate an image in your chosen style
python network.py --base_image_path /path/to/your/image --style_reference_image_path /path/to/your/painting --result_prefix /path/to/generated/file/you/create
Other optional commands are
--image_size
: Size of your output image--content_weight
: How much to weigh the content--style_weight
: How much to weigh the style-style_scale
: How much to scale the style--total_variation_weight
: Uniformity of the generated image--num_iter
: Nmber of iterations--rescale_image
: to rescale or not to rescale--rescale_method
: rescale algorithm --maintain_aspect_ratio
: to maintain aspect ratio or not --content_layer
: which layer to focus on for content generationI'd run this on AWS, but you can run this locally too if you have a GPU. On a 980M GPU, the time required for each epoch depends on mainly image size (gram matrix size) :
Credit for the vast majority of code here goes to Somsubra Majumdar. I've merely created a wrapper around all of the important functions to get people started.