Feedforward neural doodle
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.
data add pic May 10, 2016
models Initial May 10, 2016
pretrained Initial May 10, 2016
src Initial May 10, 2016
README.md Update README.md May 10, 2017
apply.lua Initial May 10, 2016
apply.py Initial May 10, 2016
diamond.py Initial May 10, 2016
feedforward_neural_doodle.lua Initial May 10, 2016
generate.py Initial May 10, 2016


Feed-forward neural doodle

This repository merges fast-neural-doodle and and Texture Networks. Read the blog post for the details on the doodle algorithm and the paper to learn more about texture networks.

You can find an online demo at likemo.net.


A good guide on installation can be found here.

You also need to download VGG-19 recognition network.

cd data/pretrained && bash download_models.sh && cd ../..

Generate doodles for training

Use diamond square algorithm to produce a random doodle and store it in hdf5 database.

  python generate.py --n_jobs 30 --n_colors 4 --style_image data/starry/style.png --style_mask data/starry/style_mask.png --out_hdf5 data/starry/gen_doodles.hdf5

Learn a network

Here is an example for starry_night used in the demo.

CUDA_VISIBLE_DEVICES=0 th feedforward_neural_doodle.lua -model_name skip_noise_4 -masks_hdf5 data/starry/gen_doodles.hdf5 -batch_size 4 -num_mask_noise_times 0 -num_noise_channels 0 -learning_rate 1e-1 -half false

All the parameters are explained in the code.

Stylize the doodle

After the net is trained you can process any doodle with

python apply.py --colors data/starry/gen_doodles.hdf5colors.npy --target_mask data/starry/style_mask.png --model data/out/starry_night.t7

A pretrained starry_night net is there in pretrained folder. You can try it with

python apply.py --colors pretrained/gen_doodles.hdf5colors.npy --target_mask data/starry/style_mask.png --model pretrained/starry_night.t7


  • The code was tested with 12GB NVIDIA Tesla K40m GPU and Ubuntu 14.04.


The code is based on Justin Johnson's code for artistic style.

Uses buckinha/DiamondSquare as is.

Work is supported by Yandex and Skoltech.


If you use this code for your research please cite this repository.

  author = {Ulyanov, Dmitry},
  title = {Online Neural Doodle},
  year = {2016},
  publisher = {GitHub},
  journal = {GitHub repository},
  howpublished = {\url{https://github.com/DmitryUlyanov/online-neural-doodle}},