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
Advbox is a toolbox to generate adversarial examples that fool neural networks in PaddlePaddle、PyTorch、Caffe2、MxNet、Keras、TensorFlow and Advbox can benchmark the robustness of machine learning models.

Advbox is a toolbox to generate adversarial examples that fool neural networks in PaddlePaddle、PyTorch、Caffe2、MxNet、Keras、TensorFlow and Advbox can benchmark the robustness of machine learning models

AdvBox 1.3k Dec 25, 2022
Deep Learning Slide Captcha

滑动验证码深度学习识别 本项目使用深度学习 YOLOV3 模型来识别滑动验证码缺口,基于 https://github.com/eriklindernoren/PyTorch-YOLOv3 修改。 只需要几百张缺口标注图片即可训练出精度高的识别模型,识别效果样例: 克隆项目 运行命令: git cl

Python3WebSpider 55 Jan 02, 2023
Code for the paper: Sketch Your Own GAN

Sketch Your Own GAN Project | Paper | Youtube Our method takes in one or a few hand-drawn sketches and customizes an off-the-shelf GAN to match the in

677 Dec 28, 2022
Weakly Supervised Learning of Rigid 3D Scene Flow

Weakly Supervised Learning of Rigid 3D Scene Flow This repository provides code and data to train and evaluate a weakly supervised method for rigid 3D

Zan Gojcic 124 Dec 27, 2022
🤖 Project template for your next awesome AI project. 🦾

🤖 AI Awesome Project Template 👋 Template author You may want to adjust badge links in a README.md file. 💎 Installation with pip Installation is as

Wiktor Łazarski 18 Nov 23, 2022
Source code for our Paper "Learning in High-Dimensional Feature Spaces Using ANOVA-Based Matrix-Vector Multiplication"

NFFT4ANOVA Source code for our Paper "Learning in High-Dimensional Feature Spaces Using ANOVA-Based Matrix-Vector Multiplication" This package uses th

Theresa Wagner 1 Aug 10, 2022
Deep Learning: Architectures & Methods Project: Deep Learning for Audio Super-Resolution

Deep Learning: Architectures & Methods Project: Deep Learning for Audio Super-Resolution Figure: Example visualization of the method and baseline as a

Oliver Hahn 16 Dec 23, 2022
PyTorch reimplementation of Diffusion Models

PyTorch pretrained Diffusion Models A PyTorch reimplementation of Denoising Diffusion Probabilistic Models with checkpoints converted from the author'

Patrick Esser 265 Jan 01, 2023
GenshinMapAutoMarkTools - Tools To add/delete/refresh resources mark in Genshin Impact Map

使用说明 适配 windows7以上 64位 原神1920x1080窗口(其他分辨率后续适配) 待更新渊下宫 English version is to be

Zero_Circle 209 Dec 28, 2022
Create time-series datacubes for supervised machine learning with ICEYE SAR images.

ICEcube is a Python library intended to help organize SAR images and annotations for supervised machine learning applications. The library generates m

ICEYE Ltd 65 Jan 03, 2023
A generalist algorithm for cell and nucleus segmentation.

Cellpose | A generalist algorithm for cell and nucleus segmentation. Cellpose was written by Carsen Stringer and Marius Pachitariu. To learn about Cel

MouseLand 733 Dec 29, 2022
Ros2-voiceroid2 - ROS2 wrapper package of VOICEROID2

ros2_voiceroid2 ROS2 wrapper package of VOICEROID2 Windows Only Installation Ins

Nkyoku 1 Jan 23, 2022
SatelliteNeRF - PyTorch-based Neural Radiance Fields adapted to satellite domain

SatelliteNeRF PyTorch-based Neural Radiance Fields adapted to satellite domain.

Kai Zhang 46 Nov 20, 2022
Torch code for our CVPR 2018 paper "Residual Dense Network for Image Super-Resolution" (Spotlight)

Residual Dense Network for Image Super-Resolution This repository is for RDN introduced in the following paper Yulun Zhang, Yapeng Tian, Yu Kong, Bine

Yulun Zhang 494 Dec 30, 2022
Tweesent-back - Tweesent backend uses fastAPI as the web framework

TweeSent Backend Tweesent backend. This repo uses fastAPI as the web framework.

0 Mar 26, 2022
Array Camera Ptychography

Array Camera Ptychography This repository provides the code for the following papers: Schulz, Timothy J., David J. Brady, and Chengyu Wang. "Photon-li

Brady lab in Optical Sciences 1 Nov 15, 2021
[arXiv22] Disentangled Representation Learning for Text-Video Retrieval

Disentangled Representation Learning for Text-Video Retrieval This is a PyTorch implementation of the paper Disentangled Representation Learning for T

Qiang Wang 49 Dec 18, 2022
Implementation of "Selection via Proxy: Efficient Data Selection for Deep Learning" from ICLR 2020.

Selection via Proxy: Efficient Data Selection for Deep Learning This repository contains a refactored implementation of "Selection via Proxy: Efficien

Stanford Future Data Systems 70 Nov 16, 2022
pytorch, hand(object) detect ,yolo v5,手检测

YOLO V5 物体检测,包括手部检测。 项目介绍 手部检测 手部检测示例如下 : 视频示例: 项目配置 作者开发环境: Python 3.7 PyTorch = 1.5.1 数据集 手部检测数据集 该项目数据集采用 TV-Hand 和 COCO-Hand (COCO-Hand-Big 部分) 进

Eric.Lee 11 Dec 20, 2022