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
[NeurIPS 2021] "Drawing Robust Scratch Tickets: Subnetworks with Inborn Robustness Are Found within Randomly Initialized Networks" by Yonggan Fu, Qixuan Yu, Yang Zhang, Shang Wu, Xu Ouyang, David Cox, Yingyan Lin

Drawing Robust Scratch Tickets: Subnetworks with Inborn Robustness Are Found within Randomly Initialized Networks Yonggan Fu, Qixuan Yu, Yang Zhang, S

12 Dec 11, 2022
IDA file loader for UF2, created for the DEFCON 29 hardware badge

UF2 Loader for IDA The DEFCON 29 badge uses the UF2 bootloader, which conveniently allows you to dump and flash the firmware over USB as a mass storag

Kevin Colley 6 Feb 08, 2022
CLIP (Contrastive Language–Image Pre-training) for Italian

Italian CLIP CLIP (Radford et al., 2021) is a multimodal model that can learn to represent images and text jointly in the same space. In this project,

Italian CLIP 114 Dec 29, 2022
pytorch implementation of trDesign

trdesign-pytorch This repository is a PyTorch implementation of the trDesign paper based on the official TensorFlow implementation. The initial port o

Learn Ventures Inc. 41 Dec 29, 2022
Gapmm2: gapped alignment using minimap2 (align transcripts to genome)

gapmm2: gapped alignment using minimap2 This tool is a wrapper for minimap2 to r

Jon Palmer 2 Jan 27, 2022
Learning To Have An Ear For Face Super-Resolution

Learning To Have An Ear For Face Super-Resolution [Project Page] This repository contains demo code of our CVPR2020 paper. Training and evaluation on

50 Nov 16, 2022
GNN-based Recommendation Benchma

GRecX A Fair Benchmark for GNN-based Recommendation Preliminary Comparison DiffNet-Yelp dataset (featureless) Algo 73 Oct 17, 2022

Computer vision - fun segmentation experience using classic and deep tools :)

Computer_Vision_Segmentation_Fun Segmentation of Images and Video. Tools: pytorch Models: Classic model - GrabCut Deep model - Deeplabv3_resnet101 Flo

Mor Ventura 1 Dec 18, 2021
General Vision Benchmark, a project from OpenGVLab

Introduction We build GV-B(General Vision Benchmark) on Classification, Detection, Segmentation and Depth Estimation including 26 datasets for model e

174 Dec 27, 2022
A Simple Framwork for CV Pre-training Model (SOCO, VirTex, BEiT)

A Simple Framwork for CV Pre-training Model (SOCO, VirTex, BEiT)

Sense-GVT 14 Jul 07, 2022
LightNet++: Boosted Light-weighted Networks for Real-time Semantic Segmentation

LightNet++ !!!New Repo.!!! ⇒ EfficientNet.PyTorch: Concise, Modular, Human-friendly PyTorch implementation of EfficientNet with Pre-trained Weights !!

linksense 237 Jan 05, 2023
Providing the solutions for high-frequency trading (HFT) strategies using data science approaches (Machine Learning) on Full Orderbook Tick Data.

Modeling High-Frequency Limit Order Book Dynamics Using Machine Learning Framework to capture the dynamics of high-frequency limit order books. Overvi

Chang-Shu Chung 1.3k Jan 07, 2023
Code for "Localization with Sampling-Argmax", NeurIPS 2021

Localization with Sampling-Argmax [Paper] [arXiv] [Project Page] Localization with Sampling-Argmax Jiefeng Li, Tong Chen, Ruiqi Shi, Yujing Lou, Yong-

JeffLi 71 Dec 17, 2022
Implementation of "Distribution Alignment: A Unified Framework for Long-tail Visual Recognition"(CVPR 2021)

Implementation of "Distribution Alignment: A Unified Framework for Long-tail Visual Recognition"(CVPR 2021)

105 Nov 07, 2022
Applying CLIP to Point Cloud Recognition.

PointCLIP: Point Cloud Understanding by CLIP This repository is an official implementation of the paper 'PointCLIP: Point Cloud Understanding by CLIP'

Renrui Zhang 175 Dec 24, 2022
Unofficial keras(tensorflow) implementation of MAE model from Masked Autoencoders Are Scalable Vision Learners

MAE-keras Unofficial keras(tensorflow) implementation of MAE model described in 'Masked Autoencoders Are Scalable Vision Learners'. This work has been

Yewon 11 Jun 12, 2022
Classifying cat and dog images using Kaggle dataset

PyTorch Image Classification Classifies an image as containing either a dog or a cat (using Kaggle's public dataset), but could easily be extended to

Robert Coleman 74 Nov 22, 2022
Multi Agent Reinforcement Learning for ROS in 2D Simulation Environments

IROS21 information To test the code and reproduce the experiments, follow the installation steps in Installation.md. Afterwards, follow the steps in E

11 Oct 29, 2022
A Domain-Agnostic Benchmark for Self-Supervised Learning

DABS: A Domain Agnostic Benchmark for Self-Supervised Learning This repository contains the code for DABS, a benchmark for domain-agnostic self-superv

Alex Tamkin 81 Dec 09, 2022
TensorFlow-based implementation of "ICNet for Real-Time Semantic Segmentation on High-Resolution Images".

ICNet_tensorflow This repo provides a TensorFlow-based implementation of paper "ICNet for Real-Time Semantic Segmentation on High-Resolution Images,"

HsuanKung Yang 406 Nov 27, 2022