Skip to content

Unofficial pytorch implementation of Arbitrary Style Transfer in Real-time with Adaptive Instance Normalization [Huang+, ICCV2017]

Notifications You must be signed in to change notification settings

sarathknv/pytorch-AdaIN

 
 

Repository files navigation

pytorch-AdaIN

This is an unofficial pytorch implementation of a paper, Arbitrary Style Transfer in Real-time with Adaptive Instance Normalization [Huang+, ICCV2017]. I'm really grateful to the original implementation in Torch by the authors, which is very useful.

Requirements

  • Python 3.5+
  • PyTorch
  • TorchVision

Usage

Download models

This command will download a pre-trained decoder as well as a modified VGG-19 network.

bash models/download_models.sh

Convert models

This command will convert the models for Torch to the models for PyTorch.

python convert_torch.py --model models/vgg_normalised.t7
python convert_torch.py --model models/decoder.t7

Test

Use --content and --style to provide the respective path to the content and style image.

python test.py --gpu <gpu_id> --content input/content/cornell.jpg --style input/style/woman_with_hat_matisse.jpg

You can also run the code on directories of content and style images using --content_dir and --style_dir. It will save every possible combination of content and styles to the output directory.

python test.py --gpu <gpu_id> --content_dir input/content --style_dir input/style

This is an example of mixing four styles by specifying --style and --style_interpolation_weights option.

python test.py --gpu <gpu_id> --content input/content/avril.jpg --style input/style/picasso_self_portrait.jpg,input/style/impronte_d_artista.jpg,input/style/trial.jpg,input/style/antimonocromatismo.jpg --style_interpolation_weights 1,1,1,1 --content_size 512 --style_size 512 --crop

Some other options:

  • --content_size: New (minimum) size for the content image. Keeping the original size if set to 0.
  • --style_size: New (minimum) size for the content image. Keeping the original size if set to 0.
  • --alpha: Adjust the degree of stylization. It should be a value between 0.0 and 1.0 (default).
  • --preserve_color: Preserve the color of the content image.

Train

Please install tensorflow, tqdm, and scipy for progress bar and logging

Use --content_dir and --style_dir to provide the respective directory to the content and style images.

python train.py --gpu <gpu_id> --content_dir <content_dir> --style_dir <style_dir>

For more details and parameters, please refer to --help option.

TODO

  • Implement the preserve color option
  • Implement the style interpolation option
  • Implement training

References

  • [1]: X. Huang and S. Belongie. "Arbitrary Style Transfer in Real-time with Adaptive Instance Normalization.", in ICCV, 2017.
  • [2]: Original implementation in Torch

About

Unofficial pytorch implementation of Arbitrary Style Transfer in Real-time with Adaptive Instance Normalization [Huang+, ICCV2017]

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 98.3%
  • Shell 1.7%