最完整LaMa模型部署指南:本地环境与Docker容器实操

【免费下载链接】lama 【免费下载链接】lama 项目地址: https://gitcode.com/gh_mirrors/lam/lama

你是否还在为AI图像修复模型部署流程复杂而困扰?是否想快速搭建LaMa(Large Mask Inpainting with Fourier Convolutions)模型的本地运行环境或Docker容器?本文将通过两种方案,帮助你在15分钟内完成从环境配置到模型推理的全流程,即使是新手也能轻松上手。读完本文,你将掌握:本地Python虚拟环境部署、Docker容器化部署两种方案,预训练模型下载与验证方法,以及常见错误排查技巧。

环境准备与依赖安装

本地环境配置

LaMa项目支持Python虚拟环境和Conda两种本地部署方式。Python虚拟环境方案轻量灵活,适合熟悉Python包管理的用户。首先克隆项目仓库:

git clone https://gitcode.com/gh_mirrors/lam/lama
cd lama

创建并激活虚拟环境,安装核心依赖:

virtualenv inpenv --python=/usr/bin/python3
source inpenv/bin/activate
pip install torch==1.8.0 torchvision==0.9.0
pip install -r requirements.txt 

requirements.txt文件中包含了项目所需的全部Python依赖,如PyYAML、NumPy、OpenCV等,确保安装过程中网络通畅。若使用Conda环境,可通过项目提供的conda_env.yml文件一键创建环境:

conda env create -f conda_env.yml
conda activate lama
conda install pytorch torchvision torchaudio cudatoolkit=10.2 -c pytorch -y

Docker环境准备

Docker方案适合追求环境隔离和快速部署的用户。项目根目录下的docker文件夹提供了完整的容器化配置,包括DockerfileDockerfile-cuda111(支持CUDA 11.1)。确保本地已安装Docker和Docker Compose,无需手动安装依赖,容器构建过程中会自动处理。

预训练模型下载与配置

模型下载

LaMa官方提供了多个预训练模型,其中性能最佳的是基于Places2和Places Challenge数据集训练的"big-lama"模型。通过以下命令下载并解压:

curl -LJO https://huggingface.co/smartywu/big-lama/resolve/main/big-lama.zip
unzip big-lama.zip

若需下载全部模型(包括Places和CelebA-HQ数据集上训练的版本),可通过项目提供的脚本获取:

# 需将链接替换为国内可访问地址
bash fetch_data/places_challenge_train_download.sh

模型配置

下载完成后,模型文件位于项目根目录下的"big-lama"文件夹中。部署前需确认模型配置文件路径是否正确,核心配置文件为configs/prediction/default.yaml,可根据实际需求调整图像后缀、输入输出路径等参数:

dataset:
  img_suffix: .png  # 输入图像后缀
model:
  path: ./big-lama  # 模型路径

本地环境部署步骤

数据准备

部署前需准备测试图像和掩码(Mask)文件。项目提供了测试图像下载脚本,或手动创建符合格式要求的图像对:

# 下载官方测试图像
unzip LaMa_test_images.zip

图像和掩码文件需放在同一目录,掩码文件命名格式为"[图像名]_maskXXX[后缀]",例如"image1_mask001.png"和"image1.png"配对。可使用项目提供的掩码生成工具批量创建掩码:

python3 bin/gen_mask_dataset.py configs/data_gen/random_medium_512.yaml input_dir output_dir --ext png

模型推理

设置环境变量并执行推理命令:

export TORCH_HOME=$(pwd) && export PYTHONPATH=$(pwd)
python3 bin/predict.py model.path=$(pwd)/big-lama indir=$(pwd)/LaMa_test_images outdir=$(pwd)/output

推理结果将保存在"output"目录中。若需启用GPU加速,确保CUDA环境配置正确,命令会自动检测并使用可用GPU。如需进行结果优化,可添加"refine=True"参数启用 refinement 模式:

python3 bin/predict.py refine=True model.path=$(pwd)/big-lama indir=$(pwd)/LaMa_test_images outdir=$(pwd)/output_refine

Docker容器部署步骤

容器构建

进入项目根目录,使用Dockerfile构建镜像:

cd docker
docker build -t lama-inpainting -f Dockerfile .

若需支持CUDA,使用CUDA版本的Dockerfile:

docker build -t lama-inpainting-cuda -f Dockerfile-cuda111 .

容器运行

使用项目提供的2_predict_with_gpu.sh脚本快速启动容器推理,需指定模型目录、输入目录、输出目录:

bash docker/2_predict_with_gpu.sh $(pwd)/big-lama $(pwd)/LaMa_test_images $(pwd)/docker_output

脚本内部已包含容器运行参数,包括目录挂载、GPU资源分配等:

docker run \
    -v "$SRCDIR":/home/user/project \
    -v "$MODEL_LOCAL_DIR":/data/checkpoint \
    -v "$INPUT_LOCAL_DIR":/data/input \
    -v "$OUTPUT_LOCAL_DIR":/data/output \
    --gpus all \
    --rm \
    windj007/lama \
    /home/user/project/bin/predict.py \
        model.path=/data/checkpoint \
        indir=/data/input \
        outdir=/data/output

模型验证与效果展示

推理结果验证

推理完成后,输出目录中会生成修复后的图像。可通过可视化工具对比原图、掩码和修复结果,评估模型效果。项目提供了评估脚本,可计算FID、LPIPS、SSIM等指标:

python3 bin/evaluate_predicts.py configs/eval2_gpu.yaml input_dir output_dir metrics.csv

效果对比

以下为使用LaMa模型修复的示例效果(需替换为实际图像路径):

掩码生成示例

左图为原始图像与掩码,右图为修复结果。LaMa模型在处理大尺寸掩码和周期性结构时表现尤为出色,细节还原度高。

常见问题与解决方案

依赖冲突

问题:安装依赖时出现版本冲突,如PyTorch与CUDA版本不匹配。
解决方案:参考conda_env.yml文件中的版本信息,或使用Docker方案避免环境干扰。

模型推理速度慢

问题:CPU推理速度慢,GPU未被调用。
解决方案:确认CUDA环境变量配置正确,执行nvidia-smi检查GPU是否可用,Docker部署时添加--gpus all参数。

掩码文件格式错误

问题:推理时报"找不到掩码文件"错误。
解决方案:确保掩码文件命名符合"[图像名]_maskXXX[后缀]"格式,且与原图放在同一目录,可通过mask.py脚本验证掩码格式。

总结与扩展

本文详细介绍了LaMa模型的两种部署方案,本地环境适合开发调试,Docker容器适合生产环境。通过合理选择部署方案,可快速搭建高性能图像修复系统。后续可探索模型微调、自定义数据集训练等高级功能,项目提供了完整的训练脚本和配置文件:

# 训练命令示例
python3 bin/train.py -cn lama-fourier location=places_standard

更多高级用法可参考项目README.md和官方文档,如有问题可通过GitHub Issues获取社区支持。

【免费下载链接】lama 【免费下载链接】lama 项目地址: https://gitcode.com/gh_mirrors/lam/lama

Logo

中国智能体开发者社区,聚焦智能体与大模型开发,提供前沿资讯、实用工具链、开源项目及行业案例。通过技术沙龙、开发者大赛等活动,促进经验交流与协作,助力开发者快速构建创新智能应用。

更多推荐