lama cleaner
这里写自定义目录标题
- 安装
- 参数
- 包含的额外plugins
- 代码结构
- Freehand
- Background Removal
- InteractiveSeg
安装
conda create --name lamacleaner python==3.10
pip install -r requirements.txt
pip install gfpgan
pip install realesrgan
pip install rembg
pip install .
如果安装本package报错,可以尝试改:
packages=setuptools.find_packages("./")
换成:
packages=setuptools.find_packages(".")
如果是GPU的,一定要装GPU版本的pytorch: (我用的11.8版本)
pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118
参数
默认的参数地址在:
lama_cleaner\parse_args.py
包含的额外plugins
这个工具包里包含着以下内容:
- Interactive Segmentation
- Background Removal
- Anime Segmentation
- RealESRGAN
- GFPGAN
- RestoreFormer
- GIF
如果要使用以上的内容,需要在parse_args.py 这个文件里添加default=True
例如:
parser.add_argument("--enable-realesrgan",default=True,action="store_true",help=REALESRGAN_HELP,)
把这些内容打开后,这个包会自动下载所有相关权重
代码结构
消除主要使用lama clean的inpaint模型
Freehand
工具提供界面画自己的mask,然后将其和图片一起用lama模型做inpaint式的消除
Background Removal
这个工具主要使用U2net做背景消除,没有用到Lama cleaner。这个模型对于任意物体效果最佳,但是人像抠图欠佳。
InteractiveSeg
这个工具的构成是分割的模型 Segment Anything(SAM) + Lama 的inpaint
SAM 的主要作用是用来获取mask, 获取mask的前提如下:
- image_encoder (ImageEncoderViT): 输入的图片
- prompt_encoder (PromptEncoder): 用于额外conditioning的限制(这个项目包含3种prompts:坐标点【】,box【】,mask【】)
- mask_decoder (MaskDecoder): 根据 image encode + prompt encoder的结果预测mask,最后用bilinear恢复原始尺寸
- pixel_mean (list(float)): 用于做输入图像的normalisation(预处理)
- pixel_std (list(float)): 用于做输入图像的normalisation(预处理)
通过SAM获取完mask后,可以按照 lama cleaner来操作接下来的消除。