正文
IOPaint是什么?
IOPaint官网:https://www.iopaint.com/
IOPaint is a free, open-source and fully self-hostable inpainting/outpainting tool powered by state-of-the-art AI models.
IOPaint,一款完全免费、开源的图像编辑利器,助你轻松抹去图片中的不想要元素,如水印或人物等。集成最新AI模型,支持文字绘制与对象替换,实现图像擦除、填充和扩增。兼容CPU/GPU,提供一键安装包,更设有OptiClean应用快速去除物体。无论是图片修复还是风格转换,众多预设模型任你选择,超级分辨率到面部修复一应俱全。通过简洁Web界面操作,批量处理图像,满足你的创意需求。
原名lama-cleaner当时是一个单纯的去水印程序,我写过一篇文章去安装使用:
【教程】去水印开源工具Lama Cleaner在Windows的安装和使用
现在作者更新了,源代码仓库:https://github.com/Sanster/IOPaint
GitCode:https://gitcode.com/gh_mirrors/io/IOPaint/overview
当前(2024.12.11)最新版是1.5.3
1、安装windows python3
python官网指路:https://www.python.org/downloads/
注:版本要自己找,一般情况下都是用最新版,但我觉得旧版就行,因为这个ai项目很早就有的,全新的未必是最好的,兼容性问题。
我选择了3.9.13版,链接指路,直接用下载软件新建任务即可
https://www.python.org/ftp/python/3.9.13/python-3.9.13-amd64.exe
安装时勾选path、pip,方便自己使用,安装过程我这里就略过了,不明白的朋友可以琢磨一下,本文要求至少懂得用cmd运行python命令
。
安装python后,检查能否正常使用
python --version
d:\Download>python --version
Python 3.9.13
d:\Download>pip --version
pip 24.3.1 from D:\dev-env\Python3913\lib\site-packages\pip (python 3.9)
建议将pip更新到最新版
pip3 install --user upgrade pip
2、安装torch
按照文档提示,若要用显卡加速,先装对应的torch,本人电脑使用NVIDIA GPU
pip3 install torch==2.1.2 torchvision==0.16.2 --index-url https://download.pytorch.org/whl/cu118
d:\Download>pip3 install torch==2.1.2 torchvision==0.16.2 --index-url https://download.pytorch.org/whl/cu118
Looking in indexes: https://download.pytorch.org/whl/cu118
Collecting torch==2.1.2
Downloading https://download.pytorch.org/whl/cu118/torch-2.1.2%2Bcu118-cp39-cp39-win_amd64.whl (2722.7 MB)
---------------------------------------- 0.0/2.7 GB 262.0 kB/s eta 2:52:13
ERROR: Operation cancelled by user
太慢了,于是我强制取消了
试试换源
pip config set global.index-url https://pypi.python.org/simple/
这次执行安装不用带地址
pip3 install torch==2.1.2 torchvision==0.16.2
【注】注意该方法默认安装cpu版本,若要安装gpu版需带上--index-url https://download.pytorch.org/whl/cu118
建议用下载软件手动下载whl包,再用pip install
执行安装。
具体可看文末的DEBUG 20241212
要GPU加速请使用 pip3 install torch==2.1.2 torchvision==0.16.2 --index-url https://download.pytorch.org/whl/cu118
以下例子为 pip3 install torch==2.1.2 torchvision==0.16.2
d:\Download>pip3 install torch==2.1.2 torchvision==0.16.2
Looking in indexes: https://pypi.python.org/simple/
Collecting torch==2.1.2
Downloading torch-2.1.2-cp39-cp39-win_amd64.whl.metadata (26 kB)
Collecting torchvision==0.16.2
Downloading torchvision-0.16.2-cp39-cp39-win_amd64.whl.metadata (6.6 kB)
Collecting filelock (from torch==2.1.2)
Downloading filelock-3.16.1-py3-none-any.whl.metadata (2.9 kB)
Collecting typing-extensions (from torch==2.1.2)
Downloading typing_extensions-4.12.2-py3-none-any.whl.metadata (3.0 kB)
Collecting sympy (from torch==2.1.2)
Downloading sympy-1.13.3-py3-none-any.whl.metadata (12 kB)
Collecting networkx (from torch==2.1.2)
Downloading networkx-3.2.1-py3-none-any.whl.metadata (5.2 kB)
Collecting jinja2 (from torch==2.1.2)
Downloading jinja2-3.1.4-py3-none-any.whl.metadata (2.6 kB)
Collecting fsspec (from torch==2.1.2)
Downloading fsspec-2024.10.0-py3-none-any.whl.metadata (11 kB)
Collecting numpy (from torchvision==0.16.2)
Downloading numpy-2.0.2-cp39-cp39-win_amd64.whl.metadata (59 kB)
Collecting requests (from torchvision==0.16.2)
Downloading requests-2.32.3-py3-none-any.whl.metadata (4.6 kB)
Collecting pillow!=8.3.*,>=5.3.0 (from torchvision==0.16.2)
Downloading pillow-11.0.0-cp39-cp39-win_amd64.whl.metadata (9.3 kB)
Collecting MarkupSafe>=2.0 (from jinja2->torch==2.1.2)
Downloading MarkupSafe-3.0.2-cp39-cp39-win_amd64.whl.metadata (4.1 kB)
Collecting charset-normalizer<4,>=2 (from requests->torchvision==0.16.2)
Downloading charset_normalizer-3.4.0-cp39-cp39-win_amd64.whl.metadata (34 kB)
Collecting idna<4,>=2.5 (from requests->torchvision==0.16.2)
Downloading idna-3.10-py3-none-any.whl.metadata (10 kB)
Collecting urllib3<3,>=1.21.1 (from requests->torchvision==0.16.2)
Downloading urllib3-2.2.3-py3-none-any.whl.metadata (6.5 kB)
Collecting certifi>=2017.4.17 (from requests->torchvision==0.16.2)
Downloading certifi-2024.8.30-py3-none-any.whl.metadata (2.2 kB)
Collecting mpmath<1.4,>=1.1.0 (from sympy->torch==2.1.2)
Downloading mpmath-1.3.0-py3-none-any.whl.metadata (8.6 kB)
Downloading torch-2.1.2-cp39-cp39-win_amd64.whl (192.2 MB)
---------------------------------------- 192.2/192.2 MB 7.0 MB/s eta 0:00:00
Downloading torchvision-0.16.2-cp39-cp39-win_amd64.whl (1.1 MB)
---------------------------------------- 1.1/1.1 MB 719.0 kB/s eta 0:00:00
Downloading pillow-11.0.0-cp39-cp39-win_amd64.whl (2.6 MB)
---------------------------------------- 2.6/2.6 MB 7.8 MB/s eta 0:00:00
Downloading filelock-3.16.1-py3-none-any.whl (16 kB)
Downloading fsspec-2024.10.0-py3-none-any.whl (179 kB)
Downloading jinja2-3.1.4-py3-none-any.whl (133 kB)
Downloading networkx-3.2.1-py3-none-any.whl (1.6 MB)
---------------------------------------- 1.6/1.6 MB 7.4 MB/s eta 0:00:00
Downloading numpy-2.0.2-cp39-cp39-win_amd64.whl (15.9 MB)
---------------------------------------- 15.9/15.9 MB 8.8 MB/s eta 0:00:00
Downloading requests-2.32.3-py3-none-any.whl (64 kB)
Downloading sympy-1.13.3-py3-none-any.whl (6.2 MB)
---------------------------------------- 6.2/6.2 MB 9.7 MB/s eta 0:00:00
Downloading typing_extensions-4.12.2-py3-none-any.whl (37 kB)
Downloading certifi-2024.8.30-py3-none-any.whl (167 kB)
Downloading charset_normalizer-3.4.0-cp39-cp39-win_amd64.whl (102 kB)
Downloading idna-3.10-py3-none-any.whl (70 kB)
Downloading MarkupSafe-3.0.2-cp39-cp39-win_amd64.whl (15 kB)
Downloading mpmath-1.3.0-py3-none-any.whl (536 kB)
---------------------------------------- 536.2/536.2 kB 8.8 MB/s eta 0:00:00
Downloading urllib3-2.2.3-py3-none-any.whl (126 kB)
Installing collected packages: mpmath, urllib3, typing-extensions, sympy, pillow, numpy, networkx, MarkupSafe, idna, fsspec, filelock, charset-normalizer, certifi, requests, jinja2, torch, torchvision
Successfully installed MarkupSafe-3.0.2 certifi-2024.8.30 charset-normalizer-3.4.0 filelock-3.16.1 fsspec-2024.10.0 idna-3.10 jinja2-3.1.4 mpmath-1.3.0 networkx-3.2.1 numpy-2.0.2 pillow-11.0.0 requests-2.32.3 sympy-1.13.3 torch-2.1.2 torchvision-0.16.2 typing-extensions-4.12.2 urllib3-2.2.3
成功安装torch
3、安装IOPaint
pip3 install iopaint
d:\Download>pip3 install iopaint
Looking in indexes: https://pypi.python.org/simple/
Collecting iopaint
Downloading IOPaint-1.5.4-py3-none-any.whl.metadata (8.2 kB)
Requirement already satisfied: torch>=2.0.0 in d:\dev-env\python3913\lib\site-packages (from iopaint) (2.1.2)
Collecting opencv-python (from iopaint)
Downloading opencv_python-4.10.0.84-cp37-abi3-win_amd64.whl.metadata (20 kB)
Collecting diffusers==0.27.2 (from iopaint)
Downloading diffusers-0.27.2-py3-none-any.whl.metadata (18 kB)
Collecting huggingface-hub==0.25.2 (from iopaint)
Downloading huggingface_hub-0.25.2-py3-none-any.whl.metadata (13 kB)
Collecting accelerate (from iopaint)
Downloading accelerate-1.2.0-py3-none-any.whl.metadata (19 kB)
Collecting peft==0.7.1 (from iopaint)
Downloading peft-0.7.1-py3-none-any.whl.metadata (25 kB)
Collecting transformers>=4.39.1 (from iopaint)
Downloading transformers-4.47.0-py3-none-any.whl.metadata (43 kB)
Collecting safetensors (from iopaint)
Downloading safetensors-0.4.5-cp39-none-win_amd64.whl.metadata (3.9 kB)
Collecting controlnet-aux==0.0.3 (from iopaint)
Downloading controlnet_aux-0.0.3-py3-none-any.whl.metadata (3.3 kB)
Collecting fastapi==0.108.0 (from iopaint)
Downloading fastapi-0.108.0-py3-none-any.whl.metadata (24 kB)
Collecting uvicorn (from iopaint)
Downloading uvicorn-0.32.1-py3-none-any.whl.metadata (6.6 kB)
Collecting python-multipart (from iopaint)
Downloading python_multipart-0.0.19-py3-none-any.whl.metadata (1.8 kB)
Collecting python-socketio==5.7.2 (from iopaint)
Downloading python_socketio-5.7.2-py3-none-any.whl.metadata (3.2 kB)
Collecting typer (from iopaint)
Downloading typer-0.15.1-py3-none-any.whl.metadata (15 kB)
Collecting pydantic>=2.5.2 (from iopaint)
Downloading pydantic-2.10.3-py3-none-any.whl.metadata (172 kB)
Collecting rich (from iopaint)
Downloading rich-13.9.4-py3-none-any.whl.metadata (18 kB)
Collecting loguru (from iopaint)
Downloading loguru-0.7.3-py3-none-any.whl.metadata (22 kB)
Collecting yacs (from iopaint)
Downloading yacs-0.1.8-py3-none-any.whl.metadata (639 bytes)
Collecting piexif==1.1.3 (from iopaint)
Downloading piexif-1.1.3-py2.py3-none-any.whl.metadata (3.7 kB)
Collecting omegaconf (from iopaint)
Downloading omegaconf-2.3.0-py3-none-any.whl.metadata (3.9 kB)
Collecting easydict (from iopaint)
Downloading easydict-1.13-py3-none-any.whl.metadata (4.2 kB)
Collecting gradio==4.21.0 (from iopaint)
Downloading gradio-4.21.0-py3-none-any.whl.metadata (15 kB)
Collecting typer-config==1.4.0 (from iopaint)
Downloading typer_config-1.4.0-py3-none-any.whl.metadata (4.2 kB)
Collecting Pillow==9.5.0 (from iopaint)
Downloading Pillow-9.5.0-cp39-cp39-win_amd64.whl.metadata (9.7 kB)
Collecting einops (from controlnet-aux==0.0.3->iopaint)
Downloading einops-0.8.0-py3-none-any.whl.metadata (12 kB)
Requirement already satisfied: filelock in d:\dev-env\python3913\lib\site-packages (from controlnet-aux==0.0.3->iopaint) (3.16.1)
Collecting importlib-metadata (from controlnet-aux==0.0.3->iopaint)
Downloading importlib_metadata-8.5.0-py3-none-any.whl.metadata (4.8 kB)
Requirement already satisfied: numpy in d:\dev-env\python3913\lib\site-packages (from controlnet-aux==0.0.3->iopaint) (2.0.2)
Collecting scikit-image (from controlnet-aux==0.0.3->iopaint)
Downloading scikit_image-0.24.0-cp39-cp39-win_amd64.whl.metadata (14 kB)
Collecting scipy (from controlnet-aux==0.0.3->iopaint)
Downloading scipy-1.13.1-cp39-cp39-win_amd64.whl.metadata (60 kB)
Collecting timm (from controlnet-aux==0.0.3->iopaint)
Downloading timm-1.0.12-py3-none-any.whl.metadata (51 kB)
Requirement already satisfied: torchvision in d:\dev-env\python3913\lib\site-packages (from controlnet-aux==0.0.3->iopaint) (0.16.2)
Collecting regex!=2019.12.17 (from diffusers==0.27.2->iopaint)
Downloading regex-2024.11.6-cp39-cp39-win_amd64.whl.metadata (41 kB)
Requirement already satisfied: requests in d:\dev-env\python3913\lib\site-packages (from diffusers==0.27.2->iopaint) (2.32.3)
Collecting starlette<0.33.0,>=0.29.0 (from fastapi==0.108.0->iopaint)
Downloading starlette-0.32.0.post1-py3-none-any.whl.metadata (5.8 kB)
Requirement already satisfied: typing-extensions>=4.8.0 in d:\dev-env\python3913\lib\site-packages (from fastapi==0.108.0->iopaint) (4.12.2)
Collecting aiofiles<24.0,>=22.0 (from gradio==4.21.0->iopaint)
Downloading aiofiles-23.2.1-py3-none-any.whl.metadata (9.7 kB)
Collecting altair<6.0,>=4.2.0 (from gradio==4.21.0->iopaint)
Downloading altair-5.5.0-py3-none-any.whl.metadata (11 kB)
Collecting ffmpy (from gradio==4.21.0->iopaint)
Downloading ffmpy-0.4.0-py3-none-any.whl.metadata (2.9 kB)
Collecting gradio-client==0.12.0 (from gradio==4.21.0->iopaint)
Downloading gradio_client-0.12.0-py3-none-any.whl.metadata (7.1 kB)
Collecting httpx>=0.24.1 (from gradio==4.21.0->iopaint)
Downloading httpx-0.28.1-py3-none-any.whl.metadata (7.1 kB)
Collecting importlib-resources<7.0,>=1.3 (from gradio==4.21.0->iopaint)
Downloading importlib_resources-6.4.5-py3-none-any.whl.metadata (4.0 kB)
Requirement already satisfied: jinja2<4.0 in d:\dev-env\python3913\lib\site-packages (from gradio==4.21.0->iopaint) (3.1.4)
Collecting markupsafe~=2.0 (from gradio==4.21.0->iopaint)
Downloading MarkupSafe-2.1.5-cp39-cp39-win_amd64.whl.metadata (3.1 kB)
Collecting matplotlib~=3.0 (from gradio==4.21.0->iopaint)
Downloading matplotlib-3.9.3-cp39-cp39-win_amd64.whl.metadata (11 kB)
Collecting numpy (from controlnet-aux==0.0.3->iopaint)
Downloading numpy-1.26.4-cp39-cp39-win_amd64.whl.metadata (61 kB)
Collecting orjson~=3.0 (from gradio==4.21.0->iopaint)
Downloading orjson-3.10.12-cp39-none-win_amd64.whl.metadata (42 kB)
Collecting packaging (from gradio==4.21.0->iopaint)
Downloading packaging-24.2-py3-none-any.whl.metadata (3.2 kB)
Collecting pandas<3.0,>=1.0 (from gradio==4.21.0->iopaint)
Downloading pandas-2.2.3-cp39-cp39-win_amd64.whl.metadata (19 kB)
Collecting pydub (from gradio==4.21.0->iopaint)
Downloading pydub-0.25.1-py2.py3-none-any.whl.metadata (1.4 kB)
Collecting pyyaml<7.0,>=5.0 (from gradio==4.21.0->iopaint)
Downloading PyYAML-6.0.2-cp39-cp39-win_amd64.whl.metadata (2.1 kB)
Collecting ruff>=0.2.2 (from gradio==4.21.0->iopaint)
Downloading ruff-0.8.2-py3-none-win_amd64.whl.metadata (25 kB)
Collecting semantic-version~=2.0 (from gradio==4.21.0->iopaint)
Downloading semantic_version-2.10.0-py2.py3-none-any.whl.metadata (9.7 kB)
Collecting tomlkit==0.12.0 (from gradio==4.21.0->iopaint)
Downloading tomlkit-0.12.0-py3-none-any.whl.metadata (2.7 kB)
Requirement already satisfied: fsspec>=2023.5.0 in d:\dev-env\python3913\lib\site-packages (from huggingface-hub==0.25.2->iopaint) (2024.10.0)
Collecting tqdm>=4.42.1 (from huggingface-hub==0.25.2->iopaint)
Downloading tqdm-4.67.1-py3-none-any.whl.metadata (57 kB)
Collecting psutil (from peft==0.7.1->iopaint)
Downloading psutil-6.1.0-cp37-abi3-win_amd64.whl.metadata (23 kB)
Collecting bidict>=0.21.0 (from python-socketio==5.7.2->iopaint)
Downloading bidict-0.23.1-py3-none-any.whl.metadata (8.7 kB)
Collecting python-engineio>=4.3.0 (from python-socketio==5.7.2->iopaint)
Downloading python_engineio-4.10.1-py3-none-any.whl.metadata (2.2 kB)
Collecting websockets<12.0,>=10.0 (from gradio-client==0.12.0->gradio==4.21.0->iopaint)
Downloading websockets-11.0.3-cp39-cp39-win_amd64.whl.metadata (6.8 kB)
Collecting annotated-types>=0.6.0 (from pydantic>=2.5.2->iopaint)
Downloading annotated_types-0.7.0-py3-none-any.whl.metadata (15 kB)
Collecting pydantic-core==2.27.1 (from pydantic>=2.5.2->iopaint)
Downloading pydantic_core-2.27.1-cp39-none-win_amd64.whl.metadata (6.7 kB)
Requirement already satisfied: sympy in d:\dev-env\python3913\lib\site-packages (from torch>=2.0.0->iopaint) (1.13.3)
Requirement already satisfied: networkx in d:\dev-env\python3913\lib\site-packages (from torch>=2.0.0->iopaint) (3.2.1)
Collecting tokenizers<0.22,>=0.21 (from transformers>=4.39.1->iopaint)
Downloading tokenizers-0.21.0-cp39-abi3-win_amd64.whl.metadata (6.9 kB)
Collecting click>=8.0.0 (from typer->iopaint)
Downloading click-8.1.7-py3-none-any.whl.metadata (3.0 kB)
Collecting shellingham>=1.3.0 (from typer->iopaint)
Downloading shellingham-1.5.4-py2.py3-none-any.whl.metadata (3.5 kB)
Collecting markdown-it-py>=2.2.0 (from rich->iopaint)
Downloading markdown_it_py-3.0.0-py3-none-any.whl.metadata (6.9 kB)
Collecting pygments<3.0.0,>=2.13.0 (from rich->iopaint)
Downloading pygments-2.18.0-py3-none-any.whl.metadata (2.5 kB)
Collecting h11>=0.8 (from uvicorn->iopaint