# rembg 批量抠图教程：SKU 文件名、会话复用与坏图隔离

从三张原创设计商品素材和一个坏文件开始，复用同一模型会话，逐项记录成功、失败及输出映射。

本页 rembg/u2netp 已在 CPU 实际执行。三张SKU输出成功，坏文件独立error；B02下方阴影仍保留，未判整批视觉合格。

## 逐步操作

### 1. 核对三张不同 SKU 与坏文件

inputs/ 中是本教程用代码绘制的三个设计商品输入，不是实拍或同一 SKU 的伪三视图。broken.png 故意不是图片，必须落入失败记录，不能被静默当作成功。

```bash
python3 verify.py
```

### 2. 固定模型和独立输出目录

安装 rembg 2.0.85 CPU 版。清单处理器显式加载一次 u2netp，并将每个输入相对路径、哈希与结果文件名写入 manifest.json；不复用上次的未知结果。

```bash
python3 -m venv .venv
.venv/bin/python -m pip install "rembg[cpu]==2.0.85" pillow
```

### 3. 先打开单张确认方向

用 sku-a.png 做单张小样，确认画布、主体朝向和 alpha 后再跑全组。页面联系表是实际输入而不是一组模型结果；下载包会明确标注推理状态。

```bash
.venv/bin/python run_batch.py --only sku-a.png
```

### 4. 批量运行并逐文件隔离异常

对每个文件独立 try/except：坏文件记录 error，其他 SKU 继续。输出先写临时 PNG，真实解码后再原子重命名；一次失败不污染其他任务。

```bash
.venv/bin/python run_batch.py
```

### 5. 读取清单并找出漏项

将输入文件名与 manifest 中的 source 一一对应。应有三个可解码输入和一个坏文件；实际模型输出数量以运行结果为准，不在尚未推理时制造通过数量。

```bash
python3 verify.py --results output
```

### 6. 并排验收所有主体和边缘

查看每个 SKU 的透明结果，不只挑最好的一张。瓶盖、把手和高光边缘分别记录；代码绘制的已知轮廓只作为验收参考，不能冒充 AI 预测 mask。

### 7. 修复坏文件后独立重跑

用新的合法图片替换 broken.png 时保留旧 manifest 和哈希；新建另一个 output 目录。教程不自动猜测上次失败任务是否已执行，交付目录包含输入、模型配置与失败历史。

```bash
.venv/bin/python run_batch.py --output output-retry
```

## 来源与边界

- [官方目录处理与 session reuse](https://github.com/danielgatis/rembg/blob/v2.0.85/README.md)
- [会话工厂与显式模型](https://github.com/danielgatis/rembg/blob/v2.0.85/rembg/session_factory.py)

素材：照片样式输入由 apizt 原创生成；几何商品、积木、文具、纹理、线稿和透明标尺由代码原创绘制。输入/标注/官方示例均不是未运行模型的输出。
官方代码/模型、第三方依赖各保留其独立许可；包内不含模型权重或API凭证。
