diff --git a/README.md b/README.md
index 1ea16cb93..8f62f6941 100644
--- a/README.md
+++ b/README.md
@@ -405,6 +405,7 @@ If you would like to try on your computer:
| [](image_inpainting/inpainting_gmcnn/) | [inpainting_gmcnn](/image_inpainting/inpainting_gmcnn/) | [Image Inpainting via Generative Multi-column Convolutional Neural Networks](https://github.com/shepnerd/inpainting_gmcnn) | TensorFlow | 1.2.6 and later |
| [](image_inpainting/3d-photo-inpainting/) | [3d-photo-inpainting](/image_inpainting/3d-photo-inpainting/) | [3D Photography using Context-aware Layered Depth Inpainting](https://github.com/vt-vl-lab/3d-photo-inpainting) | Pytorch | 1.2.7 and later |
| [](image_inpainting/deepfillv2/) | [deepfillv2](/image_inpainting/deepfillv2/) | [Free-Form Image Inpainting with Gated Convolution](https://github.com/open-mmlab/mmediting/tree/master/configs/inpainting/deepfillv2) | Pytorch | 1.2.9 and later |
+[](image_inpainting/lama/) | [lama](/image_inpainting/lama/) | [LaMa: Resolution-robust Large Mask Inpainting with Fourier Convolutions](https://github.com/advimman/lama) | Pytorch | 2.0.0 and later |
## Image manipulation
diff --git a/image_inpainting/lama/000068.png b/image_inpainting/lama/000068.png
new file mode 100644
index 000000000..6f74ce42f
Binary files /dev/null and b/image_inpainting/lama/000068.png differ
diff --git a/image_inpainting/lama/000068_mask.png b/image_inpainting/lama/000068_mask.png
new file mode 100644
index 000000000..a1efb8a0f
Binary files /dev/null and b/image_inpainting/lama/000068_mask.png differ
diff --git a/image_inpainting/lama/LICENSE b/image_inpainting/lama/LICENSE
new file mode 100644
index 000000000..ca822bb5f
--- /dev/null
+++ b/image_inpainting/lama/LICENSE
@@ -0,0 +1,201 @@
+ Apache License
+ Version 2.0, January 2004
+ http://www.apache.org/licenses/
+
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+ 1. Definitions.
+
+ "License" shall mean the terms and conditions for use, reproduction,
+ and distribution as defined by Sections 1 through 9 of this document.
+
+ "Licensor" shall mean the copyright owner or entity authorized by
+ the copyright owner that is granting the License.
+
+ "Legal Entity" shall mean the union of the acting entity and all
+ other entities that control, are controlled by, or are under common
+ control with that entity. For the purposes of this definition,
+ "control" means (i) the power, direct or indirect, to cause the
+ direction or management of such entity, whether by contract or
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
+ outstanding shares, or (iii) beneficial ownership of such entity.
+
+ "You" (or "Your") shall mean an individual or Legal Entity
+ exercising permissions granted by this License.
+
+ "Source" form shall mean the preferred form for making modifications,
+ including but not limited to software source code, documentation
+ source, and configuration files.
+
+ "Object" form shall mean any form resulting from mechanical
+ transformation or translation of a Source form, including but
+ not limited to compiled object code, generated documentation,
+ and conversions to other media types.
+
+ "Work" shall mean the work of authorship, whether in Source or
+ Object form, made available under the License, as indicated by a
+ copyright notice that is included in or attached to the work
+ (an example is provided in the Appendix below).
+
+ "Derivative Works" shall mean any work, whether in Source or Object
+ form, that is based on (or derived from) the Work and for which the
+ editorial revisions, annotations, elaborations, or other modifications
+ represent, as a whole, an original work of authorship. For the purposes
+ of this License, Derivative Works shall not include works that remain
+ separable from, or merely link (or bind by name) to the interfaces of,
+ the Work and Derivative Works thereof.
+
+ "Contribution" shall mean any work of authorship, including
+ the original version of the Work and any modifications or additions
+ to that Work or Derivative Works thereof, that is intentionally
+ submitted to Licensor for inclusion in the Work by the copyright owner
+ or by an individual or Legal Entity authorized to submit on behalf of
+ the copyright owner. For the purposes of this definition, "submitted"
+ means any form of electronic, verbal, or written communication sent
+ to the Licensor or its representatives, including but not limited to
+ communication on electronic mailing lists, source code control systems,
+ and issue tracking systems that are managed by, or on behalf of, the
+ Licensor for the purpose of discussing and improving the Work, but
+ excluding communication that is conspicuously marked or otherwise
+ designated in writing by the copyright owner as "Not a Contribution."
+
+ "Contributor" shall mean Licensor and any individual or Legal Entity
+ on behalf of whom a Contribution has been received by Licensor and
+ subsequently incorporated within the Work.
+
+ 2. Grant of Copyright License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ copyright license to reproduce, prepare Derivative Works of,
+ publicly display, publicly perform, sublicense, and distribute the
+ Work and such Derivative Works in Source or Object form.
+
+ 3. Grant of Patent License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ (except as stated in this section) patent license to make, have made,
+ use, offer to sell, sell, import, and otherwise transfer the Work,
+ where such license applies only to those patent claims licensable
+ by such Contributor that are necessarily infringed by their
+ Contribution(s) alone or by combination of their Contribution(s)
+ with the Work to which such Contribution(s) was submitted. If You
+ institute patent litigation against any entity (including a
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
+ or a Contribution incorporated within the Work constitutes direct
+ or contributory patent infringement, then any patent licenses
+ granted to You under this License for that Work shall terminate
+ as of the date such litigation is filed.
+
+ 4. Redistribution. You may reproduce and distribute copies of the
+ Work or Derivative Works thereof in any medium, with or without
+ modifications, and in Source or Object form, provided that You
+ meet the following conditions:
+
+ (a) You must give any other recipients of the Work or
+ Derivative Works a copy of this License; and
+
+ (b) You must cause any modified files to carry prominent notices
+ stating that You changed the files; and
+
+ (c) You must retain, in the Source form of any Derivative Works
+ that You distribute, all copyright, patent, trademark, and
+ attribution notices from the Source form of the Work,
+ excluding those notices that do not pertain to any part of
+ the Derivative Works; and
+
+ (d) If the Work includes a "NOTICE" text file as part of its
+ distribution, then any Derivative Works that You distribute must
+ include a readable copy of the attribution notices contained
+ within such NOTICE file, excluding those notices that do not
+ pertain to any part of the Derivative Works, in at least one
+ of the following places: within a NOTICE text file distributed
+ as part of the Derivative Works; within the Source form or
+ documentation, if provided along with the Derivative Works; or,
+ within a display generated by the Derivative Works, if and
+ wherever such third-party notices normally appear. The contents
+ of the NOTICE file are for informational purposes only and
+ do not modify the License. You may add Your own attribution
+ notices within Derivative Works that You distribute, alongside
+ or as an addendum to the NOTICE text from the Work, provided
+ that such additional attribution notices cannot be construed
+ as modifying the License.
+
+ You may add Your own copyright statement to Your modifications and
+ may provide additional or different license terms and conditions
+ for use, reproduction, or distribution of Your modifications, or
+ for any such Derivative Works as a whole, provided Your use,
+ reproduction, and distribution of the Work otherwise complies with
+ the conditions stated in this License.
+
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
+ any Contribution intentionally submitted for inclusion in the Work
+ by You to the Licensor shall be under the terms and conditions of
+ this License, without any additional terms or conditions.
+ Notwithstanding the above, nothing herein shall supersede or modify
+ the terms of any separate license agreement you may have executed
+ with Licensor regarding such Contributions.
+
+ 6. Trademarks. This License does not grant permission to use the trade
+ names, trademarks, service marks, or product names of the Licensor,
+ except as required for reasonable and customary use in describing the
+ origin of the Work and reproducing the content of the NOTICE file.
+
+ 7. Disclaimer of Warranty. Unless required by applicable law or
+ agreed to in writing, Licensor provides the Work (and each
+ Contributor provides its Contributions) on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ implied, including, without limitation, any warranties or conditions
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+ PARTICULAR PURPOSE. You are solely responsible for determining the
+ appropriateness of using or redistributing the Work and assume any
+ risks associated with Your exercise of permissions under this License.
+
+ 8. Limitation of Liability. In no event and under no legal theory,
+ whether in tort (including negligence), contract, or otherwise,
+ unless required by applicable law (such as deliberate and grossly
+ negligent acts) or agreed to in writing, shall any Contributor be
+ liable to You for damages, including any direct, indirect, special,
+ incidental, or consequential damages of any character arising as a
+ result of this License or out of the use or inability to use the
+ Work (including but not limited to damages for loss of goodwill,
+ work stoppage, computer failure or malfunction, or any and all
+ other commercial damages or losses), even if such Contributor
+ has been advised of the possibility of such damages.
+
+ 9. Accepting Warranty or Additional Liability. While redistributing
+ the Work or Derivative Works thereof, You may choose to offer,
+ and charge a fee for, acceptance of support, warranty, indemnity,
+ or other liability obligations and/or rights consistent with this
+ License. However, in accepting such obligations, You may act only
+ on Your own behalf and on Your sole responsibility, not on behalf
+ of any other Contributor, and only if You agree to indemnify,
+ defend, and hold each Contributor harmless for any liability
+ incurred by, or claims asserted against, such Contributor by reason
+ of your accepting any such warranty or additional liability.
+
+ END OF TERMS AND CONDITIONS
+
+ APPENDIX: How to apply the Apache License to your work.
+
+ To apply the Apache License to your work, attach the following
+ boilerplate notice, with the fields enclosed by brackets "[]"
+ replaced with your own identifying information. (Don't include
+ the brackets!) The text should be enclosed in the appropriate
+ comment syntax for the file format. We also recommend that a
+ file or class name and description of purpose be included on the
+ same "printed page" as the copyright notice for easier
+ identification within third-party archives.
+
+ Copyright [2021] Samsung Research
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
diff --git a/image_inpainting/lama/README.md b/image_inpainting/lama/README.md
new file mode 100644
index 000000000..76480a76d
--- /dev/null
+++ b/image_inpainting/lama/README.md
@@ -0,0 +1,51 @@
+# LaMa: Resolution-robust Large Mask Inpainting with Fourier Convolutions
+
+## Input
+
+![Input](000068.png)
+
+![Mask](000068_mask.png)
+
+(Image from https://drive.google.com/drive/folders/1B2x7eQDgecTL0oh3LSIBDGj0fTxs6Ips?usp=drive_link)
+
+Shape : (1, 3, 1499, 996)
+
+## Output
+
+![Output](output.png)
+
+Shape : (1, 1, 1499, 996)
+
+## Usage
+
+Automatically downloads the onnx and prototxt files on the first run.
+It is necessary to be connected to the Internet while downloading.
+
+For the sample image,
+
+```bash
+$ python3 lama.py
+```
+If you want to specify both the input image and a mask, provide their paths using the --input and --mask options.
+You can use `--savepath` option to change the name of the output file to save.
+
+```bash
+$ python3 lama.py --input IMAGE_PATH --mask MASK_PATH --savepath SAVE_IMAGE_PATH
+```
+
+
+## Reference
+
+[LaMa: Resolution-robust Large Mask Inpainting with Fourier Convolutions](https://github.com/advimman/lama)
+
+## Framework
+
+Pytorch
+
+## Model Format
+
+ONNX opset=17
+
+## Netron
+
+[lama.onnx.prototxt](https://netron.app/?url=https://storage.googleapis.com/ailia-models/lama/lama.onnx.prototxt)
diff --git a/image_inpainting/lama/lama.py b/image_inpainting/lama/lama.py
new file mode 100644
index 000000000..9801dd5d4
--- /dev/null
+++ b/image_inpainting/lama/lama.py
@@ -0,0 +1,134 @@
+import sys
+import time
+import os
+import platform
+
+import cv2
+import numpy as np
+
+import ailia
+
+# import original modules
+sys.path.append('../../util')
+from arg_utils import get_base_parser, update_parser, get_savepath # noqa: E402
+from model_utils import check_and_download_models # noqa: E402
+from image_utils import imread # noqa: E402
+
+# logger
+from logging import getLogger # noqa: E402
+
+logger = getLogger(__name__)
+
+# ======================
+# Parameters
+# ======================
+WEIGHT_PATH = 'lama.onnx'
+MODEL_PATH = 'lama.onnx.prototxt'
+
+REMOTE_PATH = 'https://storage.googleapis.com/ailia-models/lama/'
+
+IMAGE_PATH = '000068.png'
+MASK_PATH = '000068_mask.png'
+SAVE_IMAGE_PATH = 'output.png'
+
+# ======================
+# Arguemnt Parser Config
+# ======================
+parser = get_base_parser('Lama model', IMAGE_PATH, SAVE_IMAGE_PATH)
+parser.add_argument(
+ '-m', '--mask', nargs='*', metavar='MASK_PATH', default=[MASK_PATH],
+ help='using mask image from mask path'
+)
+args = update_parser(parser)
+
+
+# ======================
+# Main functions
+# ======================
+
+def ceil_modulo(x, mod):
+ if x % mod == 0:
+ return x
+ return (x // mod + 1) * mod
+
+
+def pad_img_to_modulo(img, mod):
+ channels, height, width = img.shape
+ out_height = ceil_modulo(height, mod)
+ out_width = ceil_modulo(width, mod)
+ return np.pad(img, ((0, 0), (0, out_height - height), (0, out_width - width)), mode='symmetric')
+
+
+def preprocess(image):
+ pad_out_to_modulo = 8
+ image = pad_img_to_modulo(image, pad_out_to_modulo)
+ return image
+
+
+def recognize_from_image(net):
+ # input image loop
+ for image_path , mask_path in zip(args.input,args.mask):
+ # prepare ground truth
+ image = imread(image_path).astype(np.float32)/255
+ image = cv2.cvtColor(image, cv2.COLOR_BGR2RGB)
+ image = np.transpose(image, (2, 0, 1))
+ image = preprocess(image).astype(np.float32)
+
+ # prepare mask
+ mask = imread(mask_path ,cv2.IMREAD_GRAYSCALE)[None, ...] / 255
+ mask = preprocess(mask).astype(np.float32)
+ mask = (mask > 0) * 1
+
+ # prepare input data
+ logger.debug(f'input data shape: {image.shape}')
+
+ # inference
+ logger.info('Start inference...')
+ if args.benchmark:
+ logger.info('BENCHMARK mode')
+ total_time = 0
+ for i in range(args.benchmark_count):
+ start = int(round(time.time() * 1000))
+
+ results = net.run((np.expand_dims(image,0),
+ np.expand_dims(mask ,0)))
+
+ end = int(round(time.time() * 1000))
+ logger.info(f'\tailia processing time {end - start} ms')
+ if i != 0:
+ total_time = total_time + (end - start)
+ logger.info(f'\taverage time {total_time / (args.benchmark_count - 1)} ms')
+ else:
+ results = net.run((np.expand_dims(image,0),
+ np.expand_dims(mask ,0)))
+
+ savepath = get_savepath(args.savepath, image_path, ext='.png')
+ logger.info(f'saved at : {savepath}')
+
+ results = np.array(results[0][0])
+ results = np.transpose(results,(1,2,0)).astype("uint8")
+
+ res_img = cv2.cvtColor(results, cv2.COLOR_RGB2BGR)
+
+ cv2.imwrite(savepath, res_img)
+
+ logger.info('Script finished successfully.')
+
+def main():
+
+ if "FP16" in ailia.get_environment(args.env_id).props or platform.system() == 'Darwin':
+ logger.warning('This model do not work on FP16. So use CPU mode.')
+ args.env_id = 0
+
+ # model files check and download
+ check_and_download_models(MODEL_PATH, MODEL_PATH, REMOTE_PATH)
+
+ memory_mode = ailia.get_memory_mode(reduce_constant=True, reduce_interstage=True)
+ # net initialize
+ net = ailia.Net(MODEL_PATH, WEIGHT_PATH,memory_mode=memory_mode, env_id=args.env_id)
+
+ recognize_from_image(net)
+
+
+if __name__ == '__main__':
+ main()
diff --git a/scripts/download_all_models.sh b/scripts/download_all_models.sh
index cd277ac26..08899bab4 100755
--- a/scripts/download_all_models.sh
+++ b/scripts/download_all_models.sh
@@ -169,6 +169,7 @@ cd ../../image_inpainting/3d-photo-inpainting; python3 3d-photo-inpainting.py ${
cd ../../image_inpainting/inpainting_gmcnn; python3 inpainting_gmcnn.py ${OPTION}
cd ../../image_inpainting/pytorch-inpainting-with-partial-conv; python3 pytorch-inpainting-with-partial-conv.py ${OPTION}
cd ../../image_inpainting/deepfillv2; python3 deepfillv2.py ${OPTION}
+cd ../../image_inpainting/lama; python3 lama.py ${OPTION}
cd ../../image_manipulation/dewarpnet; python3 dewarpnet.py ${OPTION}
cd ../../image_manipulation/illnet; python3 illnet.py ${OPTION}
cd ../../image_manipulation/noise2noise; python3 noise2noise.py ${OPTION}