Skip to content


Switch branches/tags

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time

"Neural Art" in TensorFlow

An implementation of "A neural algorithm of Artistic style" in TensorFlow, for

  • Introductory, hackable demos for TensorFlow, and
  • Demonstrating the use of importing various Caffe cnn models (VGG and illustration2vec) in TF.

In this work, I put effort in putting the code simple as possible, for being a good introductory code to TF. For this reason, I also implemented very basic uses of TensorBoard (the visualizer). I also aimed on demonstrating the use of importing various Caffe models from *.caffemodel files into TensorFlow, especially models that seemed not to be imported by anybody yet in TF (as far as I know). Based on, I modified the importer so that it can import illustration2vec (, which is another CNN available as a Caffe model. Using different CNNs yields different results, which reflects the characteristics of the model.

In the Neural Art problem setting, the weights of the CNN are fixed, and the input image into the CNN is the only "trainable" variable, making the code easy to understand (the optimized/trained image is the output image). I hope this example serves as a good introduction to TensorFlow as well as for entertainment purposes.

(VGG, default settings, 70 iterations)

(illustration2vec, width=500, beta=10000, 100 iterations)


Step 0: Prepare the Caffe model

First, download either the VGG model or the illustration2vec model (*.caffemodel), along with the prototxt (*.prototxt):

Then, convert the model to a binary format recognizable to TensorFlow:

python ./kaffe/ [path.prototxt] [path.caffemodel] [output-path]

Note that Caffe is not required for conversion.

The converter included in this repo (all code inside ./kaffe) is a modified version of (an old version of) . The converter is modified to be capable of handling the illusration2vec neural network. Since the newer version of the converter requires preprocessing with the Caffe framework for old-format Caffe models (at the time of writing), I have included the converter which is based on the older code, which is capable of handling old-format Caffe models.

Step 1: Neural Art


Running without options yields the default settings and input images. Available options are:

  • -m, --model: Model type - Use vgg or i2v
  • -mp, --modelpath: Model file path - The path to the converted Caffe model in Step 0
  • -c, --content: Content image path
  • -s, --style: Style image path
  • -w, --width: Output image width
  • -i, --iters: Number of iterations
  • -a, --alpha: alpha (content weight)
  • -b, --beta: beta (style weight)

For example:

python -m vgg -mp ./vgg -c ./images/sd.jpg -s ./images/style.jpg -w 800

You can view the progress on tensorboard by running

tensorboard --logdir=/tmp/na-logs



"A neural algorithm of Artistic style" in tensorflow






No releases published


No packages published