From 5e0afb9ab7a101986b641ec5a6fcd1cff09c0ce4 Mon Sep 17 00:00:00 2001 From: LeoXing1996 Date: Thu, 10 Nov 2022 15:55:14 +0800 Subject: [PATCH] Bump to 1.0.0rc3. (#1425) * [Improve] add a version option in docs menu (#1162) * update docs menu * update docs/datasets * [Enhance] update dev_scripts for link checking (#1164) update dev_scripts for link checking * [Refactoring] decompose the implementations of different metrics into several files (#1161) * refactor metrics * add UT for refactored metrics * [Fix] Fix PPL bug (#1172) fix ppl bug * [Fix] Fix some known bugs. (#1200) * fix bug in ceph config generation * fix download error in io_utils * trigger CI * [Fix] Benchmark related bugs (#1236) * fix benchmark url and related stuff * fix lint * [Enhancement] Support rerun failed or canceled jobs in `train_benchmark.py` (#1259) * trigger CI * fix cache dir in job watcher * support rerun failure or canceled jobs in train benchmark * add use case and readme for rerun * avoid trigger circle CI pr-stage-test when .dev_script is modified * support change cpus-per-task in train benchmark * [Fix] Fix bugs in `sr test config`, `realbasicvsr config` and `pconv config` (#1167) * fix pconv bug * fix realbasicvsr * fix sisr test config * [Fix] fix test of Vid4 datasets bug (#1293) * [Fix] fix test of Vid4 datasets bug * Update tof_x4_official_vimeo90k.py * Update tdan_x4_1xb16-lr1e-4-400k_vimeo90k-bd.py * Update tdan_test_config.py * [Feature] Support multi-metrics with different sample-model (#1171) support multi-metrics with different sample-model * [Fix] fix GenerateSegmentIndices ut (#1302) * [Enhancement] Reduce the randomness in unit test of `stylegan3_utils.py` (#1306) make s3-utils unit test more robustic * [CI] Fix GitHub windows CI (#1320) * add 'python -m' to windows' workflow * [Fix] fix basicvsr++ mirror sequence bug (#1304) * [Fix] fix sisr-test psnr config (#1319) * [Fix] fix vsr models pytorch2onnx (#1300) * [Bug] Ensure the output type of `GenerateFacialHeatmap` is `np.float32` (#1310) * trigger CI * ensure output of GenerateFacialHeatmap is float32 * [Bug] Fix sampling behavior of `unpaired_dataset.py` and urls in cyclegan's README (#1308) * trigger CI * fix download url in cyclegan readme * fix bug in unpaired dataset * support evaluate multi metrics in one configs for cyclegan models * [README] Fix TTSR's README (#1325) fix TTSR's README * [CI] Update `paths-ignore` for GitHub CI (#1327) update paths-ignore for GitHub CI * [Bug] Save gt images in PGGAN's `forward` (#1328) * save gt image to data samples in forward * add ut to ensure gt img is saved * [Bug] Correct RDN number of channels (#1332) * [Bug] Revise flip transformation in some conditional gan's setting (#1331) revise flip transformation in some conditional gan's setting * [Unit Test] Fix unit test of SNR (#1335) fix unit test of SNR * [Bug] Revise flavr config (#1336) revise flavr config * [Fix] fix realesrgan ema (#1341) * [Fix] fix realesrgan ema * fix * fix ut * fix config * fix ut * [Fix] Fix bugs find during benchmark running (#1348) * fix stylegan1 register name, add fid metric mapping * fix lint * [Fix] fix liif test config (#1353) * [Enhancement] Complete save_best in configs (#1349) complete save_best in generative models and glean * [Config] Revise discriminator's learning rate of TTSR to align with 0.x version (#1352) align ttsr-gan's disc lr with 0.x version (1e-4 -> 1e-5) * [Fix] fix edsr configs (#1367) fix edsr * [Enhancement] Add pixel value clip in visualizer (#1365) add pixel value clip in visualizer * [Bug] Fix randomness in FixedCrop + add L1 loss in Pix2Pix (#1364) * fix randomness in FixedCrop + add L1 loss in Pix2Pix * add deterministic training for p2p * [Fix] fix realbasicvsr config (#1358) * [Enhancement] Fix PESinGAN-inter-pad setting + add SinGAN Dataset + add SinGAN demo (#1363) * add singan dataset * adopt singan config with PackEditInputs * revise forward logic of SinGANMSGeneratorPE * fix ema-related logic of SinGAN * add singan demo * add unit test for pe-singan * add unit test for singan-ema and revise singan * [Fix] fix types of exceptions in demos (#1372) fix types of exceptions in demos * [Enhancement] Support deterministic training in benchmark (#1356) * support deterministic training in benchmark * add kill-on-bad-exit to benchmark * [Fix] Avoid cast int and float in GenDataPreprocessor (#1385) avoid cast int and float in GenDataPreprocessor * [Config] Update metric config in ggan (#1386) * update metric config in ggan * update gen_default_runtime * [Config] Revise batch size in wang-gp's config (#1384) revise batch size in wang-gp's config * [Fix]: add type and change default number of preprocess_div2k_dataset.py (#1380) * [Fix]: add type and change default number of preprocess_div2k_dataset.py * using mmengine.scandir instead of mmcv.scandir Co-authored-by: zenggyh1900 * [Feature] Support qualitative comparison tools (#1303) * Add base gui * support patch compare * support slider compare * readme * add recording prompt * fix lint * fix comments Co-authored-by: unknown * [Docs] Revise docs (change PackGenInputs and GenDataSample to mmediting ones) (#1382) revise docs (change PackGenInputs and GenDataSample to mmediting ones) Co-authored-by: Yanhong Zeng * [Config] Revise Pix2Pix edges2shoes config (#1391) * revise config for p2p-edge2shoes * update batch size setting * rename config name and revise readme * [Bug] fix rdn and srcnn train configs (#1392) * fix srcnn * fix rdn * [Fix] Fix test/val pipeline of pegan configs (#1393) fix ppegan configs * [Fix] Modify Readme of S3 (#1398) modify readme * [Fix] Correct fid of ggan (#1397) fix readme of ggan * [Feature] support instance_aware_colorization inference (#1370) * add Instance-aware Image Colorization * update configs * update docstring if instance-aware image colorization * add unit test of instance_aware_colorization * use mmdet Co-authored-by: ruoning * [Bug] fix cain config (#1404) * fix srcnn * [Bug] fix cain config * [Fix] Revise config and pretrain model loading in esrgan (#1407) revise config and pretrain model loading in esrgan * [Fix] Fix lsgan config (#1409) fix lsgan config * [Enhancement] Support `try_import` for `mmdet` (#1408) * add try-import for mmdet * revise import logic * add unit test for try_import Co-authored-by: Yanhong Zeng Co-authored-by: Yifei Yang <2744335995@qq.com> * [Enhancement] Set ``real_feat`` to cpu in inception_utils (#1415) fix s2 configs * [Enhancement] git ignore slurm generated files (#1416) * improve git ignore * add a blank line * [Fix] modify readme and configs of stylegan2&pegan (#1418) modify readme and configs of stylegan2&pegan * [Enhancement] Support try-import for `clip` (#1420) * support try-import for clip * update ci * [Enhancement]: Improve the rendering of Docs-API (#1373) * [Enhancement]: Improve the rendering of Docs-API * fix lint Co-authored-by: root Co-authored-by: Yanhong Zeng * [Fix] Complete requirements (#1419) * add requirements * fix lint Co-authored-by: Yanhong Zeng * [Doc] Update changelog and README for 1.0.0rc3. (#1421) * update changelog and README * revise change log * [Bug] Install clip in merge stage test (#1423) install clip in merge stage test * [Fix] Install clip in windows CI (#1424) install clip in windows CI Co-authored-by: Yanhong Zeng Co-authored-by: Yifei Yang <2744335995@qq.com> Co-authored-by: Z-Fran <49083766+Z-Fran@users.noreply.github.com> Co-authored-by: Qunliang Xing Co-authored-by: Yang Gao Co-authored-by: ruoning <44117949+ruoningYu@users.noreply.github.com> Co-authored-by: unknown Co-authored-by: root --- .circleci/test.yml | 2 + .dev_scripts/train_benchmark.py | 3 +- .github/workflows/merge_stage_test.yml | 9 +- .github/workflows/pr_stage_test.yml | 6 +- .gitignore | 5 + README.md | 3 +- README_zh-CN.md | 3 +- .../cain/cain_g1b32_1xb5_vimeo90k-triplet.py | 2 +- ...rgan_psnr-x4c64b23g32_1xb16-1000k_div2k.py | 4 +- .../esrgan_x4c64b23g32_1xb16-400k_div2k.py | 8 +- ...1e-4-1xb64-10Mimgs_lsun-bedroom-128x128.py | 5 +- configs/positional_encoding_in_gans/README.md | 68 ++-- .../positional_encoding_in_gans/metafile.yml | 68 ++-- ...onfig-c_c2_8xb3-1100kiters_ffhq-256-512.py | 3 +- ...onfig-d_c2_8xb3-1100kiters_ffhq-256-512.py | 3 +- ...onfig-e_c2_8xb3-1100kiters_ffhq-256-512.py | 3 +- ...nfig-f_c1_8xb2-1600kiters_ffhq-256-1024.py | 3 +- ...onfig-f_c2_8xb3-1100kiters_ffhq-256-512.py | 3 +- ...onfig-f_c2_8xb3-1100kiters_ffhq-256-896.py | 3 +- ...onfig-g_c1_8xb3-1100kiters_ffhq-256-512.py | 3 +- ...onfig-h_c2_8xb3-1100kiters_ffhq-256-512.py | 3 +- ...onfig-i_c2_8xb3-1100kiters_ffhq-256-512.py | 3 +- ...onfig-j_c2_8xb3-1100kiters_ffhq-256-512.py | 3 +- ...onfig-k_c2_8xb3-1100kiters_ffhq-256-512.py | 3 +- configs/styleganv2/README.md | 42 +-- configs/styleganv2/metafile.yml | 32 +- ...tylegan2_c2_8xb4-800kiters_ffhq-256x256.py | 5 +- .../stylegan2_c2_8xb4_lsun-car-384x512.py | 5 +- docs/en/.dev_scripts/update_dataset_zoo.sh | 36 +- docs/en/3_model_zoo.md | 18 +- docs/en/_static/css/readthedocs.css | 4 + docs/en/_template/classtemplate.rst | 14 + docs/en/api.rst | 116 ------ docs/en/api/apis.rst | 27 ++ docs/en/api/datasets.rst | 22 ++ docs/en/api/datasets.transforms.rst | 72 ++++ docs/en/api/engine.hooks.rst | 20 + docs/en/api/engine.optimizers.rst | 16 + docs/en/api/engine.runner.rst | 18 + docs/en/api/engine.schedulers.rst | 15 + docs/en/api/evaluation.functional.rst | 24 ++ docs/en/api/evaluation.metrics.rst | 36 ++ docs/en/api/models.base_models.rst | 23 ++ docs/en/api/models.data_preprocessors.rst | 18 + docs/en/api/models.editors.rst | 108 ++++++ docs/en/api/models.losses.rst | 44 +++ docs/en/api/models.utils.rst | 25 ++ docs/en/api/structures.rst | 15 + docs/en/api/utils.rst | 28 ++ docs/en/api/visualization.rst | 19 + docs/en/conf.py | 26 +- docs/en/dataset_zoo/0_overview.md | 22 +- .../1_super_resolution_datasets.md | 356 ++++++++++++++++++ docs/en/dataset_zoo/2_inpainting_datasets.md | 114 ++++++ docs/en/dataset_zoo/3_matting_datasets.md | 147 ++++++++ .../4_video_interpolation_datasets.md | 50 +++ .../5_unconditional_gans_datasets.md | 91 +++++ .../6_image_translation_datasets.md | 149 ++++++++ docs/en/docutils.conf | 2 + docs/en/index.rst | 21 +- docs/en/notes/3_changelog.md | 29 ++ mmedit/datasets/transforms/crop.py | 14 +- .../evaluation/functional/inception_utils.py | 4 +- mmedit/models/editors/esrgan/rrdb_net.py | 28 +- mmedit/models/losses/clip_loss.py | 7 + mmedit/utils/__init__.py | 4 +- mmedit/utils/setup_env.py | 19 + mmedit/version.py | 2 +- requirements.txt | 1 + requirements/optional.txt | 4 +- requirements/readthedocs.txt | 2 + requirements/runtime.txt | 1 - tests/test_utils/test_setup_env.py | 8 +- 73 files changed, 1789 insertions(+), 333 deletions(-) create mode 100644 docs/en/_template/classtemplate.rst delete mode 100644 docs/en/api.rst create mode 100644 docs/en/api/apis.rst create mode 100644 docs/en/api/datasets.rst create mode 100644 docs/en/api/datasets.transforms.rst create mode 100644 docs/en/api/engine.hooks.rst create mode 100644 docs/en/api/engine.optimizers.rst create mode 100644 docs/en/api/engine.runner.rst create mode 100644 docs/en/api/engine.schedulers.rst create mode 100644 docs/en/api/evaluation.functional.rst create mode 100644 docs/en/api/evaluation.metrics.rst create mode 100644 docs/en/api/models.base_models.rst create mode 100644 docs/en/api/models.data_preprocessors.rst create mode 100644 docs/en/api/models.editors.rst create mode 100644 docs/en/api/models.losses.rst create mode 100644 docs/en/api/models.utils.rst create mode 100644 docs/en/api/structures.rst create mode 100644 docs/en/api/utils.rst create mode 100644 docs/en/api/visualization.rst create mode 100644 docs/en/docutils.conf diff --git a/.circleci/test.yml b/.circleci/test.yml index b6974c6456..9a5cd49ece 100644 --- a/.circleci/test.yml +++ b/.circleci/test.yml @@ -64,6 +64,7 @@ jobs: mim install 'mmcv >= 2.0.0rc1' mim install 'mmdet >= 3.0.0rc2' pip install -r requirements/tests.txt + pip install git+https://github.com/openai/CLIP.git - run: name: Build and install command: | @@ -108,6 +109,7 @@ jobs: docker exec mmedit mim install 'mmcv >= 2.0.0rc1' docker exec mmedit mim install 'mmdet >= 3.0.0rc2' docker exec mmedit pip install -r requirements/tests.txt + docker exec mmedit pip install git+https://github.com/openai/CLIP.git - run: name: Build and install command: | diff --git a/.dev_scripts/train_benchmark.py b/.dev_scripts/train_benchmark.py index acb900cc15..310ca3d5fc 100644 --- a/.dev_scripts/train_benchmark.py +++ b/.dev_scripts/train_benchmark.py @@ -243,8 +243,7 @@ def create_train_job_batch(commands, model_info, args, port, script_name): job_script += (f'#SBATCH --gres=gpu:{n_gpus}\n' f'#SBATCH --ntasks-per-node={min(n_gpus, 8)}\n' f'#SBATCH --ntasks={n_gpus}\n' - f'#SBATCH --cpus-per-task={args.cpus_per_job}\n' - f'#SBATCH --kill-on-bad-exit=1\n\n') + f'#SBATCH --cpus-per-task={args.cpus_per_job}\n\n') else: job_script += '\n\n' + 'export CUDA_VISIBLE_DEVICES=-1\n' diff --git a/.github/workflows/merge_stage_test.yml b/.github/workflows/merge_stage_test.yml index f5bf7d8c0d..509e02a596 100644 --- a/.github/workflows/merge_stage_test.yml +++ b/.github/workflows/merge_stage_test.yml @@ -47,7 +47,9 @@ jobs: mim install 'mmcv >= 2.0.0rc1' mim install 'mmdet >= 3.0.0rc2' - name: Install other dependencies - run: pip install -r requirements/tests.txt + run: | + pip install -r requirements/tests.txt + pip install git+https://github.com/openai/CLIP.git - name: Build and install run: rm -rf .eggs && pip install -e . - name: Run unittests and generate coverage report @@ -95,7 +97,9 @@ jobs: mim install 'mmcv >= 2.0.0rc1' mim install 'mmdet >= 3.0.0rc2' - name: Install other dependencies - run: pip install -r requirements/tests.txt + run: | + pip install -r requirements/tests.txt + pip install git+https://github.com/openai/CLIP.git - name: Build and install run: rm -rf .eggs && pip install -e . - name: Run unittests and generate coverage report @@ -181,6 +185,7 @@ jobs: mim install 'mmcv >= 2.0.0rc1' mim install 'mmdet >= 3.0.0rc2' python -m pip install -r requirements/tests.txt + python -m pip install git+https://github.com/openai/CLIP.git - name: Build and install run: | python -m pip install -e . diff --git a/.github/workflows/pr_stage_test.yml b/.github/workflows/pr_stage_test.yml index e27703b379..fcc325dc04 100644 --- a/.github/workflows/pr_stage_test.yml +++ b/.github/workflows/pr_stage_test.yml @@ -41,7 +41,9 @@ jobs: mim install 'mmcv >= 2.0.0rc1' mim install 'mmdet >= 3.0.0rc2' - name: Install other dependencies - run: pip install -r requirements/tests.txt + run: | + pip install -r requirements/tests.txt + pip install git+https://github.com/openai/CLIP.git - name: Build and install run: rm -rf .eggs && pip install -e . - name: Run unittests and generate coverage report @@ -97,6 +99,7 @@ jobs: mim install 'mmcv >= 2.0.0rc1' mim install 'mmdet >= 3.0.0rc2' pip install -r requirements/tests.txt + pip install git+https://github.com/openai/CLIP.git - name: Build and install run: | python setup.py check -m -s @@ -131,6 +134,7 @@ jobs: mim install 'mmcv >= 2.0.0rc1' mim install 'mmdet >= 3.0.0rc2' python -m pip install -r requirements/tests.txt + pip install git+https://github.com/openai/CLIP.git - name: Build and install run: | python -m pip install -e . diff --git a/.gitignore b/.gitignore index f90d5babb9..1991b64bde 100644 --- a/.gitignore +++ b/.gitignore @@ -70,6 +70,7 @@ docs/en/_tmp/ docs/zh_cn/_build/ docs/zh_cn/_tmp/ requirements/src/ +docs/en/api/generated # PyBuilder target/ @@ -140,3 +141,7 @@ out/*.png # MacOS .DS_Store + +# Slurm +batchscript-* +*.out diff --git a/README.md b/README.md index 9ace05994b..658853820f 100644 --- a/README.md +++ b/README.md @@ -106,12 +106,13 @@ hope MMEditing could provide better experience. ### ๐ŸŒŸ Preview of 1.x version -A brand new version of [**MMEditing v1.0.0rc2**](https://github.com/open-mmlab/mmediting/releases/tag/v1.0.0rc2) was released in 02/11/2022: +A brand new version of [**MMEditing v1.0.0rc3**](https://github.com/open-mmlab/mmediting/releases/tag/v1.0.0rc3) was released in 09/11/2022: - Support all the tasks, models, metrics, and losses in [MMGeneration](https://github.com/open-mmlab/mmgeneration) ๐Ÿ˜ใ€‚ - Unifies interfaces of all components based on [MMEngine](https://github.com/open-mmlab/mmengine). - Support patch-based and slider-based image and video comparison viewer. - Support image colorization. +- Convert `mmdet` and `clip` to optional requirements. Find more new features in [1.x branch](https://github.com/open-mmlab/mmediting/tree/1.x). Issues and PRs are welcome! diff --git a/README_zh-CN.md b/README_zh-CN.md index 64fca3222b..55ee1c946f 100644 --- a/README_zh-CN.md +++ b/README_zh-CN.md @@ -105,12 +105,13 @@ MMEditing ็ผœๅฏ†ๅœฐ่ฎพ่ฎกๆ–ฐ็š„ๆก†ๆžถๅนถๅฐ†ๅ…ถ็ฒพๅฟƒๅฎž็Žฐ๏ผŒๅธŒๆœ›่ƒฝๅคŸไธบๆ‚จ ### ๐ŸŒŸ 1.x ้ข„่งˆ็‰ˆๆœฌ -ๅ…จๆ–ฐ็š„ [**MMEditing v1.0.0rc2**](https://github.com/open-mmlab/mmediting/releases/tag/v1.0.0rc2) ๅทฒ็ปๅœจ 02/11/2022 ๅ‘ๅธƒ: +ๅ…จๆ–ฐ็š„ [**MMEditing v1.0.0rc3**](https://github.com/open-mmlab/mmediting/releases/tag/v1.0.0rc3) ๅทฒ็ปๅœจ 09/11/2022 ๅ‘ๅธƒ: - ๆ”ฏๆŒ[MMGeneration](https://github.com/open-mmlab/mmgeneration)ไธญ็š„ๅ…จ้‡ไปปๅŠกใ€ๆจกๅž‹ใ€ไผ˜ๅŒ–ๅ‡ฝๆ•ฐๅ’Œ่ฏ„ไปทๆŒ‡ๆ ‡ ๐Ÿ˜ใ€‚ - ๅŸบไบŽ[MMEngine](https://github.com/open-mmlab/mmengine)็ปŸไธ€ไบ†ๅ„็ป„ไปถๆŽฅๅฃใ€‚ - ๆ”ฏๆŒๅŸบไบŽๅ›พๅƒๅญๅ—ไปฅๅŠๆป‘ๅŠจๆก็š„ๅ›พๅƒๅ’Œ่ง†้ข‘ๆฏ”่พƒๅฏ่ง†ๅŒ–ๅทฅๅ…ทใ€‚ - ๆ”ฏๆŒๅ›พๅƒไธŠ่‰ฒไปปๅŠกใ€‚ +- ๅฐ† `mmdet` ไธŽ `clip` ๅˆ‡ๆขไธบๅฏ้€‰ไพ่ต– ๅœจ[1.x ๅˆ†ๆ”ฏ](https://github.com/open-mmlab/mmediting/tree/1.x)ไธญๅ‘็Žฐๆ›ดๅคš็‰นๆ€ง๏ผๆฌข่ฟŽๆ Issues ๅ’Œ PRs๏ผ diff --git a/configs/cain/cain_g1b32_1xb5_vimeo90k-triplet.py b/configs/cain/cain_g1b32_1xb5_vimeo90k-triplet.py index 21e61e0ccf..3f206858dd 100644 --- a/configs/cain/cain_g1b32_1xb5_vimeo90k-triplet.py +++ b/configs/cain/cain_g1b32_1xb5_vimeo90k-triplet.py @@ -83,7 +83,7 @@ num_workers=32, batch_size=32, # 1 gpu persistent_workers=False, - sampler=dict(type='InfiniteSampler', shuffle=True), + sampler=dict(type='DefaultSampler', shuffle=True), dataset=dict( type=train_dataset_type, ann_file='tri_trainlist.txt', diff --git a/configs/esrgan/esrgan_psnr-x4c64b23g32_1xb16-1000k_div2k.py b/configs/esrgan/esrgan_psnr-x4c64b23g32_1xb16-1000k_div2k.py index 27dbb29ef4..f40c8d6c39 100644 --- a/configs/esrgan/esrgan_psnr-x4c64b23g32_1xb16-1000k_div2k.py +++ b/configs/esrgan/esrgan_psnr-x4c64b23g32_1xb16-1000k_div2k.py @@ -90,8 +90,8 @@ sampler=dict(type='DefaultSampler', shuffle=False), dataset=dict( type=dataset_type, - metainfo=dict(dataset_type='set5', task_name='sisr'), - data_root=data_root + '/Set5', + metainfo=dict(dataset_type='set14', task_name='sisr'), + data_root=data_root + '/Set14', data_prefix=dict(img='LRbicx4', gt='GTmod12'), pipeline=val_pipeline)) diff --git a/configs/esrgan/esrgan_x4c64b23g32_1xb16-400k_div2k.py b/configs/esrgan/esrgan_x4c64b23g32_1xb16-400k_div2k.py index 23cc4c1acc..812d8354b5 100644 --- a/configs/esrgan/esrgan_x4c64b23g32_1xb16-400k_div2k.py +++ b/configs/esrgan/esrgan_x4c64b23g32_1xb16-400k_div2k.py @@ -5,12 +5,13 @@ scale = 4 -# load_from = 'https://download.openmmlab.com/mmediting/restorers/esrgan/esrgan_x4c64b23g32_1x16_400k_div2k_20200508-f8ccaf3b.pth' # noqa - # DistributedDataParallel model_wrapper_cfg = dict(type='MMSeparateDistributedDataParallel') # model settings +pretrain_generator_url = ( + 'https://download.openmmlab.com/mmediting/restorers/esrgan' + '/esrgan_psnr_x4c64b23g32_1x16_1000k_div2k_20200420-bf5c993c.pth') model = dict( type='ESRGAN', generator=dict( @@ -20,7 +21,8 @@ mid_channels=64, num_blocks=23, growth_channels=32, - upscale_factor=scale), + upscale_factor=scale, + init_cfg=dict(type='Pretrained', checkpoint=pretrain_generator_url)), discriminator=dict(type='ModifiedVGG', in_channels=3, mid_channels=64), pixel_loss=dict(type='L1Loss', loss_weight=1e-2, reduction='mean'), perceptual_loss=dict( diff --git a/configs/lsgan/lsgan_lsgan-archi_lr1e-4-1xb64-10Mimgs_lsun-bedroom-128x128.py b/configs/lsgan/lsgan_lsgan-archi_lr1e-4-1xb64-10Mimgs_lsun-bedroom-128x128.py index 7bab2ddd13..655ef87b42 100644 --- a/configs/lsgan/lsgan_lsgan-archi_lr1e-4-1xb64-10Mimgs_lsun-bedroom-128x128.py +++ b/configs/lsgan/lsgan_lsgan-archi_lr1e-4-1xb64-10Mimgs_lsun-bedroom-128x128.py @@ -42,9 +42,10 @@ metrics = [ dict( type='FrechetInceptionDistance', - prefix='FID-Full-50k', + prefix='FID-50k', fake_nums=50000, - inception_style='StyleGAN', + real_nums=50000, + inception_style='PyTorch', sample_model='orig') ] val_evaluator = dict(metrics=metrics) diff --git a/configs/positional_encoding_in_gans/README.md b/configs/positional_encoding_in_gans/README.md index a882a3639c..dc3728b3c8 100644 --- a/configs/positional_encoding_in_gans/README.md +++ b/configs/positional_encoding_in_gans/README.md @@ -26,35 +26,35 @@ SinGAN shows impressive capability in learning internal patch distribution despi | Models | Reference in Paper | Scales | FID50k | P&R10k | Config | Download | | :--------------------------: | :----------------: | :------------: | :----: | :---------: | :----------------------------------------------------------: | :-------------------------------------------------------------: | -| stylegan2_c2_256_baseline | Tab.5 config-a | 256 | 5.56 | 75.92/51.24 | [config](https://github.com/open-mmlab/mmediting/blob/master/configs/positional_encoding_in_gans/stylegan2_c2_8xb3-1100kiters_ffhq-256x256.py) | [model](https://download.openmmlab.com/mmgen/pe_in_gans/stylegan2_c2_config-a_ffhq_256x256_b3x8_1100k_20210406_145127-71d9634b.pth) | -| stylegan2_c2_512_baseline | Tab.5 config-b | 512 | 4.91 | 75.65/54.58 | [config](https://github.com/open-mmlab/mmediting/blob/master/configs/positional_encoding_in_gans/stylegan2_c2_8xb3-1100kiters_ffhq-512x512.py) | [model](https://download.openmmlab.com/mmgen/pe_in_gans/stylegan2_c2_config-b_ffhq_512x512_b3x8_1100k_20210406_145142-e85e5cf4.pth) | -| ms-pie_stylegan2_c2_config-c | Tab.5 config-c | 256, 384, 512 | 3.35 | 73.84/55.77 | [config](https://github.com/open-mmlab/mmediting/blob/master/configs/positional_encoding_in_gans/mspie-stylegan2-config-c_c2_8xb3-1100kiters_ffhq-256-512.py) | [model](https://download.openmmlab.com/mmgen/pe_in_gans/mspie-stylegan2_c2_config-c_ffhq_256-512_b3x8_1100k_20210406_144824-9f43b07d.pth) | -| ms-pie_stylegan2_c2_config-d | Tab.5 config-d | 256, 384, 512 | 3.50 | 73.28/56.16 | [config](https://github.com/open-mmlab/mmediting/blob/master/configs/positional_encoding_in_gans/mspie-stylegan2-config-d_c2_8xb3-1100kiters_ffhq-256-512.py) | [model](https://download.openmmlab.com/mmgen/pe_in_gans/mspie-stylegan2_c2_config-d_ffhq_256-512_b3x8_1100k_20210406_144840-dbefacf6.pth) | -| ms-pie_stylegan2_c2_config-e | Tab.5 config-e | 256, 384, 512 | 3.15 | 74.13/56.88 | [config](https://github.com/open-mmlab/mmediting/blob/master/configs/positional_encoding_in_gans/mspie-stylegan2-config-e_c2_8xb3-1100kiters_ffhq-256-512.py) | [model](https://download.openmmlab.com/mmgen/pe_in_gans/mspie-stylegan2_c2_config-e_ffhq_256-512_b3x8_1100k_20210406_144906-98d5a42a.pth) | -| ms-pie_stylegan2_c2_config-f | Tab.5 config-f | 256, 384, 512 | 2.93 | 73.51/57.32 | [config](https://github.com/open-mmlab/mmediting/blob/master/configs/positional_encoding_in_gans/mspie-stylegan2-config-f_c2_8xb3-1100kiters_ffhq-256-512.py) | [model](https://download.openmmlab.com/mmgen/pe_in_gans/mspie-stylegan2_c2_config-f_ffhq_256-512_b3x8_1100k_20210406_144927-4f4d5391.pth) | -| ms-pie_stylegan2_c1_config-g | Tab.5 config-g | 256, 384, 512 | 3.40 | 73.05/56.45 | [config](https://github.com/open-mmlab/mmediting/blob/master/configs/positional_encoding_in_gans/mspie-stylegan2-config-g_c1_8xb3-1100kiters_ffhq-256-512.py) | [model](https://download.openmmlab.com/mmgen/pe_in_gans/mspie-stylegan2_c1_config-g_ffhq_256-512_b3x8_1100k_20210406_144758-2df61752.pth) | -| ms-pie_stylegan2_c2_config-h | Tab.5 config-h | 256, 384, 512 | 4.01 | 72.81/54.35 | [config](https://github.com/open-mmlab/mmediting/blob/master/configs/positional_encoding_in_gans/mspie-stylegan2-config-h_c2_8xb3-1100kiters_ffhq-256-512.py) | [model](https://download.openmmlab.com/mmgen/pe_in_gans/mspie-stylegan2_c2_config-h_ffhq_256-512_b3x8_1100k_20210406_145006-84cf3f48.pth) | -| ms-pie_stylegan2_c2_config-i | Tab.5 config-i | 256, 384, 512 | 3.76 | 73.26/54.71 | [config](https://github.com/open-mmlab/mmediting/blob/master/configs/positional_encoding_in_gans/mspie-stylegan2-config-i_c2_8xb3-1100kiters_ffhq-256-512.py) | [model](https://download.openmmlab.com/mmgen/pe_in_gans/mspie-stylegan2_c2_config-i_ffhq_256-512_b3x8_1100k_20210406_145023-c2b0accf.pth) | -| ms-pie_stylegan2_c2_config-j | Tab.5 config-j | 256, 384, 512 | 4.23 | 73.11/54.63 | [config](https://github.com/open-mmlab/mmediting/blob/master/configs/positional_encoding_in_gans/mspie-stylegan2-config-j_c2_8xb3-1100kiters_ffhq-256-512.py) | [model](https://download.openmmlab.com/mmgen/pe_in_gans/mspie-stylegan2_c2_config-j_ffhq_256-512_b3x8_1100k_20210406_145044-c407481b.pth) | -| ms-pie_stylegan2_c2_config-k | Tab.5 config-k | 256, 384, 512 | 4.17 | 73.05/51.07 | [config](https://github.com/open-mmlab/mmediting/blob/master/configs/positional_encoding_in_gans/mspie-stylegan2-config-k_c2_8xb3-1100kiters_ffhq-256-512.py) | [model](https://download.openmmlab.com/mmgen/pe_in_gans/mspie-stylegan2_c2_config-k_ffhq_256-512_b3x8_1100k_20210406_145105-6d8cc39f.pth) | -| ms-pie_stylegan2_c2_config-f | higher-resolution | 256, 512, 896 | 4.10 | 72.21/50.29 | [config](https://github.com/open-mmlab/mmediting/blob/master/configs/positional_encoding_in_gans/mspie-stylegan2-config-f_c2_8xb3-1100kiters_ffhq-256-896.py) | [model](https://download.openmmlab.com/mmgen/pe_in_gans/mspie-stylegan2_c2_config-f_ffhq_256-896_b3x8_1100k_20210406_144943-6c18ad5d.pth) | -| ms-pie_stylegan2_c1_config-f | higher-resolution | 256, 512, 1024 | 6.24 | 71.79/49.92 | [config](https://github.com/open-mmlab/mmediting/blob/master/configs/positional_encoding_in_gans/mspie-stylegan2-config-f_c1_8xb2-1600kiters_ffhq-256-1024.py) | [model](https://download.openmmlab.com/mmgen/pe_in_gans/mspie-stylegan2_c1_config-f_ffhq_256-1024_b2x8_1600k_20210406_144716-81cbdc96.pth) | +| stylegan2_c2_256_baseline | Tab.5 config-a | 256 | 5.56 | 75.92/51.24 | [stylegan2_c2_8xb3-1100kiters_ffhq-256x256](/configs/positional_encoding_in_gans/stylegan2_c2_8xb3-1100kiters_ffhq-256x256.py) | [model](https://download.openmmlab.com/mmgen/pe_in_gans/stylegan2_c2_config-a_ffhq_256x256_b3x8_1100k_20210406_145127-71d9634b.pth) | +| stylegan2_c2_512_baseline | Tab.5 config-b | 512 | 4.91 | 75.65/54.58 | [stylegan2_c2_8xb3-1100kiters_ffhq-512x512](/configs/positional_encoding_in_gans/stylegan2_c2_8xb3-1100kiters_ffhq-512x512.py) | [model](https://download.openmmlab.com/mmgen/pe_in_gans/stylegan2_c2_config-b_ffhq_512x512_b3x8_1100k_20210406_145142-e85e5cf4.pth) | +| ms-pie_stylegan2_c2_config-c | Tab.5 config-c | 256, 384, 512 | 3.35 | 73.84/55.77 | [mspie-stylegan2-config-c_c2_8xb3-1100kiters_ffhq-256-512](/configs/positional_encoding_in_gans/mspie-stylegan2-config-c_c2_8xb3-1100kiters_ffhq-256-512.py) | [model](https://download.openmmlab.com/mmgen/pe_in_gans/mspie-stylegan2_c2_config-c_ffhq_256-512_b3x8_1100k_20210406_144824-9f43b07d.pth) | +| ms-pie_stylegan2_c2_config-d | Tab.5 config-d | 256, 384, 512 | 3.50 | 73.28/56.16 | [mspie-stylegan2-config-d_c2_8xb3-1100kiters_ffhq-256-512](/configs/positional_encoding_in_gans/mspie-stylegan2-config-d_c2_8xb3-1100kiters_ffhq-256-512.py) | [model](https://download.openmmlab.com/mmgen/pe_in_gans/mspie-stylegan2_c2_config-d_ffhq_256-512_b3x8_1100k_20210406_144840-dbefacf6.pth) | +| ms-pie_stylegan2_c2_config-e | Tab.5 config-e | 256, 384, 512 | 3.15 | 74.13/56.88 | [mspie-stylegan2-config-e_c2_8xb3-1100kiters_ffhq-256-512](/configs/positional_encoding_in_gans/mspie-stylegan2-config-e_c2_8xb3-1100kiters_ffhq-256-512.py) | [model](https://download.openmmlab.com/mmgen/pe_in_gans/mspie-stylegan2_c2_config-e_ffhq_256-512_b3x8_1100k_20210406_144906-98d5a42a.pth) | +| ms-pie_stylegan2_c2_config-f | Tab.5 config-f | 256, 384, 512 | 2.93 | 73.51/57.32 | [mspie-stylegan2-config-f_c2_8xb3-1100kiters_ffhq-256-512](/configs/positional_encoding_in_gans/mspie-stylegan2-config-f_c2_8xb3-1100kiters_ffhq-256-512.py) | [model](https://download.openmmlab.com/mmgen/pe_in_gans/mspie-stylegan2_c2_config-f_ffhq_256-512_b3x8_1100k_20210406_144927-4f4d5391.pth) | +| ms-pie_stylegan2_c1_config-g | Tab.5 config-g | 256, 384, 512 | 3.40 | 73.05/56.45 | [mspie-stylegan2-config-g_c1_8xb3-1100kiters_ffhq-256-512](/configs/positional_encoding_in_gans/mspie-stylegan2-config-g_c1_8xb3-1100kiters_ffhq-256-512.py) | [model](https://download.openmmlab.com/mmgen/pe_in_gans/mspie-stylegan2_c1_config-g_ffhq_256-512_b3x8_1100k_20210406_144758-2df61752.pth) | +| ms-pie_stylegan2_c2_config-h | Tab.5 config-h | 256, 384, 512 | 4.01 | 72.81/54.35 | [mspie-stylegan2-config-h_c2_8xb3-1100kiters_ffhq-256-512](/configs/positional_encoding_in_gans/mspie-stylegan2-config-h_c2_8xb3-1100kiters_ffhq-256-512.py) | [model](https://download.openmmlab.com/mmgen/pe_in_gans/mspie-stylegan2_c2_config-h_ffhq_256-512_b3x8_1100k_20210406_145006-84cf3f48.pth) | +| ms-pie_stylegan2_c2_config-i | Tab.5 config-i | 256, 384, 512 | 3.76 | 73.26/54.71 | [mspie-stylegan2-config-i_c2_8xb3-1100kiters_ffhq-256-512](/configs/positional_encoding_in_gans/mspie-stylegan2-config-i_c2_8xb3-1100kiters_ffhq-256-512.py) | [model](https://download.openmmlab.com/mmgen/pe_in_gans/mspie-stylegan2_c2_config-i_ffhq_256-512_b3x8_1100k_20210406_145023-c2b0accf.pth) | +| ms-pie_stylegan2_c2_config-j | Tab.5 config-j | 256, 384, 512 | 4.23 | 73.11/54.63 | [mspie-stylegan2-config-j_c2_8xb3-1100kiters_ffhq-256-512](/configs/positional_encoding_in_gans/mspie-stylegan2-config-j_c2_8xb3-1100kiters_ffhq-256-512.py) | [model](https://download.openmmlab.com/mmgen/pe_in_gans/mspie-stylegan2_c2_config-j_ffhq_256-512_b3x8_1100k_20210406_145044-c407481b.pth) | +| ms-pie_stylegan2_c2_config-k | Tab.5 config-k | 256, 384, 512 | 4.17 | 73.05/51.07 | [mspie-stylegan2-config-k_c2_8xb3-1100kiters_ffhq-256-512](/configs/positional_encoding_in_gans/mspie-stylegan2-config-k_c2_8xb3-1100kiters_ffhq-256-512.py) | [model](https://download.openmmlab.com/mmgen/pe_in_gans/mspie-stylegan2_c2_config-k_ffhq_256-512_b3x8_1100k_20210406_145105-6d8cc39f.pth) | +| ms-pie_stylegan2_c2_config-f | higher-resolution | 256, 512, 896 | 4.10 | 72.21/50.29 | [mspie-stylegan2-config-f_c2_8xb3-1100kiters_ffhq-256-896](/configs/positional_encoding_in_gans/mspie-stylegan2-config-f_c2_8xb3-1100kiters_ffhq-256-896.py) | [model](https://download.openmmlab.com/mmgen/pe_in_gans/mspie-stylegan2_c2_config-f_ffhq_256-896_b3x8_1100k_20210406_144943-6c18ad5d.pth) | +| ms-pie_stylegan2_c1_config-f | higher-resolution | 256, 512, 1024 | 6.24 | 71.79/49.92 | [mspie-stylegan2-config-f_c1_8xb2-1600kiters_ffhq-256-1024](/configs/positional_encoding_in_gans/mspie-stylegan2-config-f_c1_8xb2-1600kiters_ffhq-256-1024.py) | [model](https://download.openmmlab.com/mmgen/pe_in_gans/mspie-stylegan2_c1_config-f_ffhq_256-1024_b2x8_1600k_20210406_144716-81cbdc96.pth) | | Models | Reference in Paper | Scales | FID50k | Precision10k | Recall10k | Config | Download | | :--------------------------: | :----------------: | :------------: | :----: | :----------: | :-------: | :-----------------------------------------------------: | :--------------------------------------------------------: | -| stylegan2_c2_256_baseline | Tab.5 config-a | 256 | 5.56 | 75.92 | 51.24 | [config](https://github.com/open-mmlab/mmediting/tree/master/configs/positional_encoding_in_gans/stylegan2_c2_8xb3-1100kiters_ffhq-256x256.py) | [model](https://download.openmmlab.com/mmgen/pe_in_gans/stylegan2_c2_config-a_ffhq_256x256_b3x8_1100k_20210406_145127-71d9634b.pth) | -| stylegan2_c2_512_baseline | Tab.5 config-b | 512 | 4.91 | 75.65 | 54.58 | [config](https://github.com/open-mmlab/mmediting/tree/master/configs/positional_encoding_in_gans/stylegan2_c2_8xb3-1100kiters_ffhq-512x512.py) | [model](https://download.openmmlab.com/mmgen/pe_in_gans/stylegan2_c2_config-b_ffhq_512x512_b3x8_1100k_20210406_145142-e85e5cf4.pth) | -| ms-pie_stylegan2_c2_config-c | Tab.5 config-c | 256, 384, 512 | 3.35 | 73.84 | 55.77 | [config](https://github.com/open-mmlab/mmediting/tree/master/configs/positional_encoding_in_gans/mspie-stylegan2-config-c_c2_8xb3-1100kiters_ffhq-256-512.py) | [model](https://download.openmmlab.com/mmgen/pe_in_gans/mspie-stylegan2_c2_config-c_ffhq_256-512_b3x8_1100k_20210406_144824-9f43b07d.pth) | -| ms-pie_stylegan2_c2_config-d | Tab.5 config-d | 256, 384, 512 | 3.50 | 73.28 | 56.16 | [config](https://github.com/open-mmlab/mmediting/tree/master/configs/positional_encoding_in_gans/mspie-stylegan2-config-d_c2_8xb3-1100kiters_ffhq-256-512.py) | [model](https://download.openmmlab.com/mmgen/pe_in_gans/mspie-stylegan2_c2_config-d_ffhq_256-512_b3x8_1100k_20210406_144840-dbefacf6.pth) | -| ms-pie_stylegan2_c2_config-e | Tab.5 config-e | 256, 384, 512 | 3.15 | 74.13 | 56.88 | [config](https://github.com/open-mmlab/mmediting/tree/master/configs/positional_encoding_in_gans/mspie-stylegan2-config-e_c2_8xb3-1100kiters_ffhq-256-512.py) | [model](https://download.openmmlab.com/mmgen/pe_in_gans/mspie-stylegan2_c2_config-e_ffhq_256-512_b3x8_1100k_20210406_144906-98d5a42a.pth) | -| ms-pie_stylegan2_c2_config-f | Tab.5 config-f | 256, 384, 512 | 2.93 | 73.51 | 57.32 | [config](https://github.com/open-mmlab/mmediting/tree/master/configs/positional_encoding_in_gans/mspie-stylegan2-config-f_c2_8xb3-1100kiters_ffhq-256-512.py) | [model](https://download.openmmlab.com/mmgen/pe_in_gans/mspie-stylegan2_c2_config-f_ffhq_256-512_b3x8_1100k_20210406_144927-4f4d5391.pth) | -| ms-pie_stylegan2_c1_config-g | Tab.5 config-g | 256, 384, 512 | 3.40 | 73.05 | 56.45 | [config](https://github.com/open-mmlab/mmediting/tree/master/configs/positional_encoding_in_gans/mspie-stylegan2-config-g_c1_8xb3-1100kiters_ffhq-256-512.py) | [model](https://download.openmmlab.com/mmgen/pe_in_gans/mspie-stylegan2_c1_config-g_ffhq_256-512_b3x8_1100k_20210406_144758-2df61752.pth) | -| ms-pie_stylegan2_c2_config-h | Tab.5 config-h | 256, 384, 512 | 4.01 | 72.81 | 54.35 | [config](https://github.com/open-mmlab/mmediting/tree/master/configs/positional_encoding_in_gans/mspie-stylegan2-config-h_c2_8xb3-1100kiters_ffhq-256-512.py) | [model](https://download.openmmlab.com/mmgen/pe_in_gans/mspie-stylegan2_c2_config-h_ffhq_256-512_b3x8_1100k_20210406_145006-84cf3f48.pth) | -| ms-pie_stylegan2_c2_config-i | Tab.5 config-i | 256, 384, 512 | 3.76 | 73.26 | 54.71 | [config](https://github.com/open-mmlab/mmediting/tree/master/configs/positional_encoding_in_gans/mspie-stylegan2-config-i_c2_8xb3-1100kiters_ffhq-256-512.py) | [model](https://download.openmmlab.com/mmgen/pe_in_gans/mspie-stylegan2_c2_config-i_ffhq_256-512_b3x8_1100k_20210406_145023-c2b0accf.pth) | -| ms-pie_stylegan2_c2_config-j | Tab.5 config-j | 256, 384, 512 | 4.23 | 73.11 | 54.63 | [config](https://github.com/open-mmlab/mmediting/tree/master/configs/positional_encoding_in_gans/mspie-stylegan2-config-j_c2_8xb3-1100kiters_ffhq-256-512.py) | [model](https://download.openmmlab.com/mmgen/pe_in_gans/mspie-stylegan2_c2_config-j_ffhq_256-512_b3x8_1100k_20210406_145044-c407481b.pth) | -| ms-pie_stylegan2_c2_config-k | Tab.5 config-k | 256, 384, 512 | 4.17 | 73.05 | 51.07 | [config](https://github.com/open-mmlab/mmediting/tree/master/configs/positional_encoding_in_gans/mspie-stylegan2-config-k_c2_8xb3-1100kiters_ffhq-256-512.py) | [model](https://download.openmmlab.com/mmgen/pe_in_gans/mspie-stylegan2_c2_config-k_ffhq_256-512_b3x8_1100k_20210406_145105-6d8cc39f.pth) | -| ms-pie_stylegan2_c2_config-f | higher-resolution | 256, 512, 896 | 4.10 | 72.21 | 50.29 | [config](https://github.com/open-mmlab/mmediting/tree/master/configs/positional_encoding_in_gans/mspie-stylegan2-config-f_c2_8xb3-1100kiters_ffhq-256-896.py) | [model](https://download.openmmlab.com/mmgen/pe_in_gans/mspie-stylegan2_c2_config-f_ffhq_256-896_b3x8_1100k_20210406_144943-6c18ad5d.pth) | -| ms-pie_stylegan2_c1_config-f | higher-resolution | 256, 512, 1024 | 6.24 | 71.79 | 49.92 | [config](https://github.com/open-mmlab/mmediting/tree/master/configs/positional_encoding_in_gans/mspie-stylegan2-config-f_c1_8xb2-1600kiters_ffhq-256-1024.py) | [model](https://download.openmmlab.com/mmgen/pe_in_gans/mspie-stylegan2_c1_config-f_ffhq_256-1024_b2x8_1600k_20210406_144716-81cbdc96.pth) | +| stylegan2_c2_256_baseline | Tab.5 config-a | 256 | 5.56 | 75.92 | 51.24 | [stylegan2_c2_8xb3-1100kiters_ffhq-256x256](/configs/positional_encoding_in_gans/stylegan2_c2_8xb3-1100kiters_ffhq-256x256.py) | [model](https://download.openmmlab.com/mmgen/pe_in_gans/stylegan2_c2_config-a_ffhq_256x256_b3x8_1100k_20210406_145127-71d9634b.pth) | +| stylegan2_c2_512_baseline | Tab.5 config-b | 512 | 4.91 | 75.65 | 54.58 | [stylegan2_c2_8xb3-1100kiters_ffhq-512x512](/configs/positional_encoding_in_gans/stylegan2_c2_8xb3-1100kiters_ffhq-512x512.py) | [model](https://download.openmmlab.com/mmgen/pe_in_gans/stylegan2_c2_config-b_ffhq_512x512_b3x8_1100k_20210406_145142-e85e5cf4.pth) | +| ms-pie_stylegan2_c2_config-c | Tab.5 config-c | 256, 384, 512 | 3.35 | 73.84 | 55.77 | [mspie-stylegan2-config-c_c2_8xb3-1100kiters_ffhq-256-512](/configs/positional_encoding_in_gans/mspie-stylegan2-config-c_c2_8xb3-1100kiters_ffhq-256-512.py) | [model](https://download.openmmlab.com/mmgen/pe_in_gans/mspie-stylegan2_c2_config-c_ffhq_256-512_b3x8_1100k_20210406_144824-9f43b07d.pth) | +| ms-pie_stylegan2_c2_config-d | Tab.5 config-d | 256, 384, 512 | 3.50 | 73.28 | 56.16 | [mspie-stylegan2-config-d_c2_8xb3-1100kiters_ffhq-256-512](/configs/positional_encoding_in_gans/mspie-stylegan2-config-d_c2_8xb3-1100kiters_ffhq-256-512.py) | [model](https://download.openmmlab.com/mmgen/pe_in_gans/mspie-stylegan2_c2_config-d_ffhq_256-512_b3x8_1100k_20210406_144840-dbefacf6.pth) | +| ms-pie_stylegan2_c2_config-e | Tab.5 config-e | 256, 384, 512 | 3.15 | 74.13 | 56.88 | [mspie-stylegan2-config-e_c2_8xb3-1100kiters_ffhq-256-512](/configs/positional_encoding_in_gans/mspie-stylegan2-config-e_c2_8xb3-1100kiters_ffhq-256-512.py) | [model](https://download.openmmlab.com/mmgen/pe_in_gans/mspie-stylegan2_c2_config-e_ffhq_256-512_b3x8_1100k_20210406_144906-98d5a42a.pth) | +| ms-pie_stylegan2_c2_config-f | Tab.5 config-f | 256, 384, 512 | 2.93 | 73.51 | 57.32 | [mspie-stylegan2-config-f_c2_8xb3-1100kiters_ffhq-256-512](/configs/positional_encoding_in_gans/mspie-stylegan2-config-f_c2_8xb3-1100kiters_ffhq-256-512.py) | [model](https://download.openmmlab.com/mmgen/pe_in_gans/mspie-stylegan2_c2_config-f_ffhq_256-512_b3x8_1100k_20210406_144927-4f4d5391.pth) | +| ms-pie_stylegan2_c1_config-g | Tab.5 config-g | 256, 384, 512 | 3.40 | 73.05 | 56.45 | [mspie-stylegan2-config-g_c1_8xb3-1100kiters_ffhq-256-512](/configs/positional_encoding_in_gans/mspie-stylegan2-config-g_c1_8xb3-1100kiters_ffhq-256-512.py) | [model](https://download.openmmlab.com/mmgen/pe_in_gans/mspie-stylegan2_c1_config-g_ffhq_256-512_b3x8_1100k_20210406_144758-2df61752.pth) | +| ms-pie_stylegan2_c2_config-h | Tab.5 config-h | 256, 384, 512 | 4.01 | 72.81 | 54.35 | [mspie-stylegan2-config-h_c2_8xb3-1100kiters_ffhq-256-512](/configs/positional_encoding_in_gans/mspie-stylegan2-config-h_c2_8xb3-1100kiters_ffhq-256-512.py) | [model](https://download.openmmlab.com/mmgen/pe_in_gans/mspie-stylegan2_c2_config-h_ffhq_256-512_b3x8_1100k_20210406_145006-84cf3f48.pth) | +| ms-pie_stylegan2_c2_config-i | Tab.5 config-i | 256, 384, 512 | 3.76 | 73.26 | 54.71 | [mspie-stylegan2-config-i_c2_8xb3-1100kiters_ffhq-256-512](/configs/positional_encoding_in_gans/mspie-stylegan2-config-i_c2_8xb3-1100kiters_ffhq-256-512.py) | [model](https://download.openmmlab.com/mmgen/pe_in_gans/mspie-stylegan2_c2_config-i_ffhq_256-512_b3x8_1100k_20210406_145023-c2b0accf.pth) | +| ms-pie_stylegan2_c2_config-j | Tab.5 config-j | 256, 384, 512 | 4.23 | 73.11 | 54.63 | [mspie-stylegan2-config-j_c2_8xb3-1100kiters_ffhq-256-512](/configs/positional_encoding_in_gans/mspie-stylegan2-config-j_c2_8xb3-1100kiters_ffhq-256-512.py) | [model](https://download.openmmlab.com/mmgen/pe_in_gans/mspie-stylegan2_c2_config-j_ffhq_256-512_b3x8_1100k_20210406_145044-c407481b.pth) | +| ms-pie_stylegan2_c2_config-k | Tab.5 config-k | 256, 384, 512 | 4.17 | 73.05 | 51.07 | [mspie-stylegan2-config-k_c2_8xb3-1100kiters_ffhq-256-512](/configs/positional_encoding_in_gans/mspie-stylegan2-config-k_c2_8xb3-1100kiters_ffhq-256-512.py) | [model](https://download.openmmlab.com/mmgen/pe_in_gans/mspie-stylegan2_c2_config-k_ffhq_256-512_b3x8_1100k_20210406_145105-6d8cc39f.pth) | +| ms-pie_stylegan2_c2_config-f | higher-resolution | 256, 512, 896 | 4.10 | 72.21 | 50.29 | [mspie-stylegan2-config-f_c2_8xb3-1100kiters_ffhq-256-896](/configs/positional_encoding_in_gans/mspie-stylegan2-config-f_c2_8xb3-1100kiters_ffhq-256-896.py) | [model](https://download.openmmlab.com/mmgen/pe_in_gans/mspie-stylegan2_c2_config-f_ffhq_256-896_b3x8_1100k_20210406_144943-6c18ad5d.pth) | +| ms-pie_stylegan2_c1_config-f | higher-resolution | 256, 512, 1024 | 6.24 | 71.79 | 49.92 | [mspie-stylegan2-config-f_c1_8xb2-1600kiters_ffhq-256-1024](/configs/positional_encoding_in_gans/mspie-stylegan2-config-f_c1_8xb2-1600kiters_ffhq-256-1024.py) | [model](https://download.openmmlab.com/mmgen/pe_in_gans/mspie-stylegan2_c1_config-f_ffhq_256-1024_b2x8_1600k_20210406_144716-81cbdc96.pth) | Note that we report the FID and P&R metric (FFHQ dataset) in the largest scale. @@ -68,14 +68,14 @@ Note that we report the FID and P&R metric (FFHQ dataset) in the largest scale. | Model | Data | Num Scales | Config | Download | | :-----------------------------: | :-------------------------------------------------: | :--------: | :---------------------------------------------------: | :-----------------------------------------------------: | -| SinGAN + no pad | [balloons.png](https://download.openmmlab.com/mmgen/dataset/singan/balloons.png) | 8 | [config](https://github.com/open-mmlab/mmediting/blob/master/configs/positional_encoding_in_gans/singan_interp-pad_balloons.py) | [ckpt](https://download.openmmlab.com/mmgen/pe_in_gans/singan_interp-pad_balloons_20210406_180014-96f51555.pth) \| [pkl](https://download.openmmlab.com/mmgen/pe_in_gans/singan_interp-pad_balloons_20210406_180014-96f51555.pkl) | -| SinGAN + no pad + no bn in disc | [balloons.png](https://download.openmmlab.com/mmgen/dataset/singan/balloons.png) | 8 | [config](https://github.com/open-mmlab/mmediting/blob/master/configs/positional_encoding_in_gans/singan_interp-pad_disc-nobn_balloons.py) | [ckpt](https://download.openmmlab.com/mmgen/pe_in_gans/singan_interp-pad_disc-nobn_balloons_20210406_180059-7d63e65d.pth) \| [pkl](https://download.openmmlab.com/mmgen/pe_in_gans/singan_interp-pad_disc-nobn_balloons_20210406_180059-7d63e65d.pkl) | -| SinGAN + no pad + no bn in disc | [fish.jpg](https://download.openmmlab.com/mmgen/dataset/singan/fish-crop.jpg) | 10 | [config](https://github.com/open-mmlab/mmediting/blob/master/configs/positional_encoding_in_gans/singan_interp-pad_disc-nobn_fish.py) | [ckpt](https://download.openmmlab.com/mmgen/pe_in_gans/singan_interp-pad_disc-nobn_fis_20210406_175720-9428517a.pth) \| [pkl](https://download.openmmlab.com/mmgen/pe_in_gans/singan_interp-pad_disc-nobn_fis_20210406_175720-9428517a.pkl) | -| SinGAN + CSG | [fish.jpg](https://download.openmmlab.com/mmgen/dataset/singan/fish-crop.jpg) | 10 | [config](https://github.com/open-mmlab/mmediting/blob/master/configs/positional_encoding_in_gans/singan-csg_fish.py) | [ckpt](https://download.openmmlab.com/mmgen/pe_in_gans/singan_csg_fis_20210406_175532-f0ec7b61.pth) \| [pkl](https://download.openmmlab.com/mmgen/pe_in_gans/singan_csg_fis_20210406_175532-f0ec7b61.pkl) | -| SinGAN + CSG | [bohemian.png](https://download.openmmlab.com/mmgen/dataset/singan/bohemian.png) | 10 | [config](https://github.com/open-mmlab/mmediting/blob/master/configs/positional_encoding_in_gans/singan-csg_bohemian.py) | [ckpt](https://download.openmmlab.com/mmgen/pe_in_gans/singan_csg_bohemian_20210407_195455-5ed56db2.pth) \| [pkl](https://download.openmmlab.com/mmgen/pe_in_gans/singan_csg_bohemian_20210407_195455-5ed56db2.pkl) | -| SinGAN + SPE-dim4 | [fish.jpg](https://download.openmmlab.com/mmgen/dataset/singan/fish-crop.jpg) | 10 | [config](https://github.com/open-mmlab/mmediting/blob/master/configs/positional_encoding_in_gans/singan_spe-dim4_fish.py) | [ckpt](https://download.openmmlab.com/mmgen/pe_in_gans/singan_spe-dim4_fish_20210406_175933-f483a7e3.pth) \| [pkl](https://download.openmmlab.com/mmgen/pe_in_gans/singan_spe-dim4_fish_20210406_175933-f483a7e3.pkl) | -| SinGAN + SPE-dim4 | [bohemian.png](https://download.openmmlab.com/mmgen/dataset/singan/bohemian.png) | 10 | [config](https://github.com/open-mmlab/mmediting/blob/master/configs/positional_encoding_in_gans/singan_spe-dim4_bohemian.py) | [ckpt](https://download.openmmlab.com/mmgen/pe_in_gans/singan_spe-dim4_bohemian_20210406_175820-6e484a35.pth) \| [pkl](https://download.openmmlab.com/mmgen/pe_in_gans/singan_spe-dim4_bohemian_20210406_175820-6e484a35.pkl) | -| SinGAN + SPE-dim8 | [bohemian.png](https://download.openmmlab.com/mmgen/dataset/singan/bohemian.png) | 10 | [config](https://github.com/open-mmlab/mmediting/blob/master/configs/positional_encoding_in_gans/singan_spe-dim8_bohemian.py) | [ckpt](https://download.openmmlab.com/mmgen/pe_in_gans/singan_spe-dim8_bohemian_20210406_175858-7faa50f3.pth) \| [pkl](https://download.openmmlab.com/mmgen/pe_in_gans/singan_spe-dim8_bohemian_20210406_175858-7faa50f3.pkl) | +| SinGAN + no pad | [balloons.png](https://download.openmmlab.com/mmgen/dataset/singan/balloons.png) | 8 | [singan_interp-pad_balloons](/configs/positional_encoding_in_gans/singan_interp-pad_balloons.py) | [ckpt](https://download.openmmlab.com/mmgen/pe_in_gans/singan_interp-pad_balloons_20210406_180014-96f51555.pth) \| [pkl](https://download.openmmlab.com/mmgen/pe_in_gans/singan_interp-pad_balloons_20210406_180014-96f51555.pkl) | +| SinGAN + no pad + no bn in disc | [balloons.png](https://download.openmmlab.com/mmgen/dataset/singan/balloons.png) | 8 | [singan_interp-pad_disc-nobn_balloons](/configs/positional_encoding_in_gans/singan_interp-pad_disc-nobn_balloons.py) | [ckpt](https://download.openmmlab.com/mmgen/pe_in_gans/singan_interp-pad_disc-nobn_balloons_20210406_180059-7d63e65d.pth) \| [pkl](https://download.openmmlab.com/mmgen/pe_in_gans/singan_interp-pad_disc-nobn_balloons_20210406_180059-7d63e65d.pkl) | +| SinGAN + no pad + no bn in disc | [fish.jpg](https://download.openmmlab.com/mmgen/dataset/singan/fish-crop.jpg) | 10 | [singan_interp-pad_disc-nobn_fish](/configs/positional_encoding_in_gans/singan_interp-pad_disc-nobn_fish.py) | [ckpt](https://download.openmmlab.com/mmgen/pe_in_gans/singan_interp-pad_disc-nobn_fis_20210406_175720-9428517a.pth) \| [pkl](https://download.openmmlab.com/mmgen/pe_in_gans/singan_interp-pad_disc-nobn_fis_20210406_175720-9428517a.pkl) | +| SinGAN + CSG | [fish.jpg](https://download.openmmlab.com/mmgen/dataset/singan/fish-crop.jpg) | 10 | [singan-csg_fish](/configs/positional_encoding_in_gans/singan-csg_fish.py) | [ckpt](https://download.openmmlab.com/mmgen/pe_in_gans/singan_csg_fis_20210406_175532-f0ec7b61.pth) \| [pkl](https://download.openmmlab.com/mmgen/pe_in_gans/singan_csg_fis_20210406_175532-f0ec7b61.pkl) | +| SinGAN + CSG | [bohemian.png](https://download.openmmlab.com/mmgen/dataset/singan/bohemian.png) | 10 | [singan-csg_bohemian](/configs/positional_encoding_in_gans/singan-csg_bohemian.py) | [ckpt](https://download.openmmlab.com/mmgen/pe_in_gans/singan_csg_bohemian_20210407_195455-5ed56db2.pth) \| [pkl](https://download.openmmlab.com/mmgen/pe_in_gans/singan_csg_bohemian_20210407_195455-5ed56db2.pkl) | +| SinGAN + SPE-dim4 | [fish.jpg](https://download.openmmlab.com/mmgen/dataset/singan/fish-crop.jpg) | 10 | [singan_spe-dim4_fish](/configs/positional_encoding_in_gans/singan_spe-dim4_fish.py) | [ckpt](https://download.openmmlab.com/mmgen/pe_in_gans/singan_spe-dim4_fish_20210406_175933-f483a7e3.pth) \| [pkl](https://download.openmmlab.com/mmgen/pe_in_gans/singan_spe-dim4_fish_20210406_175933-f483a7e3.pkl) | +| SinGAN + SPE-dim4 | [bohemian.png](https://download.openmmlab.com/mmgen/dataset/singan/bohemian.png) | 10 | [singan_spe-dim4_bohemian](/configs/positional_encoding_in_gans/singan_spe-dim4_bohemian.py) | [ckpt](https://download.openmmlab.com/mmgen/pe_in_gans/singan_spe-dim4_bohemian_20210406_175820-6e484a35.pth) \| [pkl](https://download.openmmlab.com/mmgen/pe_in_gans/singan_spe-dim4_bohemian_20210406_175820-6e484a35.pkl) | +| SinGAN + SPE-dim8 | [bohemian.png](https://download.openmmlab.com/mmgen/dataset/singan/bohemian.png) | 10 | [singan_spe-dim8_bohemian](/configs/positional_encoding_in_gans/singan_spe-dim8_bohemian.py) | [ckpt](https://download.openmmlab.com/mmgen/pe_in_gans/singan_spe-dim8_bohemian_20210406_175858-7faa50f3.pth) \| [pkl](https://download.openmmlab.com/mmgen/pe_in_gans/singan_spe-dim8_bohemian_20210406_175858-7faa50f3.pkl) | ## Citation diff --git a/configs/positional_encoding_in_gans/metafile.yml b/configs/positional_encoding_in_gans/metafile.yml index cd4c34f28b..5a300369db 100644 --- a/configs/positional_encoding_in_gans/metafile.yml +++ b/configs/positional_encoding_in_gans/metafile.yml @@ -7,7 +7,7 @@ Collections: - https://openaccess.thecvf.com/content/CVPR2021/html/Xu_Positional_Encoding_As_Spatial_Inductive_Bias_in_GANs_CVPR_2021_paper.html README: configs/positional_encoding_in_gans/README.md Models: -- Config: https://github.com/open-mmlab/mmediting/blob/master/configs/positional_encoding_in_gans/stylegan2_c2_8xb3-1100kiters_ffhq-256x256.py +- Config: configs/positional_encoding_in_gans/stylegan2_c2_8xb3-1100kiters_ffhq-256x256.py In Collection: Positional Encoding in GANs Metadata: Training Data: FFHQ @@ -22,7 +22,7 @@ Models: Scales: 256.0 Task: Positional_encoding_in_gans Weights: https://download.openmmlab.com/mmgen/pe_in_gans/stylegan2_c2_config-a_ffhq_256x256_b3x8_1100k_20210406_145127-71d9634b.pth -- Config: https://github.com/open-mmlab/mmediting/blob/master/configs/positional_encoding_in_gans/stylegan2_c2_8xb3-1100kiters_ffhq-512x512.py +- Config: configs/positional_encoding_in_gans/stylegan2_c2_8xb3-1100kiters_ffhq-512x512.py In Collection: Positional Encoding in GANs Metadata: Training Data: FFHQ @@ -37,7 +37,7 @@ Models: Scales: 512.0 Task: Positional_encoding_in_gans Weights: https://download.openmmlab.com/mmgen/pe_in_gans/stylegan2_c2_config-b_ffhq_512x512_b3x8_1100k_20210406_145142-e85e5cf4.pth -- Config: https://github.com/open-mmlab/mmediting/blob/master/configs/positional_encoding_in_gans/mspie-stylegan2-config-c_c2_8xb3-1100kiters_ffhq-256-512.py +- Config: configs/positional_encoding_in_gans/mspie-stylegan2-config-c_c2_8xb3-1100kiters_ffhq-256-512.py In Collection: Positional Encoding in GANs Metadata: Training Data: FFHQ @@ -51,7 +51,7 @@ Models: SSIM: 55.77 Task: Positional_encoding_in_gans Weights: https://download.openmmlab.com/mmgen/pe_in_gans/mspie-stylegan2_c2_config-c_ffhq_256-512_b3x8_1100k_20210406_144824-9f43b07d.pth -- Config: https://github.com/open-mmlab/mmediting/blob/master/configs/positional_encoding_in_gans/mspie-stylegan2-config-d_c2_8xb3-1100kiters_ffhq-256-512.py +- Config: configs/positional_encoding_in_gans/mspie-stylegan2-config-d_c2_8xb3-1100kiters_ffhq-256-512.py In Collection: Positional Encoding in GANs Metadata: Training Data: FFHQ @@ -65,7 +65,7 @@ Models: SSIM: 56.16 Task: Positional_encoding_in_gans Weights: https://download.openmmlab.com/mmgen/pe_in_gans/mspie-stylegan2_c2_config-d_ffhq_256-512_b3x8_1100k_20210406_144840-dbefacf6.pth -- Config: https://github.com/open-mmlab/mmediting/blob/master/configs/positional_encoding_in_gans/mspie-stylegan2-config-e_c2_8xb3-1100kiters_ffhq-256-512.py +- Config: configs/positional_encoding_in_gans/mspie-stylegan2-config-e_c2_8xb3-1100kiters_ffhq-256-512.py In Collection: Positional Encoding in GANs Metadata: Training Data: FFHQ @@ -79,7 +79,7 @@ Models: SSIM: 56.88 Task: Positional_encoding_in_gans Weights: https://download.openmmlab.com/mmgen/pe_in_gans/mspie-stylegan2_c2_config-e_ffhq_256-512_b3x8_1100k_20210406_144906-98d5a42a.pth -- Config: https://github.com/open-mmlab/mmediting/blob/master/configs/positional_encoding_in_gans/mspie-stylegan2-config-f_c2_8xb3-1100kiters_ffhq-256-512.py +- Config: configs/positional_encoding_in_gans/mspie-stylegan2-config-f_c2_8xb3-1100kiters_ffhq-256-512.py In Collection: Positional Encoding in GANs Metadata: Training Data: FFHQ @@ -93,7 +93,7 @@ Models: SSIM: 57.32 Task: Positional_encoding_in_gans Weights: https://download.openmmlab.com/mmgen/pe_in_gans/mspie-stylegan2_c2_config-f_ffhq_256-512_b3x8_1100k_20210406_144927-4f4d5391.pth -- Config: https://github.com/open-mmlab/mmediting/blob/master/configs/positional_encoding_in_gans/mspie-stylegan2-config-g_c1_8xb3-1100kiters_ffhq-256-512.py +- Config: configs/positional_encoding_in_gans/mspie-stylegan2-config-g_c1_8xb3-1100kiters_ffhq-256-512.py In Collection: Positional Encoding in GANs Metadata: Training Data: FFHQ @@ -107,7 +107,7 @@ Models: SSIM: 56.45 Task: Positional_encoding_in_gans Weights: https://download.openmmlab.com/mmgen/pe_in_gans/mspie-stylegan2_c1_config-g_ffhq_256-512_b3x8_1100k_20210406_144758-2df61752.pth -- Config: https://github.com/open-mmlab/mmediting/blob/master/configs/positional_encoding_in_gans/mspie-stylegan2-config-h_c2_8xb3-1100kiters_ffhq-256-512.py +- Config: configs/positional_encoding_in_gans/mspie-stylegan2-config-h_c2_8xb3-1100kiters_ffhq-256-512.py In Collection: Positional Encoding in GANs Metadata: Training Data: FFHQ @@ -121,7 +121,7 @@ Models: SSIM: 54.35 Task: Positional_encoding_in_gans Weights: https://download.openmmlab.com/mmgen/pe_in_gans/mspie-stylegan2_c2_config-h_ffhq_256-512_b3x8_1100k_20210406_145006-84cf3f48.pth -- Config: https://github.com/open-mmlab/mmediting/blob/master/configs/positional_encoding_in_gans/mspie-stylegan2-config-i_c2_8xb3-1100kiters_ffhq-256-512.py +- Config: configs/positional_encoding_in_gans/mspie-stylegan2-config-i_c2_8xb3-1100kiters_ffhq-256-512.py In Collection: Positional Encoding in GANs Metadata: Training Data: FFHQ @@ -135,7 +135,7 @@ Models: SSIM: 54.71 Task: Positional_encoding_in_gans Weights: https://download.openmmlab.com/mmgen/pe_in_gans/mspie-stylegan2_c2_config-i_ffhq_256-512_b3x8_1100k_20210406_145023-c2b0accf.pth -- Config: https://github.com/open-mmlab/mmediting/blob/master/configs/positional_encoding_in_gans/mspie-stylegan2-config-j_c2_8xb3-1100kiters_ffhq-256-512.py +- Config: configs/positional_encoding_in_gans/mspie-stylegan2-config-j_c2_8xb3-1100kiters_ffhq-256-512.py In Collection: Positional Encoding in GANs Metadata: Training Data: FFHQ @@ -149,7 +149,7 @@ Models: SSIM: 54.63 Task: Positional_encoding_in_gans Weights: https://download.openmmlab.com/mmgen/pe_in_gans/mspie-stylegan2_c2_config-j_ffhq_256-512_b3x8_1100k_20210406_145044-c407481b.pth -- Config: https://github.com/open-mmlab/mmediting/blob/master/configs/positional_encoding_in_gans/mspie-stylegan2-config-k_c2_8xb3-1100kiters_ffhq-256-512.py +- Config: configs/positional_encoding_in_gans/mspie-stylegan2-config-k_c2_8xb3-1100kiters_ffhq-256-512.py In Collection: Positional Encoding in GANs Metadata: Training Data: FFHQ @@ -163,7 +163,7 @@ Models: SSIM: 51.07 Task: Positional_encoding_in_gans Weights: https://download.openmmlab.com/mmgen/pe_in_gans/mspie-stylegan2_c2_config-k_ffhq_256-512_b3x8_1100k_20210406_145105-6d8cc39f.pth -- Config: https://github.com/open-mmlab/mmediting/blob/master/configs/positional_encoding_in_gans/mspie-stylegan2-config-f_c2_8xb3-1100kiters_ffhq-256-896.py +- Config: configs/positional_encoding_in_gans/mspie-stylegan2-config-f_c2_8xb3-1100kiters_ffhq-256-896.py In Collection: Positional Encoding in GANs Metadata: Training Data: FFHQ @@ -177,7 +177,7 @@ Models: SSIM: 50.29 Task: Positional_encoding_in_gans Weights: https://download.openmmlab.com/mmgen/pe_in_gans/mspie-stylegan2_c2_config-f_ffhq_256-896_b3x8_1100k_20210406_144943-6c18ad5d.pth -- Config: https://github.com/open-mmlab/mmediting/blob/master/configs/positional_encoding_in_gans/mspie-stylegan2-config-f_c1_8xb2-1600kiters_ffhq-256-1024.py +- Config: configs/positional_encoding_in_gans/mspie-stylegan2-config-f_c1_8xb2-1600kiters_ffhq-256-1024.py In Collection: Positional Encoding in GANs Metadata: Training Data: FFHQ @@ -191,7 +191,7 @@ Models: SSIM: 49.92 Task: Positional_encoding_in_gans Weights: https://download.openmmlab.com/mmgen/pe_in_gans/mspie-stylegan2_c1_config-f_ffhq_256-1024_b2x8_1600k_20210406_144716-81cbdc96.pth -- Config: https://github.com/open-mmlab/mmediting/tree/master/configs/positional_encoding_in_gans/stylegan2_c2_8xb3-1100kiters_ffhq-256x256.py +- Config: configs/positional_encoding_in_gans/stylegan2_c2_8xb3-1100kiters_ffhq-256x256.py In Collection: Positional Encoding in GANs Metadata: Training Data: FFHQ @@ -205,7 +205,7 @@ Models: Scales: 256.0 Task: Positional_encoding_in_gans Weights: https://download.openmmlab.com/mmgen/pe_in_gans/stylegan2_c2_config-a_ffhq_256x256_b3x8_1100k_20210406_145127-71d9634b.pth -- Config: https://github.com/open-mmlab/mmediting/tree/master/configs/positional_encoding_in_gans/stylegan2_c2_8xb3-1100kiters_ffhq-512x512.py +- Config: configs/positional_encoding_in_gans/stylegan2_c2_8xb3-1100kiters_ffhq-512x512.py In Collection: Positional Encoding in GANs Metadata: Training Data: FFHQ @@ -219,7 +219,7 @@ Models: Scales: 512.0 Task: Positional_encoding_in_gans Weights: https://download.openmmlab.com/mmgen/pe_in_gans/stylegan2_c2_config-b_ffhq_512x512_b3x8_1100k_20210406_145142-e85e5cf4.pth -- Config: https://github.com/open-mmlab/mmediting/tree/master/configs/positional_encoding_in_gans/mspie-stylegan2-config-c_c2_8xb3-1100kiters_ffhq-256-512.py +- Config: configs/positional_encoding_in_gans/mspie-stylegan2-config-c_c2_8xb3-1100kiters_ffhq-256-512.py In Collection: Positional Encoding in GANs Metadata: Training Data: FFHQ @@ -232,7 +232,7 @@ Models: Recall10k: 55.77 Task: Positional_encoding_in_gans Weights: https://download.openmmlab.com/mmgen/pe_in_gans/mspie-stylegan2_c2_config-c_ffhq_256-512_b3x8_1100k_20210406_144824-9f43b07d.pth -- Config: https://github.com/open-mmlab/mmediting/tree/master/configs/positional_encoding_in_gans/mspie-stylegan2-config-d_c2_8xb3-1100kiters_ffhq-256-512.py +- Config: configs/positional_encoding_in_gans/mspie-stylegan2-config-d_c2_8xb3-1100kiters_ffhq-256-512.py In Collection: Positional Encoding in GANs Metadata: Training Data: FFHQ @@ -245,7 +245,7 @@ Models: Recall10k: 56.16 Task: Positional_encoding_in_gans Weights: https://download.openmmlab.com/mmgen/pe_in_gans/mspie-stylegan2_c2_config-d_ffhq_256-512_b3x8_1100k_20210406_144840-dbefacf6.pth -- Config: https://github.com/open-mmlab/mmediting/tree/master/configs/positional_encoding_in_gans/mspie-stylegan2-config-e_c2_8xb3-1100kiters_ffhq-256-512.py +- Config: configs/positional_encoding_in_gans/mspie-stylegan2-config-e_c2_8xb3-1100kiters_ffhq-256-512.py In Collection: Positional Encoding in GANs Metadata: Training Data: FFHQ @@ -258,7 +258,7 @@ Models: Recall10k: 56.88 Task: Positional_encoding_in_gans Weights: https://download.openmmlab.com/mmgen/pe_in_gans/mspie-stylegan2_c2_config-e_ffhq_256-512_b3x8_1100k_20210406_144906-98d5a42a.pth -- Config: https://github.com/open-mmlab/mmediting/tree/master/configs/positional_encoding_in_gans/mspie-stylegan2-config-f_c2_8xb3-1100kiters_ffhq-256-512.py +- Config: configs/positional_encoding_in_gans/mspie-stylegan2-config-f_c2_8xb3-1100kiters_ffhq-256-512.py In Collection: Positional Encoding in GANs Metadata: Training Data: FFHQ @@ -271,7 +271,7 @@ Models: Recall10k: 57.32 Task: Positional_encoding_in_gans Weights: https://download.openmmlab.com/mmgen/pe_in_gans/mspie-stylegan2_c2_config-f_ffhq_256-512_b3x8_1100k_20210406_144927-4f4d5391.pth -- Config: https://github.com/open-mmlab/mmediting/tree/master/configs/positional_encoding_in_gans/mspie-stylegan2-config-g_c1_8xb3-1100kiters_ffhq-256-512.py +- Config: configs/positional_encoding_in_gans/mspie-stylegan2-config-g_c1_8xb3-1100kiters_ffhq-256-512.py In Collection: Positional Encoding in GANs Metadata: Training Data: FFHQ @@ -284,7 +284,7 @@ Models: Recall10k: 56.45 Task: Positional_encoding_in_gans Weights: https://download.openmmlab.com/mmgen/pe_in_gans/mspie-stylegan2_c1_config-g_ffhq_256-512_b3x8_1100k_20210406_144758-2df61752.pth -- Config: https://github.com/open-mmlab/mmediting/tree/master/configs/positional_encoding_in_gans/mspie-stylegan2-config-h_c2_8xb3-1100kiters_ffhq-256-512.py +- Config: configs/positional_encoding_in_gans/mspie-stylegan2-config-h_c2_8xb3-1100kiters_ffhq-256-512.py In Collection: Positional Encoding in GANs Metadata: Training Data: FFHQ @@ -297,7 +297,7 @@ Models: Recall10k: 54.35 Task: Positional_encoding_in_gans Weights: https://download.openmmlab.com/mmgen/pe_in_gans/mspie-stylegan2_c2_config-h_ffhq_256-512_b3x8_1100k_20210406_145006-84cf3f48.pth -- Config: https://github.com/open-mmlab/mmediting/tree/master/configs/positional_encoding_in_gans/mspie-stylegan2-config-i_c2_8xb3-1100kiters_ffhq-256-512.py +- Config: configs/positional_encoding_in_gans/mspie-stylegan2-config-i_c2_8xb3-1100kiters_ffhq-256-512.py In Collection: Positional Encoding in GANs Metadata: Training Data: FFHQ @@ -310,7 +310,7 @@ Models: Recall10k: 54.71 Task: Positional_encoding_in_gans Weights: https://download.openmmlab.com/mmgen/pe_in_gans/mspie-stylegan2_c2_config-i_ffhq_256-512_b3x8_1100k_20210406_145023-c2b0accf.pth -- Config: https://github.com/open-mmlab/mmediting/tree/master/configs/positional_encoding_in_gans/mspie-stylegan2-config-j_c2_8xb3-1100kiters_ffhq-256-512.py +- Config: configs/positional_encoding_in_gans/mspie-stylegan2-config-j_c2_8xb3-1100kiters_ffhq-256-512.py In Collection: Positional Encoding in GANs Metadata: Training Data: FFHQ @@ -323,7 +323,7 @@ Models: Recall10k: 54.63 Task: Positional_encoding_in_gans Weights: https://download.openmmlab.com/mmgen/pe_in_gans/mspie-stylegan2_c2_config-j_ffhq_256-512_b3x8_1100k_20210406_145044-c407481b.pth -- Config: https://github.com/open-mmlab/mmediting/tree/master/configs/positional_encoding_in_gans/mspie-stylegan2-config-k_c2_8xb3-1100kiters_ffhq-256-512.py +- Config: configs/positional_encoding_in_gans/mspie-stylegan2-config-k_c2_8xb3-1100kiters_ffhq-256-512.py In Collection: Positional Encoding in GANs Metadata: Training Data: FFHQ @@ -336,7 +336,7 @@ Models: Recall10k: 51.07 Task: Positional_encoding_in_gans Weights: https://download.openmmlab.com/mmgen/pe_in_gans/mspie-stylegan2_c2_config-k_ffhq_256-512_b3x8_1100k_20210406_145105-6d8cc39f.pth -- Config: https://github.com/open-mmlab/mmediting/tree/master/configs/positional_encoding_in_gans/mspie-stylegan2-config-f_c2_8xb3-1100kiters_ffhq-256-896.py +- Config: configs/positional_encoding_in_gans/mspie-stylegan2-config-f_c2_8xb3-1100kiters_ffhq-256-896.py In Collection: Positional Encoding in GANs Metadata: Training Data: FFHQ @@ -349,7 +349,7 @@ Models: Recall10k: 50.29 Task: Positional_encoding_in_gans Weights: https://download.openmmlab.com/mmgen/pe_in_gans/mspie-stylegan2_c2_config-f_ffhq_256-896_b3x8_1100k_20210406_144943-6c18ad5d.pth -- Config: https://github.com/open-mmlab/mmediting/tree/master/configs/positional_encoding_in_gans/mspie-stylegan2-config-f_c1_8xb2-1600kiters_ffhq-256-1024.py +- Config: configs/positional_encoding_in_gans/mspie-stylegan2-config-f_c1_8xb2-1600kiters_ffhq-256-1024.py In Collection: Positional Encoding in GANs Metadata: Training Data: FFHQ @@ -362,7 +362,7 @@ Models: Recall10k: 49.92 Task: Positional_encoding_in_gans Weights: https://download.openmmlab.com/mmgen/pe_in_gans/mspie-stylegan2_c1_config-f_ffhq_256-1024_b2x8_1600k_20210406_144716-81cbdc96.pth -- Config: https://github.com/open-mmlab/mmediting/blob/master/configs/positional_encoding_in_gans/singan_interp-pad_balloons.py +- Config: configs/positional_encoding_in_gans/singan_interp-pad_balloons.py In Collection: Positional Encoding in GANs Metadata: Training Data: Others @@ -373,7 +373,7 @@ Models: Num Scales: 8.0 Task: Positional_encoding_in_gans Weights: https://download.openmmlab.com/mmgen/pe_in_gans/singan_interp-pad_balloons_20210406_180014-96f51555.pth -- Config: https://github.com/open-mmlab/mmediting/blob/master/configs/positional_encoding_in_gans/singan_interp-pad_disc-nobn_balloons.py +- Config: configs/positional_encoding_in_gans/singan_interp-pad_disc-nobn_balloons.py In Collection: Positional Encoding in GANs Metadata: Training Data: Others @@ -384,7 +384,7 @@ Models: Num Scales: 8.0 Task: Positional_encoding_in_gans Weights: https://download.openmmlab.com/mmgen/pe_in_gans/singan_interp-pad_disc-nobn_balloons_20210406_180059-7d63e65d.pth -- Config: https://github.com/open-mmlab/mmediting/blob/master/configs/positional_encoding_in_gans/singan_interp-pad_disc-nobn_fish.py +- Config: configs/positional_encoding_in_gans/singan_interp-pad_disc-nobn_fish.py In Collection: Positional Encoding in GANs Metadata: Training Data: Others @@ -395,7 +395,7 @@ Models: Num Scales: 10.0 Task: Positional_encoding_in_gans Weights: https://download.openmmlab.com/mmgen/pe_in_gans/singan_interp-pad_disc-nobn_fis_20210406_175720-9428517a.pth -- Config: https://github.com/open-mmlab/mmediting/blob/master/configs/positional_encoding_in_gans/singan-csg_fish.py +- Config: configs/positional_encoding_in_gans/singan-csg_fish.py In Collection: Positional Encoding in GANs Metadata: Training Data: Others @@ -406,7 +406,7 @@ Models: Num Scales: 10.0 Task: Positional_encoding_in_gans Weights: https://download.openmmlab.com/mmgen/pe_in_gans/singan_csg_fis_20210406_175532-f0ec7b61.pth -- Config: https://github.com/open-mmlab/mmediting/blob/master/configs/positional_encoding_in_gans/singan-csg_bohemian.py +- Config: configs/positional_encoding_in_gans/singan-csg_bohemian.py In Collection: Positional Encoding in GANs Metadata: Training Data: Others @@ -417,7 +417,7 @@ Models: Num Scales: 10.0 Task: Positional_encoding_in_gans Weights: https://download.openmmlab.com/mmgen/pe_in_gans/singan_csg_bohemian_20210407_195455-5ed56db2.pth -- Config: https://github.com/open-mmlab/mmediting/blob/master/configs/positional_encoding_in_gans/singan_spe-dim4_fish.py +- Config: configs/positional_encoding_in_gans/singan_spe-dim4_fish.py In Collection: Positional Encoding in GANs Metadata: Training Data: Others @@ -428,7 +428,7 @@ Models: Num Scales: 10.0 Task: Positional_encoding_in_gans Weights: https://download.openmmlab.com/mmgen/pe_in_gans/singan_spe-dim4_fish_20210406_175933-f483a7e3.pth -- Config: https://github.com/open-mmlab/mmediting/blob/master/configs/positional_encoding_in_gans/singan_spe-dim4_bohemian.py +- Config: configs/positional_encoding_in_gans/singan_spe-dim4_bohemian.py In Collection: Positional Encoding in GANs Metadata: Training Data: Others @@ -439,7 +439,7 @@ Models: Num Scales: 10.0 Task: Positional_encoding_in_gans Weights: https://download.openmmlab.com/mmgen/pe_in_gans/singan_spe-dim4_bohemian_20210406_175820-6e484a35.pth -- Config: https://github.com/open-mmlab/mmediting/blob/master/configs/positional_encoding_in_gans/singan_spe-dim8_bohemian.py +- Config: configs/positional_encoding_in_gans/singan_spe-dim8_bohemian.py In Collection: Positional Encoding in GANs Metadata: Training Data: Others diff --git a/configs/positional_encoding_in_gans/mspie-stylegan2-config-c_c2_8xb3-1100kiters_ffhq-256-512.py b/configs/positional_encoding_in_gans/mspie-stylegan2-config-c_c2_8xb3-1100kiters_ffhq-256-512.py index 5c62fdbc67..bd629aa3b9 100644 --- a/configs/positional_encoding_in_gans/mspie-stylegan2-config-c_c2_8xb3-1100kiters_ffhq-256-512.py +++ b/configs/positional_encoding_in_gans/mspie-stylegan2-config-c_c2_8xb3-1100kiters_ffhq-256-512.py @@ -76,8 +76,7 @@ fixed_input=True, vis_kwargs_list=dict(type='GAN', name='fake_img')) ] -default_hooks = dict( - checkpoint=dict(save_best=['FID-Full-50k/fid'], rule=['less'])) +default_hooks = dict(checkpoint=dict(save_best=['FID-50k/fid'], rule=['less'])) # METRICS metrics = [ dict( diff --git a/configs/positional_encoding_in_gans/mspie-stylegan2-config-d_c2_8xb3-1100kiters_ffhq-256-512.py b/configs/positional_encoding_in_gans/mspie-stylegan2-config-d_c2_8xb3-1100kiters_ffhq-256-512.py index 5d89ec7c59..30d79a0277 100644 --- a/configs/positional_encoding_in_gans/mspie-stylegan2-config-d_c2_8xb3-1100kiters_ffhq-256-512.py +++ b/configs/positional_encoding_in_gans/mspie-stylegan2-config-d_c2_8xb3-1100kiters_ffhq-256-512.py @@ -75,8 +75,7 @@ fixed_input=True, vis_kwargs_list=dict(type='GAN', name='fake_img')) ] -default_hooks = dict( - checkpoint=dict(save_best=['FID-Full-50k/fid'], rule=['less'])) +default_hooks = dict(checkpoint=dict(save_best=['FID-50k/fid'], rule=['less'])) # METRICS metrics = [ dict( diff --git a/configs/positional_encoding_in_gans/mspie-stylegan2-config-e_c2_8xb3-1100kiters_ffhq-256-512.py b/configs/positional_encoding_in_gans/mspie-stylegan2-config-e_c2_8xb3-1100kiters_ffhq-256-512.py index 05800d3260..77e66ac2ae 100644 --- a/configs/positional_encoding_in_gans/mspie-stylegan2-config-e_c2_8xb3-1100kiters_ffhq-256-512.py +++ b/configs/positional_encoding_in_gans/mspie-stylegan2-config-e_c2_8xb3-1100kiters_ffhq-256-512.py @@ -81,8 +81,7 @@ fixed_input=True, vis_kwargs_list=dict(type='GAN', name='fake_img')) ] -default_hooks = dict( - checkpoint=dict(save_best=['FID-Full-50k/fid'], rule=['less'])) +default_hooks = dict(checkpoint=dict(save_best=['FID-50k/fid'], rule=['less'])) # METRICS metrics = [ dict( diff --git a/configs/positional_encoding_in_gans/mspie-stylegan2-config-f_c1_8xb2-1600kiters_ffhq-256-1024.py b/configs/positional_encoding_in_gans/mspie-stylegan2-config-f_c1_8xb2-1600kiters_ffhq-256-1024.py index fb766571f5..f1f74c83ed 100644 --- a/configs/positional_encoding_in_gans/mspie-stylegan2-config-f_c1_8xb2-1600kiters_ffhq-256-1024.py +++ b/configs/positional_encoding_in_gans/mspie-stylegan2-config-f_c1_8xb2-1600kiters_ffhq-256-1024.py @@ -79,8 +79,7 @@ fixed_input=True, vis_kwargs_list=dict(type='GAN', name='fake_img')) ] -default_hooks = dict( - checkpoint=dict(save_best=['FID-Full-50k/fid'], rule=['less'])) +default_hooks = dict(checkpoint=dict(save_best=['FID-50k/fid'], rule=['less'])) # METRICS metrics = [ dict( diff --git a/configs/positional_encoding_in_gans/mspie-stylegan2-config-f_c2_8xb3-1100kiters_ffhq-256-512.py b/configs/positional_encoding_in_gans/mspie-stylegan2-config-f_c2_8xb3-1100kiters_ffhq-256-512.py index 8727ababea..23d3c1d6bd 100644 --- a/configs/positional_encoding_in_gans/mspie-stylegan2-config-f_c2_8xb3-1100kiters_ffhq-256-512.py +++ b/configs/positional_encoding_in_gans/mspie-stylegan2-config-f_c2_8xb3-1100kiters_ffhq-256-512.py @@ -79,8 +79,7 @@ fixed_input=True, vis_kwargs_list=dict(type='GAN', name='fake_img')) ] -default_hooks = dict( - checkpoint=dict(save_best=['FID-Full-50k/fid'], rule=['less'])) +default_hooks = dict(checkpoint=dict(save_best=['FID-50k/fid'], rule=['less'])) # METRICS metrics = [ dict( diff --git a/configs/positional_encoding_in_gans/mspie-stylegan2-config-f_c2_8xb3-1100kiters_ffhq-256-896.py b/configs/positional_encoding_in_gans/mspie-stylegan2-config-f_c2_8xb3-1100kiters_ffhq-256-896.py index 9a6129d253..636323d1ef 100644 --- a/configs/positional_encoding_in_gans/mspie-stylegan2-config-f_c2_8xb3-1100kiters_ffhq-256-896.py +++ b/configs/positional_encoding_in_gans/mspie-stylegan2-config-f_c2_8xb3-1100kiters_ffhq-256-896.py @@ -79,8 +79,7 @@ fixed_input=True, vis_kwargs_list=dict(type='GAN', name='fake_img')) ] -default_hooks = dict( - checkpoint=dict(save_best=['FID-Full-50k/fid'], rule=['less'])) +default_hooks = dict(checkpoint=dict(save_best=['FID-50k/fid'], rule=['less'])) # METRICS metrics = [ dict( diff --git a/configs/positional_encoding_in_gans/mspie-stylegan2-config-g_c1_8xb3-1100kiters_ffhq-256-512.py b/configs/positional_encoding_in_gans/mspie-stylegan2-config-g_c1_8xb3-1100kiters_ffhq-256-512.py index 51d8d304dd..a5ec4e1304 100644 --- a/configs/positional_encoding_in_gans/mspie-stylegan2-config-g_c1_8xb3-1100kiters_ffhq-256-512.py +++ b/configs/positional_encoding_in_gans/mspie-stylegan2-config-g_c1_8xb3-1100kiters_ffhq-256-512.py @@ -83,8 +83,7 @@ fixed_input=True, vis_kwargs_list=dict(type='GAN', name='fake_img')) ] -default_hooks = dict( - checkpoint=dict(save_best=['FID-Full-50k/fid'], rule=['less'])) +default_hooks = dict(checkpoint=dict(save_best=['FID-50k/fid'], rule=['less'])) # METRICS metrics = [ dict( diff --git a/configs/positional_encoding_in_gans/mspie-stylegan2-config-h_c2_8xb3-1100kiters_ffhq-256-512.py b/configs/positional_encoding_in_gans/mspie-stylegan2-config-h_c2_8xb3-1100kiters_ffhq-256-512.py index 407a420a9c..9ba5d9001d 100644 --- a/configs/positional_encoding_in_gans/mspie-stylegan2-config-h_c2_8xb3-1100kiters_ffhq-256-512.py +++ b/configs/positional_encoding_in_gans/mspie-stylegan2-config-h_c2_8xb3-1100kiters_ffhq-256-512.py @@ -78,8 +78,7 @@ fixed_input=True, vis_kwargs_list=dict(type='GAN', name='fake_img')) ] -default_hooks = dict( - checkpoint=dict(save_best=['FID-Full-50k/fid'], rule=['less'])) +default_hooks = dict(checkpoint=dict(save_best=['FID-50k/fid'], rule=['less'])) # METRICS metrics = [ dict( diff --git a/configs/positional_encoding_in_gans/mspie-stylegan2-config-i_c2_8xb3-1100kiters_ffhq-256-512.py b/configs/positional_encoding_in_gans/mspie-stylegan2-config-i_c2_8xb3-1100kiters_ffhq-256-512.py index 664eb19cd8..7af8a8e78e 100644 --- a/configs/positional_encoding_in_gans/mspie-stylegan2-config-i_c2_8xb3-1100kiters_ffhq-256-512.py +++ b/configs/positional_encoding_in_gans/mspie-stylegan2-config-i_c2_8xb3-1100kiters_ffhq-256-512.py @@ -77,8 +77,7 @@ fixed_input=True, vis_kwargs_list=dict(type='GAN', name='fake_img')) ] -default_hooks = dict( - checkpoint=dict(save_best=['FID-Full-50k/fid'], rule=['less'])) +default_hooks = dict(checkpoint=dict(save_best=['FID-50k/fid'], rule=['less'])) # METRICS metrics = [ dict( diff --git a/configs/positional_encoding_in_gans/mspie-stylegan2-config-j_c2_8xb3-1100kiters_ffhq-256-512.py b/configs/positional_encoding_in_gans/mspie-stylegan2-config-j_c2_8xb3-1100kiters_ffhq-256-512.py index 1b620af8f4..d51d5a88f8 100644 --- a/configs/positional_encoding_in_gans/mspie-stylegan2-config-j_c2_8xb3-1100kiters_ffhq-256-512.py +++ b/configs/positional_encoding_in_gans/mspie-stylegan2-config-j_c2_8xb3-1100kiters_ffhq-256-512.py @@ -83,8 +83,7 @@ fixed_input=True, vis_kwargs_list=dict(type='GAN', name='fake_img')) ] -default_hooks = dict( - checkpoint=dict(save_best=['FID-Full-50k/fid'], rule=['less'])) +default_hooks = dict(checkpoint=dict(save_best=['FID-50k/fid'], rule=['less'])) # METRICS metrics = [ dict( diff --git a/configs/positional_encoding_in_gans/mspie-stylegan2-config-k_c2_8xb3-1100kiters_ffhq-256-512.py b/configs/positional_encoding_in_gans/mspie-stylegan2-config-k_c2_8xb3-1100kiters_ffhq-256-512.py index 281afb77aa..28e7404532 100644 --- a/configs/positional_encoding_in_gans/mspie-stylegan2-config-k_c2_8xb3-1100kiters_ffhq-256-512.py +++ b/configs/positional_encoding_in_gans/mspie-stylegan2-config-k_c2_8xb3-1100kiters_ffhq-256-512.py @@ -82,8 +82,7 @@ fixed_input=True, vis_kwargs_list=dict(type='GAN', name='fake_img')) ] -default_hooks = dict( - checkpoint=dict(save_best=['FID-Full-50k/fid'], rule=['less'])) +default_hooks = dict(checkpoint=dict(save_best=['FID-50k/fid'], rule=['less'])) # METRICS metrics = [ dict( diff --git a/configs/styleganv2/README.md b/configs/styleganv2/README.md index 2a6d1faa6a..631ea0dbb4 100644 --- a/configs/styleganv2/README.md +++ b/configs/styleganv2/README.md @@ -28,14 +28,14 @@ The style-based GAN architecture (StyleGAN) yields state-of-the-art results in d | Model | Comment | FID50k | Precision50k | Recall50k | Config | Download | | :---------------------------------: | :-------------: | :----: | :----------: | :-------: | :----------------------------------------------------------: | :-------------------------------------------------------------: | -| stylegan2_config-f_ffhq_1024 | official weight | 2.8134 | 62.856 | 49.400 | [config](https://github.com/open-mmlab/mmediting/tree/master/configs/styleganv2/stylegan2_c2_8xb4_ffhq-1024x1024.py) | [model](https://download.openmmlab.com/mmgen/stylegan2/official_weights/stylegan2-ffhq-config-f-official_20210327_171224-bce9310c.pth) | -| stylegan2_config-f_lsun-car_384x512 | official weight | 5.4316 | 65.986 | 48.190 | [config](https://github.com/open-mmlab/mmediting/tree/master/configs/styleganv2/stylegan2_c2_8xb4_lsun-car-384x512.py) | [model](https://download.openmmlab.com/mmgen/stylegan2/official_weights/stylegan2-car-config-f-official_20210327_172340-8cfe053c.pth) | -| stylegan2_config-f_horse_256 | official weight | - | - | - | [config](https://github.com/open-mmlab/mmediting/tree/master/configs/styleganv2/stylegan2_c2_8xb4-800kiters_lsun-horse-256x256.py) | [model](https://download.openmmlab.com/mmgen/stylegan2/official_weights/stylegan2-horse-config-f-official_20210327_173203-ef3e69ca.pth) | -| stylegan2_config-f_church_256 | official weight | - | - | - | [config](https://github.com/open-mmlab/mmediting/tree/master/configs/styleganv2/stylegan2_c2_8xb4-800kiters_lsun-church-256x256.py) | [model](https://download.openmmlab.com/mmgen/stylegan2/official_weights/stylegan2-church-config-f-official_20210327_172657-1d42b7d1.pth) | -| stylegan2_config-f_cat_256 | official weight | - | - | - | [config](https://github.com/open-mmlab/mmediting/tree/master/configs/styleganv2/stylegan2_c2_8xb4-800kiters_lsun-cat-256x256.py) | [model](https://download.openmmlab.com/mmgen/stylegan2/official_weights/stylegan2-cat-config-f-official_20210327_172444-15bc485b.pth) | -| stylegan2_config-f_ffhq_256 | our training | 3.992 | 69.012 | 40.417 | [config](https://github.com/open-mmlab/mmediting/tree/master/configs/styleganv2/stylegan2_c2_8xb4-800kiters_ffhq-256x256.py) | [model](https://download.openmmlab.com/mmgen/stylegan2/stylegan2_c2_ffhq_256_b4x8_20210407_160709-7890ae1f.pth) | -| stylegan2_config-f_ffhq_1024 | our training | 2.8185 | 68.236 | 49.583 | [config](https://github.com/open-mmlab/mmediting/tree/master/configs/styleganv2/stylegan2_c2_8xb4_ffhq-1024x1024.py) | [model](https://download.openmmlab.com/mmgen/stylegan2/stylegan2_c2_ffhq_1024_b4x8_20210407_150045-618c9024.pth) | -| stylegan2_config-f_lsun-car_384x512 | our training | 2.4116 | 66.760 | 50.576 | [config](https://github.com/open-mmlab/mmediting/tree/master/configs/styleganv2/stylegan2_c2_8xb4_lsun-car-384x512.py) | [model](https://download.openmmlab.com/mmgen/stylegan2/stylegan2_c2_lsun-car_384x512_b4x8_1800k_20210424_160929-fc9072ca.pth) | +| stylegan2_config-f_ffhq_1024 | official weight | 2.8134 | 62.856 | 49.400 | [stylegan2_c2_8xb4_ffhq-1024x1024](/configs/styleganv2/stylegan2_c2_8xb4_ffhq-1024x1024.py) | [model](https://download.openmmlab.com/mmgen/stylegan2/official_weights/stylegan2-ffhq-config-f-official_20210327_171224-bce9310c.pth) | +| stylegan2_config-f_lsun-car_384x512 | official weight | 5.4316 | 65.986 | 48.190 | [stylegan2_c2_8xb4_lsun-car-384x512](/configs/styleganv2/stylegan2_c2_8xb4_lsun-car-384x512.py) | [model](https://download.openmmlab.com/mmgen/stylegan2/official_weights/stylegan2-car-config-f-official_20210327_172340-8cfe053c.pth) | +| stylegan2_config-f_horse_256 | official weight | - | - | - | [stylegan2_c2_8xb4-800kiters_lsun-horse-256x256](/configs/styleganv2/stylegan2_c2_8xb4-800kiters_lsun-horse-256x256.py) | [model](https://download.openmmlab.com/mmgen/stylegan2/official_weights/stylegan2-horse-config-f-official_20210327_173203-ef3e69ca.pth) | +| stylegan2_config-f_church_256 | official weight | - | - | - | [stylegan2_c2_8xb4-800kiters_lsun-church-256x256](/configs/styleganv2/stylegan2_c2_8xb4-800kiters_lsun-church-256x256.py) | [model](https://download.openmmlab.com/mmgen/stylegan2/official_weights/stylegan2-church-config-f-official_20210327_172657-1d42b7d1.pth) | +| stylegan2_config-f_cat_256 | official weight | - | - | - | [stylegan2_c2_8xb4-800kiters_lsun-cat-256x256](/configs/styleganv2/stylegan2_c2_8xb4-800kiters_lsun-cat-256x256.py) | [model](https://download.openmmlab.com/mmgen/stylegan2/official_weights/stylegan2-cat-config-f-official_20210327_172444-15bc485b.pth) | +| stylegan2_config-f_ffhq_256 | our training | 3.992 | 69.012 | 40.417 | [stylegan2_c2_8xb4-800kiters_ffhq-256x256](/configs/styleganv2/stylegan2_c2_8xb4-800kiters_ffhq-256x256.py) | [model](https://download.openmmlab.com/mmgen/stylegan2/stylegan2_c2_ffhq_256_b4x8_20210407_160709-7890ae1f.pth) | +| stylegan2_config-f_ffhq_1024 | our training | 2.8185 | 68.236 | 49.583 | [stylegan2_c2_8xb4_ffhq-1024x1024](/configs/styleganv2/stylegan2_c2_8xb4_ffhq-1024x1024.py) | [model](https://download.openmmlab.com/mmgen/stylegan2/stylegan2_c2_ffhq_1024_b4x8_20210407_150045-618c9024.pth) | +| stylegan2_config-f_lsun-car_384x512 | our training | 2.4116 | 66.760 | 50.576 | [stylegan2_c2_8xb4_lsun-car-384x512](/configs/styleganv2/stylegan2_c2_8xb4_lsun-car-384x512.py) | [model](https://download.openmmlab.com/mmgen/stylegan2/stylegan2_c2_lsun-car_384x512_b4x8_1800k_20210424_160929-fc9072ca.pth) | ## FP16 Support and Experiments @@ -49,18 +49,18 @@ Currently, we have supported FP16 training for StyleGAN2, and here are the resul As shown in the figure, we provide **3** ways to do mixed-precision training for `StyleGAN2`: -- [stylegan2_c2_fp16_PL-no-scaler](https://github.com/open-mmlab/mmediting/tree/master/configs/styleganv2/stylegan2_c2-PL_8xb4-fp16-partial-GD-no-scaler-800kiters_ffhq-256x256.py): In this setting, we try our best to follow the official FP16 implementation in [StyleGAN2-ADA](https://github.com/NVlabs/stylegan2-ada). Similar to the official version, we only adopt FP16 training for the higher-resolution feature maps (the last 4 stages in G and the first 4 stages). Note that we do not adopt the `clamp` way to avoid gradient overflow used in the official implementation. We use the `autocast` function from `torch.cuda.amp` package. -- [stylegan2_c2_fp16-globalG-partialD_PL-R1-no-scaler](https://github.com/open-mmlab/mmediting/tree/master/configs/styleganv2/stylegan2_c2-PL-R1_8xb4-fp16-globalG-partialD-no-scaler-800kiters_ffhq-256x256.py): In this config, we try to adopt mixed-precision training for the whole generator, but in partial discriminator (the first 4 higher-resolution stages). Note that we do not apply the loss scaler in the path length loss and gradient penalty loss. Because we always meet divergence after adopting the loss scaler to scale the gradient in these two losses. -- [stylegan2_c2_apex_fp16_PL-R1-no-scaler](https://github.com/open-mmlab/mmediting/tree/master/configs/styleganv2/stylegan2_c2-PL-R1_8xb4-apex-fp16-no-scaler-800kiters_ffhq-256x256.py): In this setting, we adopt the [APEX](https://github.com/NVIDIA/apex) toolkit to implement mixed-precision training with multiple loss/gradient scalers. In APEX, you can assign different loss scalers for the generator and the discriminator respectively. Note that we still ignore the gradient scaler in the path length loss and gradient penalty loss. +- [stylegan2_c2_fp16_PL-no-scaler](/configs/styleganv2/stylegan2_c2-PL_8xb4-fp16-partial-GD-no-scaler-800kiters_ffhq-256x256.py): In this setting, we try our best to follow the official FP16 implementation in [StyleGAN2-ADA](https://github.com/NVlabs/stylegan2-ada). Similar to the official version, we only adopt FP16 training for the higher-resolution feature maps (the last 4 stages in G and the first 4 stages). Note that we do not adopt the `clamp` way to avoid gradient overflow used in the official implementation. We use the `autocast` function from `torch.cuda.amp` package. +- [stylegan2_c2_fp16-globalG-partialD_PL-R1-no-scaler](/configs/styleganv2/stylegan2_c2-PL-R1_8xb4-fp16-globalG-partialD-no-scaler-800kiters_ffhq-256x256.py): In this config, we try to adopt mixed-precision training for the whole generator, but in partial discriminator (the first 4 higher-resolution stages). Note that we do not apply the loss scaler in the path length loss and gradient penalty loss. Because we always meet divergence after adopting the loss scaler to scale the gradient in these two losses. +- [stylegan2_c2_apex_fp16_PL-R1-no-scaler](/configs/styleganv2/stylegan2_c2-PL-R1_8xb4-apex-fp16-no-scaler-800kiters_ffhq-256x256.py): In this setting, we adopt the [APEX](https://github.com/NVIDIA/apex) toolkit to implement mixed-precision training with multiple loss/gradient scalers. In APEX, you can assign different loss scalers for the generator and the discriminator respectively. Note that we still ignore the gradient scaler in the path length loss and gradient penalty loss. | Model | Comment | Dataset | FID50k | Config | Download | | :----------------------------------------------: | :-------------------------------------: | :-----: | :----: | :-----------------------------------------------: | :-------------------------------------------------: | -| stylegan2_config-f_ffhq_256 | baseline | FFHQ256 | 3.992 | [config](https://github.com/open-mmlab/mmediting/tree/master/configs/styleganv2/stylegan2_c2_8xb4-800kiters_ffhq-256x256.py) | [ckpt](https://download.openmmlab.com/mmgen/stylegan2/stylegan2_c2_ffhq_256_b4x8_20210407_160709-7890ae1f.pth) | -| stylegan2_c2_fp16_partial-GD_PL-no-scaler_ffhq_256_b4x8_800k | partial layers in fp16 | FFHQ256 | 4.331 | [config](https://github.com/open-mmlab/mmediting/tree/master/configs/styleganv2/stylegan2_c2-PL_8xb4-fp16-partial-GD-no-scaler-800kiters_ffhq-256x256.py) | [ckpt](https://download.openmmlab.com/mmgen/stylegan2/stylegan2_c2_fp16_partial-GD_PL-no-scaler_ffhq_256_b4x8_800k_20210508_114854-dacbe4c9.pth) | -| stylegan2_c2_fp16-globalG-partialD_PL-R1-no-scaler_ffhq_256_b4x8_800k | the whole G in fp16 | FFHQ256 | 4.362 | [config](https://github.com/open-mmlab/mmediting/tree/master/configs/styleganv2/stylegan2_c2-PL-R1_8xb4-fp16-globalG-partialD-no-scaler-800kiters_ffhq-256x256.py) | [ckpt](https://download.openmmlab.com/mmgen/stylegan2/stylegan2_c2_fp16-globalG-partialD_PL-R1-no-scaler_ffhq_256_b4x8_800k_20210508_114930-ef8270d4.pth) | -| stylegan2_c2_apex_fp16_PL-R1-no-scaler_ffhq_256_b4x8_800k | the whole G&D in fp16 + two loss scaler | FFHQ256 | 4.614 | [config](https://github.com/open-mmlab/mmediting/tree/master/configs/styleganv2/stylegan2_c2-PL-R1_8xb4-apex-fp16-no-scaler-800kiters_ffhq-256x256.py) | [ckpt](https://download.openmmlab.com/mmgen/stylegan2/stylegan2_c2_apex_fp16_PL-R1-no-scaler_ffhq_256_b4x8_800k_20210508_114701-c2bb8afd.pth) | +| stylegan2_config-f_ffhq_256 | baseline | FFHQ256 | 3.992 | [stylegan2_c2_8xb4-800kiters_ffhq-256x256](/configs/styleganv2/stylegan2_c2_8xb4-800kiters_ffhq-256x256.py) | [ckpt](https://download.openmmlab.com/mmgen/stylegan2/stylegan2_c2_ffhq_256_b4x8_20210407_160709-7890ae1f.pth) | +| stylegan2_c2_fp16_partial-GD_PL-no-scaler_ffhq_256_b4x8_800k | partial layers in fp16 | FFHQ256 | 4.331 | [stylegan2_c2-PL_8xb4-fp16-partial-GD-no-scaler-800kiters_ffhq-256x256](/configs/styleganv2/stylegan2_c2-PL_8xb4-fp16-partial-GD-no-scaler-800kiters_ffhq-256x256.py) | [ckpt](https://download.openmmlab.com/mmgen/stylegan2/stylegan2_c2_fp16_partial-GD_PL-no-scaler_ffhq_256_b4x8_800k_20210508_114854-dacbe4c9.pth) | +| stylegan2_c2_fp16-globalG-partialD_PL-R1-no-scaler_ffhq_256_b4x8_800k | the whole G in fp16 | FFHQ256 | 4.362 | [stylegan2_c2-PL-R1_8xb4-fp16-globalG-partialD-no-scaler-800kiters_ffhq-256x256](/configs/styleganv2/stylegan2_c2-PL-R1_8xb4-fp16-globalG-partialD-no-scaler-800kiters_ffhq-256x256.py) | [ckpt](https://download.openmmlab.com/mmgen/stylegan2/stylegan2_c2_fp16-globalG-partialD_PL-R1-no-scaler_ffhq_256_b4x8_800k_20210508_114930-ef8270d4.pth) | +| stylegan2_c2_apex_fp16_PL-R1-no-scaler_ffhq_256_b4x8_800k | the whole G&D in fp16 + two loss scaler | FFHQ256 | 4.614 | [stylegan2_c2-PL-R1_8xb4-apex-fp16-no-scaler-800kiters_ffhq-256x256](/configs/styleganv2/stylegan2_c2-PL-R1_8xb4-apex-fp16-no-scaler-800kiters_ffhq-256x256.py) | [ckpt](https://download.openmmlab.com/mmgen/stylegan2/stylegan2_c2_apex_fp16_PL-R1-no-scaler_ffhq_256_b4x8_800k_20210508_114701-c2bb8afd.pth) | -In addition, we also provide `QuickTestImageDataset` to users for quickly checking whether the code can be run correctly. It's more important for FP16 experiments, because some cuda operations may no support mixed precision training. Esepcially for `APEX`, you can use [this config](https://github.com/open-mmlab/mmediting/tree/master/configs/styleganv2/stylegan2_c2_8xb4-apex-fp16-800kiters_quicktest-ffhq-256x256.py) in your local machine by running: +In addition, we also provide `QuickTestImageDataset` to users for quickly checking whether the code can be run correctly. It's more important for FP16 experiments, because some cuda operations may no support mixed precision training. Esepcially for `APEX`, you can use [this config](/configs/styleganv2/stylegan2_c2_8xb4-apex-fp16-800kiters_quicktest-ffhq-256x256.py) in your local machine by running: ```bash bash tools/dist_train.sh \ @@ -68,7 +68,7 @@ bash tools/dist_train.sh \ --work-dir ./work_dirs/quick-test ``` -With a similar way, users can switch to [config for partial-GD](https://github.com/open-mmlab/mmediting/tree/master/configs/styleganv2/stylegan2_c2_8xb4-fp16-800kiters_quicktest-ffhq-256x256.py) and [config for globalG-partialD](https://github.com/open-mmlab/mmediting/tree/master/configs/styleganv2/stylegan2_c2_8xb4-fp16-global-800kiters_quicktest-ffhq-256x256.py) to test the other two mixed precision training configuration. +With a similar way, users can switch to [config for partial-GD](/configs/styleganv2/stylegan2_c2_8xb4-fp16-800kiters_quicktest-ffhq-256x256.py) and [config for globalG-partialD](/configs/styleganv2/stylegan2_c2_8xb4-fp16-global-800kiters_quicktest-ffhq-256x256.py) to test the other two mixed precision training configuration. *Note that to use the [APEX](https://github.com/NVIDIA/apex) toolkit, you have to installed it following the official guidance. (APEX is not included in our requirements.) If you are using GPUs without tensor core, you would better to switch to the newer PyTorch version (>= 1.7,0). Otherwise, the APEX installation or running may meet several bugs.* @@ -76,10 +76,10 @@ With a similar way, users can switch to [config for partial-GD](https://github.c | Model | Comment | FID50k | FID Version | Config | Download | | :--------------------------: | :-------------: | :----: | :-------------: | :-----------------------------------------------------------------: | :-------------------------------------------------------------------: | -| stylegan2_config-f_ffhq_1024 | official weight | 2.8732 | Tero's StyleGAN | [config](https://github.com/open-mmlab/mmediting/tree/master/configs/styleganv2/stylegan2_c2_8xb4_ffhq-1024x1024.py) | [model](https://download.openmmlab.com/mmgen/stylegan2/official_weights/stylegan2-ffhq-config-f-official_20210327_171224-bce9310c.pth) \| [FID-Reals](https://download.openmmlab.com/mmgen/evaluation/fid_inception_pkl/ffhq-1024-50k-stylegan.pkl) | -| stylegan2_config-f_ffhq_1024 | our training | 2.9413 | Tero's StyleGAN | [config](https://github.com/open-mmlab/mmediting/tree/master/configs/styleganv2/stylegan2_c2_8xb4_ffhq-1024x1024.py) | [model](https://download.openmmlab.com/mmgen/stylegan2/stylegan2_c2_ffhq_1024_b4x8_20210407_150045-618c9024.pth) \| [FID-Reals](https://download.openmmlab.com/mmgen/evaluation/fid_inception_pkl/ffhq-1024-50k-stylegan.pkl) | -| stylegan2_config-f_ffhq_1024 | official weight | 2.8134 | Our PyTorch | [config](https://github.com/open-mmlab/mmediting/tree/master/configs/styleganv2/stylegan2_c2_8xb4_ffhq-1024x1024.py) | [model](https://download.openmmlab.com/mmgen/stylegan2/official_weights/stylegan2-ffhq-config-f-official_20210327_171224-bce9310c.pth) \| [FID-Reals](https://download.openmmlab.com/mmgen/evaluation/fid_inception_pkl/ffhq-1024-50k-rgb.pkl) | -| stylegan2_config-f_ffhq_1024 | our training | 2.8185 | Our PyTorch | [config](https://github.com/open-mmlab/mmediting/tree/master/configs/styleganv2/stylegan2_c2_8xb4_ffhq-1024x1024.py) | [model](https://download.openmmlab.com/mmgen/stylegan2/stylegan2_c2_ffhq_1024_b4x8_20210407_150045-618c9024.pth) \| [FID-Reals](https://download.openmmlab.com/mmgen/evaluation/fid_inception_pkl/ffhq-1024-50k-rgb.pkl) | +| stylegan2_config-f_ffhq_1024 | official weight | 2.8732 | Tero's StyleGAN | [stylegan2_c2_8xb4_ffhq-1024x1024](/configs/styleganv2/stylegan2_c2_8xb4_ffhq-1024x1024.py) | [model](https://download.openmmlab.com/mmgen/stylegan2/official_weights/stylegan2-ffhq-config-f-official_20210327_171224-bce9310c.pth) \| [FID-Reals](https://download.openmmlab.com/mmgen/evaluation/fid_inception_pkl/ffhq-1024-50k-stylegan.pkl) | +| stylegan2_config-f_ffhq_1024 | our training | 2.9413 | Tero's StyleGAN | [stylegan2_c2_8xb4_ffhq-1024x1024](/configs/styleganv2/stylegan2_c2_8xb4_ffhq-1024x1024.py) | [model](https://download.openmmlab.com/mmgen/stylegan2/stylegan2_c2_ffhq_1024_b4x8_20210407_150045-618c9024.pth) \| [FID-Reals](https://download.openmmlab.com/mmgen/evaluation/fid_inception_pkl/ffhq-1024-50k-stylegan.pkl) | +| stylegan2_config-f_ffhq_1024 | official weight | 2.8134 | Our PyTorch | [stylegan2_c2_8xb4_ffhq-1024x1024](/configs/styleganv2/stylegan2_c2_8xb4_ffhq-1024x1024.py) | [model](https://download.openmmlab.com/mmgen/stylegan2/official_weights/stylegan2-ffhq-config-f-official_20210327_171224-bce9310c.pth) \| [FID-Reals](https://download.openmmlab.com/mmgen/evaluation/fid_inception_pkl/ffhq-1024-50k-rgb.pkl) | +| stylegan2_config-f_ffhq_1024 | our training | 2.8185 | Our PyTorch | [stylegan2_c2_8xb4_ffhq-1024x1024](/configs/styleganv2/stylegan2_c2_8xb4_ffhq-1024x1024.py) | [model](https://download.openmmlab.com/mmgen/stylegan2/stylegan2_c2_ffhq_1024_b4x8_20210407_150045-618c9024.pth) \| [FID-Reals](https://download.openmmlab.com/mmgen/evaluation/fid_inception_pkl/ffhq-1024-50k-rgb.pkl) | In this table, we observe that the FID with Tero's inception network is similar to that with PyTorch Inception (in mmediting). Thus, we use the FID with PyTorch's Inception net (but the weight is not the official model zoo) by default. Because it can be run on different PyTorch versions. If you use [Tero's Inception net](https://nvlabs-fi-cdn.nvidia.com/stylegan2-ada-pytorch/pretrained/metrics/inception-2015-12-05.pt), your PyTorch must meet `>=1.6.0`. diff --git a/configs/styleganv2/metafile.yml b/configs/styleganv2/metafile.yml index f5b4cc1962..30209dfb69 100644 --- a/configs/styleganv2/metafile.yml +++ b/configs/styleganv2/metafile.yml @@ -7,7 +7,7 @@ Collections: - https://openaccess.thecvf.com/content_CVPR_2020/html/Karras_Analyzing_and_Improving_the_Image_Quality_of_StyleGAN_CVPR_2020_paper.html README: configs/styleganv2/README.md Models: -- Config: https://github.com/open-mmlab/mmediting/tree/master/configs/styleganv2/stylegan2_c2_8xb4_ffhq-1024x1024.py +- Config: configs/styleganv2/stylegan2_c2_8xb4_ffhq-1024x1024.py In Collection: StyleGANv2 Metadata: Training Data: FFHQ @@ -20,7 +20,7 @@ Models: Recall50k: 49.4 Task: Styleganv2 Weights: https://download.openmmlab.com/mmgen/stylegan2/official_weights/stylegan2-ffhq-config-f-official_20210327_171224-bce9310c.pth -- Config: https://github.com/open-mmlab/mmediting/tree/master/configs/styleganv2/stylegan2_c2_8xb4_lsun-car-384x512.py +- Config: configs/styleganv2/stylegan2_c2_8xb4_lsun-car-384x512.py In Collection: StyleGANv2 Metadata: Training Data: Others @@ -33,7 +33,7 @@ Models: Recall50k: 48.19 Task: Styleganv2 Weights: https://download.openmmlab.com/mmgen/stylegan2/official_weights/stylegan2-car-config-f-official_20210327_172340-8cfe053c.pth -- Config: https://github.com/open-mmlab/mmediting/tree/master/configs/styleganv2/stylegan2_c2_8xb4-800kiters_lsun-horse-256x256.py +- Config: configs/styleganv2/stylegan2_c2_8xb4-800kiters_lsun-horse-256x256.py In Collection: StyleGANv2 Metadata: Training Data: Others @@ -43,7 +43,7 @@ Models: Metrics: {} Task: Styleganv2 Weights: https://download.openmmlab.com/mmgen/stylegan2/official_weights/stylegan2-horse-config-f-official_20210327_173203-ef3e69ca.pth -- Config: https://github.com/open-mmlab/mmediting/tree/master/configs/styleganv2/stylegan2_c2_8xb4-800kiters_lsun-church-256x256.py +- Config: configs/styleganv2/stylegan2_c2_8xb4-800kiters_lsun-church-256x256.py In Collection: StyleGANv2 Metadata: Training Data: Others @@ -53,7 +53,7 @@ Models: Metrics: {} Task: Styleganv2 Weights: https://download.openmmlab.com/mmgen/stylegan2/official_weights/stylegan2-church-config-f-official_20210327_172657-1d42b7d1.pth -- Config: https://github.com/open-mmlab/mmediting/tree/master/configs/styleganv2/stylegan2_c2_8xb4-800kiters_lsun-cat-256x256.py +- Config: configs/styleganv2/stylegan2_c2_8xb4-800kiters_lsun-cat-256x256.py In Collection: StyleGANv2 Metadata: Training Data: CAT @@ -63,7 +63,7 @@ Models: Metrics: {} Task: Styleganv2 Weights: https://download.openmmlab.com/mmgen/stylegan2/official_weights/stylegan2-cat-config-f-official_20210327_172444-15bc485b.pth -- Config: https://github.com/open-mmlab/mmediting/tree/master/configs/styleganv2/stylegan2_c2_8xb4-800kiters_ffhq-256x256.py +- Config: configs/styleganv2/stylegan2_c2_8xb4-800kiters_ffhq-256x256.py In Collection: StyleGANv2 Metadata: Training Data: FFHQ @@ -76,7 +76,7 @@ Models: Recall50k: 40.417 Task: Styleganv2 Weights: https://download.openmmlab.com/mmgen/stylegan2/stylegan2_c2_ffhq_256_b4x8_20210407_160709-7890ae1f.pth -- Config: https://github.com/open-mmlab/mmediting/tree/master/configs/styleganv2/stylegan2_c2_8xb4_ffhq-1024x1024.py +- Config: configs/styleganv2/stylegan2_c2_8xb4_ffhq-1024x1024.py In Collection: StyleGANv2 Metadata: Training Data: FFHQ @@ -89,7 +89,7 @@ Models: Recall50k: 49.583 Task: Styleganv2 Weights: https://download.openmmlab.com/mmgen/stylegan2/stylegan2_c2_ffhq_1024_b4x8_20210407_150045-618c9024.pth -- Config: https://github.com/open-mmlab/mmediting/tree/master/configs/styleganv2/stylegan2_c2_8xb4_lsun-car-384x512.py +- Config: configs/styleganv2/stylegan2_c2_8xb4_lsun-car-384x512.py In Collection: StyleGANv2 Metadata: Training Data: Others @@ -102,7 +102,7 @@ Models: Recall50k: 50.576 Task: Styleganv2 Weights: https://download.openmmlab.com/mmgen/stylegan2/stylegan2_c2_lsun-car_384x512_b4x8_1800k_20210424_160929-fc9072ca.pth -- Config: https://github.com/open-mmlab/mmediting/tree/master/configs/styleganv2/stylegan2_c2_8xb4-800kiters_ffhq-256x256.py +- Config: configs/styleganv2/stylegan2_c2_8xb4-800kiters_ffhq-256x256.py In Collection: StyleGANv2 Metadata: Training Data: FFHQ @@ -113,7 +113,7 @@ Models: FID50k: 3.992 Task: Styleganv2 Weights: https://download.openmmlab.com/mmgen/stylegan2/stylegan2_c2_ffhq_256_b4x8_20210407_160709-7890ae1f.pth -- Config: https://github.com/open-mmlab/mmediting/tree/master/configs/styleganv2/stylegan2_c2-PL_8xb4-fp16-partial-GD-no-scaler-800kiters_ffhq-256x256.py +- Config: configs/styleganv2/stylegan2_c2-PL_8xb4-fp16-partial-GD-no-scaler-800kiters_ffhq-256x256.py In Collection: StyleGANv2 Metadata: Training Data: FFHQ @@ -124,7 +124,7 @@ Models: FID50k: 4.331 Task: Styleganv2 Weights: https://download.openmmlab.com/mmgen/stylegan2/stylegan2_c2_fp16_partial-GD_PL-no-scaler_ffhq_256_b4x8_800k_20210508_114854-dacbe4c9.pth -- Config: https://github.com/open-mmlab/mmediting/tree/master/configs/styleganv2/stylegan2_c2-PL-R1_8xb4-fp16-globalG-partialD-no-scaler-800kiters_ffhq-256x256.py +- Config: configs/styleganv2/stylegan2_c2-PL-R1_8xb4-fp16-globalG-partialD-no-scaler-800kiters_ffhq-256x256.py In Collection: StyleGANv2 Metadata: Training Data: FFHQ @@ -135,7 +135,7 @@ Models: FID50k: 4.362 Task: Styleganv2 Weights: https://download.openmmlab.com/mmgen/stylegan2/stylegan2_c2_fp16-globalG-partialD_PL-R1-no-scaler_ffhq_256_b4x8_800k_20210508_114930-ef8270d4.pth -- Config: https://github.com/open-mmlab/mmediting/tree/master/configs/styleganv2/stylegan2_c2-PL-R1_8xb4-apex-fp16-no-scaler-800kiters_ffhq-256x256.py +- Config: configs/styleganv2/stylegan2_c2-PL-R1_8xb4-apex-fp16-no-scaler-800kiters_ffhq-256x256.py In Collection: StyleGANv2 Metadata: Training Data: FFHQ @@ -146,7 +146,7 @@ Models: FID50k: 4.614 Task: Styleganv2 Weights: https://download.openmmlab.com/mmgen/stylegan2/stylegan2_c2_apex_fp16_PL-R1-no-scaler_ffhq_256_b4x8_800k_20210508_114701-c2bb8afd.pth -- Config: https://github.com/open-mmlab/mmediting/tree/master/configs/styleganv2/stylegan2_c2_8xb4_ffhq-1024x1024.py +- Config: configs/styleganv2/stylegan2_c2_8xb4_ffhq-1024x1024.py In Collection: StyleGANv2 Metadata: Training Data: FFHQ @@ -157,7 +157,7 @@ Models: FID50k: 2.8732 Task: Styleganv2 Weights: https://download.openmmlab.com/mmgen/stylegan2/official_weights/stylegan2-ffhq-config-f-official_20210327_171224-bce9310c.pth -- Config: https://github.com/open-mmlab/mmediting/tree/master/configs/styleganv2/stylegan2_c2_8xb4_ffhq-1024x1024.py +- Config: configs/styleganv2/stylegan2_c2_8xb4_ffhq-1024x1024.py In Collection: StyleGANv2 Metadata: Training Data: FFHQ @@ -168,7 +168,7 @@ Models: FID50k: 2.9413 Task: Styleganv2 Weights: https://download.openmmlab.com/mmgen/stylegan2/stylegan2_c2_ffhq_1024_b4x8_20210407_150045-618c9024.pth -- Config: https://github.com/open-mmlab/mmediting/tree/master/configs/styleganv2/stylegan2_c2_8xb4_ffhq-1024x1024.py +- Config: configs/styleganv2/stylegan2_c2_8xb4_ffhq-1024x1024.py In Collection: StyleGANv2 Metadata: Training Data: FFHQ @@ -179,7 +179,7 @@ Models: FID50k: 2.8134 Task: Styleganv2 Weights: https://download.openmmlab.com/mmgen/stylegan2/official_weights/stylegan2-ffhq-config-f-official_20210327_171224-bce9310c.pth -- Config: https://github.com/open-mmlab/mmediting/tree/master/configs/styleganv2/stylegan2_c2_8xb4_ffhq-1024x1024.py +- Config: configs/styleganv2/stylegan2_c2_8xb4_ffhq-1024x1024.py In Collection: StyleGANv2 Metadata: Training Data: FFHQ diff --git a/configs/styleganv2/stylegan2_c2_8xb4-800kiters_ffhq-256x256.py b/configs/styleganv2/stylegan2_c2_8xb4-800kiters_ffhq-256x256.py index f2c03264f0..60efdb1068 100644 --- a/configs/styleganv2/stylegan2_c2_8xb4-800kiters_ffhq-256x256.py +++ b/configs/styleganv2/stylegan2_c2_8xb4-800kiters_ffhq-256x256.py @@ -65,8 +65,9 @@ metrics = [ dict( type='FrechetInceptionDistance', - prefix='FID-Full-50k', + prefix='FID-50k', fake_nums=50000, + real_nums=50000, inception_style='StyleGAN', sample_model='ema'), dict(type='PrecisionAndRecall', fake_nums=50000, prefix='PR-50K'), @@ -77,7 +78,7 @@ # checkpoint=dict( # save_best=['FID-Full-50k/fid', 'IS-50k/is'], # rule=['less', 'greater'])) -default_hooks = dict(checkpoint=dict(save_best='FID-Full-50k/fid')) +default_hooks = dict(checkpoint=dict(save_best='FID-50k/fid')) val_evaluator = dict(metrics=metrics) test_evaluator = dict(metrics=metrics) diff --git a/configs/styleganv2/stylegan2_c2_8xb4_lsun-car-384x512.py b/configs/styleganv2/stylegan2_c2_8xb4_lsun-car-384x512.py index f8479f4636..fcffdb9a95 100644 --- a/configs/styleganv2/stylegan2_c2_8xb4_lsun-car-384x512.py +++ b/configs/styleganv2/stylegan2_c2_8xb4_lsun-car-384x512.py @@ -98,8 +98,9 @@ metrics = [ dict( type='FrechetInceptionDistance', - prefix='FID-Full-50k', + prefix='FID-50k', fake_nums=50000, + real_nums=50000, inception_style='StyleGAN', sample_model='ema'), dict(type='PrecisionAndRecall', fake_nums=50000, prefix='PR-50K'), @@ -110,7 +111,7 @@ # checkpoint=dict( # save_best=['FID-Full-50k/fid', 'IS-50k/is'], # rule=['less', 'greater'])) -default_hooks = dict(checkpoint=dict(save_best='FID-Full-50k/fid')) +default_hooks = dict(checkpoint=dict(save_best='FID-50k/fid')) val_evaluator = dict(metrics=metrics) test_evaluator = dict(metrics=metrics) diff --git a/docs/en/.dev_scripts/update_dataset_zoo.sh b/docs/en/.dev_scripts/update_dataset_zoo.sh index ae087ca36e..6ac06a6126 100644 --- a/docs/en/.dev_scripts/update_dataset_zoo.sh +++ b/docs/en/.dev_scripts/update_dataset_zoo.sh @@ -1,10 +1,10 @@ # generate all tasks dataset_zoo -cat ../../../tools/dataset_converters/super-resolution/README.md > dataset_zoo/1_super_resolution_datasets.md -cat ../../../tools/dataset_converters/inpainting/README.md > dataset_zoo/2_inpainting_datasets.md -cat ../../../tools/dataset_converters/matting/README.md > dataset_zoo/3_matting_datasets.md -cat ../../../tools/dataset_converters/video-interpolation/README.md > dataset_zoo/4_video_interpolation_datasets.md -cat ../../../tools/dataset_converters/unconditional_gans/README.md > dataset_zoo/5_unconditional_gans_datasets.md -cat ../../../tools/dataset_converters/image_translation/README.md > dataset_zoo/6_image_translation_datasets.md +cat ../../tools/dataset_converters/super-resolution/README.md > dataset_zoo/1_super_resolution_datasets.md +cat ../../tools/dataset_converters/inpainting/README.md > dataset_zoo/2_inpainting_datasets.md +cat ../../tools/dataset_converters/matting/README.md > dataset_zoo/3_matting_datasets.md +cat ../../tools/dataset_converters/video-interpolation/README.md > dataset_zoo/4_video_interpolation_datasets.md +cat ../../tools/dataset_converters/unconditional_gans/README.md > dataset_zoo/5_unconditional_gans_datasets.md +cat ../../tools/dataset_converters/image_translation/README.md > dataset_zoo/6_image_translation_datasets.md # generate markdown TOC sed -i -e 's/](comp1k\(\/README.md)\)/](composition-1k\1/g' dataset_zoo/3_matting_datasets.md @@ -17,23 +17,23 @@ sed -i -e 's/](\(.*\)\/README.md)/](#\1-dataset)/g' dataset_zoo/5_unconditional_ sed -i -e 's/](\(.*\)\/README.md)/](#\1-dataset)/g' dataset_zoo/6_image_translation_datasets.md # gather all datasets -cat ../../../tools/dataset_converters/super-resolution/*/README.md | sed 's/# Preparing /\n# /g' | sed "s/#/#&/" >> dataset_zoo/1_super_resolution_datasets.md -cat ../../../tools/dataset_converters/inpainting/*/README.md | sed 's/# Preparing /\n# /g' | sed "s/#/#&/" >> dataset_zoo/2_inpainting_datasets.md -cat ../../../tools/dataset_converters/matting/*/README.md | sed 's/# Preparing /\n# /g' | sed "s/#/#&/" >> dataset_zoo/3_matting_datasets.md -cat ../../../tools/dataset_converters/video-interpolation/*/README.md | sed 's/# Preparing /\n# /g' | sed "s/#/#&/" >> dataset_zoo/4_video_interpolation_datasets.md -cat ../../../tools/dataset_converters/unconditional_gans/*/README.md | sed 's/# Preparing /\n# /g' | sed "s/#/#&/" >> dataset_zoo/5_unconditional_gans_datasets.md -cat ../../../tools/dataset_converters/image_translation/*/README.md | sed 's/# Preparing /\n# /g' | sed "s/#/#&/" >> dataset_zoo/6_image_translation_datasets.md +cat ../../tools/dataset_converters/super-resolution/*/README.md | sed 's/# Preparing /\n# /g' | sed "s/#/#&/" >> dataset_zoo/1_super_resolution_datasets.md +cat ../../tools/dataset_converters/inpainting/*/README.md | sed 's/# Preparing /\n# /g' | sed "s/#/#&/" >> dataset_zoo/2_inpainting_datasets.md +cat ../../tools/dataset_converters/matting/*/README.md | sed 's/# Preparing /\n# /g' | sed "s/#/#&/" >> dataset_zoo/3_matting_datasets.md +cat ../../tools/dataset_converters/video-interpolation/*/README.md | sed 's/# Preparing /\n# /g' | sed "s/#/#&/" >> dataset_zoo/4_video_interpolation_datasets.md +cat ../../tools/dataset_converters/unconditional_gans/*/README.md | sed 's/# Preparing /\n# /g' | sed "s/#/#&/" >> dataset_zoo/5_unconditional_gans_datasets.md +cat ../../tools/dataset_converters/image_translation/*/README.md | sed 's/# Preparing /\n# /g' | sed "s/#/#&/" >> dataset_zoo/6_image_translation_datasets.md echo '# Overview' > dataset_zoo/0_overview.md -echo '\n- [Prepare Super-Resolution Datasets](./1_super_resolution_datasets.md)' >> dataset_zoo/0_overview.md +echo "- [Prepare Super-Resolution Datasets](./1_super_resolution_datasets.md)" >> dataset_zoo/0_overview.md cat dataset_zoo/1_super_resolution_datasets.md | grep -oP '(- \[.*-dataset.*)' | sed 's/- \[/ - \[/g' | sed 's/(#/(.\/1_super_resolution_datasets.md#/g' >> dataset_zoo/0_overview.md -echo '\n- [Prepare Inpainting Datasets](./2_inpainting_datasets.md)' >> dataset_zoo/0_overview.md +echo "- [Prepare Inpainting Datasets](./2_inpainting_datasets.md)" >> dataset_zoo/0_overview.md cat dataset_zoo/2_inpainting_datasets.md | grep -oP '(- \[.*-dataset.*)' | sed 's/- \[/ - \[/g' | sed 's/(#/(.\/2_inpainting_datasets.md#/g' >> dataset_zoo/0_overview.md -echo '\n- [Prepare Matting Datasets](./3_matting_datasets.md)\n' >> dataset_zoo/0_overview.md +echo "- [Prepare Matting Datasets](./3_matting_datasets.md)" >> dataset_zoo/0_overview.md cat dataset_zoo/3_matting_datasets.md | grep -oP '(- \[.*-dataset.*)' | sed 's/- \[/ - \[/g' | sed 's/(#/(.\/3_matting_datasets.md#/g' >> dataset_zoo/0_overview.md -echo '\n- [Prepare Video Frame Interpolation Datasets](./4_video_interpolation_datasets.md)' >> dataset_zoo/0_overview.md +echo "- [Prepare Video Frame Interpolation Datasets](./4_video_interpolation_datasets.md)" >> dataset_zoo/0_overview.md cat dataset_zoo/4_video_interpolation_datasets.md | grep -oP '(- \[.*-dataset.*)' | sed 's/- \[/ - \[/g' | sed 's/(#/(.\/4_video_interpolation_datasets.md#/g' >> dataset_zoo/0_overview.md -echo '\n- [Prepare Unconditional GANs Datasets](./5_unconditional_gans_datasets.md)' >> dataset_zoo/0_overview.md +echo "- [Prepare Unconditional GANs Datasets](./5_unconditional_gans_datasets.md)" >> dataset_zoo/0_overview.md cat dataset_zoo/5_unconditional_gans_datasets.md | grep -oP '(- \[.*-dataset.*)' | sed 's/- \[/ - \[/g' | sed 's/(#/(.\/5_unconditional_gans_datasets.md#/g' >> dataset_zoo/0_overview.md -echo '\n- [Prepare Image Translation Datasets](./6_image_translation_datasets.md)' >> dataset_zoo/0_overview.md +echo "- [Prepare Image Translation Datasets](./6_image_translation_datasets.md)" >> dataset_zoo/0_overview.md cat dataset_zoo/6_image_translation_datasets.md | grep -oP '(- \[.*-dataset.*)' | sed '$a\n' |sed 's/- \[/ - \[/g' | sed 's/(#/(.\/6_image_translation_datasets.md#/g' >> dataset_zoo/0_overview.md diff --git a/docs/en/3_model_zoo.md b/docs/en/3_model_zoo.md index af3547569a..e65da6450c 100644 --- a/docs/en/3_model_zoo.md +++ b/docs/en/3_model_zoo.md @@ -186,14 +186,6 @@ For supported datasets, see [datasets overview](dataset_zoo/0_overview.md). - Number of papers: 1 - \[ALGORITHM\] Indices Matter: Learning to Index for Deep Image Matting ([โ‡จ](https://github.com/open-mmlab/mmediting/blob/1.x/configs/indexnet/README.md#citation)) -## Instance-aware Image Colorization (CVPR'2020) - -- Tasks: colorization -- Number of checkpoints: 1 -- Number of configs: 1 -- Number of papers: 1 - - \[ALGORITHM\] Instance-Aware Image Colorization ([โ‡จ](https://github.com/open-mmlab/mmediting/blob/1.x/configs/inst_colorization/README.md#quick-start)) - ## LIIF (CVPR'2021) - Tasks: image super-resolution @@ -202,6 +194,14 @@ For supported datasets, see [datasets overview](dataset_zoo/0_overview.md). - Number of papers: 1 - \[ALGORITHM\] Learning Continuous Image Representation With Local Implicit Image Function ([โ‡จ](https://github.com/open-mmlab/mmediting/blob/1.x/configs/liif/README.md#citation)) +## Instance-aware Image Colorization (CVPR'2020) + +- Tasks: colorization +- Number of checkpoints: 1 +- Number of configs: 1 +- Number of papers: 1 + - \[ALGORITHM\] Instance-Aware Image Colorization ([โ‡จ](https://github.com/open-mmlab/mmediting/blob/1.x/configs/inst_colorization/README.md#quick-start)) + ## LSGAN (ICCV'2017) - Tasks: unconditional gans @@ -339,7 +339,7 @@ For supported datasets, see [datasets overview](dataset_zoo/0_overview.md). ## TOFlow (IJCV'2019) -- Tasks: video super-resolution,video interpolation +- Tasks: video interpolation,video super-resolution - Number of checkpoints: 6 - Number of configs: 6 - Number of papers: 1 diff --git a/docs/en/_static/css/readthedocs.css b/docs/en/_static/css/readthedocs.css index 9d5dec72d3..4b680e8d68 100644 --- a/docs/en/_static/css/readthedocs.css +++ b/docs/en/_static/css/readthedocs.css @@ -4,3 +4,7 @@ height: 46px; width: 142px; } + +table.colwidths-auto td { + width: 50% +} diff --git a/docs/en/_template/classtemplate.rst b/docs/en/_template/classtemplate.rst new file mode 100644 index 0000000000..4f74842394 --- /dev/null +++ b/docs/en/_template/classtemplate.rst @@ -0,0 +1,14 @@ +.. role:: hidden + :class: hidden-section +.. currentmodule:: {{ module }} + + +{{ name | underline}} + +.. autoclass:: {{ name }} + :members: + + +.. + autogenerated from source/_templates/classtemplate.rst + note it does not have :inherited-members: diff --git a/docs/en/api.rst b/docs/en/api.rst deleted file mode 100644 index 68848c8d88..0000000000 --- a/docs/en/api.rst +++ /dev/null @@ -1,116 +0,0 @@ -mmedit.apis ---------------- -.. automodule:: mmedit.apis - :members: - - -mmedit.datasets -------------------------- - -datasets -^^^^^^^^^^ -.. automodule:: mmedit.datasets - :members: - -transforms -^^^^^^^^^^ -.. automodule:: mmedit.datasets.transforms - :members: - - -mmedit.engine --------------- - -hooks -^^^^^^^^^^ -.. automodule:: mmedit.engine.hooks - :members: - -logging -^^^^^^^^^^ -.. automodule:: mmedit.engine.logging - :members: - -optimizers -^^^^^^^^^^ -.. automodule:: mmedit.engine.optimizers - :members: - -runner -^^^^^^^^^^ -.. automodule:: mmedit.engine.runner - :members: - -schedulers -^^^^^^^^^^ -.. automodule:: mmedit.engine.schedulers - :members: - - -mmedit.evaluation ------------------- - -metrics -^^^^^^^^^^ -.. automodule:: mmedit.evaluation.metrics - :members: - - -functional -^^^^^^^^^^ -.. automodule:: mmedit.evaluation.functional - :members: - - -mmedit.models --------------- - -base_models -^^^^^^^^^^^^ -.. automodule:: mmedit.models.base_models - :members: - -data_preprocessors -^^^^^^^^^^^^^^^^^^^ -.. automodule:: mmedit.models.data_preprocessors - :members: - -layers -^^^^^^^^^^^^ -.. automodule:: mmedit.models.layers - :members: - -losses -^^^^^^^^^^^^ -.. automodule:: mmedit.models.losses - :members: - -utils -^^^^^^^^^^^^ -.. automodule:: mmedit.models.utils - :members: - -editors -^^^^^^^^^^^^ -.. automodule:: mmedit.models.editors - :members: - - -mmedit.structures --------------------- - -.. automodule:: mmedit.structures - :members: - - -mmedit.visualization --------------------- - -.. automodule:: mmedit.visualization - :members: - -mmedit.utils --------------------- - -.. automodule:: mmedit.utils - :members: diff --git a/docs/en/api/apis.rst b/docs/en/api/apis.rst new file mode 100644 index 0000000000..0e92c02b67 --- /dev/null +++ b/docs/en/api/apis.rst @@ -0,0 +1,27 @@ +.. role:: hidden + :class: hidden-section + +mmedit.apis +=================================== + +.. currentmodule:: mmedit.apis + +APIS +---------------- +.. autosummary:: + :toctree: generated + :nosignatures: + + matting_inference + inpainting_inference + restoration_inference + restoration_video_inference + restoration_face_inference + video_interpolation_inference + + init_model + delete_cfg + set_random_seed + sample_conditional_model + sample_unconditional_model + sample_img2img_model diff --git a/docs/en/api/datasets.rst b/docs/en/api/datasets.rst new file mode 100644 index 0000000000..e0cfc25858 --- /dev/null +++ b/docs/en/api/datasets.rst @@ -0,0 +1,22 @@ +.. role:: hidden + :class: hidden-section + +mmedit.datasets +=================================== + +.. currentmodule:: mmedit.datasets + +.. autosummary:: + :toctree: generated + :nosignatures: + :template: classtemplate.rst + + AdobeComp1kDataset + BasicImageDataset + BasicFramesDataset + BasicConditionalDataset + UnpairedImageDataset + PairedImageDataset + ImageNet + CIFAR10 + GrowScaleImgDataset diff --git a/docs/en/api/datasets.transforms.rst b/docs/en/api/datasets.transforms.rst new file mode 100644 index 0000000000..b3796c3b2a --- /dev/null +++ b/docs/en/api/datasets.transforms.rst @@ -0,0 +1,72 @@ +.. role:: hidden + :class: hidden-section + +mmedit.datasets.transforms +=================================== + +.. currentmodule:: mmedit.datasets.transforms + +.. autosummary:: + :toctree: generated + :nosignatures: + :template: classtemplate.rst + + BinarizeImage + Clip + ColorJitter + CopyValues + Crop + CropLike + DegradationsWithShuffle + LoadImageFromFile + LoadMask + Flip + FixedCrop + GenerateCoordinateAndCell + GenerateFacialHeatmap + GenerateFrameIndices + GenerateFrameIndiceswithPadding + GenerateSegmentIndices + GetMaskedImage + GetSpatialDiscountMask + MATLABLikeResize + MirrorSequence + ModCrop + Normalize + PackEditInputs + PairedRandomCrop + RandomAffine + RandomBlur + RandomDownSampling + RandomJPEGCompression + RandomMaskDilation + RandomNoise + RandomResize + RandomResizedCrop + RandomRotation + RandomTransposeHW + RandomVideoCompression + RescaleToZeroOne + Resize + SetValues + TemporalReverse + ToTensor + UnsharpMasking + CropAroundCenter + CropAroundFg + GenerateSeg + CropAroundUnknown + GenerateSoftSeg + FormatTrimap + TransformTrimap + GenerateTrimap + GenerateTrimapWithDistTransform + CompositeFg + RandomLoadResizeBg + MergeFgAndBg + PerturbBg + RandomJitter + LoadPairedImageFromFile + CenterCropLongEdge + RandomCropLongEdge + NumpyPad diff --git a/docs/en/api/engine.hooks.rst b/docs/en/api/engine.hooks.rst new file mode 100644 index 0000000000..7f86d27383 --- /dev/null +++ b/docs/en/api/engine.hooks.rst @@ -0,0 +1,20 @@ +.. role:: hidden + :class: hidden-section + +mmedit.engine.hooks +=================================== + +.. currentmodule:: mmedit.engine.hooks + +.. autosummary:: + :toctree: generated + :nosignatures: + :template: classtemplate.rst + + ReduceLRSchedulerHook + BasicVisualizationHook + GenVisualizationHook + ExponentialMovingAverageHook + GenIterTimerHook + PGGANFetchDataHook + PickleDataHook diff --git a/docs/en/api/engine.optimizers.rst b/docs/en/api/engine.optimizers.rst new file mode 100644 index 0000000000..4425aeadef --- /dev/null +++ b/docs/en/api/engine.optimizers.rst @@ -0,0 +1,16 @@ +.. role:: hidden + :class: hidden-section + +mmedit.engine.optimizers +=================================== + +.. currentmodule:: mmedit.engine.optimizers + +.. autosummary:: + :toctree: generated + :nosignatures: + :template: classtemplate.rst + + MultiOptimWrapperConstructor + PGGANOptimWrapperConstructor + SinGANOptimWrapperConstructor diff --git a/docs/en/api/engine.runner.rst b/docs/en/api/engine.runner.rst new file mode 100644 index 0000000000..e8b71920f8 --- /dev/null +++ b/docs/en/api/engine.runner.rst @@ -0,0 +1,18 @@ +.. role:: hidden + :class: hidden-section + +mmedit.engine.runner +=================================== + +.. currentmodule:: mmedit.engine.runner + +.. autosummary:: + :toctree: generated + :nosignatures: + :template: classtemplate.rst + + MultiValLoop + MultiTestLoop + GenTestLoop + GenValLoop + GenLogProcessor diff --git a/docs/en/api/engine.schedulers.rst b/docs/en/api/engine.schedulers.rst new file mode 100644 index 0000000000..87b43e6873 --- /dev/null +++ b/docs/en/api/engine.schedulers.rst @@ -0,0 +1,15 @@ +.. role:: hidden + :class: hidden-section + +mmedit.engine.schedulers +=================================== + +.. currentmodule:: mmedit.engine.schedulers + +.. autosummary:: + :toctree: generated + :nosignatures: + :template: classtemplate.rst + + LinearLrInterval + ReduceLR diff --git a/docs/en/api/evaluation.functional.rst b/docs/en/api/evaluation.functional.rst new file mode 100644 index 0000000000..45ba9adb6b --- /dev/null +++ b/docs/en/api/evaluation.functional.rst @@ -0,0 +1,24 @@ +.. role:: hidden + :class: hidden-section + +mmedit.evaluation.functional +=================================== + +.. currentmodule:: mmedit.evaluation.functional + +.. autosummary:: + :toctree: generated + :nosignatures: + :template: classtemplate.rst + + InceptionV3 + +.. autosummary:: + :toctree: generated + :nosignatures: + + gauss_gradient + disable_gpu_fuser_on_pt19 + load_inception + prepare_vgg_feat + prepare_inception_feat diff --git a/docs/en/api/evaluation.metrics.rst b/docs/en/api/evaluation.metrics.rst new file mode 100644 index 0000000000..b2756a557a --- /dev/null +++ b/docs/en/api/evaluation.metrics.rst @@ -0,0 +1,36 @@ +.. role:: hidden + :class: hidden-section + +mmedit.evaluation.metrics +=================================== + +.. currentmodule:: mmedit.evaluation.metrics + +.. autosummary:: + :toctree: generated + :nosignatures: + :template: classtemplate.rst + + MAE + MSE + PSNR + SNR + SSIM + MultiScaleStructureSimilarity + FrechetInceptionDistance + TransFID + InceptionScore + TransIS + SAD + MattingMSE + ConnectivityError + GradientError + PerceptualPathLength + PrecisionAndRecall + SlicedWassersteinDistance + NIQE + Equivariance + psnr + snr + ssim + niqe diff --git a/docs/en/api/models.base_models.rst b/docs/en/api/models.base_models.rst new file mode 100644 index 0000000000..bbd7e74a02 --- /dev/null +++ b/docs/en/api/models.base_models.rst @@ -0,0 +1,23 @@ +.. role:: hidden + :class: hidden-section + +mmedit.models.base_models +=================================== + +.. currentmodule:: mmedit.models.base_models + +.. autosummary:: + :toctree: generated + :nosignatures: + :template: classtemplate.rst + + BaseEditModel + BaseGAN + BaseConditionalGAN + BaseMattor + BasicInterpolator + BaseTranslationModel + OneStageInpaintor + TwoStageInpaintor + ExponentialMovingAverage + RampUpEMA diff --git a/docs/en/api/models.data_preprocessors.rst b/docs/en/api/models.data_preprocessors.rst new file mode 100644 index 0000000000..f3f333faf3 --- /dev/null +++ b/docs/en/api/models.data_preprocessors.rst @@ -0,0 +1,18 @@ +.. role:: hidden + :class: hidden-section + +mmedit.models.data_preprocessors +=================================== + +.. currentmodule:: mmedit.models.data_preprocessors + +.. autosummary:: + :toctree: generated + :nosignatures: + :template: classtemplate.rst + + EditDataPreprocessor + MattorPreprocessor + split_batch + stack_batch + GenDataPreprocessor diff --git a/docs/en/api/models.editors.rst b/docs/en/api/models.editors.rst new file mode 100644 index 0000000000..e029ba8d48 --- /dev/null +++ b/docs/en/api/models.editors.rst @@ -0,0 +1,108 @@ +.. role:: hidden + :class: hidden-section + +mmedit.models.editors +=================================== + +.. currentmodule:: mmedit.models.editors + +.. autosummary:: + :toctree: generated + :nosignatures: + :template: classtemplate.rst + + AOTEncoderDecoder + AOTBlockNeck + AOTInpaintor + ContextualAttentionNeck + ContextualAttentionModule + CAIN + CAINNet + DIM + DIC + DICNet + LightCNN + FeedbackBlock + FeedbackBlockHeatmapAttention + FeedbackBlockCustom + MaxFeature + FLAVR + FLAVRNet + ToFResBlock + TOFlowVFINet + TOFlowVSRNet + DeepFillEncoder + DeepFillEncoderDecoder + DeepFillDecoder + DeepFillRefiner + DeepFillv1Inpaintor + DeepFillv1Discriminators + EDSRNet + ESRGAN + DepthwiseIndexBlock + HolisticIndexBlock + IndexNet + IndexNetEncoder + IndexedUpsample + IndexNetDecoder + GCA + GLEncoderDecoder + GLEncoder + GLDecoder + GLDilationNeck + PartialConv2d + PConvEncoderDecoder + PConvEncoder + PConvDecoder + PConvInpaintor + MaskConvModule + RRDBNet + SRCNNNet + RRDBNet + RealESRGAN + UNetDiscriminatorWithSpectralNorm + EDVR + EDVRNet + TDAN + TDANNet + BasicVSR + BasicVSRNet + BasicVSRPlusPlusNet + IconVSRNet + RealBasicVSR + RealBasicVSRNet + SRGAN + MaxFeature + ModifiedVGG + MSRResNet + RDNNet + LTE + TTSR + TTSRNet + TTSRDiscriminator + TTSRNet + SearchTransformer + GLEANStyleGANv2 + LIIF + MLPRefiner + PlainRefiner + PlainDecoder + FBAResnetDilated + FBADecoder + WGANGP + CycleGAN + SAGAN + LSGAN + GGAN + Pix2Pix + StyleGAN1 + StyleGAN2 + StyleGAN3 + BigGAN + DCGAN + ProgressiveGrowingGAN + SinGAN + IDLossModel + PESinGAN + MSPIEStyleGAN2 + StyleGAN3Generator diff --git a/docs/en/api/models.losses.rst b/docs/en/api/models.losses.rst new file mode 100644 index 0000000000..292d9eb924 --- /dev/null +++ b/docs/en/api/models.losses.rst @@ -0,0 +1,44 @@ +.. role:: hidden + :class: hidden-section + +mmedit.models.losses +=================================== + +.. currentmodule:: mmedit.models.losses + +.. autosummary:: + :toctree: generated + :nosignatures: + :template: classtemplate.rst + + L1Loss + MSELoss + CharbonnierLoss + L1CompositionLoss + MSECompositionLoss + CharbonnierCompLoss + GANLoss + GaussianBlur + GradientPenaltyLoss + PerceptualLoss + PerceptualVGG + reduce_loss + mask_reduce_loss + DiscShiftLoss + MaskedTVLoss + GradientLoss + TransferalPerceptualLoss + LightCNNFeatureLoss + gradient_penalty_loss + r1_gradient_penalty_loss + gen_path_regularizer + FaceIdLoss + CLIPLoss + CLIPLossComps + DiscShiftLossComps + FaceIdLossComps + GANLossComps + GeneratorPathRegularizerComps + GradientPenaltyLossComps + R1GradientPenaltyComps + disc_shift_loss diff --git a/docs/en/api/models.utils.rst b/docs/en/api/models.utils.rst new file mode 100644 index 0000000000..6b075c2838 --- /dev/null +++ b/docs/en/api/models.utils.rst @@ -0,0 +1,25 @@ +.. role:: hidden + :class: hidden-section + +mmedit.models.utils +=================================== + +.. currentmodule:: mmedit.models.utils + +.. autosummary:: + :toctree: generated + :nosignatures: + + default_init_weights + make_layer + flow_warp + generation_init_weights + set_requires_grad + extract_bbox_patch + extract_around_bbox + get_unknown_tensor + noise_sample_fn + label_sample_fn + get_valid_num_batches + get_valid_noise_size + get_module_device diff --git a/docs/en/api/structures.rst b/docs/en/api/structures.rst new file mode 100644 index 0000000000..dec2284c8b --- /dev/null +++ b/docs/en/api/structures.rst @@ -0,0 +1,15 @@ +.. role:: hidden + :class: hidden-section + +mmedit.structures +=================================== + +.. currentmodule:: mmedit.structures + +.. autosummary:: + :toctree: generated + :nosignatures: + :template: classtemplate.rst + + EditDataSample + PixelData diff --git a/docs/en/api/utils.rst b/docs/en/api/utils.rst new file mode 100644 index 0000000000..448f3e70ec --- /dev/null +++ b/docs/en/api/utils.rst @@ -0,0 +1,28 @@ +.. role:: hidden + :class: hidden-section + +mmedit.utils +=================================== + +.. currentmodule:: mmedit.utils + +.. autosummary:: + :toctree: generated + :nosignatures: + + modify_args + print_colored_log + register_all_modules + download_from_url + get_sampler + tensor2img + random_choose_unknown + add_gaussian_noise + adjust_gamma + make_coord + bbox2mask + brush_stroke_mask + get_irregular_mask + random_bbox + reorder_image + to_numpy diff --git a/docs/en/api/visualization.rst b/docs/en/api/visualization.rst new file mode 100644 index 0000000000..50cf94eb04 --- /dev/null +++ b/docs/en/api/visualization.rst @@ -0,0 +1,19 @@ +.. role:: hidden + :class: hidden-section + +mmedit.visualization +=================================== + +.. currentmodule:: mmedit.visualization + +.. autosummary:: + :toctree: generated + :nosignatures: + :template: classtemplate.rst + + ConcatImageVisualizer + GenVisualizer + GenVisBackend + PaviGenVisBackend + TensorboardGenVisBackend + WandbGenVisBackend diff --git a/docs/en/conf.py b/docs/en/conf.py index 05455c4dcc..81909842d5 100644 --- a/docs/en/conf.py +++ b/docs/en/conf.py @@ -32,11 +32,15 @@ # ones. extensions = [ 'sphinx.ext.autodoc', + 'sphinx.ext.autosummary', + 'sphinx.ext.intersphinx', 'sphinx.ext.napoleon', 'sphinx.ext.viewcode', + 'sphinx.ext.autosectionlabel', 'sphinx_markdown_tables', - 'sphinx_copybutton', 'myst_parser', + 'sphinx_copybutton', + 'sphinx.ext.autodoc.typehints', ] autodoc_mock_imports = [ @@ -71,7 +75,6 @@ html_theme_path = [pytorch_sphinx_theme.get_html_theme_path()] html_theme_options = { - # 'logo_url': 'https://mmocr.readthedocs.io/en/latest/', 'menu': [ { 'name': 'GitHub', @@ -89,7 +92,12 @@ { 'name': 'MMEditing 1.x', 'url': 'https://mmediting.readthedocs.io/en/1.x/', - 'description': '1.x branch' + 'description': '1.x branch', + }, + { + 'name': 'MMEditing 1.x', + 'url': 'https://mmediting.readthedocs.io/en/dev-1.x/', + 'description': 'docs at 1.x branch' }, ], 'active': @@ -97,7 +105,17 @@ }, ], 'menu_lang': - 'en' + 'en', + 'header_note': { + 'content': + 'You are reading the documentation for MMEditing 0.x, which ' + 'will soon be deprecated by the end of 2022. We recommend you upgrade ' + 'to MMEditing 1.0 to enjoy fruitful new features and better performance ' # noqa + ' brought by OpenMMLab 2.0. Check out the ' + 'changelog, ' # noqa + 'code ' # noqa + 'and documentation of MMEditing 1.0 for more details.', # noqa + } } # Add any paths that contain custom static files (such as style sheets) here, diff --git a/docs/en/dataset_zoo/0_overview.md b/docs/en/dataset_zoo/0_overview.md index f5c6f41be7..d0a2da7f40 100644 --- a/docs/en/dataset_zoo/0_overview.md +++ b/docs/en/dataset_zoo/0_overview.md @@ -1,8 +1,18 @@ # Overview -\\n- [Prepare Super-Resolution Datasets](./1_super_resolution_datasets.md) -\\n- [Prepare Inpainting Datasets](./2_inpainting_datasets.md) -\\n- [Prepare Matting Datasets](./3_matting_datasets.md)\\n -\\n- [Prepare Video Frame Interpolation Datasets](./4_video_interpolation_datasets.md) -\\n- [Prepare Unconditional GANs Datasets](./5_unconditional_gans_datasets.md) -\\n- [Prepare Image Translation Datasets](./6_image_translation_datasets.md) +- [Prepare Super-Resolution Datasets](./1_super_resolution_datasets.md) + - [DF2K_OST](./1_super_resolution_datasets.md#df2k_ost-dataset) \[ [Homepage](https://github.com/xinntao/Real-ESRGAN/blob/master/docs/Training.md) \] + - [DIV2K](./1_super_resolution_datasets.md#div2k-dataset) \[ [Homepage](https://data.vision.ee.ethz.ch/cvl/DIV2K/) \] + - [REDS](./1_super_resolution_datasets.md#reds-dataset) \[ [Homepage](https://seungjunnah.github.io/Datasets/reds.html) \] + - [Vid4](./1_super_resolution_datasets.md#vid4-dataset) \[ [Homepage](https://drive.google.com/file/d/1ZuvNNLgR85TV_whJoHM7uVb-XW1y70DW/view) \] + - [Vimeo90K](./1_super_resolution_datasets.md#vimeo90k-dataset) \[ [Homepage](http://toflow.csail.mit.edu) \] +- [Prepare Inpainting Datasets](./2_inpainting_datasets.md) + - [CelebA-HQ](./2_inpainting_datasets.md#celeba-hq-dataset) \[ [Homepage](https://github.com/tkarras/progressive_growing_of_gans#preparing-datasets-for-training) \] + - [Paris Street View](./2_inpainting_datasets.md#paris-street-view-dataset) \[ [Homepage](https://github.com/pathak22/context-encoder/issues/24) \] + - [Places365](./2_inpainting_datasets.md#places365-dataset) \[ [Homepage](http://places2.csail.mit.edu/) \] +- [Prepare Matting Datasets](./3_matting_datasets.md) + - [Composition-1k](./3_matting_datasets.md#composition-1k-dataset) \[ [Homepage](https://sites.google.com/view/deepimagematting) \] +- [Prepare Video Frame Interpolation Datasets](./4_video_interpolation_datasets.md) + - [Vimeo90K-triplet](./4_video_interpolation_datasets.md#vimeo90k-triplet-dataset) \[ [Homepage](http://toflow.csail.mit.edu) \] +- [Prepare Unconditional GANs Datasets](./5_unconditional_gans_datasets.md) +- [Prepare Image Translation Datasets](./6_image_translation_datasets.md) diff --git a/docs/en/dataset_zoo/1_super_resolution_datasets.md b/docs/en/dataset_zoo/1_super_resolution_datasets.md index e69de29bb2..e6afa8ff6d 100644 --- a/docs/en/dataset_zoo/1_super_resolution_datasets.md +++ b/docs/en/dataset_zoo/1_super_resolution_datasets.md @@ -0,0 +1,356 @@ +# Super-Resolution Datasets + +It is recommended to symlink the dataset root to `$MMEDITING/data`. If your folder structure is different, you may need to change the corresponding paths in config files. + +MMEditing supported super-resolution datasets: + +- Image Super-Resolution + - [DF2K_OST](#df2k_ost-dataset) \[ [Homepage](https://github.com/xinntao/Real-ESRGAN/blob/master/docs/Training.md) \] + - [DIV2K](#div2k-dataset) \[ [Homepage](https://data.vision.ee.ethz.ch/cvl/DIV2K/) \] +- Video Super-Resolution + - [REDS](#reds-dataset) \[ [Homepage](https://seungjunnah.github.io/Datasets/reds.html) \] + - [Vid4](#vid4-dataset) \[ [Homepage](https://drive.google.com/file/d/1ZuvNNLgR85TV_whJoHM7uVb-XW1y70DW/view) \] + - [Vimeo90K](#vimeo90k-dataset) \[ [Homepage](http://toflow.csail.mit.edu) \] + +## DF2K_OST Dataset + + + +```bibtex +@inproceedings{wang2021real, + title={Real-ESRGAN: Training Real-World Blind Super-Resolution with Pure Synthetic Data}, + author={Wang, Xintao and Xie, Liangbin and Dong, Chao and Shan, Ying}, + booktitle={Proceedings of the IEEE/CVF International Conference on Computer Vision}, + pages={1905--1914}, + year={2021} +} +``` + +- The DIV2K dataset can be downloaded from [here](https://data.vision.ee.ethz.ch/cvl/DIV2K/) (We use the training set only). +- The Flickr2K dataset can be downloaded [here](https://cv.snu.ac.kr/research/EDSR/Flickr2K.tar) (We use the training set only). +- The OST dataset can be downloaded [here](https://openmmlab.oss-cn-hangzhou.aliyuncs.com/datasets/OST_dataset.zip) (We use the training set only). + +Please first put all the images into the `GT` folder (naming does not need to be in order): + +```text +mmediting +โ”œโ”€โ”€ mmedit +โ”œโ”€โ”€ tools +โ”œโ”€โ”€ configs +โ”œโ”€โ”€ data +โ”‚ โ”œโ”€โ”€ df2k_ost +โ”‚ โ”‚ โ”œโ”€โ”€ GT +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ 0001.png +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ 0002.png +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ ... +... +``` + +### Crop sub-images + +For faster IO, we recommend to crop the images to sub-images. We provide such a script: + +```shell +python tools/dataset_converters/super-resolution/df2k_ost/preprocess_df2k_ost_dataset.py --data-root ./data/df2k_ost +``` + +The generated data is stored under `df2k_ost` and the data structure is as follows, where `_sub` indicates the sub-images. + +```text +mmediting +โ”œโ”€โ”€ mmedit +โ”œโ”€โ”€ tools +โ”œโ”€โ”€ configs +โ”œโ”€โ”€ data +โ”‚ โ”œโ”€โ”€ df2k_ost +โ”‚ โ”‚ โ”œโ”€โ”€ GT +โ”‚ โ”‚ โ”œโ”€โ”€ GT_sub +... +``` + +### Prepare LMDB dataset for DF2K_OST + +If you want to use LMDB datasets for faster IO speed, you can make LMDB files by: + +```shell +python tools/dataset_converters/super-resolution/df2k_ost/preprocess_df2k_ost_dataset.py --data-root ./data/df2k_ost --make-lmdb +``` + +## DIV2K Dataset + + + +```bibtex +@InProceedings{Agustsson_2017_CVPR_Workshops, + author = {Agustsson, Eirikur and Timofte, Radu}, + title = {NTIRE 2017 Challenge on Single Image Super-Resolution: Dataset and Study}, + booktitle = {The IEEE Conference on Computer Vision and Pattern Recognition (CVPR) Workshops}, + month = {July}, + year = {2017} +} +``` + +- Training dataset: [DIV2K dataset](https://data.vision.ee.ethz.ch/cvl/DIV2K/). +- Validation dataset: Set5 and Set14. + +```text +mmediting +โ”œโ”€โ”€ mmedit +โ”œโ”€โ”€ tools +โ”œโ”€โ”€ configs +โ”œโ”€โ”€ data +โ”‚ โ”œโ”€โ”€ DIV2K +โ”‚ โ”‚ โ”œโ”€โ”€ DIV2K_train_HR +โ”‚ โ”‚ โ”œโ”€โ”€ DIV2K_train_LR_bicubic +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ X2 +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ X3 +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ X4 +โ”‚ โ”‚ โ”œโ”€โ”€ DIV2K_valid_HR +โ”‚ โ”‚ โ”œโ”€โ”€ DIV2K_valid_LR_bicubic +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ X2 +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ X3 +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ X4 +โ”‚ โ”œโ”€โ”€ Set5 +โ”‚ โ”‚ โ”œโ”€โ”€ GTmod12 +โ”‚ โ”‚ โ”œโ”€โ”€ LRbicx2 +โ”‚ โ”‚ โ”œโ”€โ”€ LRbicx3 +โ”‚ โ”‚ โ”œโ”€โ”€ LRbicx4 +โ”‚ โ”œโ”€โ”€ Set14 +โ”‚ โ”‚ โ”œโ”€โ”€ GTmod12 +โ”‚ โ”‚ โ”œโ”€โ”€ LRbicx2 +โ”‚ โ”‚ โ”œโ”€โ”€ LRbicx3 +โ”‚ โ”‚ โ”œโ”€โ”€ LRbicx4 +``` + +### Crop sub-images + +For faster IO, we recommend to crop the DIV2K images to sub-images. We provide such a script: + +```shell +python tools/dataset_converters/super-resolution/div2k/preprocess_div2k_dataset.py --data-root ./data/DIV2K +``` + +The generated data is stored under `DIV2K` and the data structure is as follows, where `_sub` indicates the sub-images. + +```text +mmediting +โ”œโ”€โ”€ mmedit +โ”œโ”€โ”€ tools +โ”œโ”€โ”€ configs +โ”œโ”€โ”€ data +โ”‚ โ”œโ”€โ”€ DIV2K +โ”‚ โ”‚ โ”œโ”€โ”€ DIV2K_train_HR +โ”‚ โ”‚ โ”œโ”€โ”€ DIV2K_train_HR_sub +โ”‚ โ”‚ โ”œโ”€โ”€ DIV2K_train_LR_bicubic +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ X2 +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ X3 +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ X4 +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ X2_sub +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ X3_sub +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ X4_sub +โ”‚ โ”‚ โ”œโ”€โ”€ DIV2K_valid_HR +โ”‚ โ”‚ โ”œโ”€โ”€ ... +... +``` + +### Prepare annotation list + +If you use the annotation mode for the dataset, you first need to prepare a specific `txt` file. + +Each line in the annotation file contains the image names and image shape (usually for the ground-truth images), separated by a white space. + +Example of an annotation file: + +```text +0001_s001.png (480,480,3) +0001_s002.png (480,480,3) +``` + +### Prepare LMDB dataset for DIV2K + +If you want to use LMDB datasets for faster IO speed, you can make LMDB files by: + +```shell +python tools/dataset_converters/super-resolution/div2k/preprocess_div2k_dataset.py --data-root ./data/DIV2K --make-lmdb +``` + +## REDS Dataset + + + +```bibtex +@InProceedings{Nah_2019_CVPR_Workshops_REDS, + author = {Nah, Seungjun and Baik, Sungyong and Hong, Seokil and Moon, Gyeongsik and Son, Sanghyun and Timofte, Radu and Lee, Kyoung Mu}, + title = {NTIRE 2019 Challenge on Video Deblurring and Super-Resolution: Dataset and Study}, + booktitle = {The IEEE Conference on Computer Vision and Pattern Recognition (CVPR) Workshops}, + month = {June}, + year = {2019} +} +``` + +- Training dataset: [REDS dataset](https://seungjunnah.github.io/Datasets/reds.html). +- Validation dataset: [REDS dataset](https://seungjunnah.github.io/Datasets/reds.html) and Vid4. + +Note that we merge train and val datasets in REDS for easy switching between REDS4 partition (used in EDVR) and the official validation partition. +The original val dataset (clip names from 000 to 029) are modified to avoid conflicts with training dataset (total 240 clips). Specifically, the clip names are changed to 240, 241, ... 269. + +You can prepare the REDS dataset by running: + +```shell +python tools/dataset_converters/super-resolution/reds/preprocess_reds_dataset.py --root-path ./data/REDS +``` + +```text +mmediting +โ”œโ”€โ”€ mmedit +โ”œโ”€โ”€ tools +โ”œโ”€โ”€ configs +โ”œโ”€โ”€ data +โ”‚ โ”œโ”€โ”€ REDS +โ”‚ โ”‚ โ”œโ”€โ”€ train_sharp +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ 000 +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ 001 +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ ... +โ”‚ โ”‚ โ”œโ”€โ”€ train_sharp_bicubic +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ 000 +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ 001 +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ ... +โ”‚ โ”œโ”€โ”€ REDS4 +โ”‚ โ”‚ โ”œโ”€โ”€ GT +โ”‚ โ”‚ โ”œโ”€โ”€ sharp_bicubic +``` + +### Prepare LMDB dataset for REDS + +If you want to use LMDB datasets for faster IO speed, you can make LMDB files by: + +```shell +python tools/dataset_converters/super-resolution/reds/preprocess_reds_dataset.py --root-path ./data/REDS --make-lmdb +``` + +### Crop to sub-images + +MMEditing also support cropping REDS images to sub-images for faster IO. We provide such a script: + +```shell +python tools/dataset_converters/super-resolution/reds/crop_sub_images.py --data-root ./data/REDS -scales 4 +``` + +The generated data is stored under `REDS` and the data structure is as follows, where `_sub` indicates the sub-images. + +```text +mmediting +โ”œโ”€โ”€ mmedit +โ”œโ”€โ”€ tools +โ”œโ”€โ”€ configs +โ”œโ”€โ”€ data +โ”‚ โ”œโ”€โ”€ REDS +โ”‚ โ”‚ โ”œโ”€โ”€ train_sharp +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ 000 +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ 001 +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ ... +โ”‚ โ”‚ โ”œโ”€โ”€ train_sharp_sub +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ 000_s001 +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ 000_s002 +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ ... +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ 001_s001 +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ ... +โ”‚ โ”‚ โ”œโ”€โ”€ train_sharp_bicubic +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ X4 +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ 000 +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ 001 +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ ... +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ X4_sub +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ 000_s001 +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ 000_s002 +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ ... +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ 001_s001 +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ ... +``` + +Note that by default `preprocess_reds_dataset.py` does not make lmdb and annotation file for the cropped dataset. You may need to modify the scripts a little bit for such operations. + +## Vid4 Dataset + + + +```bibtex +@article{xue2019video, + title={On Bayesian adaptive video super resolution}, + author={Liu, Ce and Sun, Deqing}, + journal={IEEE Transactions on Pattern Analysis and Machine Intelligence}, + volume={36}, + number={2}, + pages={346--360}, + year={2013}, + publisher={IEEE} +} +``` + +The Vid4 dataset can be downloaded from [here](https://drive.google.com/file/d/1ZuvNNLgR85TV_whJoHM7uVb-XW1y70DW/view?usp=sharing). There are two degradations in the dataset. + +1. BIx4 contains images downsampled by bicubic interpolation +2. BDx4 contains images blurred by Gaussian kernel with ฯƒ=1.6, followed by a subsampling every four pixels. + +## Vimeo90K Dataset + + + +```bibtex +@article{xue2019video, + title={Video Enhancement with Task-Oriented Flow}, + author={Xue, Tianfan and Chen, Baian and Wu, Jiajun and Wei, Donglai and Freeman, William T}, + journal={International Journal of Computer Vision (IJCV)}, + volume={127}, + number={8}, + pages={1106--1125}, + year={2019}, + publisher={Springer} +} +``` + +The training and test datasets can be download from [here](http://toflow.csail.mit.edu/). + +The Vimeo90K dataset has a `clip/sequence/img` folder structure: + +```text +mmediting +โ”œโ”€โ”€ mmedit +โ”œโ”€โ”€ tools +โ”œโ”€โ”€ configs +โ”œโ”€โ”€ data +โ”‚ โ”œโ”€โ”€ vimeo_triplet +โ”‚ โ”‚ โ”œโ”€โ”€ BDx4 +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ 00001 +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ 0001 +โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ im1.png +โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ im2.png +โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ ... +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ 0002 +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ 0003 +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ ... +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ 00002 +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ ... +โ”‚ โ”‚ โ”œโ”€โ”€ BIx4 +โ”‚ โ”‚ โ”œโ”€โ”€ GT +โ”‚ โ”‚ โ”œโ”€โ”€ meta_info_Vimeo90K_test_GT.txt +โ”‚ โ”‚ โ”œโ”€โ”€ meta_info_Vimeo90K_train_GT.txt +``` + +### Prepare the annotation files for Vimeo90K dataset + +To prepare the annotation file for training, you need to download the official training list path for Vimeo90K from the official website, and run the following command: + +```shell +python tools/dataset_converters/super-resolution/vimeo90k/preprocess_vimeo90k_dataset.py ./data/Vimeo90K/official_train_list.txt +``` + +The annotation file for test is generated similarly. + +### Prepare LMDB dataset for Vimeo90K + +If you want to use LMDB datasets for faster IO speed, you can make LMDB files by: + +```shell +python tools/dataset_converters/super-resolution/vimeo90k/preprocess_vimeo90k_dataset.py ./data/Vimeo90K/official_train_list.txt --gt-path ./data/Vimeo90K/GT --lq-path ./data/Vimeo90K/LQ --make-lmdb +``` diff --git a/docs/en/dataset_zoo/2_inpainting_datasets.md b/docs/en/dataset_zoo/2_inpainting_datasets.md index e69de29bb2..f5dac5abac 100644 --- a/docs/en/dataset_zoo/2_inpainting_datasets.md +++ b/docs/en/dataset_zoo/2_inpainting_datasets.md @@ -0,0 +1,114 @@ +# Inpainting Datasets + +It is recommended to symlink the dataset root to `$MMEDITING/data`. If your folder structure is different, you may need to change the corresponding paths in config files. + +MMEditing supported inpainting datasets: + +- [CelebA-HQ](#celeba-hq-dataset) \[ [Homepage](https://github.com/tkarras/progressive_growing_of_gans#preparing-datasets-for-training) \] +- [Paris Street View](#paris-street-view-dataset) \[ [Homepage](https://github.com/pathak22/context-encoder/issues/24) \] +- [Places365](#places365-dataset) \[ [Homepage](http://places2.csail.mit.edu/) \] + +As we only need images for inpainting task, further preparation is not necessary and the folder structure can be different from the example. You can utilize the information provided by the original dataset like `Place365` (e.g. `meta`). Also, you can easily scan the data set and list all of the images to a specific `txt` file. Here is an example for the `Places365_val.txt` from Places365 and we will only use the image name information in inpainting. + +``` +Places365_val_00000001.jpg 165 +Places365_val_00000002.jpg 358 +Places365_val_00000003.jpg 93 +Places365_val_00000004.jpg 164 +Places365_val_00000005.jpg 289 +Places365_val_00000006.jpg 106 +Places365_val_00000007.jpg 81 +Places365_val_00000008.jpg 121 +Places365_val_00000009.jpg 150 +Places365_val_00000010.jpg 302 +Places365_val_00000011.jpg 42 +``` + +## CelebA-HQ Dataset + + + +```bibtex +@article{karras2017progressive, + title={Progressive growing of gans for improved quality, stability, and variation}, + author={Karras, Tero and Aila, Timo and Laine, Samuli and Lehtinen, Jaakko}, + journal={arXiv preprint arXiv:1710.10196}, + year={2017} +} +``` + +Follow the instructions [here](https://github.com/tkarras/progressive_growing_of_gans##preparing-datasets-for-training) to prepare the dataset. + +```text +mmediting +โ”œโ”€โ”€ mmedit +โ”œโ”€โ”€ tools +โ”œโ”€โ”€ configs +โ”œโ”€โ”€ data +โ”‚ โ”œโ”€โ”€ CelebA-HQ +โ”‚ โ”‚ โ”œโ”€โ”€ train_256 +| | โ”œโ”€โ”€ test_256 +| | โ”œโ”€โ”€ train_celeba_img_list.txt +| | โ”œโ”€โ”€ val_celeba_img_list.txt + +``` + +## Paris Street View Dataset + + + +```bibtex +@inproceedings{pathak2016context, + title={Context encoders: Feature learning by inpainting}, + author={Pathak, Deepak and Krahenbuhl, Philipp and Donahue, Jeff and Darrell, Trevor and Efros, Alexei A}, + booktitle={Proceedings of the IEEE conference on computer vision and pattern recognition}, + pages={2536--2544}, + year={2016} +} +``` + +Obtain the dataset [here](https://github.com/pathak22/context-encoder/issues/24). + +```text +mmediting +โ”œโ”€โ”€ mmedit +โ”œโ”€โ”€ tools +โ”œโ”€โ”€ configs +โ”œโ”€โ”€ data +โ”‚ โ”œโ”€โ”€ paris_street_view +โ”‚ โ”‚ โ”œโ”€โ”€ train +| | โ”œโ”€โ”€ val + +``` + +## Places365 Dataset + + + +```bibtex + @article{zhou2017places, + title={Places: A 10 million Image Database for Scene Recognition}, + author={Zhou, Bolei and Lapedriza, Agata and Khosla, Aditya and Oliva, Aude and Torralba, Antonio}, + journal={IEEE Transactions on Pattern Analysis and Machine Intelligence}, + year={2017}, + publisher={IEEE} + } + +``` + +Prepare the data from [Places365](http://places2.csail.mit.edu/download.html). + +```text +mmediting +โ”œโ”€โ”€ mmedit +โ”œโ”€โ”€ tools +โ”œโ”€โ”€ configs +โ”œโ”€โ”€ data +โ”‚ โ”œโ”€โ”€ Places +โ”‚ โ”‚ โ”œโ”€โ”€ data_large +โ”‚ โ”‚ โ”œโ”€โ”€ val_large +| | โ”œโ”€โ”€ meta +| | | โ”œโ”€โ”€ places365_train_challenge.txt +| | | โ”œโ”€โ”€ places365_val.txt + +``` diff --git a/docs/en/dataset_zoo/3_matting_datasets.md b/docs/en/dataset_zoo/3_matting_datasets.md index e69de29bb2..cc9c95f924 100644 --- a/docs/en/dataset_zoo/3_matting_datasets.md +++ b/docs/en/dataset_zoo/3_matting_datasets.md @@ -0,0 +1,147 @@ +# Matting Datasets + +It is recommended to symlink the dataset root to `$MMEDITING/data`. If your folder structure is different, you may need to change the corresponding paths in config files. + +MMEditing supported matting datasets: + +- [Composition-1k](#composition-1k-dataset) \[ [Homepage](https://sites.google.com/view/deepimagematting) \] + +## Composition-1k Dataset + +### Introduction + + + +```bibtex +@inproceedings{xu2017deep, + title={Deep image matting}, + author={Xu, Ning and Price, Brian and Cohen, Scott and Huang, Thomas}, + booktitle={Proceedings of the IEEE conference on computer vision and pattern recognition}, + pages={2970--2979}, + year={2017} +} +``` + +The Adobe Composition-1k dataset consists of foreground images and their corresponding alpha images. +To get the full dataset, one need to composite the foregrounds with selected backgrounds from the COCO dataset and the Pascal VOC dataset. + +### Obtain and Extract + +Please follow the instructions of [paper authors](https://sites.google.com/view/deepimagematting) to obtain the Composition-1k (comp1k) dataset. + +### Composite the full dataset + +The Adobe composition-1k dataset contains only `alpha` and `fg` (and `trimap` in test set). +It is needed to merge `fg` with COCO data (training) or VOC data (test) before training or evaluation. +Use the following script to perform image composition and generate annotation files for training or testing: + +```shell +## The script is run under the root folder of MMEditing +python tools/dataset_converters/matting/comp1k/preprocess_comp1k_dataset.py data/adobe_composition-1k data/coco data/VOCdevkit --composite +``` + +The generated data is stored under `adobe_composition-1k/Training_set` and `adobe_composition-1k/Test_set` respectively. +If you only want to composite test data (since compositing training data is time-consuming), you can skip compositing the training set by removing the `--composite` option: + +```shell +## skip compositing training set +python tools/dataset_converters/matting/comp1k/preprocess_comp1k_dataset.py data/adobe_composition-1k data/coco data/VOCdevkit +``` + +If you only want to preprocess test data, i.e. for FBA, you can skip the train set by adding the `--skip-train` option: + +```shell +## skip preprocessing training set +python tools/data/matting/comp1k/preprocess_comp1k_dataset.py data/adobe_composition-1k data/coco data/VOCdevkit --skip-train +``` + +> Currently, `GCA` and `FBA` support online composition of training data. But you can modify the data pipeline of other models to perform online composition instead of loading composited images (we called it `merged` in our data pipeline). + +### Check Directory Structure for DIM + +The result folder structure should look like: + +```text +mmediting +โ”œโ”€โ”€ mmedit +โ”œโ”€โ”€ tools +โ”œโ”€โ”€ configs +โ”œโ”€โ”€ data +โ”‚ โ”œโ”€โ”€ adobe_composition-1k +โ”‚ โ”‚ โ”œโ”€โ”€ Test_set +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ Adobe-licensed images +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ alpha +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ fg +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ trimaps +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ merged (generated by tools/dataset_converters/matting/comp1k/preprocess_comp1k_dataset.py) +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ bg (generated by tools/dataset_converters/matting/comp1k/preprocess_comp1k_dataset.py) +โ”‚ โ”‚ โ”œโ”€โ”€ Training_set +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ Adobe-licensed images +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ alpha +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ fg +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ Other +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ alpha +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ fg +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ merged (generated by tools/dataset_converters/matting/comp1k/preprocess_comp1k_dataset.py) +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ bg (generated by tools/dataset_converters/matting/comp1k/preprocess_comp1k_dataset.py) +โ”‚ โ”‚ โ”œโ”€โ”€ test_list.json (generated by tools/dataset_converters/matting/comp1k/preprocess_comp1k_dataset.py) +โ”‚ โ”‚ โ”œโ”€โ”€ training_list.json (generated by tools/dataset_converters/matting/comp1k/preprocess_comp1k_dataset.py) +โ”‚ โ”œโ”€โ”€ coco +โ”‚ โ”‚ โ”œโ”€โ”€ train2014 (or train2017) +โ”‚ โ”œโ”€โ”€ VOCdevkit +โ”‚ โ”‚ โ”œโ”€โ”€ VOC2012 +``` + +### Prepare the dataset for FBA + +FBA adopts dynamic dataset augmentation proposed in [Learning-base Sampling for Natural Image Matting](https://openaccess.thecvf.com/content_CVPR_2019/papers/Tang_Learning-Based_Sampling_for_Natural_Image_Matting_CVPR_2019_paper.pdf). +In addition, to reduce artifacts during augmentation, it uses the extended version of foreground as foreground. +We provide scripts to estimate foregrounds. + +Prepare the test set as follows: + +```shell +## skip preprocessing training set, as it composites online during training +python tools/dataset_converters/matting/comp1k/preprocess_comp1k_dataset.py data/adobe_composition-1k data/coco data/VOCdevkit --skip-train +``` + +Extend the foreground of training set as follows: + +```shell +python tools/dataset_converters/matting/comp1k/extend_fg.py data/adobe_composition-1k +``` + +### Check Directory Structure for DIM + +The final folder structure should look like: + +```text +mmediting +โ”œโ”€โ”€ mmedit +โ”œโ”€โ”€ tools +โ”œโ”€โ”€ configs +โ”œโ”€โ”€ data +โ”‚ โ”œโ”€โ”€ adobe_composition-1k +โ”‚ โ”‚ โ”œโ”€โ”€ Test_set +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ Adobe-licensed images +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ alpha +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ fg +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ trimaps +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ merged (generated by tools/data/matting/comp1k/preprocess_comp1k_dataset.py) +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ bg (generated by tools/data/matting/comp1k/preprocess_comp1k_dataset.py) +โ”‚ โ”‚ โ”œโ”€โ”€ Training_set +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ Adobe-licensed images +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ alpha +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ fg +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ fg_extended (generated by tools/data/matting/comp1k/extend_fg.py) +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ Other +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ alpha +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ fg +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ fg_extended (generated by tools/data/matting/comp1k/extend_fg.py) +โ”‚ โ”‚ โ”œโ”€โ”€ test_list.json (generated by tools/data/matting/comp1k/preprocess_comp1k_dataset.py) +โ”‚ โ”‚ โ”œโ”€โ”€ training_list_fba.json (generated by tools/data/matting/comp1k/extend_fg.py) +โ”‚ โ”œโ”€โ”€ coco +โ”‚ โ”‚ โ”œโ”€โ”€ train2014 (or train2017) +โ”‚ โ”œโ”€โ”€ VOCdevkit +โ”‚ โ”‚ โ”œโ”€โ”€ VOC2012 +``` diff --git a/docs/en/dataset_zoo/4_video_interpolation_datasets.md b/docs/en/dataset_zoo/4_video_interpolation_datasets.md index e69de29bb2..9889939c91 100644 --- a/docs/en/dataset_zoo/4_video_interpolation_datasets.md +++ b/docs/en/dataset_zoo/4_video_interpolation_datasets.md @@ -0,0 +1,50 @@ +# Video Frame Interpolation Datasets + +It is recommended to symlink the dataset root to `$MMEDITING/data`. If your folder structure is different, you may need to change the corresponding paths in config files. + +MMEditing supported video frame interpolation datasets: + +- [Vimeo90K-triplet](#vimeo90k-triplet-dataset) \[ [Homepage](http://toflow.csail.mit.edu) \] + +## Vimeo90K-triplet Dataset + + + +```bibtex +@article{xue2019video, + title={Video Enhancement with Task-Oriented Flow}, + author={Xue, Tianfan and Chen, Baian and Wu, Jiajun and Wei, Donglai and Freeman, William T}, + journal={International Journal of Computer Vision (IJCV)}, + volume={127}, + number={8}, + pages={1106--1125}, + year={2019}, + publisher={Springer} +} +``` + +The training and test datasets can be download from [here](http://toflow.csail.mit.edu/). + +The Vimeo90K-triplet dataset has a `clip/sequence/img` folder structure: + +```text +mmediting +โ”œโ”€โ”€ mmedit +โ”œโ”€โ”€ tools +โ”œโ”€โ”€ configs +โ”œโ”€โ”€ data +โ”‚ โ”œโ”€โ”€ vimeo_triplet +โ”‚ โ”‚ โ”œโ”€โ”€ tri_testlist.txt +โ”‚ โ”‚ โ”œโ”€โ”€ tri_trainlist.txt +โ”‚ โ”‚ โ”œโ”€โ”€ sequences +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ 00001 +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ 0001 +โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ im1.png +โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ im2.png +โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ im3.png +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ 0002 +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ 0003 +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ ... +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ 00002 +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ ... +``` diff --git a/docs/en/dataset_zoo/5_unconditional_gans_datasets.md b/docs/en/dataset_zoo/5_unconditional_gans_datasets.md index e69de29bb2..70d5524f4f 100644 --- a/docs/en/dataset_zoo/5_unconditional_gans_datasets.md +++ b/docs/en/dataset_zoo/5_unconditional_gans_datasets.md @@ -0,0 +1,91 @@ +# Unconditional GANs Datasets + +**Data preparation for unconditional model** is simple. What you need to do is downloading the images and put them into a directory. Next, you should set a symlink in the `data` directory. For standard unconditional gans with static architectures, like DCGAN and StyleGAN2, `UnconditionalImageDataset` is designed to train such unconditional models. Here is an example config for FFHQ dataset: + +```python +dataset_type = 'UnconditionalImageDataset' + +train_pipeline = [ + dict(type='LoadImageFromFile', key='img'), + dict(type='Flip', keys=['img'], direction='horizontal'), + dict(type='PackGenInputs', keys=['img'], meta_keys=['img_path']) +] + +# `batch_size` and `data_root` need to be set. +train_dataloader = dict( + batch_size=4, + num_workers=8, + persistent_workers=True, + sampler=dict(type='InfiniteSampler', shuffle=True), + dataset=dict( + type=dataset_type, + data_root=None, # set by user + pipeline=train_pipeline)) +``` + +Here, we adopt `InfinitySampler` to avoid frequent dataloader reloading, which will accelerate the training procedure. As shown in the example, `pipeline` provides important data pipeline to process images, including loading from file system, resizing, cropping, transferring to `torch.Tensor` and packing to `GenDataSample`. All of supported data pipelines can be found in `mmedit/datasets/transforms`. + +For unconditional GANs with dynamic architectures like PGGAN and StyleGANv1, `GrowScaleImgDataset` is recommended to use for training. Since such dynamic architectures need real images in different scales, directly adopting `UnconditionalImageDataset` will bring heavy I/O cost for loading multiple high-resolution images. Here is an example we use for training PGGAN in CelebA-HQ dataset: + +```python +dataset_type = 'GrowScaleImgDataset' + +pipeline = [ + dict(type='LoadImageFromFile', key='img'), + dict(type='Flip', keys=['img'], direction='horizontal'), + dict(type='PackGenInputs') +] + +# `samples_per_gpu` and `imgs_root` need to be set. +train_dataloader = dict( + num_workers=4, + batch_size=64, + dataset=dict( + type='GrowScaleImgDataset', + data_roots={ + '1024': './data/ffhq/images', + '256': './data/ffhq/ffhq_imgs/ffhq_256', + '64': './data/ffhq/ffhq_imgs/ffhq_64' + }, + gpu_samples_base=4, + # note that this should be changed with total gpu number + gpu_samples_per_scale={ + '4': 64, + '8': 32, + '16': 16, + '32': 8, + '64': 4, + '128': 4, + '256': 4, + '512': 4, + '1024': 4 + }, + len_per_stage=300000, + pipeline=pipeline), + sampler=dict(type='InfiniteSampler', shuffle=True)) +``` + +In this dataset, you should provide a dictionary of image paths to the `data_roots`. Thus, you should resize the images in the dataset in advance. +For the resizing methods in the data pre-processing, we adopt bilinear interpolation methods in all of the experiments studied in MMEditing. + +Note that this dataset should be used with `PGGANFetchDataHook`. In this config file, this hook should be added in the customized hooks, as shown below. + +```python +custom_hooks = [ + dict( + type='GenVisualizationHook', + interval=5000, + fixed_input=True, + # vis ema and orig at the same time + vis_kwargs_list=dict( + type='Noise', + name='fake_img', + sample_model='ema/orig', + target_keys=['ema', 'orig'])), + dict(type='PGGANFetchDataHook') +] +``` + +This fetching data hook helps the dataloader update the status of dataset to change the data source and batch size during training. + +Here, we provide several download links of datasets frequently used in unconditional models: [LSUN](http://dl.yf.io/lsun/), [CelebA](http://mmlab.ie.cuhk.edu.hk/projects/CelebA.html), [CelebA-HQ](https://drive.google.com/drive/folders/11Vz0fqHS2rXDb5pprgTjpD7S2BAJhi1P), [FFHQ](https://drive.google.com/drive/folders/1u2xu7bSrWxrbUxk-dT-UvEJq8IjdmNTP). diff --git a/docs/en/dataset_zoo/6_image_translation_datasets.md b/docs/en/dataset_zoo/6_image_translation_datasets.md index e69de29bb2..85cec47c16 100644 --- a/docs/en/dataset_zoo/6_image_translation_datasets.md +++ b/docs/en/dataset_zoo/6_image_translation_datasets.md @@ -0,0 +1,149 @@ +# Image Translation Datasets + +**Data preparation for translation model** needs a little attention. You should organize the files in the way we told you in `quick_run.md`. Fortunately, for most official datasets like facades and summer2winter_yosemite, they already have the right format. Also, you should set a symlink in the `data` directory. For paired-data trained translation model like Pix2Pix , `PairedImageDataset` is designed to train such translation models. Here is an example config for facades dataset: + +```python +train_dataset_type = 'PairedImageDataset' +val_dataset_type = 'PairedImageDataset' +img_norm_cfg = dict(mean=[0.5, 0.5, 0.5], std=[0.5, 0.5, 0.5]) +train_pipeline = [ + dict( + type='LoadPairedImageFromFile', + io_backend='disk', + key='pair', + domain_a=domain_a, + domain_b=domain_b, + flag='color'), + dict( + type='Resize', + keys=[f'img_{domain_a}', f'img_{domain_b}'], + scale=(286, 286), + interpolation='bicubic') +] +test_pipeline = [ + dict( + type='LoadPairedImageFromFile', + io_backend='disk', + key='image', + domain_a=domain_a, + domain_b=domain_b, + flag='color'), + dict( + type='Resize', + keys=[f'img_{domain_a}', f'img_{domain_b}'], + scale=(256, 256), + interpolation='bicubic') +] +dataroot = 'data/paired/facades' +train_dataloader = dict( + batch_size=1, + num_workers=4, + persistent_workers=True, + sampler=dict(type='InfiniteSampler', shuffle=True), + dataset=dict( + type=dataset_type, + data_root=dataroot, # set by user + pipeline=train_pipeline)) + +val_dataloader = dict( + batch_size=1, + num_workers=4, + dataset=dict( + type=dataset_type, + data_root=dataroot, # set by user + pipeline=test_pipeline), + sampler=dict(type='DefaultSampler', shuffle=False), + persistent_workers=True) + +test_dataloader = dict( + batch_size=1, + num_workers=4, + dataset=dict( + type=dataset_type, + data_root=dataroot, # set by user + pipeline=test_pipeline), + sampler=dict(type='DefaultSampler', shuffle=False), + persistent_workers=True) +``` + +Here, we adopt `LoadPairedImageFromFile` to load a paired image as the common loader does and crops +it into two images with the same shape in different domains. As shown in the example, `pipeline` provides important data pipeline to process images, including loading from file system, resizing, cropping, flipping, transferring to `torch.Tensor` and packing to `GenDataSample`. All of supported data pipelines can be found in `mmedit/datasets/transforms`. + +For unpaired-data trained translation model like CycleGAN , `UnpairedImageDataset` is designed to train such translation models. Here is an example config for horse2zebra dataset: + +```python +train_dataset_type = 'UnpairedImageDataset' +val_dataset_type = 'UnpairedImageDataset' +img_norm_cfg = dict(mean=[0.5, 0.5, 0.5], std=[0.5, 0.5, 0.5]) +domain_a, domain_b = 'horse', 'zebra' +train_pipeline = [ + dict( + type='LoadImageFromFile', + io_backend='disk', + key=f'img_{domain_a}', + flag='color'), + dict( + type='LoadImageFromFile', + io_backend='disk', + key=f'img_{domain_b}', + flag='color'), + dict( + type='TransformBroadcaster', + mapping={'img': [f'img_{domain_a}', f'img_{domain_b}']}, + auto_remap=True, + share_random_params=True, + transforms=[ + dict(type='Resize', scale=(286, 286), interpolation='bicubic'), + dict(type='Crop', crop_size=(256, 256), random_crop=True), + ]), + dict(type='Flip', keys=[f'img_{domain_a}'], direction='horizontal'), + dict(type='Flip', keys=[f'img_{domain_b}'], direction='horizontal'), + dict( + type='PackGenInputs', + keys=[f'img_{domain_a}', f'img_{domain_b}'], + meta_keys=[f'img_{domain_a}_path', f'img_{domain_b}_path']) +] +test_pipeline = [ + dict(type='LoadImageFromFile', io_backend='disk', key='img', flag='color'), + dict(type='Resize', scale=(256, 256), interpolation='bicubic'), + dict( + type='PackGenInputs', + keys=[f'img_{domain_a}', f'img_{domain_b}'], + meta_keys=[f'img_{domain_a}_path', f'img_{domain_b}_path']) +] +data_root = './data/horse2zebra/' +# `batch_size` and `data_root` need to be set. +train_dataloader = dict( + batch_size=1, + num_workers=4, + persistent_workers=True, + sampler=dict(type='InfiniteSampler', shuffle=True), + dataset=dict( + type=dataset_type, + data_root=data_root, # set by user + pipeline=train_pipeline)) + +val_dataloader = dict( + batch_size=None, + num_workers=4, + dataset=dict( + type=dataset_type, + data_root=data_root, # set by user + pipeline=test_pipeline), + sampler=dict(type='DefaultSampler', shuffle=False), + persistent_workers=True) + +test_dataloader = dict( + batch_size=None, + num_workers=4, + dataset=dict( + type=dataset_type, + data_root=data_root, # set by user + pipeline=test_pipeline), + sampler=dict(type='DefaultSampler', shuffle=False), + persistent_workers=True) +``` + +`UnpairedImageDataset` will load both images (domain A and B) from different paths and transform them at the same time. + +Here, we provide download links of datasets used in [Pix2Pix](http://efrosgans.eecs.berkeley.edu/pix2pix/datasets/) and [CycleGAN](https://people.eecs.berkeley.edu/~taesung_park/CycleGAN/datasets/). diff --git a/docs/en/docutils.conf b/docs/en/docutils.conf new file mode 100644 index 0000000000..0c00c84688 --- /dev/null +++ b/docs/en/docutils.conf @@ -0,0 +1,2 @@ +[html writers] +table_style: colwidths-auto diff --git a/docs/en/index.rst b/docs/en/index.rst index 635184175e..e60fbaefc0 100644 --- a/docs/en/index.rst +++ b/docs/en/index.rst @@ -100,10 +100,27 @@ Documentation migration/10_amp.md .. toctree:: - :maxdepth: 1 + :maxdepth: 2 :caption: API Reference - api.rst + mmedit.apis + mmedit.datasets + mmedit.datasets.transforms + mmedit.engine.hooks + mmedit.engine.optimizers + mmedit.engine.runner + mmedit.engine.schedulers + mmedit.evaluation.metrics + mmedit.evaluation.functional + mmedit.models.base_models + mmedit.models.data_preprocessors + mmedit.models.losses + mmedit.models.utils + mmedit.models.editors + mmedit.structures + mmedit.visualization + mmedit.utils + .. toctree:: :maxdepth: 1 diff --git a/docs/en/notes/3_changelog.md b/docs/en/notes/3_changelog.md index 8a618a5788..c14c0dcf4a 100644 --- a/docs/en/notes/3_changelog.md +++ b/docs/en/notes/3_changelog.md @@ -1,5 +1,34 @@ # Changelog +## v1.0.0rc3 (03/11/2022) + +**Highlights** + +We are excited to announce the release of MMEditing 1.0.0rc3. This release supports 43+ models, 170+ configs and 169+ checkpoints in MMGeneration and MMEditing. We highlight the following new features + +- convert `mmdet` and `clip` to optional requirements. + +**New Features & Improvements** + +- Support `try_import` for `mmdet`. (#1408) +- Support `try_import` for `flip`. (#1420) +- Complete requirements (#1419) +- Update `.gitignore`. ($1416) +- Set `real_feat` to cpu in `inception_utils`. (#1415) +- Modify README and configs of StyleGAN2 and PEGAN (#1418) +- Improve the rendering of Docs-API (#1373) + +**Bug Fixes** + +- Revise config and pretrain model loading in ESRGAN (#1407) +- Revise config of LSGAN (#1409) +- Revise config of CAIN (#1404) + +**Contributors** + +A total of 5 developers contributed to this release. +@Z-Fran, @zengyh1900, @plyfager, @LeoXing1996, @ruoningYu. + ## v1.0.0rc2 (02/11/2022) **Highlights** diff --git a/mmedit/datasets/transforms/crop.py b/mmedit/datasets/transforms/crop.py index 8554b72018..ce7da8be79 100644 --- a/mmedit/datasets/transforms/crop.py +++ b/mmedit/datasets/transforms/crop.py @@ -7,14 +7,15 @@ import numpy as np import torch from mmcv.transforms import BaseTransform -from mmdet.apis import inference_detector, init_detector from mmengine.hub import get_config from mmengine.registry import DefaultScope from mmengine.utils import is_list_of, is_tuple_of from torch.nn.modules.utils import _pair from mmedit.registry import TRANSFORMS -from mmedit.utils import get_box_info, random_choose_unknown +from mmedit.utils import get_box_info, random_choose_unknown, try_import + +mmdet_apis = try_import('mmdet.apis') @TRANSFORMS.register_module() @@ -943,9 +944,13 @@ def __init__(self, box_num_upbound=-1, finesize=256): + assert mmdet_apis is not None, ( + "Cannot import 'mmdet'. Please install 'mmdet' via " + "\"mim install 'mmdet >= 3.0.0rc2'\".") + cfg = get_config(config_file, pretrained=True) with DefaultScope.overwrite_default_scope('mmdet'): - self.predictor = init_detector(cfg, cfg.model_path) + self.predictor = mmdet_apis.init_detector(cfg, cfg.model_path) self.key = key self.box_num_upbound = box_num_upbound @@ -1018,7 +1023,8 @@ def predict_bbox(self, image): with DefaultScope.overwrite_default_scope('mmdet'): with torch.no_grad(): - results = inference_detector(self.predictor, l_stack) + results = mmdet_apis.inference_detector( + self.predictor, l_stack) bboxes = results.pred_instances.bboxes.cpu().numpy().astype(np.int32) scores = results.pred_instances.scores.cpu().numpy() diff --git a/mmedit/evaluation/functional/inception_utils.py b/mmedit/evaluation/functional/inception_utils.py index c1ec6173ec..8ae6e61771 100644 --- a/mmedit/evaluation/functional/inception_utils.py +++ b/mmedit/evaluation/functional/inception_utils.py @@ -418,7 +418,7 @@ def prepare_inception_feat(dataloader: DataLoader, f'same time. But receive \'{mean}\' and \'{std}\' ' 'respectively.') - real_feat_ = metric.forward_inception(img) + real_feat_ = metric.forward_inception(img).cpu() real_feat.append(real_feat_) if is_main_process(): @@ -443,7 +443,7 @@ def prepare_inception_feat(dataloader: DataLoader, if is_main_process(): inception_state = dict(**args) if capture_mean_cov: - real_feat = torch.cat(real_feat, dim=0)[:num_items].cpu().numpy() + real_feat = torch.cat(real_feat, dim=0)[:num_items].numpy() real_mean = np.mean(real_feat, 0) real_cov = np.cov(real_feat, rowvar=False) inception_state['real_mean'] = real_mean diff --git a/mmedit/models/editors/esrgan/rrdb_net.py b/mmedit/models/editors/esrgan/rrdb_net.py index 667f7d76c0..2b5aada60a 100644 --- a/mmedit/models/editors/esrgan/rrdb_net.py +++ b/mmedit/models/editors/esrgan/rrdb_net.py @@ -2,9 +2,7 @@ import torch import torch.nn as nn import torch.nn.functional as F -from mmengine import MMLogger from mmengine.model import BaseModule -from mmengine.runner import load_checkpoint from mmedit.models.base_archs import pixel_unshuffle from mmedit.models.utils import default_init_weights, make_layer @@ -38,8 +36,9 @@ def __init__(self, mid_channels=64, num_blocks=23, growth_channels=32, - upscale_factor=4): - super().__init__() + upscale_factor=4, + init_cfg=None): + super().__init__(init_cfg=init_cfg) if upscale_factor in self._supported_upscale_factors: in_channels = in_channels * ((4 // upscale_factor)**2) else: @@ -90,19 +89,11 @@ def forward(self, x): out = self.conv_last(self.lrelu(self.conv_hr(feat))) return out - def init_weights(self, pretrained=None, strict=True): - """Init weights for models. - - Args: - pretrained (str, optional): Path for pretrained weights. If given - None, pretrained weights will not be loaded. Defaults to None. - strict (boo, optional): Whether strictly load the pretrained model. - Defaults to True. - """ - if isinstance(pretrained, str): - logger = MMLogger.get_current_instance() - load_checkpoint(self, pretrained, strict=strict, logger=logger) - elif pretrained is None: + def init_weights(self): + """Init weights for models.""" + if self.init_cfg: + super().init_weights() + else: # Use smaller std for better stability and performance. We # use 0.1. See more details in "ESRGAN: Enhanced Super-Resolution # Generative Adversarial Networks" @@ -111,9 +102,6 @@ def init_weights(self, pretrained=None, strict=True): self.conv_up2, self.conv_hr, self.conv_last ]: default_init_weights(m, 0.1) - else: - raise TypeError(f'"pretrained" must be a str or None. ' - f'But received {type(pretrained)}.') class ResidualDenseBlock(nn.Module): diff --git a/mmedit/models/losses/clip_loss.py b/mmedit/models/losses/clip_loss.py index fd6cf57cfd..eaad01f4a4 100644 --- a/mmedit/models/losses/clip_loss.py +++ b/mmedit/models/losses/clip_loss.py @@ -3,6 +3,9 @@ import torch.nn as nn from mmedit.registry import MODULES +from mmedit.utils import try_import + +clip = try_import('clip') class CLIPLossModel(torch.nn.Module): @@ -31,6 +34,10 @@ def __init__(self, import clip except ImportError: raise 'To use clip loss, openai clip need to be installed first' + + assert clip is not None, ( + "Cannot import 'clip'. Please install 'clip' via " + "\"pip install git+https://github.com/openai/CLIP.git\".") self.model, self.preprocess = clip.load(clip_type, device='cpu') self.upsample = torch.nn.Upsample(scale_factor=scale_factor) self.avg_pool = torch.nn.AvgPool2d( diff --git a/mmedit/utils/__init__.py b/mmedit/utils/__init__.py index 1533e91fc7..febc2bc9a5 100644 --- a/mmedit/utils/__init__.py +++ b/mmedit/utils/__init__.py @@ -5,14 +5,14 @@ # TODO replace with engine's API from .logger import print_colored_log from .sampler import get_sampler -from .setup_env import register_all_modules +from .setup_env import register_all_modules, try_import from .trans_utils import (add_gaussian_noise, adjust_gamma, bbox2mask, brush_stroke_mask, get_irregular_mask, make_coord, random_bbox, random_choose_unknown) from .typing import ForwardInputs, LabelVar, NoiseVar, SampleList __all__ = [ - 'modify_args', 'print_colored_log', 'register_all_modules', + 'modify_args', 'print_colored_log', 'register_all_modules', 'try_import', 'ForwardInputs', 'SampleList', 'NoiseVar', 'LabelVar', 'MMEDIT_CACHE_DIR', 'download_from_url', 'get_sampler', 'tensor2img', 'random_choose_unknown', 'add_gaussian_noise', 'adjust_gamma', 'make_coord', 'bbox2mask', diff --git a/mmedit/utils/setup_env.py b/mmedit/utils/setup_env.py index e9e5428e78..89a8a8919c 100644 --- a/mmedit/utils/setup_env.py +++ b/mmedit/utils/setup_env.py @@ -1,6 +1,9 @@ # Copyright (c) OpenMMLab. All rights reserved. import datetime +import importlib import warnings +from types import ModuleType +from typing import Optional from mmengine import DefaultScope @@ -39,3 +42,19 @@ def register_all_modules(init_default_scope: bool = True) -> None: # avoid name conflict new_instance_name = f'mmedit-{datetime.datetime.now()}' DefaultScope.get_instance(new_instance_name, scope_name='mmedit') + + +def try_import(name: str) -> Optional[ModuleType]: + """Try to import a module. + + Args: + name (str): Specifies what module to import in absolute or relative + terms (e.g. either pkg.mod or ..mod). + Returns: + ModuleType or None: If importing successfully, returns the imported + module, otherwise returns None. + """ + try: + return importlib.import_module(name) + except ImportError: + return None diff --git a/mmedit/version.py b/mmedit/version.py index da34a5e738..2483236dfd 100644 --- a/mmedit/version.py +++ b/mmedit/version.py @@ -1,6 +1,6 @@ # Copyright (c) Open-MMLab. All rights reserved. -__version__ = '1.0.0rc2' +__version__ = '1.0.0rc3' def parse_version_info(version_str): diff --git a/requirements.txt b/requirements.txt index ec4ca05eb1..bc18a5033c 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,2 +1,3 @@ -r requirements/runtime.txt -r requirements/tests.txt +-r requirements/optional.txt diff --git a/requirements/optional.txt b/requirements/optional.txt index 95688066cc..80265b1165 100644 --- a/requirements/optional.txt +++ b/requirements/optional.txt @@ -1 +1,3 @@ -mmdet +clip @ git+https://github.com/openai/CLIP.git@d50d76daa670286dd6cacf3bcd80b5e4823fc8e1 +mmdet >= 3.0.0rc2 +PyQt5 diff --git a/requirements/readthedocs.txt b/requirements/readthedocs.txt index e0f0e36fd8..70dd9ed6a8 100644 --- a/requirements/readthedocs.txt +++ b/requirements/readthedocs.txt @@ -1,5 +1,7 @@ lmdb mmcv>=2.0.0rc1 +prettytable +Pygments regex scikit-image titlecase diff --git a/requirements/runtime.txt b/requirements/runtime.txt index 5b66a7f178..02198bf6ec 100644 --- a/requirements/runtime.txt +++ b/requirements/runtime.txt @@ -1,6 +1,5 @@ av av==8.0.3; python_version < '3.7' -clip @ git+https://github.com/openai/CLIP.git@d50d76daa670286dd6cacf3bcd80b5e4823fc8e1 face-alignment facexlib lmdb diff --git a/tests/test_utils/test_setup_env.py b/tests/test_utils/test_setup_env.py index 93e6f72772..6f8d91ec03 100644 --- a/tests/test_utils/test_setup_env.py +++ b/tests/test_utils/test_setup_env.py @@ -1,6 +1,12 @@ # Copyright (c) OpenMMLab. All rights reserved. -from mmedit.utils import register_all_modules +from mmedit.utils import register_all_modules, try_import def test_register_all_modules(): register_all_modules() + + +def test_try_import(): + import numpy as np + assert try_import('numpy') is np + assert try_import('numpy111') is None