Skip to main content

Image inpainting tool powered by SOTA AI Model

Project description

Lama Cleaner

A free and open-source inpainting tool powered by SOTA AI model.

total download version Open in Colab Sanster

img

Features

  • Completely free and open-source
  • Fully self-hosted
  • Multiple SOTA AI models
    1. LaMa
    2. LDM
    3. ZITS
    4. MAT
  • Support CPU & GPU
  • Various high-resolution image processing strategy
  • Run as a desktop APP

Usage

Usage Before After
Remove unwanted things unwant_object2 unwant_object2
Remove unwanted person unwant_person unwant_person
Remove Text text text
Remove watermark watermark watermark_clean
Fix old photo oldphoto oldphoto_clean

Quick Start

pip install lama-cleaner

# Model will be downloaded automatically
lama-cleaner --model=lama --device=cpu --port=8080
# Lama Cleaner is now running at http://localhost:8080

Available arguments:

Name Description Default
--model lama/ldm/zits. See details in Inpaint Model lama
--device cuda or cpu cuda
--port Port for backend flask web server 8080
--gui Launch lama-cleaner as a desktop application
--gui_size Set the window size for the application 1200 900
--input Path to image you want to load by default None
--debug Enable debug mode for flask web server

Inpainting Model

Model Description Config
LaMa :+1: Generalizes well on high resolutions(~2k)
LDM :+1: Possiblablity to get better and more detail result
:+1: The balance of time and quality can be achieved by adjusting steps
:neutral_face: Slower than GAN model
:neutral_face: Need more GPU memory
Steps: You can get better result with large steps, but it will be more time-consuming
Sampler: ddim or plms. In general plms can get better results with fewer steps
ZITS :+1: Better holistic structures compared with previous methods
:neutral_face: Wireframe module is very slow on CPU
Wireframe: Enable edge and line detect
MAT TODO

LaMa vs LDM

Original Image LaMa LDM
photo-1583445095369-9c651e7e5d34 photo-1583445095369-9c651e7e5d34_cleanup_lama photo-1583445095369-9c651e7e5d34_cleanup_ldm

LaMa vs ZITS

Original Image ZITS LaMa
zits_original zits_compare_zits zits_compare_lama

Image is from ZITS paper. I didn't find a good example to show the advantages of ZITS and let me know if you have a good example. There can also be possible problems with my code, if you find them, please let me know too!

High Resolution Strategy

There are three strategies for handling high-resolution images.

  • Original: Use the original resolution of the picture, suitable for picture size below 2K.
  • Resize: Resize the image to a smaller size, then do inpainting on the resized image. The inpainting area will be croped, upsampled and pasted back on the original image to make sure other part of image not loss quality.
  • Crop: Crop masking area from the original image to do inpainting, and paste the result back. Mainly for performance and memory reasons on high resolution image.

Download Model Mannually

If you have problems downloading the model automatically when lama-cleaner start, you can download it manually. By default lama-cleaner will load model from TORCH_HOME=~/.cache/torch/hub/checkpoints/, you can set TORCH_HOME to other folder and put the models there.

Development

Only needed if you plan to modify the frontend and recompile yourself.

Frontend

Frontend code are modified from cleanup.pictures, You can experience their great online services here.

  • Install dependencies:cd lama_cleaner/app/ && yarn
  • Start development server: yarn start
  • Build: yarn build

Docker

Run within a Docker container. Set the CACHE_DIR to models location path. Optionally add a -d option to the docker run command below to run as a daemon.

Build Docker image

docker build -f Dockerfile -t lamacleaner .

Run Docker (cpu)

docker run -p 8080:8080 -e CACHE_DIR=/app/models -v  $(pwd)/models:/app/models -v $(pwd):/app --rm lamacleaner python3 main.py --device=cpu --port=8080

Run Docker (gpu)

docker run --gpus all -p 8080:8080 -e CACHE_DIR=/app/models -v $(pwd)/models:/app/models -v $(pwd):/app --rm lamacleaner python3 main.py --device=cuda --port=8080

Then open http://localhost:8080

Project details


Download files

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

Source Distribution

lama-cleaner-0.16.0.tar.gz (549.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

lama_cleaner-0.16.0-py3-none-any.whl (1.4 MB view details)

Uploaded Python 3

File details

Details for the file lama-cleaner-0.16.0.tar.gz.

File metadata

  • Download URL: lama-cleaner-0.16.0.tar.gz
  • Upload date:
  • Size: 549.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.8.0 pkginfo/1.8.2 readme-renderer/34.0 requests/2.25.1 requests-toolbelt/0.9.1 urllib3/1.26.4 tqdm/4.62.3 importlib-metadata/4.11.3 keyring/23.5.0 rfc3986/1.5.0 colorama/0.4.4 CPython/3.7.8

File hashes

Hashes for lama-cleaner-0.16.0.tar.gz
Algorithm Hash digest
SHA256 477e2b6e1179010faa68551ca96127f6a9195dd295c88cd5a697f19deb91cba7
MD5 b0a0e6c030ba8cd1e262250e9607e400
BLAKE2b-256 450fb5d9710ea78be83df589b516cb9b4835db75cd0d0ff46bbe91a387d91613

See more details on using hashes here.

File details

Details for the file lama_cleaner-0.16.0-py3-none-any.whl.

File metadata

  • Download URL: lama_cleaner-0.16.0-py3-none-any.whl
  • Upload date:
  • Size: 1.4 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.8.0 pkginfo/1.8.2 readme-renderer/34.0 requests/2.25.1 requests-toolbelt/0.9.1 urllib3/1.26.4 tqdm/4.62.3 importlib-metadata/4.11.3 keyring/23.5.0 rfc3986/1.5.0 colorama/0.4.4 CPython/3.7.8

File hashes

Hashes for lama_cleaner-0.16.0-py3-none-any.whl
Algorithm Hash digest
SHA256 b63f29bc205fa2708abdc4bf7b0d19c87c4a2712574012ac2a5a33596e462312
MD5 72b3226a3ee7bf0b18181090e51d249f
BLAKE2b-256 3297feb6723036a7b2e12a418ab576e5b97a30fedd732e4d191f65f06f6b6c62

See more details on using hashes here.

Supported by

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