LaMa:大掩码图像修复,256 训练也能修 2K LaMa大掩码图像修复256 训练也能修 2K【免费下载链接】lama LaMa Image Inpainting, Resolution-robust Large Mask Inpainting with Fourier Convolutions, WACV 2022项目地址: https://gitcode.com/GitHub_Trending/la/lama想在照片里去掉水印可小工具一碰大掩码就把背景糊掉LaMa 是 WACV 2022 的大掩码图像修复工具只在 256×256 上训练却能稳定泛化到 2K 级大图周期纹理也能补齐。这里带你从安装到推理跑通再讲清傅里叶卷积原理和几个关键配置坑。快速上手先装环境按 README 的 virtualenv 路线git clone https://gitcode.com/GitHub_Trending/la/lama cd lama python3 -m venv inpenv source inpenv/bin/activate pip install torch1.8.0 torchvision0.9.0 pip install -r requirements.txt第 1 行克隆仓库并进入目录第 2 行创建并激活独立虚拟环境第 3 行装 README 指定的 PyTorch 版本保证依赖匹配第 4 行装其余依赖包括 hydra、pytorch-lightning、kornia 等。然后把预训练模型放到手README 明确说原来的 yandex 网盘链接全部失效需从 README 里的 Google Drive 链接下载big-lama.zip解压到仓库根目录得到big-lama/文件夹。接着准备数据原图和掩码放同一目录掩码命名为原图名_mask001.扩展名比如image1.png配image1_mask001.png白色区域即要修复的部分。推理只需两条命令export TORCH_HOME$(pwd) export PYTHONPATH$(pwd) python3 bin/predict.py model.path$(pwd)/big-lama indir$(pwd)/input outdir$(pwd)/output第 1 行跑仓库脚本必须的两个环境变量漏了会各种报错第 2 行指定模型目录、输入目录、输出目录结果直接落到output/。有 Docker 的话更省事bash docker/2_predict_with_gpu.sh $(pwd)/big-lama $(pwd)/input $(pwd)/output自动拉取镜像并挂载你的三个目录用 GPU 跑同样的推理。它是怎么工作的LaMa 的输入是原图 掩码拼成的 4 通道图像3 通道 RGB 1 通道掩码生成器是configs/training/big-lama.yaml里定义的ffc_resnet3 级下采样加 18 个 FFC 残差块。和普通卷积不同的地方在saicinpainting/training/modules/ffc.py里的FourierUnit先把特征做 FFT 转到频域在频域里做一次普通卷积再做逆 FFT 回来。频域里的一次卷积等价于空间域里一次覆盖全图的全局卷积——所以掩码再大缺失区也能从整张图借上下文这就是 256 训练敢修 2K 的原因周期性纹理比如栏杆、百叶窗补得顺也靠它。光有结构还不够损失函数负责修得像。big-lama 的损失组合如下losses: l1: weight_missing: 0 # 掩码内部不算像素损失 weight_known: 10 # 已知区域保持不动 adversarial: kind: r1 weight: 10 # R1 正则 GAN 损失管纹理真实感 feature_matching: weight: 100 # 特征匹配损失管结构一致性 resnet_pl: weight: 30 # ResNet 感知损失四者配合GAN 损失防止结果发糊L1 锚住已知区域不漂移两个感知类损失保证观感和结构对得上。典型使用场景照片去物体掩码命名 一条命令场景照片里多了个人、一块广告牌想干净地抹掉。怎么用用任意工具画出掩码白色标记要抹掉的区域按原图名_mask001.png命名后和原图放同一目录跑bin/predict.py那两条命令即可。效果输出目录直接生成修复后的图不用调参。2K 左右的图一次跑通边缘过渡自然。批量生成随机掩码做测试场景想系统性看模型在细、中、粗三种掩码下的表现。怎么用python3 bin/gen_mask_dataset.py configs/data_gen/random_thick_512.yaml 原图目录 输出目录 --ext jpg脚本会自动裁图并生成掩码configs/data_gen/下还有random_thin_512.yaml、random_medium_512.yaml可换风格。效果得到可直接喂给predict.py的裁图 掩码配对配合bin/evaluate_predicts.py还能算出 FID/SSIM/LPIPS 指标。高分辨率精修打开 refine场景2K 照片直接推理细节偏软。怎么用命令里加refineTrue。refiner 会把图-掩码做成金字塔最多 3 个尺度逐层精修refiner.max_scales: 3每张图的像素量受refiner.px_budget默认 180 万约束。效果边缘和细节明显更稳代价是推理时间成倍增加且默认要 2 张卡refiner.gpu_ids: 0,1单卡需改写成0,。关键配置详解配置项所在文件默认值建议值改错的后果dataset.img_suffixconfigs/prediction/default.yaml.png与实际图片扩展名一致扫不到图输出目录为空model.pathconfigs/prediction/default.yamlno需 CLI 传指向解压后的big-lama目录找不到模型直接报错model.checkpointconfigs/prediction/default.yamlbest.ckpt自训模型改last.ckpt自训目录里没有 best.ckpt加载失败refineconfigs/prediction/default.yamlFalse高分辨率输入时True不开则大图细节偏软开了则明显变慢generator.resnet_conv_kwargs.ratio_ginconfigs/training/big-lama.yaml0.75保持默认自训时改太大全局特征占比过高局部边缘发虚进阶技巧与常见坑⚠️ 模型下载是最容易卡住的一步仓库里所有 yandex 链接已失效认准 README 顶部的 Google Drive 链接big-lama.zip别去搜旧网盘。任何脚本跑之前没执行export TORCH_HOME$(pwd) export PYTHONPATH$(pwd)大概率报找不到模型/模块先补上这两行再排查别的。predict.py跑完输出是空的十有八九是掩码没按名_mask001.扩展名命名或dataset.img_suffix和你图片的实际后缀.jpg/.png对不上。训练时不想改 yaml直接在命令行覆盖参数例如python3 bin/train.py -cn lama-fourier locationmy_dataset data.batch_size10.yaml后缀可省略。掩码生成不固定随机种子README 明确说明同一命令跑两次掩码略有差异要对比结果就复用同一份掩码目录别重新生成。横向对比工具定位强项局限LaMa本仓库大掩码图像修复核心引擎256→2K 泛化好周期纹理补齐出色纯 CLI 工作流掩码要自己准备simple-lama-inpainting轻量 pip 推理包几行 Python 直接调用不适合训练和复杂评估流程lama-cleaner自托管 Web 界面交互画掩码非技术同学也能用推理仍需自己的机器/显卡后两者都是 README 里列出的第三方应用底层跑的都是 LaMa 权重本仓库的价值在于你可以改架构、换数据、从头训。FAQ问没有 GPU能跑推理吗答能。bash docker/2_predict.sh $(pwd)/big-lama $(pwd)/input $(pwd)/output devicecpuCPU 推理慢适合小批量验证效果。问自训的模型加载报错答默认加载best.ckpt自训目录里通常是last.ckpt或epochNN.ckpt推理时加model.checkpointlast.ckpt即可。问修复区域看起来发糊答先开refineTrue再看确认输入图不是被缩得过小refiner 的px_budget默认 180 万像素图太大反而会被降采样处理。问能不能换掩码风格答可以。bin/gen_mask_dataset.py的第一个参数换成configs/data_gen/里任意配置thin/medium/thick、256/512或直接改 yaml 里的参数。结语LaMa 适合需要大掩码 高分辨率图像修复效果、或想基于它训练自己模型的人如果你只想要一个开箱即用的网页工具直接上 lama-cleaner 更省事。下一步建议先用big-lama拿两三张自己的图跑通推理再读saicinpainting/training/modules/ffc.py然后动手改配置训练。【免费下载链接】lama LaMa Image Inpainting, Resolution-robust Large Mask Inpainting with Fourier Convolutions, WACV 2022项目地址: https://gitcode.com/GitHub_Trending/la/lama创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考