invokeAI-docs

:material-image-size-select-large: Installing PyPatchMatch

pypatchmatch is a Python module for inpainting images. It is not needed to run InvokeAI, but it greatly improves the quality of inpainting and outpainting and is recommended.

Unfortunately, it is a C++ optimized module and installation can be somewhat challenging. This guide leads you through the steps.

Windows

You’re in luck! On Windows platforms PyPatchMatch will install automatically on Windows systems with no extra intervention.

Macintosh

You need to have opencv installed so that pypatchmatch can be built:

brew install opencv

The next time you start invoke, after successfully installing opencv, pypatchmatch will be built.

Linux

Prior to installing PyPatchMatch, you need to take the following steps:

Debian Based Distros

  1. Install the build-essential tools:

     sudo apt update
     sudo apt install build-essential
    
  2. Install opencv:

     sudo apt install python3-opencv libopencv-dev
    
  3. Activate the environment you use for invokeai, either with conda or with a virtual environment.

  4. Install pypatchmatch:

     pip install pypatchmatch
    
  5. Confirm that pypatchmatch is installed. At the command-line prompt enter python, and then at the >>> line type from patchmatch import patch_match: It should look like the following:

     Python 3.10.12 (main, Jun 11 2023, 05:26:28) [GCC 11.4.0] on linux
     Type "help", "copyright", "credits" or "license" for more information.
     >>> from patchmatch import patch_match
     Compiling and loading c extensions from "/home/lstein/Projects/InvokeAI/.invokeai-env/src/pypatchmatch/patchmatch".
     rm -rf build/obj libpatchmatch.so
     mkdir: created directory 'build/obj'
     mkdir: created directory 'build/obj/csrc/'
     [dep] csrc/masked_image.cpp ...
     [dep] csrc/nnf.cpp ...
     [dep] csrc/inpaint.cpp ...
     [dep] csrc/pyinterface.cpp ...
     [CC] csrc/pyinterface.cpp ...
     [CC] csrc/inpaint.cpp ...
     [CC] csrc/nnf.cpp ...
     [CC] csrc/masked_image.cpp ...
     [link] libpatchmatch.so ...
    

Arch Based Distros

  1. Install the base-devel package:

     sudo pacman -Syu
     sudo pacman -S --needed base-devel
    
  2. Install opencv and blas:

     sudo pacman -S opencv blas
    

    or for CUDA support

     sudo pacman -S opencv-cuda blas
    
  3. Fix the naming of the opencv package configuration file:

     cd /usr/lib/pkgconfig/
     ln -sf opencv4.pc opencv.pc
    

Next, Follow Steps 4-6 from the Debian Section above

If you see no errors you’re ready to go!