赞
踩
Lama Cleaner是一个免费的、开源的、完全自托管的修复工具,里面提供了很多最前沿的AIGC模型。可以使用它从图片中删除任何不需要的物体、缺陷、人物,或删除和替换图片上的任何内容。本文章详细介绍了该工具的所有功能,并体验了下每个功能的实际效果。
github:https://github.com/Sanster/lama-cleaner
官方使用文档:https://lama-cleaner-docs.vercel.app/
# 如果电脑带GPU,为了使用GPU首先安装与cuda版本相对应的pytorch,比如cuda11.7的
pip install torch==1.13.1+cu117 torchvision==0.14.1 --extra-index-url https://download.pytorch.org/whl/cu117
# pip直接安装
pip install lama-cleaner
本文安装时版本更新到1.2.4
下方擦除功能所需要的模型全部上传至夸克网盘(链接:https://pan.quark.cn/s/370b455924ab,提取码:SNrE),在github下载失败时可手动网盘下载至规定路径。
找到lama-cleaner.exe
的路径:C:\Users\zhouying\AppData\Roaming\Python\Python39\Scripts
(不同电脑路径不同)
cd C:\Users\zhouying\AppData\Roaming\Python\Python39\Scripts
lama-cleaner --model=lama --device=cuda --port=8080
device如果没有gpu:--device=cpu
。
默认模型权重下载后保存的路径为C盘,可在上面的命令后再加一个参数--model-dir=F:/lama-cleaner/checkpoints
用于指定保存权重文件的路径。
该命令会自动下载AI模型到本地(也可手动下载big-lama.pt到下图红框中的路径),然后浏览器打开http://localhost:8080/就可以使用了。
lama是默认模型,模型196MB,性能已经挺不错了。
涂抹过程中可以长按Ctrl键进行多处涂抹
可以在网页中选择不同的AI模型或在命令行中选择不同模型(下方章节),这样都会自动下载相应的模型到本地。
lama-cleaner --model=ldm --device=cuda --port=8080
LDM模型手动下载链接:diffusion.pt、cond_stage_model_decode.pt、cond_stage_model_encode.pt
LDM vs LaMa
Steps
来平衡时间和质量lama-cleaner --model=zits --device=cuda --port=8080
ZITS模型手动下载链接:zits-wireframe-0717.pt、zits-edge-line-0717.pt、zits-structure-upsample-0717.pt、zits-inpaint-0717.pt
ZITS vs LaMa
Wireframe
模块在CPU上会非常慢lama-cleaner --model=mat --device=cuda --port=8080
MAT模型手动下载链接:Places_512_FullData_G.pth
特点:MAT可实现大面积像素缺失的补全和提供多样性生成
lama-cleaner --model=fcf --device=cuda --port=8080
FcF模型手动下载链接:places_512_G.pth
FcF vs LaMa
lama-cleaner --model=manga --device=cuda --port=8080
Manga模型手动下载链接:erika.jit、manga_inpaintor.jit
特点:在漫画图像上表现的比LaMa模型效果更好
github:https://github.com/runwayml/stable-diffusion
hugging face:https://huggingface.co/runwayml/stable-diffusion-inpainting
因为需要访问hugging face,所以需要魔法
lama-cleaner --model=sd1.5 --device=cuda --port=8080
自动下载的文件保存路径为C:\Users\zhouying\.cache\huggingface\hub\models--runwayml--stable-diffusion-inpainting
。
可以先下载sd-v1-5-inpainting.ckpt到本地,然后下面的命令运行
lama-cleaner --model=sd1.5 --device=cuda --port=8080 --sd-local-model-path ./sd-v1-5-inpainting.ckpt --local-files-only
github:https://github.com/Stability-AI/stablediffusion
hugging face:https://huggingface.co/stabilityai/stable-diffusion-2-inpainting
lama-cleaner --model=sd2 --device=cuda --port=8080
下载的文件保存在C:\Users\zhouying\.cache\huggingface\hub\models--stabilityai--stable-diffusion-2-inpainting
hugging face: https://huggingface.co/andite/anything-v4.0
lama-cleaner --model=anything4 --device=cuda --port=8080
下载的文件保存在C:\Users\zhouying\.cache\huggingface\hub\models--Sanster--anything-4.0-inpainting
hugging face:https://huggingface.co/SG161222/Realistic_Vision_V1.4
lama-cleaner --model=realisticVision1.4 --device=cuda --port=8080
下载的文件保存在C:\Users\zhouying\.cache\huggingface\hub\models--Sanster--Realistic_Vision_V1.4-inpainting
原图:
涂抹图中小狗,然后prompt输入“a fox sitting on a bench”的输出如下:
同时,这些模型同样能提供擦除功能,只需将prompt填写为“background”
这个模型的输入是一张图片,模型会由这个示例图指导生成类似的内容。
github:https://github.com/Fantasy-Studio/Paint-by-Example
paper:Paint by Example: Exemplar-based Image Editing with Diffusion Models
lama-cleaner --model=paint_by_example --device=cuda --port=8080
下载的文件保存在C:\Users\zhouying\.cache\huggingface\hub\models--Fantasy-Studio--Paint-by-Example
使用ControlNet可以获得更好的修复效果,命令如下:
lama-cleaner --model=sd1.5 --sd-controlnet --sd-controlnet-method control_v11p_sd15_inpaint --device=cuda --port=8080
--model
支持的参数有:
--sd-controlnet-method
支持的参数有:
官方提示,这四种方法在应用时都需要适当地调整ControlNet Weight的数值,建议canny和openpose从0.4开始调整,inpaint和depth从1.0开始调整。
尝试了一下,加了个ControlNet也没好多少,可能weight值还没调好。
这个模型可以不用mask,而是直接输入prompt
github:https://github.com/timothybrooks/instruct-pix2pix
paper:InstructPix2Pix: Learning to Follow Image Editing Instructions
lama-cleaner --model=instruct_pix2pix --device=cuda --port=8080
拿张图试玩一下,效果挺不错的。
如果是开的网络代理,直接运行命令可能会出现连接问题
requests.exceptions.ConnectionError: (MaxRetryError("HTTPSConnectionPool(host='huggingface.co', port=443): Max retries
exceeded with url: /api/models/timbrooks/instruct-pix2pix/revision/main (Caused by
NewConnectionError('<urllib3.connection.HTTPSConnection object at 0x0000028076B1F5B0>: Failed to establish a new
connection: [WinError 10060] 由于连接方在一段时间后没有正确答复或连接的主机没有反应,连接尝试失败。'))"),
'(Request ID: 2dc5e5dc-d590-4f8d-87f7-ddcadc83656f)')
使用vscode打开lama-cleaner库的源码(路径参考F:\Anaconda3\envs\ip2p\Lib\site-packages\lama_cleaner\parse_args.py
),增加下面这段代码,然后再重新运行代码。
import os
os.environ['HTTP_PROXY'] = 'http://xx.xx.xxx.xx:8080'
os.environ['HTTPS_PROXY'] = 'http://xx.xx.xxx.xx:8080'
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。