Giter VIP home page Giter VIP logo

stylegan_pytorch's Introduction

“GitAds”/


This advert was placed by GitAds

A PyTorch Implementation of StyleGAN (Unofficial)

Github Github Github Github

This repository contains a PyTorch implementation of the following paper:

A Style-Based Generator Architecture for Generative Adversarial Networks
Tero Karras (NVIDIA), Samuli Laine (NVIDIA), Timo Aila (NVIDIA)
http://stylegan.xyz/paper

Abstract: We propose an alternative generator architecture for generative adversarial networks, borrowing from style transfer literature. The new architecture leads to an automatically learned, unsupervised separation of high-level attributes (e.g., pose and identity when trained on human faces) and stochastic variation in the generated images (e.g., freckles, hair), and it enables intuitive, scale-specific control of the synthesis. The new generator improves the state-of-the-art in terms of traditional distribution quality metrics, leads to demonstrably better interpolation properties, and also better disentangles the latent factors of variation. To quantify interpolation quality and disentanglement, we propose two new, automated methods that are applicable to any generator architecture. Finally, we introduce a new, highly varied and high-quality dataset of human faces.

Teaser image Picture: These people are not real – they were produced by our generator that allows control over different aspects of the image.

Motivation

To the best of my knowledge, there is still not a similar pytorch 1.0 implementation of styleGAN as NvLabs released(Tensorflow), therefore, i wanna implement it on pytorch1.0.1 to extend its usage in pytorch community.

Notice

@date: 2019.10.21

@info: The noteworthy thing I just ignore to highlight is you need to change default Star dataset to your own dataset (such as FFHQ or others) in opts.py. Sorry for my carelessness for this.

Author

Training

# ① pass your own dataset of training, batchsize and common settings in TrainOpts of `opts.py`.

# ② run train_stylegan.py
python3 train_stylegan.py

# ③ you can get intermediate pics generated by stylegenerator in `opts.det/images/`

Project

we follow the release code of styleGAN carefully and if you found any bug or mistake in implementation, please tell us and improve it, thank u very much!

Finished

  • blur2d mechanism. (a step which takes much gpu memory and if you don't have enough resouces, please set it to None.)
  • truncation tricks.
  • Two kind of upsample method in G_synthesis.
  • Two kind of downsample method in StyleDiscriminator.
  • PixelNorm and InstanceNorm.
  • Noise mechanism.
  • styleMixed mechanism.
  • add Multi-GPU support.

Unfinished

  • Inference code.

Related

1. StyleGAN - Official TensorFlow Implementation

2. The re-implementation of style-based generator idea

3. ptrblck_styleGAN

System Requirements

  • Ubuntu18.04
  • PyTorch 1.0.1
  • Numpy 1.13.3
  • torchvision 0.2.1
  • scikit-image 0.15.0
  • tqdm
  • GTX 1080Ti or above

Q&A

Acknowledgements

Our code can run 1024 x 1024 resolution image generation task on 1080Ti, if you have stronger graphic card or GPU, then you may train your model with large batchsize and self-define your multi-gpu version of this code.

My Email is [email protected], if you have any question and wanna to PR, please let me know, thank you.

stylegan_pytorch's People

Contributors

tomguluson92 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.