Product Image Refine
商品图片精修流水线,专为服装/产品电商场景设计。
执行顺序:调整尺寸(等比缩放+白色填充) → AI去除背景(保留衣服+衣架轮廓) → 白色背景填充 → JPEG 压缩至目标大小。
默认参数:600x600、白色背景、60KB 以下。
依赖安装
执行前确保 Python 虚拟环境中已安装以下依赖:
pip install Pillow onnxruntime numpy requests
首次运行时会自动下载 U2Net ONNX 模型(约 176MB)到 ~/.u2net/u2net.onnx,后续运行直接使用缓存。
使用方式
单张图片处理
python scripts/product_image_refine.py <图片路径> [--size 600] [--max_kb 60] [--output <目录>]
批量处理整个目录
python scripts/product_image_refine.py <目录路径> --size 600 --max_kb 60
目录下所有 .png/.jpg/.jpeg/.bmp/.webp/.gif 文件都会被处理,源文件保留不动,处理结果保存到源目录下的 adjusted 子文件夹。
参数说明
| 参数 | 默认值 | 说明 |
|---|---|---|
input |
(必填) | 图片文件路径或目录路径 |
--size |
600 | 目标尺寸(正方形,如 600 表示 600x600) |
--max_kb |
60 | 压缩后最大文件大小(KB) |
--output |
源目录/adjusted | 输出目录,不指定则在源目录下创建 adjusted 子文件夹 |
处理流水线(4 步)
Step 1: 调整尺寸
等比缩放图片到目标尺寸,不足部分用白色填充,居中放置。
保持图片原始宽高比不变形。
Step 2: AI 去除背景
使用 U2Net ONNX 模型自动识别前景,保留衣服及衣架的轮廓,将其他背景区域变为透明。
模型会自动识别商品主体(包括挂钩的衣架),无需手动标注。
Step 3: 白色背景填充
将去除背景后的图片合成到纯白背景上,转换为 RGB 格式,确保背景为纯白色。
Step 4: 压缩
输出统一为 JPEG 格式,逐步降低质量(从 95 到 20),直到满足大小要求。
输出文件扩展名统一为 .jpg,保存到 adjusted 子文件夹,源文件保留不动。
注意事项
- 源文件保留不动,处理结果保存到
adjusted子文件夹(或 --output 指定的目录) - AI 去背景会保留衣服和衣架的轮廓,其他背景区域变为白色
- 首次运行需下载模型(约 176MB),后续使用缓存无需重复下载
- 60KB 限制对于 600x600 图片较为严格,可能需要降低 JPEG 质量到较低值
- 如需更高质量,可适当放宽 max_kb 限制(如 --max_kb 100)