MMGeneration is a powerful toolkit for generative models, based on PyTorch and MMCV.

Overview

Documentation: https://mmgeneration.readthedocs.io/

Introduction

English | 简体中文

MMGeneration is a powerful toolkit for generative models, especially for GANs now. It is based on PyTorch and MMCV. The master branch works with PyTorch 1.5+.

Major Features

  • High-quality Training Performance: We currently support training on Unconditional GANs, Internal GANs, and Image Translation Models. Support for conditional models will come soon.
  • Powerful Application Toolkit: A plentiful toolkit containing multiple applications in GANs is provided to users. GAN interpolation, GAN projection, and GAN manipulations are integrated into our framework. It's time to play with your GANs! (Tutorial for applications)
  • Efficient Distributed Training for Generative Models: For the highly dynamic training in generative models, we adopt a new way to train dynamic models with MMDDP. (Tutorial for DDP)
  • New Modular Design for Flexible Combination: A new design for complex loss modules is proposed for customizing the links between modules, which can achieve flexible combination among different modules. (Tutorial for new modular design)
Training Visualization
GAN Interpolation
GAN Projector
GAN Manipulation

Highlight

  • Positional Encoding as Spatial Inductive Bias in GANs (CVPR2021) has been released in MMGeneration. [Config], [Project Page]

Changelog

v0.1.0 was released on 20/04/2021. Please refer to changelog.md for details and release history.

ModelZoo

These methods have been carefully studied and supported in our frameworks:

Unconditional GANs (click to collapse)
Image2Image Translation (click to collapse)
Internal Learing (click to collapse)

License

This project is released under the Apache 2.0 license. Some operations in MMGeneration are with other licenses instead of Apache2.0. Please refer to LICENSES.md for the careful check, if you are using our code for commercial matters.

Installation

Please refer to get_started.md for installation.

Getting Started

Please see get_started.md for the basic usage of MMGeneration. docs/quick_run.md can offer full guidance for quick run. For other details and tutorials, please go to our documentation.

Contributing

We appreciate all contributions to improve MMGeneration. Please refer to CONTRIBUTING.md in MMCV for more details about the contributing guideline.

Citation

If you find this project useful in your research, please consider cite:

