Skip to content

jnzlab/IOPaint

 
 

Repository files navigation

IOPaint

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

total download version python version HuggingFace Spaces Open in Colab

Erase(LaMa) Replace Object(PowerPaint)
IOPaint-erase-markdown.mp4
iopaint-inpaint-markdown.mp4
Draw Text(AnyText) Out-painting(PowerPaint)
AnyText-markdown.mp4
outpainting.mp4

Features

Quick Start

Start webui

IOPaint provides a convenient webui for using the latest AI models to edit your images. You can install and start IOPaint easily by running following command:

# In order to use GPU, install cuda version of pytorch first.
# pip3 install torch==2.1.2 torchvision==0.16.2 --index-url https://download.pytorch.org/whl/cu118
# AMD GPU users, please utilize the following command, only works on linux, as pytorch is not yet supported on Windows with ROCm.
# pip3 install torch==2.1.2 torchvision==0.16.2 --index-url https://download.pytorch.org/whl/rocm5.6

pip3 install iopaint
iopaint start --model=lama --device=cpu --port=8080

That's it, you can start using IOPaint by visiting http://localhost:8080 in your web browser.

All models will be downloaded automatically at startup. If you want to change the download directory, you can add --model-dir. More documentation can be found here

You can see other supported models at here and how to use local sd ckpt/safetensors file at here.

Plugins

You can specify which plugins to use when starting the service, and you can view the commands to enable plugins by using iopaint start --help.

More demonstrations of the Plugin can be seen here

iopaint start --enable-interactive-seg --interactive-seg-device=cuda

Batch processing

You can also use IOPaint in the command line to batch process images:

iopaint run --model=lama --device=cpu \
--image=/path/to/image_folder \
--mask=/path/to/mask_folder \
--output=output_dir

--image is the folder containing input images, --mask is the folder containing corresponding mask images. When --mask is a path to a mask file, all images will be processed using this mask.

Bulk Watermark Removal

IOPaint provides a convenient way to remove watermarks from entire datasets in bulk. This is particularly useful when you have thousands of images that need watermark removal while maintaining their original folder structure.

To use the bulk watermark removal feature:

  1. First, start the IOPaint service:
pip install iopaint
iopaint start --model=lama --device=cpu --port=8080
  1. In a separate terminal, run the watermark removal script:
python watermark-remover.py

The script will:

  • Automatically detect and process all images in your dataset
  • Maintain the original folder structure
  • Create a new cleaned dataset with the same organization
  • Show progress bars for each class folder
  • Provide a summary of successful and failed operations

Before running the script, make sure to update these paths in the script:

dataset_root = r"path/to/your/original/dataset"  # Root folder containing class folders
output_root = r"path/to/your/output/dataset"     # Where to save processed images

The script automatically:

  • Creates appropriate masks for watermark areas
  • Handles various image formats (jpg, jpeg, png)
  • Maintains original filenames
  • Provides detailed progress tracking
  • Preserves image quality while removing watermarks

You can see more information about the available models and plugins supported by IOPaint below.

Development

Install nodejs, then install the frontend dependencies.

git clone https://github.com/Sanster/IOPaint.git
cd IOPaint/web_app
npm install
npm run build
cp -r dist/ ../iopaint/web_app

Create a .env.local file in web_app and fill in the backend IP and port.

VITE_BACKEND=http://127.0.0.1:8080

Start front-end development environment

npm run dev

Install back-end requirements and start backend service

pip install -r requirements.txt
python3 main.py start --model lama --port 8080

You can remove watermark from multiple images at once in bulk (to clean dataset images)

Just Install back-end requirements and start backend service, keep the service running and run watermark-remover.py simultaneously

pip install -r requirements.txt
python3 main.py start --model lama --port 8080
python3 watermark-remover.py

Make sure to define the input and output directory before running the watermark-remover.py file

Then you can visit http://localhost:5173/ for development. The frontend code will automatically update after being modified, but the backend needs to restart the service after modifying the python code.

About

Image inpainting tool powered by SOTA AI Model. Remove any unwanted object, defect, people from your pictures or erase and replace(powered by stable diffusion) any thing on your pictures.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • Python 87.2%
  • TypeScript 12.4%
  • JavaScript 0.1%
  • CSS 0.1%
  • Batchfile 0.1%
  • Shell 0.1%