├── .gitignore ├── README.md ├── dataset ├── README.md └── harmonization │ └── iHarmony4 │ └── README.md ├── demo ├── image_enhancement │ ├── README.md │ ├── example │ │ ├── enhanced │ │ │ ├── a0041_1.jpg │ │ │ ├── a2762_1.jpg │ │ │ └── a3186_1.jpg │ │ └── original │ │ │ ├── a0041_1.jpg │ │ │ ├── a2762_1.jpg │ │ │ └── a3186_1.jpg │ └── run.py ├── image_harmonization │ ├── README.md │ ├── example │ │ ├── composite │ │ │ ├── a0196_1.jpg │ │ │ ├── f636_1.jpg │ │ │ └── f855_1.jpg │ │ └── mask │ │ │ ├── a0196_1.jpg │ │ │ ├── f636_1.jpg │ │ │ └── f855_1.jpg │ └── run.py ├── video_enhancement │ ├── README.md │ ├── example │ │ └── original │ │ │ └── 0.mp4 │ └── run.py └── video_harmonization │ ├── README.md │ ├── example │ ├── background │ │ └── 0.mp4 │ ├── foreground │ │ └── 0.mp4 │ └── mask │ │ └── 0.mp4 │ └── run.py ├── doc └── gif │ ├── enhancer.gif │ ├── harmonizer.gif │ └── online_demo.gif ├── pretrained ├── README.md ├── enhancer.pth └── harmonizer.pth └── src ├── __init__.py ├── model ├── __init__.py ├── backbone │ ├── __init__.py │ └── efficientnet │ │ ├── __init__.py │ │ ├── model.py │ │ └── utils.py ├── enhancer.py ├── filter.py ├── harmonizer.py └── module.py ├── requirements.txt ├── train ├── README.md ├── harmonizer │ ├── __init__.py │ ├── criterion.py │ ├── data.py │ ├── func.py │ ├── model.py │ ├── module │ │ ├── __init__.py │ │ ├── backbone │ │ │ ├── __init__.py │ │ │ └── efficientnet │ │ │ │ ├── __init__.py │ │ │ │ ├── model.py │ │ │ │ └── utils.py │ │ ├── filter.py │ │ ├── harmonizer.py │ │ └── module.py │ ├── proxy.py │ ├── script │ │ └── train.py │ └── trainer.py └── torchtask │ ├── __init__.py │ ├── nn │ ├── __init__.py │ ├── data.py │ ├── func.py │ ├── lrer.py │ ├── module │ │ ├── __init__.py │ │ ├── gaussian_blur.py │ │ ├── gaussian_noise.py │ │ └── third_party │ │ │ ├── __init__.py │ │ │ └── sync_batchnorm │ │ │ ├── __init__.py │ │ │ ├── batchnorm.py │ │ │ ├── comm.py │ │ │ ├── replicate.py │ │ │ └── unittest.py │ └── optimizer.py │ ├── requirements.txt │ ├── runner.py │ ├── template │ ├── __init__.py │ ├── criterion.py │ ├── data.py │ ├── func.py │ ├── model.py │ ├── proxy.py │ └── trainer.py │ └── utils │ ├── __init__.py │ ├── cmd.py │ ├── logger.py │ └── tool.py └── val_harmonizer.py /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZHKKKe/Harmonizer/HEAD/.gitignore -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZHKKKe/Harmonizer/HEAD/README.md -------------------------------------------------------------------------------- /dataset/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZHKKKe/Harmonizer/HEAD/dataset/README.md -------------------------------------------------------------------------------- /dataset/harmonization/iHarmony4/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZHKKKe/Harmonizer/HEAD/dataset/harmonization/iHarmony4/README.md -------------------------------------------------------------------------------- /demo/image_enhancement/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZHKKKe/Harmonizer/HEAD/demo/image_enhancement/README.md -------------------------------------------------------------------------------- /demo/image_enhancement/example/enhanced/a0041_1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZHKKKe/Harmonizer/HEAD/demo/image_enhancement/example/enhanced/a0041_1.jpg -------------------------------------------------------------------------------- /demo/image_enhancement/example/enhanced/a2762_1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZHKKKe/Harmonizer/HEAD/demo/image_enhancement/example/enhanced/a2762_1.jpg -------------------------------------------------------------------------------- /demo/image_enhancement/example/enhanced/a3186_1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZHKKKe/Harmonizer/HEAD/demo/image_enhancement/example/enhanced/a3186_1.jpg -------------------------------------------------------------------------------- /demo/image_enhancement/example/original/a0041_1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZHKKKe/Harmonizer/HEAD/demo/image_enhancement/example/original/a0041_1.jpg -------------------------------------------------------------------------------- /demo/image_enhancement/example/original/a2762_1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZHKKKe/Harmonizer/HEAD/demo/image_enhancement/example/original/a2762_1.jpg -------------------------------------------------------------------------------- /demo/image_enhancement/example/original/a3186_1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZHKKKe/Harmonizer/HEAD/demo/image_enhancement/example/original/a3186_1.jpg -------------------------------------------------------------------------------- /demo/image_enhancement/run.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZHKKKe/Harmonizer/HEAD/demo/image_enhancement/run.py -------------------------------------------------------------------------------- /demo/image_harmonization/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZHKKKe/Harmonizer/HEAD/demo/image_harmonization/README.md -------------------------------------------------------------------------------- /demo/image_harmonization/example/composite/a0196_1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZHKKKe/Harmonizer/HEAD/demo/image_harmonization/example/composite/a0196_1.jpg -------------------------------------------------------------------------------- /demo/image_harmonization/example/composite/f636_1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZHKKKe/Harmonizer/HEAD/demo/image_harmonization/example/composite/f636_1.jpg -------------------------------------------------------------------------------- /demo/image_harmonization/example/composite/f855_1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZHKKKe/Harmonizer/HEAD/demo/image_harmonization/example/composite/f855_1.jpg -------------------------------------------------------------------------------- /demo/image_harmonization/example/mask/a0196_1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZHKKKe/Harmonizer/HEAD/demo/image_harmonization/example/mask/a0196_1.jpg -------------------------------------------------------------------------------- /demo/image_harmonization/example/mask/f636_1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZHKKKe/Harmonizer/HEAD/demo/image_harmonization/example/mask/f636_1.jpg -------------------------------------------------------------------------------- /demo/image_harmonization/example/mask/f855_1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZHKKKe/Harmonizer/HEAD/demo/image_harmonization/example/mask/f855_1.jpg -------------------------------------------------------------------------------- /demo/image_harmonization/run.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZHKKKe/Harmonizer/HEAD/demo/image_harmonization/run.py -------------------------------------------------------------------------------- /demo/video_enhancement/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZHKKKe/Harmonizer/HEAD/demo/video_enhancement/README.md -------------------------------------------------------------------------------- /demo/video_enhancement/example/original/0.mp4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZHKKKe/Harmonizer/HEAD/demo/video_enhancement/example/original/0.mp4 -------------------------------------------------------------------------------- /demo/video_enhancement/run.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZHKKKe/Harmonizer/HEAD/demo/video_enhancement/run.py -------------------------------------------------------------------------------- /demo/video_harmonization/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZHKKKe/Harmonizer/HEAD/demo/video_harmonization/README.md -------------------------------------------------------------------------------- /demo/video_harmonization/example/background/0.mp4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZHKKKe/Harmonizer/HEAD/demo/video_harmonization/example/background/0.mp4 -------------------------------------------------------------------------------- /demo/video_harmonization/example/foreground/0.mp4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZHKKKe/Harmonizer/HEAD/demo/video_harmonization/example/foreground/0.mp4 -------------------------------------------------------------------------------- /demo/video_harmonization/example/mask/0.mp4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZHKKKe/Harmonizer/HEAD/demo/video_harmonization/example/mask/0.mp4 -------------------------------------------------------------------------------- /demo/video_harmonization/run.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZHKKKe/Harmonizer/HEAD/demo/video_harmonization/run.py -------------------------------------------------------------------------------- /doc/gif/enhancer.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZHKKKe/Harmonizer/HEAD/doc/gif/enhancer.gif -------------------------------------------------------------------------------- /doc/gif/harmonizer.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZHKKKe/Harmonizer/HEAD/doc/gif/harmonizer.gif -------------------------------------------------------------------------------- /doc/gif/online_demo.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZHKKKe/Harmonizer/HEAD/doc/gif/online_demo.gif -------------------------------------------------------------------------------- /pretrained/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZHKKKe/Harmonizer/HEAD/pretrained/README.md -------------------------------------------------------------------------------- /pretrained/enhancer.pth: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZHKKKe/Harmonizer/HEAD/pretrained/enhancer.pth -------------------------------------------------------------------------------- /pretrained/harmonizer.pth: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZHKKKe/Harmonizer/HEAD/pretrained/harmonizer.pth -------------------------------------------------------------------------------- /src/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/model/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZHKKKe/Harmonizer/HEAD/src/model/__init__.py -------------------------------------------------------------------------------- /src/model/backbone/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZHKKKe/Harmonizer/HEAD/src/model/backbone/__init__.py -------------------------------------------------------------------------------- /src/model/backbone/efficientnet/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZHKKKe/Harmonizer/HEAD/src/model/backbone/efficientnet/__init__.py -------------------------------------------------------------------------------- /src/model/backbone/efficientnet/model.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZHKKKe/Harmonizer/HEAD/src/model/backbone/efficientnet/model.py -------------------------------------------------------------------------------- /src/model/backbone/efficientnet/utils.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZHKKKe/Harmonizer/HEAD/src/model/backbone/efficientnet/utils.py -------------------------------------------------------------------------------- /src/model/enhancer.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZHKKKe/Harmonizer/HEAD/src/model/enhancer.py -------------------------------------------------------------------------------- /src/model/filter.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZHKKKe/Harmonizer/HEAD/src/model/filter.py -------------------------------------------------------------------------------- /src/model/harmonizer.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZHKKKe/Harmonizer/HEAD/src/model/harmonizer.py -------------------------------------------------------------------------------- /src/model/module.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZHKKKe/Harmonizer/HEAD/src/model/module.py -------------------------------------------------------------------------------- /src/requirements.txt: -------------------------------------------------------------------------------- 1 | tqdm 2 | numpy 3 | Pillow 4 | argparse 5 | scikit-image == 0.19.2 6 | kornia -------------------------------------------------------------------------------- /src/train/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZHKKKe/Harmonizer/HEAD/src/train/README.md -------------------------------------------------------------------------------- /src/train/harmonizer/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/train/harmonizer/criterion.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZHKKKe/Harmonizer/HEAD/src/train/harmonizer/criterion.py -------------------------------------------------------------------------------- /src/train/harmonizer/data.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZHKKKe/Harmonizer/HEAD/src/train/harmonizer/data.py -------------------------------------------------------------------------------- /src/train/harmonizer/func.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZHKKKe/Harmonizer/HEAD/src/train/harmonizer/func.py -------------------------------------------------------------------------------- /src/train/harmonizer/model.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZHKKKe/Harmonizer/HEAD/src/train/harmonizer/model.py -------------------------------------------------------------------------------- /src/train/harmonizer/module/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZHKKKe/Harmonizer/HEAD/src/train/harmonizer/module/__init__.py -------------------------------------------------------------------------------- /src/train/harmonizer/module/backbone/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZHKKKe/Harmonizer/HEAD/src/train/harmonizer/module/backbone/__init__.py -------------------------------------------------------------------------------- /src/train/harmonizer/module/backbone/efficientnet/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZHKKKe/Harmonizer/HEAD/src/train/harmonizer/module/backbone/efficientnet/__init__.py -------------------------------------------------------------------------------- /src/train/harmonizer/module/backbone/efficientnet/model.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZHKKKe/Harmonizer/HEAD/src/train/harmonizer/module/backbone/efficientnet/model.py -------------------------------------------------------------------------------- /src/train/harmonizer/module/backbone/efficientnet/utils.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZHKKKe/Harmonizer/HEAD/src/train/harmonizer/module/backbone/efficientnet/utils.py -------------------------------------------------------------------------------- /src/train/harmonizer/module/filter.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZHKKKe/Harmonizer/HEAD/src/train/harmonizer/module/filter.py -------------------------------------------------------------------------------- /src/train/harmonizer/module/harmonizer.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZHKKKe/Harmonizer/HEAD/src/train/harmonizer/module/harmonizer.py -------------------------------------------------------------------------------- /src/train/harmonizer/module/module.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZHKKKe/Harmonizer/HEAD/src/train/harmonizer/module/module.py -------------------------------------------------------------------------------- /src/train/harmonizer/proxy.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZHKKKe/Harmonizer/HEAD/src/train/harmonizer/proxy.py -------------------------------------------------------------------------------- /src/train/harmonizer/script/train.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZHKKKe/Harmonizer/HEAD/src/train/harmonizer/script/train.py -------------------------------------------------------------------------------- /src/train/harmonizer/trainer.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZHKKKe/Harmonizer/HEAD/src/train/harmonizer/trainer.py -------------------------------------------------------------------------------- /src/train/torchtask/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZHKKKe/Harmonizer/HEAD/src/train/torchtask/__init__.py -------------------------------------------------------------------------------- /src/train/torchtask/nn/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZHKKKe/Harmonizer/HEAD/src/train/torchtask/nn/__init__.py -------------------------------------------------------------------------------- /src/train/torchtask/nn/data.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZHKKKe/Harmonizer/HEAD/src/train/torchtask/nn/data.py -------------------------------------------------------------------------------- /src/train/torchtask/nn/func.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZHKKKe/Harmonizer/HEAD/src/train/torchtask/nn/func.py -------------------------------------------------------------------------------- /src/train/torchtask/nn/lrer.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZHKKKe/Harmonizer/HEAD/src/train/torchtask/nn/lrer.py -------------------------------------------------------------------------------- /src/train/torchtask/nn/module/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZHKKKe/Harmonizer/HEAD/src/train/torchtask/nn/module/__init__.py -------------------------------------------------------------------------------- /src/train/torchtask/nn/module/gaussian_blur.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZHKKKe/Harmonizer/HEAD/src/train/torchtask/nn/module/gaussian_blur.py -------------------------------------------------------------------------------- /src/train/torchtask/nn/module/gaussian_noise.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZHKKKe/Harmonizer/HEAD/src/train/torchtask/nn/module/gaussian_noise.py -------------------------------------------------------------------------------- /src/train/torchtask/nn/module/third_party/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZHKKKe/Harmonizer/HEAD/src/train/torchtask/nn/module/third_party/__init__.py -------------------------------------------------------------------------------- /src/train/torchtask/nn/module/third_party/sync_batchnorm/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZHKKKe/Harmonizer/HEAD/src/train/torchtask/nn/module/third_party/sync_batchnorm/__init__.py -------------------------------------------------------------------------------- /src/train/torchtask/nn/module/third_party/sync_batchnorm/batchnorm.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZHKKKe/Harmonizer/HEAD/src/train/torchtask/nn/module/third_party/sync_batchnorm/batchnorm.py -------------------------------------------------------------------------------- /src/train/torchtask/nn/module/third_party/sync_batchnorm/comm.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZHKKKe/Harmonizer/HEAD/src/train/torchtask/nn/module/third_party/sync_batchnorm/comm.py -------------------------------------------------------------------------------- /src/train/torchtask/nn/module/third_party/sync_batchnorm/replicate.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZHKKKe/Harmonizer/HEAD/src/train/torchtask/nn/module/third_party/sync_batchnorm/replicate.py -------------------------------------------------------------------------------- /src/train/torchtask/nn/module/third_party/sync_batchnorm/unittest.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZHKKKe/Harmonizer/HEAD/src/train/torchtask/nn/module/third_party/sync_batchnorm/unittest.py -------------------------------------------------------------------------------- /src/train/torchtask/nn/optimizer.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZHKKKe/Harmonizer/HEAD/src/train/torchtask/nn/optimizer.py -------------------------------------------------------------------------------- /src/train/torchtask/requirements.txt: -------------------------------------------------------------------------------- 1 | numpy 2 | scipy 3 | Pillow 4 | pyyaml 5 | opencv-python 6 | -------------------------------------------------------------------------------- /src/train/torchtask/runner.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZHKKKe/Harmonizer/HEAD/src/train/torchtask/runner.py -------------------------------------------------------------------------------- /src/train/torchtask/template/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZHKKKe/Harmonizer/HEAD/src/train/torchtask/template/__init__.py -------------------------------------------------------------------------------- /src/train/torchtask/template/criterion.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZHKKKe/Harmonizer/HEAD/src/train/torchtask/template/criterion.py -------------------------------------------------------------------------------- /src/train/torchtask/template/data.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZHKKKe/Harmonizer/HEAD/src/train/torchtask/template/data.py -------------------------------------------------------------------------------- /src/train/torchtask/template/func.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZHKKKe/Harmonizer/HEAD/src/train/torchtask/template/func.py -------------------------------------------------------------------------------- /src/train/torchtask/template/model.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZHKKKe/Harmonizer/HEAD/src/train/torchtask/template/model.py -------------------------------------------------------------------------------- /src/train/torchtask/template/proxy.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZHKKKe/Harmonizer/HEAD/src/train/torchtask/template/proxy.py -------------------------------------------------------------------------------- /src/train/torchtask/template/trainer.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZHKKKe/Harmonizer/HEAD/src/train/torchtask/template/trainer.py -------------------------------------------------------------------------------- /src/train/torchtask/utils/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZHKKKe/Harmonizer/HEAD/src/train/torchtask/utils/__init__.py -------------------------------------------------------------------------------- /src/train/torchtask/utils/cmd.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZHKKKe/Harmonizer/HEAD/src/train/torchtask/utils/cmd.py -------------------------------------------------------------------------------- /src/train/torchtask/utils/logger.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZHKKKe/Harmonizer/HEAD/src/train/torchtask/utils/logger.py -------------------------------------------------------------------------------- /src/train/torchtask/utils/tool.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZHKKKe/Harmonizer/HEAD/src/train/torchtask/utils/tool.py -------------------------------------------------------------------------------- /src/val_harmonizer.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZHKKKe/Harmonizer/HEAD/src/val_harmonizer.py --------------------------------------------------------------------------------