Giter VIP home page Giter VIP logo

README

HyperGAN 1.0

docs Discord Twitter

A composable GAN built for developers, researchers, and artists.

HyperGAN is in pre-release and open beta.

Colorizer 0.9 1

Logos generated with examples/colorizer

See more on the hypergan youtube

Table of contents

About

HyperGAN builds generative adversarial networks in pytorch and makes them easy to train and share.

For a general introduction to GANs see http://blog.aylien.com/introduction-generative-adversarial-networks-code-tensorflow/

Join the community discord.

Documentation

Changelog

See the full changelog here: Changelog.md

Quick start

Requirements

OS: Windows, OSX, Linux

For training:

GPU: Nvidia, GTX 1080+ recommended

Install

  1. Install HyperGAN For users: pip3 install hypergan

For developers: Download this repo and run python3 setup.py develop

  1. Test it out
  • hypergan train preset:celeba -s 128x128x3
  1. Join the community

Create a new model

  hypergan new mymodel

This will create a mymodel.json based off the default configuration. You can change configuration templates with the -c flag.

List configuration templates

  hypergan new mymodel -l

See all configuration templates with --list-templates or -l.

Train

  hypergan train folder/ -s 32x32x3 -c mymodel --resize

API

import hypergan as hg

Note this API is currently under work in 1.0. If you are reading this before 1.0 is released check the examples.

See the gitbook documentation for more details.

Using a trained hypergan model

my_gan = hg.GAN('model.hypergan')
batch_sample = my_gan.sample()

Training a gan

gan = hg.GAN("default.json", inputs=hg.inputs.ImageLoader(...))
trainable_gan = hg.TrainableGAN(gan)
for step in trainable_gan.train():
    print("I'm on step ", step)

Examples

See the examples https://github.com/hypergan/HyperGAN/tree/master/examples

Tutorials

See the tutorials https://hypergan.gitbook.io/hypergan/tutorials

The pip package hypergan

pip install hypergan

Training

  # Train a 32x32 gan with batch size 32 on a folder of pngs
  hypergan train [folder] -s 32x32x3 -b 32 --config [name]

Sampling

  hypergan sample [folder] -s 32x32x3 -b 32 --config [name] --sampler batch_walk --save_samples

By default hypergan will not save training samples to disk. To change this, use --save_samples.

Additional Arguments

To see a detailed list, run

  hypergan -h

Running on CPU

You can switch the backend with:

  hypergan [...] -B cpu

Don't train on CPU! It's too slow.

Troubleshooting

Make sure that your cuda, nvidia drivers, pillow, pytorch, and pytorch vision are the latest version.

Check the discord for help.

Development mode

If you wish to modify hypergan

git clone https://github.com/hypergan/hypergan
cd hypergan
python3 setup.py develop

Make sure to pip3 uninstall hypergan to avoid version conflicts.

Datasets

To build a new network you need a dataset.

Creating a Dataset

Datasets in HyperGAN are meant to be simple to create. Just use a folder of images. Nested folders work too.

Cleaning up data

HyperGAN is built to be resilient to all types of unclean data. By default images are resized then cropped if necessary.

See --nocrop, --random_crop and --resize for additional image scaling options.

Features

A list of features in the 1.0 release:

  • API
  • CLI
  • Viewer - an electron app to explore and create models
  • Cross platform - Windows, OSX, Linux
  • Inference - Add AI content generation to your project
  • Training - Train custom models using accelerated parallel training backends
  • Sharing - Share built models with each other. Use them in python projects as hypergan models, or in any project as onxx models
  • Customizable - Define custom architectures in the json, or replace any component with your own pytorch creation
  • Data - Built to work on unclean data and multiple data types
  • Unsupervised learning
  • Unsupervised alignment - Align one distribution to another or discover new novel distributions.
  • Transfer learning
  • Online learning

Showcase

1.0 models are still training

Submit your showcase with a pull request!

For more, see the #showcase room in Discord

Sponsors

We are now accepting financial sponsors. Sponsor to (optionally) be listed here.

https://github.com/sponsors/hypergan

Contributing

Contributions are welcome and appreciated! We have many open issues in the Issues tab. Join the discord.

See how to contribute.

Versioning

HyperGAN uses semantic versioning. http://semver.org/

TLDR: x.y.z

  • x is incremented on stable public releases.
  • y is incremented on API breaking changes. This includes configuration file changes and graph construction changes.
  • z is incremented on non-API breaking changes. z changes will be able to reload a saved graph.

Citation

  HyperGAN Community
  HyperGAN, (2016-2020+), 
  GitHub repository, 
  https://github.com/HyperGAN/HyperGAN

HyperGAN comes with no warranty or support.

HyperGAN's Projects

hips icon hips

HyperGAN Improvement Proposals

hypergan icon hypergan

Composable GAN framework with api and user interface

imgclsmob icon imgclsmob

Sandbox for training convolutional networks for computer vision

vqgan-clip icon vqgan-clip

Just playing with getting VQGAN+CLIP running locally, rather than having to use colab.

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.