@misc{2021mmgeneration,
    title={{MMGeneration}: OpenMMLab Generative Model Toolbox and Benchmark},
    author={MMGeneration Contributors},
    howpublished = {\url{https://github.com/open-mmlab/mmgeneration}},
    year={2021}
}

Projects in OpenMMLab

  • MMCV: OpenMMLab foundational library for computer vision.
  • MMClassification: OpenMMLab image classification toolbox and benchmark.
  • MMDetection: OpenMMLab detection toolbox and benchmark.
  • MMDetection3D: OpenMMLab's next-generation platform for general 3D object detection.
  • MMSegmentation: OpenMMLab semantic segmentation toolbox and benchmark.
  • MMAction2: OpenMMLab's next-generation action understanding toolbox and benchmark.
  • MMTracking: OpenMMLab video perception toolbox and benchmark.
  • MMPose: OpenMMLab pose estimation toolbox and benchmark.
  • MMEditing: OpenMMLab image and video editing toolbox.
  • MMOCR: A Comprehensive Toolbox for Text Detection, Recognition and Understanding.
  • MMGeneration: OpenMMLab's next-generation toolbox for generative models.
Comments
  • Fix s3 readme of 1.x branch

    Fix s3 readme of 1.x branch

    Thanks for your contribution and we appreciate it a lot. The following instructions would make your pull request more healthy and more easily get feedback. If you do not understand some items, don't worry, just make the pull request and seek help from maintainers.

    Motivation

    Please describe the motivation of this PR and the goal you want to achieve through this PR.

    Modification

    Please briefly describe what modification is made in this PR.

    Who can help? @ them here!

    BC-breaking (Optional)

    Does the modification introduce changes that break the backward-compatibility of the downstream repositories? If so, please describe how it breaks the compatibility and how the downstream projects should modify their code to keep compatibility with this PR.

    Use cases (Optional)

    If this PR introduces a new feature, it is better to list some use cases here, and update the documentation.

    Checklist

    Before PR:

    • [ ] I have read and followed the workflow indicated in the CONTRIBUTING.md to create this PR.
    • [ ] Pre-commit or linting tools indicated in CONTRIBUTING.md are used to fix the potential lint issues.
    • [ ] Bug fixes are covered by unit tests, the case that causes the bug should be added in the unit tests.
    • [ ] New functionalities are covered by complete unit tests. If not, please add more unit test to ensure the correctness.
    • [ ] The documentation has been modified accordingly, including docstring or example tutorials.

    After PR:

    • [ ] If the modification has potential influence on downstream or other related projects, this PR should be tested with some of those projects.
    • [ ] CLA has been signed and all committers have signed the CLA in this PR.
    opened by plyfager 0
  • Fix s3 readme dev-1.x

    Fix s3 readme dev-1.x

    Thanks for your contribution and we appreciate it a lot. The following instructions would make your pull request more healthy and more easily get feedback. If you do not understand some items, don't worry, just make the pull request and seek help from maintainers.

    Motivation

    Please describe the motivation of this PR and the goal you want to achieve through this PR.

    Modification

    Please briefly describe what modification is made in this PR.

    Who can help? @ them here!

    BC-breaking (Optional)

    Does the modification introduce changes that break the backward-compatibility of the downstream repositories? If so, please describe how it breaks the compatibility and how the downstream projects should modify their code to keep compatibility with this PR.

    Use cases (Optional)

    If this PR introduces a new feature, it is better to list some use cases here, and update the documentation.

    Checklist

    Before PR:

    • [ ] I have read and followed the workflow indicated in the CONTRIBUTING.md to create this PR.
    • [ ] Pre-commit or linting tools indicated in CONTRIBUTING.md are used to fix the potential lint issues.
    • [ ] Bug fixes are covered by unit tests, the case that causes the bug should be added in the unit tests.
    • [ ] New functionalities are covered by complete unit tests. If not, please add more unit test to ensure the correctness.
    • [ ] The documentation has been modified accordingly, including docstring or example tutorials.

    After PR:

    • [ ] If the modification has potential influence on downstream or other related projects, this PR should be tested with some of those projects.
    • [ ] CLA has been signed and all committers have signed the CLA in this PR.
    opened by plyfager 0
  • Fix s3 readme with refined metrics

    Fix s3 readme with refined metrics

    Thanks for your contribution and we appreciate it a lot. The following instructions would make your pull request more healthy and more easily get feedback. If you do not understand some items, don't worry, just make the pull request and seek help from maintainers.

    Motivation

    Please describe the motivation of this PR and the goal you want to achieve through this PR.

    Modification

    Please briefly describe what modification is made in this PR.

    Who can help? @ them here!

    BC-breaking (Optional)

    Does the modification introduce changes that break the backward-compatibility of the downstream repositories? If so, please describe how it breaks the compatibility and how the downstream projects should modify their code to keep compatibility with this PR.

    Use cases (Optional)

    If this PR introduces a new feature, it is better to list some use cases here, and update the documentation.

    Checklist

    Before PR:

    • [ ] I have read and followed the workflow indicated in the CONTRIBUTING.md to create this PR.
    • [ ] Pre-commit or linting tools indicated in CONTRIBUTING.md are used to fix the potential lint issues.
    • [ ] Bug fixes are covered by unit tests, the case that causes the bug should be added in the unit tests.
    • [ ] New functionalities are covered by complete unit tests. If not, please add more unit test to ensure the correctness.
    • [ ] The documentation has been modified accordingly, including docstring or example tutorials.

    After PR:

    • [ ] If the modification has potential influence on downstream or other related projects, this PR should be tested with some of those projects.
    • [ ] CLA has been signed and all committers have signed the CLA in this PR.
    opened by plyfager 0
  • Latent-Diffusion Models

    Latent-Diffusion Models

    Model/Dataset/Scheduler description

    Recent trends show that diffusion models, especially latent diffusion models, have been very successful for image/video generation tasks. While the current codebase supports IDDPM, I believe supporting LDM for tasks like unconditional image generation or even text-to-image generation would be very helpful for the openmmlab family.

    Open source status

    • [ ] The model implementation is available
    • [ ] The model weights are available.

    Provide useful links for the implementation

    https://github.com/CompVis/latent-diffusion

    opened by Adamdad 5
  • add colab page

    add colab page

    Thanks for your contribution and we appreciate it a lot. The following instructions would make your pull request more healthy and more easily get feedback. If you do not understand some items, don't worry, just make the pull request and seek help from maintainers.

    Motivation

    Please describe the motivation of this PR and the goal you want to achieve through this PR.

    Modification

    Please briefly describe what modification is made in this PR.

    Who can help? @ them here!

    BC-breaking (Optional)

    Does the modification introduce changes that break the backward-compatibility of the downstream repositories? If so, please describe how it breaks the compatibility and how the downstream projects should modify their code to keep compatibility with this PR.

    Use cases (Optional)

    If this PR introduces a new feature, it is better to list some use cases here, and update the documentation.

    Checklist

    Before PR:

    • [ ] I have read and followed the workflow indicated in the CONTRIBUTING.md to create this PR.
    • [ ] Pre-commit or linting tools indicated in CONTRIBUTING.md are used to fix the potential lint issues.
    • [ ] Bug fixes are covered by unit tests, the case that causes the bug should be added in the unit tests.
    • [ ] New functionalities are covered by complete unit tests. If not, please add more unit test to ensure the correctness.
    • [ ] The documentation has been modified accordingly, including docstring or example tutorials.

    After PR:

    • [ ] If the modification has potential influence on downstream or other related projects, this PR should be tested with some of those projects.
    • [ ] CLA has been signed and all committers have signed the CLA in this PR.
    opened by plyfager 0
Releases(v0.7.2)
  • v0.7.2(Sep 14, 2022)

    Improvements

    • [Docs] Fix typos in docs. by @RangeKing in https://github.com/open-mmlab/mmgeneration/pull/425
    • [Docs] Add doc for StyleGAN-Ada by @plyfager in https://github.com/open-mmlab/mmgeneration/pull/391
    • [Fix] Update MMCV_MAX to 1.7 by @LeoXing1996 in https://github.com/open-mmlab/mmgeneration/pull/436
    • [CI] update github workflow, circleci and github templates by @LeoXing1996 in https://github.com/open-mmlab/mmgeneration/pull/431

    New Contributors

    • @RangeKing made their first contribution in https://github.com/open-mmlab/mmgeneration/pull/425
    Source code(tar.gz)
    Source code(zip)
  • v1.0.0rc0(Sep 1, 2022)

    MMGeneration 1.0.0rc0 is the first version of MMGeneration 1.x, a part of the OpenMMLab 2.0 projects.

    Built upon the new training engine, MMGeneration 1.x unifies the interfaces of dataset, models, evaluation, and visualization.

    And there are some BC-breaking changes. Please check the migration tutorial for more details.

    Source code(tar.gz)
    Source code(zip)
  • v0.7.1(Apr 30, 2022)

    Fix bugs and Improvements

    • Support train_dataloader, val_dataloader and test_dataloader settings (#281)
    • Fix ada typo (#283)
    • Add chinese application tutorial (#284)
    • Add chinese document of ddp training (#286)

    Contributors

    @plyfager @LeoXing1996

    Source code(tar.gz)
    Source code(zip)
  • v0.7.0(Apr 2, 2022)

    Highlights

    • Support training of StyleGANv3 (#275, #277)
    • Support adaptive discriminator augmentation (#276)

    New Features

    • Support passing training arguments in static unconditional gan (#275)
    • Support dynamic EMA, now you can define momentum updating policy (#261)
    • Add multi machine distribute train (#267)

    Fix bugs and Improvements

    • Add brief installation steps in README (#270)
    • Support random seed for distributed sampler (#271)
    • Use hyphen for command line args in apps (#273)

    Contributors

    @plyfager @LeoXing1996

    Source code(tar.gz)
    Source code(zip)
  • v0.6.0(Mar 7, 2022)

    Highlights

    • Support StyleGANv3 (#247, #253, #258)
    • Support StyleCLIP (#236)

    New Features

    • Support training on CPU (#238)
    • Speed up training (#231)

    Fix bugs and Improvements

    • Fix bug in non-distributed training/testing (#239)
    • Fix typos and invalid links (#221, #226, #228, #244, #249)
    • Add part of Chinese documentation (#250, #257)

    Contributors

    @plyfager @LeoXing1996 @gvalvano @JimHeo @plutoyuxie

    Source code(tar.gz)
    Source code(zip)
  • v0.5.0(Jan 12, 2022)

    Highlights

    • Support BigGAN style's Spectral Norm and update BigGAN with best FID and IS (#159)
    • Support import projected latent and export video in interpolation (#167)
    • Support Improved-DDPM model (#205)

    New Features

    • Support evaluation in distributed mode (#151)
    • Support presistent_work in validation dataloader (#179)
    • Support dockerfile (#200)
    • Support mim (#176)

    Fix bugs and Improvements

    • Fix bug in SinGAN dataset (#192)
    • Fix SAGAN, SNGAN and BigGAN's default sn_style (#199, #213, #215, #217)

    Contributors

    @plyfager @LeoXing1996 @nbei @TommyZihao @JiangongWang

    Source code(tar.gz)
    Source code(zip)
  • v0.4.0(Nov 3, 2021)

    Highlights

    • Add more experiments for conditional GANs: SNGAN, SAGAN, and BigGAN
    • Refact Translation Model (#88, #126, #127, #145)

    New Features

    • Use PyTorch Sphinx theme #123
    • Support torchserve for unconditional models #131

    Fix bugs and Improvements

    • Add CI for python3.9 #110
    • Add support for PyTorch1.9 #115
    • Add pre-commit hook for spell checking #135

    Contributors

    @plyfager , @LeoXing1996 , @ckkelvinchan , @nbei

    Source code(tar.gz)
    Source code(zip)
  • v0.3.0(Aug 2, 2021)

    Highlights

    • Support conditional GANs: Projection GAN, SNGAN, SAGAN, and BigGAN

    New Features

    • Add support for persistent_workers in PyTorch >= 1.7.0 #71
    • Support warm-up for EMA #55

    Fix bugs and Improvements

    • Fix failing to build docs #64
    • Revise the logic of num_classes in basic conditional gan #69
    • Support dynamic eval internal in eval hook #73
    Source code(tar.gz)
    Source code(zip)
  • v0.2.0(May 30, 2021)

    Highlights

    • Support new methods: LSGAN, GGAN.
    • Support mixed-precision training (FP16): official PyTorch Implementation and APEX (#11, #20)

    New Features

    • Add the experiment of MNIST in DCGAN (#24)
    • Add support for uploading checkpoints to Ceph system (cloud server) (#27)
    • Add the functionality of saving the best checkpoint in GenerativeEvalHook (#21)

    Fix bugs and Improvements

    • Fix loss of sample-cfg argument (#13)
    • Add pbar to offline eval and fix bug in grayscale image evaluation/saving (#23)
    • Fix error when data_root option in val_cfg or test_cfg are set as None (#28)
    • Change latex in quick_run.md to svg url and fix number of checkpoints in modelzoo_statistics.md (#34)
    Source code(tar.gz)
    Source code(zip)
  • v0.1.0(Apr 23, 2021)

    Highlights

    • MMGeneration v0.1.0 is released.

    Main Features

    • High-quality Training Performance: We currently support training on Unconditional GANs(DCGAN, WGAN-GP,PGGAN, StyleGANV1, StyleGANV2, Positional Encoding in GANs), Internal GANs(SinGAN), and Image Translation Models(Pix2Pix, CycleGAN). Support for conditional models will come soon.
    • Powerful Application Toolkit: A plentiful toolkit containing multiple applications in GANs is provided to users. GAN interpolation, GAN projection, and GAN manipulations are integrated into our framework. It's time to play with your GANs!
    • Efficient Distributed Training for Generative Models: For the highly dynamic training in generative models, we adopt a new way to train dynamic models with MMDDP.
    • New Modular Design for Flexible Combination: A new design for complex loss modules is proposed for customizing the links between modules, which can achieve flexible combinations among different modules.
    Source code(tar.gz)
    Source code(zip)
Owner
OpenMMLab
OpenMMLab
PyElastica is the Python implementation of Elastica, an open-source software for the simulation of assemblies of slender, one-dimensional structures using Cosserat Rod theory.

PyElastica PyElastica is the python implementation of Elastica: an open-source project for simulating assemblies of slender, one-dimensional structure

Gazzola Lab 105 Jan 09, 2023
AugLy is a data augmentations library that currently supports four modalities (audio, image, text & video) and over 100 augmentations

AugLy is a data augmentations library that currently supports four modalities (audio, image, text & video) and over 100 augmentations. Each modality’s augmentations are contained within its own sub-l

Facebook Research 4.6k Jan 09, 2023
FIRM-AFL is the first high-throughput greybox fuzzer for IoT firmware.

FIRM-AFL FIRM-AFL is the first high-throughput greybox fuzzer for IoT firmware. FIRM-AFL addresses two fundamental problems in IoT fuzzing. First, it

356 Dec 23, 2022
Text-to-Image generation

Generate vivid Images for Any (Chinese) text CogView is a pretrained (4B-param) transformer for text-to-image generation in general domain. Read our p

THUDM 1.3k Dec 29, 2022
Lightweight, Portable, Flexible Distributed/Mobile Deep Learning with Dynamic, Mutation-aware Dataflow Dep Scheduler; for Python, R, Julia, Scala, Go, Javascript and more

Apache MXNet (incubating) for Deep Learning Apache MXNet is a deep learning framework designed for both efficiency and flexibility. It allows you to m

The Apache Software Foundation 20.2k Jan 05, 2023
Non-Vacuous Generalisation Bounds for Shallow Neural Networks

This package requires jax, tensorflow, and numpy. Either tensorflow or scikit-learn can be used for loading data. To run in a nix-shell with required

Felix Biggs 0 Feb 04, 2022
The official code repo of "HTS-AT: A Hierarchical Token-Semantic Audio Transformer for Sound Classification and Detection"

Hierarchical Token Semantic Audio Transformer Introduction The Code Repository for "HTS-AT: A Hierarchical Token-Semantic Audio Transformer for Sound

Knut(Ke) Chen 134 Jan 01, 2023
Code for AutoNL on ImageNet (CVPR2020)

Neural Architecture Search for Lightweight Non-Local Networks This repository contains the code for CVPR 2020 paper Neural Architecture Search for Lig

Yingwei Li 104 Aug 31, 2022
Exploiting Robust Unsupervised Video Person Re-identification

Exploiting Robust Unsupervised Video Person Re-identification Implementation of the proposed uPMnet. For the preprint, please refer to [Arxiv]. Gettin

1 Apr 09, 2022
Deep Learning for humans

Keras: Deep Learning for Python Under Construction In the near future, this repository will be used once again for developing the Keras codebase. For

Keras 57k Jan 09, 2023
A collection of Jupyter notebooks to play with NVIDIA's StyleGAN3 and OpenAI's CLIP for a text-based guided image generation.

StyleGAN3 CLIP-based guidance StyleGAN3 + CLIP StyleGAN3 + inversion + CLIP This repo is a collection of Jupyter notebooks made to easily play with St

Eugenio Herrera 176 Dec 30, 2022
Spatially-Adaptive Pixelwise Networks for Fast Image Translation, CVPR 2021

Image Translation with ASAPNets Spatially-Adaptive Pixelwise Networks for Fast Image Translation, CVPR 2021 Webpage | Paper | Video Installation insta

Tamar Rott Shaham 100 Dec 28, 2022
Orbivator AI - To Determine which features of data (measurements) are most important for diagnosing breast cancer and find out if breast cancer occurs or not.

Orbivator_AI Breast Cancer Wisconsin (Diagnostic) GOAL To Determine which features of data (measurements) are most important for diagnosing breast can

anurag kumar singh 1 Jan 02, 2022
[ICCV'21] UNISURF: Unifying Neural Implicit Surfaces and Radiance Fields for Multi-View Reconstruction

UNISURF: Unifying Neural Implicit Surfaces and Radiance Fields for Multi-View Reconstruction Project Page | Paper | Supplementary | Video This reposit

331 Dec 28, 2022
Code and data form the paper BERT Got a Date: Introducing Transformers to Temporal Tagging

BERT Got a Date: Introducing Transformers to Temporal Tagging Satya Almasian*, Dennis Aumiller*, and Michael Gertz Heidelberg University Contact us vi

54 Dec 04, 2022
PyTorch and GPyTorch implementation of the paper "Conditioning Sparse Variational Gaussian Processes for Online Decision-making."

Conditioning Sparse Variational Gaussian Processes for Online Decision-making This repository contains a PyTorch and GPyTorch implementation of the pa

Wesley Maddox 16 Dec 08, 2022
Official Python implementation of the FuzionCoin protocol

PyFuzc Official Python implementation of the FuzionCoin protocol WARNING: Under construction. Use at your own risk. Some functions may not work. Setup

FuzionCoin 3 Jul 07, 2022
Deep Reinforcement Learning based autonomous navigation for quadcopters using PPO algorithm.

PPO-based Autonomous Navigation for Quadcopters This repository contains an implementation of Proximal Policy Optimization (PPO) for autonomous naviga

Bilal Kabas 16 Nov 11, 2022
Code for paper: "Spinning Language Models for Propaganda-As-A-Service"

Spinning Language Models for Propaganda-As-A-Service This is the source code for the Arxiv version of the paper. You can use this Google Colab to expl

Eugene Bagdasaryan 16 Jan 03, 2023
Level Based Customer Segmentation

level_based_customer_segmentation Level Based Customer Segmentation Persona Veri Seti kullanılarak müşteri segmentasyonu yapılmıştır. KOLONLAR : PRICE

Buse Yıldırım 6 Dec 21, 2021