Skip to content
AI Artist for Machine Learning for Hackers #5
Branch: master
Clone or download
Latest commit 3038c06 Sep 5, 2016
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.idea first May 28, 2016
bin first May 28, 2016
include first May 28, 2016
lib/python2.7 first May 28, 2016
.Python first May 28, 2016
Network.py
README.md

README.md

Overview

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

Alt Text

Dependencies

Use pip to install any missing dependencies

If you have dependency version issues, use virtualenv

Basic Usage

There are 3 images to identify when we run the script

  1. Your base image (to artify)
  2. Your reference image (the art to learn from)
  3. Your generated image

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 generation

I'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) :

  • For a 400x400 gram matrix, each epoch takes approximately 11-13 seconds.
  • For a 512x512 gram matrix, each epoch takes approximately 18-22 seconds.
  • For a 600x600 gram matrix, each epoch takes approximately 28-30 seconds.

Credits

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.

You can’t perform that action at this time.