# Models [English](Models.md) **|** [简体中文](BasicSR_docs_CN.md) #### Contents 1. [Supported Models](#Supported-Models) 1. [Inheritance Relationship](#Inheritance-Relationship) ## Supported Models | Class | Description |Supported Algorithms | | :------------- | :----------:| :----------: | | [BaseModel](../basicsr/models/base_model.py) | Abstract base class, define common functions|| | [SRModel](../basicsr/models/sr_model.py) | Base image SR class | SRCNN, EDSR, SRResNet, RCAN, RRDBNet, etc | | [SRGANModel](../basicsr/models/srgan_model.py) | SRGAN image SR class | SRGAN | | [ESRGANModel](../basicsr/models/esrgan_model.py) | ESRGAN image SR class|ESRGAN| | [VideoBaseModel](../basicsr/models/video_base_model.py) | Base video SR class | | | [EDVRModel](../basicsr/models/edvr_model.py) | EDVR video SR class |EDVR| | [StyleGAN2Model](../basicsr/models/stylegan2_model.py) | StyleGAN2 generation class |StyleGAN2| ## Inheritance Relationship In order to reuse components among models, we use a lot of inheritance. The following is the inheritance relationship: ```txt BaseModel ├── SRModel │ ├── SRGANModel │ │ └── ESRGANModel │ └── VideoBaseModel │ ├── VideoGANModel │ └── EDVRModel └── StyleGAN2Model ```