Skip to main content

OpenMMLab Image and Video Editing Toolbox and Benchmark

Project description

English | 简体中文

Introduction

MMEditing is an open-source image and video editing toolbox based on PyTorch. It is a part of the OpenMMLab project. Currently, MMEditing supports:

The master branch works with PyTorch 1.5+.

Some Demos:

https://user-images.githubusercontent.com/12756472/175944645-cabe8c2b-9f25-440b-91cc-cdac4e752c5a.mp4

https://user-images.githubusercontent.com/12756472/158972813-d8d0f19c-f49c-4618-9967-52652726ef19.mp4

Major features
  • Modular design

    We decompose the editing framework into different components and one can easily construct a customized editor framework by combining different modules.

  • Support of multiple tasks in editing

    The toolbox directly supports popular and contemporary inpainting, matting, super-resolution and generation tasks.

  • State of the art

    The toolbox provides state-of-the-art methods in inpainting/matting/super-resolution/generation.

Note that MMSR has been merged into this repo, as a part of MMEditing. With elaborate designs of the new framework and careful implementations, hope MMEditing could provide better experience.

What's New

MMEditing maintains both master and 1.x branches. See more details in Branch Maintenance Plan.

💎 Stable version

0.16.1 was released in 24/02/2023:

  • Support FID and KID metrics.
  • Support groups parameter in ResidualBlockNoBN.
  • Fix RealESRGAN test dataset.
  • Fix dynamic exportable ONNX of pixel-unshuffle.

Please refer to changelog.md for details and release history.

🌟 Preview of 1.x version

A brand new version of MMEditing v1.0.0rc6 was released in 24/02/2023:

  • Support all the tasks, models, metrics, and losses in MMGeneration 😍。
  • Unifies interfaces of all components based on MMEngine.
  • Refactored and more flexible architecture.
  • Support well-known text-to-image method Stable Diffusion!
  • Support a new text-to-image algorithm GLIDE!
  • Support Text2Image Task! Disco-Diffusion!
  • Support 3D-aware Generation Task! EG3D!
  • Support an efficient image restoration algorithm Restormer!
  • Support swin based image restoration algorithm SwinIR!
  • Support Image Colorization.
  • Projects is opened for the community to add projects to MMEditing.
  • Support High-level apis and inferencer.
  • Support Gradio gui of Inpainting inference.
  • Support patch-based and slider-based image and video comparison viewer.

Find more new features in 1.x branch. Issues and PRs are welcome!

Installation

MMEditing depends on PyTorch and MMCV. Below are quick steps for installation.

Step 1. Install PyTorch following official instructions.

Step 2. Install MMCV with MIM.

pip3 install openmim
mim install mmcv-full

Step 3. Install MMEditing from source.

git clone https://github.com/open-mmlab/mmediting.git
cd mmediting
pip3 install -e .

Please refer to install.md for more detailed instruction.

Getting Started

Please see getting_started.md and demo.md for the basic usage of MMEditing.

Model Zoo

Supported algorithms:

Inpainting
Matting
Image-Super-Resolution
Video-Super-Resolution
Generation
Video Interpolation

Please refer to model_zoo for more details.

Contributing

We appreciate all contributions to improve MMEditing. Please refer to our contributing guidelines.

Acknowledgement

MMEditing is an open source project that is contributed by researchers and engineers from various colleges and companies. We appreciate all the contributors who implement their methods or add new features, as well as users who give valuable feedbacks. We wish that the toolbox and benchmark could serve the growing research community by providing a flexible toolkit to reimplement existing methods and develop their own new methods.

Branch Maintenance Plan

MMEditing currently has two branches, the master and 1.x branches, which go through the following three phases.

Phase Time Branch description
RC Period 2022/9/1 - 2022.12.31 Release candidate code (1.x version) will be released on 1.x branch. Default master branch is still 0.x version Master and 1.x branches iterate normally
Compatibility Period 2023/1/1 - 2023.12.31 Default master branch will be switched to 1.x branch, and 0.x branch will correspond to 0.x version We still maintain the old version 0.x, respond to user needs, but try not to introduce changes that break compatibility; master branch iterates normally
Maintenance Period From 2024/1/1 Default master branch corresponds to 1.x version and 0.x branch is 0.x version 0.x branch is in maintenance phase, no more new feature support; master branch is iterating normally

Citation

If MMEditing is helpful to your research, please cite it as below.

@misc{mmediting2022,
    title = {{MMEditing}: {OpenMMLab} Image and Video Editing Toolbox},
    author = {{MMEditing Contributors}},
    howpublished = {\url{https://github.com/open-mmlab/mmediting}},
    year = {2022}
}

License

This project is released under the Apache 2.0 license.

Projects in OpenMMLab

  • MMEngine: OpenMMLab foundational library for training deep learning models.
  • MMCV: OpenMMLab foundational library for computer vision.
  • MMEval: A unified evaluation library for multiple machine learning libraries.
  • MIM: MIM installs OpenMMLab packages.
  • MMClassification: OpenMMLab image classification toolbox and benchmark.
  • MMDetection: OpenMMLab detection toolbox and benchmark.
  • MMDetection3D: OpenMMLab's next-generation platform for general 3D object detection.
  • MMRotate: OpenMMLab rotated object detection toolbox and benchmark.
  • MMSegmentation: OpenMMLab semantic segmentation toolbox and benchmark.
  • MMOCR: OpenMMLab text detection, recognition, and understanding toolbox.
  • MMPose: OpenMMLab pose estimation toolbox and benchmark.
  • MMHuman3D: OpenMMLab 3D human parametric model toolbox and benchmark.
  • MMSelfSup: OpenMMLab self-supervised learning toolbox and benchmark.
  • MMRazor: OpenMMLab model compression toolbox and benchmark.
  • MMFewShot: OpenMMLab fewshot learning toolbox and benchmark.
  • MMAction2: OpenMMLab's next-generation action understanding toolbox and benchmark.
  • MMTracking: OpenMMLab video perception toolbox and benchmark.
  • MMFlow: OpenMMLab optical flow toolbox and benchmark.
  • MMEditing: OpenMMLab image and video editing toolbox.
  • MMGeneration: OpenMMLab image and video generative models toolbox.
  • MMDeploy: OpenMMLab model deployment framework.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

mmedit-0.16.1.tar.gz (305.7 kB view details)

Uploaded Source

Built Distribution

mmedit-0.16.1-py2.py3-none-any.whl (606.8 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file mmedit-0.16.1.tar.gz.

File metadata

  • Download URL: mmedit-0.16.1.tar.gz
  • Upload date:
  • Size: 305.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.7.15

File hashes

Hashes for mmedit-0.16.1.tar.gz
Algorithm Hash digest
SHA256 04d86e0a23089f75b95e523b202c74471efead26d911958917f880810c5432b3
MD5 5436d0f71c12fb0809a64fd0fe0750b2
BLAKE2b-256 6fccf0621c33eeb53d6a3bfe1774f3cdf81d80df2a349dcc3c8dbc3d9f187191

See more details on using hashes here.

File details

Details for the file mmedit-0.16.1-py2.py3-none-any.whl.

File metadata

  • Download URL: mmedit-0.16.1-py2.py3-none-any.whl
  • Upload date:
  • Size: 606.8 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.7.15

File hashes

Hashes for mmedit-0.16.1-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 ab3ef35415dd538df8359b7e0dfa5fa612a5d452df641a3853f463bf2872725c
MD5 774a86194367bcbf0d3f6f242593fe4a
BLAKE2b-256 a8b7a73760c27f04630239bdeceebe62e0dcbedd27178c636bdc9bbdb0db5fe6

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page