一张商品图批量生成6张亚马逊Listing图+3套视频的AI工作流
这次我们聊一个偏落地的问题:只有一张商品图,怎么批量产出 Amazon Listing 需要的 6 张展示图和 3 套视频方案?不是讲概念,而是把一条可以照着做的 AI 素材生产线拆开,从技术选型、环境准备、ComfyUI / WebUI 工作流、批量脚本到合规边界全部过一遍。如果你在做跨境电商、代运营,或者想用本地 AI 工具替代重复 P 图工作,这篇文章可以直接收藏。
这套方案的核心思路并不复杂:先抠图拿到透明底的商品素材,再通过图像生成模型做多场景合成,输出主图、卖点图、尺寸图、细节图,最后用图生视频模型把静态图转成动态视频。真正的难点在于批量稳定性、商品特征保持、显存控制和输出合规,这几块都会在下面展开。
文中涉及的工具链都以“通用方案”描述,具体模型名、端口、参数需要按你选择的实际项目替换。这些不是某个闭源工具的私有限定配置,而是本地 AI 工作流里常见的做法。
1. 核心能力速览
| 能力项 | 说明 |
|---|---|
| 方案目标 | 1 张商品图 -> 6 张 Amazon Listing 图 + 3 套视频方案 |
| 主要环节 | AI 抠图、背景替换、场景生成、局部重绘、尺寸标注、图生视频 |
| 可复用性 | 同一条工作流可批量处理多张商品图 |
| 建议硬件 | NVIDIA 独立显卡,显存大小需按所选图像模型和视频模型实测 |
| 启动方式 | 本地 WebUI / ComfyUI / API 服务,或云 GPU 实例 |
| 是否支持 API | 取决于具体工具,本地 WebUI 和 ComfyUI 均暴露 HTTP API |
| 是否支持批量任务 | 支持,通过脚本遍历输入目录并调用 API |
| 典型成果 | 6 张不同用途的图片素材 + 3 类视频脚本/分镜方案 |
| 适合人群 | 亚马逊卖家、跨境电商运营、电商设计师、代运营团队 |
需要先说明:本文不是某一个固定开源项目的安装手册,而是一条“AI 电商素材批量生产方案”的搭建思路。你拿到这篇文章后,可以根据自己手上已有的 WebUI、ComfyUI 或图生视频工具,把对应环节替换进去。
为什么这么设计?因为市面上没有一个工具能一次性完美完成“抠图 -> 场景图 -> 尺寸图 -> 视频”全链路。更务实的做法是拆成可替换的模块,哪个环节工具成熟就用哪个。
2. 6 张 Listing 图和 3 套视频方案的拆解
在谈技术之前,先明确目标输出。Amazon Listing 的图片位不是随便放的,每个位置承担不同转化任务。
2.1 6 张图的角色拆分
| 图片位置 | 用途 | 内容要素 |
|---|---|---|
| 主图 | 搜索结果页第一印象 | 纯白背景、商品占画面约 85%、无文字、无水印 |
| 副图 1 | 功能卖点图 | 商品 + 卖点文字标注 |
| 副图 2 | 尺寸规格图 | 商品 + 尺寸标注或对比物 |
| 副图 3 | 使用场景图 | 商品放入真实或渲染场景中 |
| 副图 4 | 细节特写图 | 材质、接口、工艺细节放大 |
| 副图 5 | 包装配件图 | 包装盒、配件、全家福 |
这 6 张图不一定要全部由 AI 生成。更合理的分工是:主图、场景图、细节图用 AI 优化;尺寸图需要精确数字,建议用脚本或 PS 模板叠加标注;卖点图里的文字也要后期加上去,避免 AI 生成乱码英文。
2.2 3 套视频方案的拆解
| 视频方案 | 用途 | 建议内容 |
|---|---|---|
| 主图视频 | 搜索结果页自动播放 | 15 到 60 秒,白底旋转或多角度展示 |
| 场景种草视频 | 社交媒体/详情页引流 | 结合使用场景,展示解决了什么问题 |
| 功能解说视频 | 详情页转化 | 分镜演示功能,配合卖点字幕 |
视频方案的技术难点和图片不同。图生视频模型可以把一张静态图变成动态画面,但“商品旋转”“多角度展示”这类需求并不总能一次生成成功,可能需要先生成多个视角的静态图,再拼接成视频。另一种路线是使用 3D 建模渲染,但入门成本更高。对大多数卖家来说,最快见到效果的方式是:先用 AI 生成几帧关键视角图,再用视频合成工具做成转场视频。
3. AI 生图工作流整体设计
整体流程可以拆成下面几个阶段:
原始商品图 -> 抠图 -> 透明底 PNG -> 主图/场景图生成 -> 文字标注与尺寸标注 -> 图生视频 -> 人工复核3.1 抠图阶段
抠图是整条链路的地基。如果商品边缘抠不干净,后面所有合成图都会出现白边、残影或背景污染。
可选方案:
- 本地工具:rembg、SAM、Stable Diffusion WebUI 的抠图插件
- 在线 API:云抠图服务,适合批量处理但不适合敏感商品数据
- ComfyUI 抠图节点:可以嵌入到工作流里,一次跑通不用导出中间文件
抠图完成后,建议统一导出为透明背景 PNG,命名规则尽量包含商品编号,方便后续批量脚本识别。
3.2 场景生成阶段
这是整个工作流中变数最大的环节。场景图的核心要求是“商品特征不变形、光影协调、场景真实”。
常用技术组合:
- 图生图:把商品图作为输入,用提示词控制新背景
- ControlNet:用 Canny 边缘图或 Depth 深度图约束商品形状,防止结构跑偏
- Inpaint 局部重绘:只替换背景区域,保留商品主体
- LoRA / 风格模型:如果需要统一品牌风格,可以训练商品专属 LoRA
场景生成不是一次就能成功的。同一张商品图,建议一次生成 4 到 8 张候选,再人工挑选。批量脚本里要支持“多候选 + 保存全部”的模式。
3.3 尺寸图和卖点图阶段
尺寸图不建议直接用 AI 生成。AI 生成的数字和尺码标注很可能出错。常规做法是先生成干净的背景图,再用 Python Pillow 脚本叠加尺寸线和文字。
卖点图的文字同理。AI 生成的英文卖点容易出现拼写错误,这在 Amazon 审核中会被拒。可以用 Python 脚本把卖点文本渲染到图片指定位置,保证文字准确。
3.4 图生视频阶段
静态图生成后,视频方案可以有两个发展方向:
- 直接把主图或场景图交给图生视频模型,让它生成短动态视频
- 先生成多视角图,再用剪辑工具做成转场视频
前者适合展示动态效果,比如液体倒入、烟雾飘动、商品轻微旋转;后者适合展示结构细节。两种方式可以并行,先跑一条最轻的链路验证效果。
4. 环境准备与前置条件
无论选择哪种工具组合,环境准备都建议先做一次统一检查。
4.1 基础环境
如果你是本地部署,先确认这台机器的基本状态:
# 查看显卡型号和显存 nvidia-smi # 检查 Python 版本 python --version常用组合是 Windows 10/11 或 Ubuntu 20.04+,Python 3.10/3.11,CUDA 版本要和你安装的 PyTorch 匹配。具体版本不要去猜,装完 PyTorch 后跑一行命令验证:
python -c "import torch; print(torch.cuda.is_available())"输出为 True,说明 GPU 可用。如果为 False,优先检查驱动版本和 PyTorch 版本是否匹配。
4.2 磁盘与模型文件
图像生成模型体积不小。Stable Diffusion 系底模通常 2GB 到 7GB 一个,ControlNet 模型 1GB 到 2GB,LoRA 几十 MB 到几百 MB。图生视频模型更大。建议磁盘预留 50GB 以上,避免模型下到一半空间不够。
4.3 显存要求
显存是本地部署最关键的指标。不同模型差异很大,无法一概而论。经验上:
- 纯 512x512 单图推理,6GB 显存可尝试
- 1024x1024 图生图,建议 8GB 以上
- 图生视频通常比单张图片更吃显存,建议 12GB 以上更稳妥
这里必须强调:上面只是经验判断,实际占用取决于模型版本、分辨率、步数和 ControlNet 是否开启。买机器或租 GPU 之前,先用小分辨率跑一遍,用 nvidia-smi 看实际显存占用。
4.4 不想本地部署怎么办
如果本机显存不够,可以用云 GPU 实例,按小时计费,跑完批量任务就释放。也可以直接使用商业图像生成 API,把商品图上传到服务端生成结果。缺点是敏感商品图存在数据外传风险,生成结果也可能受服务商审核限制。
5. ComfyUI / WebUI 工作流搭建
这里用 ComfyUI 为例,讲清楚一条典型工作流包含哪些节点。如果你用的是 Stable Diffusion WebUI,对应操作可以换成图生图 + 局部重绘,逻辑一样。
5.1 ComfyUI 节点链路
典型的场景图生成工作流:
Load Image -> Remove Background -> Load Checkpoint -> ControlNet -> KSampler -> VAE Decode -> Save Image节点作用说明:
| 节点 | 作用 |
|---|---|
| Load Image | 读取原始商品图 |
| Remove Background | 输出透明底商品图 |
| Load Checkpoint | 加载底模 |
| ControlNet | 锁定商品边缘或深度结构 |
| KSampler | 采样,控制步数和降噪强度 |
| VAE Decode | 解码为正常图片 |
| Save Image | 保存结果 |
5.2 提示词模板
场景图提示词不要写太长,重点写清楚:风格、环境、光线和画质。
正面提示词示例:
white studio background, product on a wooden desk, natural sunlight, professional e-commerce photography, ultra realistic, 8k, high detail这个提示词只是模板。真实使用时,需要把“product”语义和商品类别换成实际产品描述,比如“wireless earphones”“stainless steel water bottle”。如果商品有品牌 logo,建议在提示词里不要出现品牌名,防止 AI 生成错误图案。
5.3 WebUI 图生图替代
用 Stable Diffusion WebUI 时,操作路径是:
- 拖入商品图到 img2img
- 选择 inpaint 模式
- 用蒙版遮住背景区域
- 输入场景提示词
- 设置 denoising strength 在 0.5 到 0.7 之间
denoising 太低背景改不动,太高商品会变形。第一次测试建议从 0.5 开始,逐步上调。
6. 批量任务:怎么一次跑完多张商品图
单张商品图测试通过后,真正的效率提升来自批量脚本。目录结构建议如下:
project/ input/ product_a.png product_b.png output/ main/ scene/ detail/ video/6.1 批量配置文件
批次参数和提示词放进 JSON 配置,不要写死在代码里:
{ "input_dir": "./input", "output_dir": "./output", "products": ["product_a.png", "product_b.png"], "scenes": [ "white studio background, main product image", "product on a wooden desk, office scene" ], "batch_size": 1, "seed": 42, "steps": 25 }6.2 Python 批量调用 API 示例
如果你的图像生成服务是基于 Stable Diffusion WebUI 的 API,可以用下面的通用模板:
import requests import base64 import json import os API_URL = "http://127.0.0.1:7860/sdapi/v1/img2img" def read_image_as_base64(path): with open(path, "rb") as f: return base64.b64encode(f.read()).decode("utf-8") def generate_scene(product_path, prompt, output_path, steps=25): init_image = read_image_as_base64(product_path) payload = { "init_images": [init_image], "prompt": prompt, "steps": steps, "width": 1024, "height": 1024, "denoising_strength": 0.6, "batch_size": 1 } response = requests.post(API_URL, json=payload, timeout=300) response.raise_for_status() result = response.json() for i, img_b64 in enumerate(result.get("images", [])): img_bytes = base64.b64decode(img_b64) with open(output_path, "wb") as f: f.write(img_bytes) if __name__ == "__main__": generate_scene( product_path="./input/product_a.png", prompt="product on a wooden desk, office scene, natural light", output_path="./output/scene/product_a_scene_1.png" )这段代码是通用模板。字段名可能因 WebUI 版本不同而变化,实际使用前先访问http://127.0.0.1:7860/sdapi/v1/sd-models确认服务正常。
6.3 批量失败重试
批量任务最容易遇到的问题是中间一张图生成失败,整个脚本中断。建议每次请求包一层重试逻辑,并把失败记录写入日志文件。
import time def generate_with_retry(product_path, prompt, output_path, retries=3): for attempt in range(retries): try: generate_scene(product_path, prompt, output_path) return True except Exception as e: print(f"attempt {attempt + 1} failed: {e}") time.sleep(10) return False单个商品失败不要阻塞整批任务。跑完后再统一查看日志,补生成失败项。
7. 接口 API 与自动化集成
本地图像生成服务启动后,有两个用途:一是 WebUI 手动操作,二是 HTTP API 给脚本调用。
确认服务是否正常:
curl http://127.0.0.1:7860/sdapi/v1/sd-models服务正常时会返回模型列表 JSON。如果这个接口都访问不了,先检查服务是否真的启动,再检查端口是否被占用。
图生视频服务同样可以通过 HTTP API 对接。下面是一个通用调用模板,具体请求格式以实际部署的模型服务为准:
import requests video_api_url = "http://127.0.0.1:8080/generate" payload = { "image_path": "./output/main/product_a.png", "prompt": "product slowly rotating on white background", "duration": 5, "fps": 24 } response = requests.post(video_api_url, json=payload, timeout=600) print(response.status_code) print(response.json())图生视频任务通常比单张图片耗时更长,短则几十秒,长则几分钟。timeout 要设置得足够大,否则容易在等待过程中断掉。更稳妥的做法是:接口支持异步任务时,先提交任务拿到 task_id,再轮询查询任务状态。
批量任务的队列设计不需要太复杂。输入目录放商品图,脚本遍历目录,每个商品图按“主图 -> 场景图 -> 细节图”的顺序依次处理,输出目录按商品编号归档。如果有多张候选图需求,在 JSON 配置里加一个candidates_per_scene字段,每个场景生成多张候选项,人工检查后再统一压缩上传。
8. 资源占用与性能观察
本地跑图像生成,性能观察和显存监控是必做动作。
8.1 实时查看显存占用
nvidia-smi -l 1这个命令每秒刷新一次显卡状态。重点观察:
- Memory-Usage 是否接近上限
- GPU-Util 是否在生成时波动到高位
- 是否有多个残留进程占用显存
生成结束后,如果显存没有释放,可能是进程残留或 WebUI 没有卸载模型。此时重启服务,或者用nvidia-smi找到残留进程后手动结束。
8.2 影响性能的主要因素
| 因素 | 影响 |
|---|---|
| 分辨率 | 越高越吃显存,部分模型超过 1024 会崩 |
| 步数 steps | 越高越慢,但画质提升有上限 |
| denoising strength | 越高背景变化越大,也可能越慢 |
| batch size | 一次生成多张,显存线性增长 |
| ControlNet | 额外加载模型,增加显存占用 |
| 图生视频 | 通常比单图更吃显存和内存 |
8.3 降低显存占用的通用手段
- 使用半精度模型
- 开启
--medvram或--lowvram参数 - 降低单次 batch size,分批生成
- 不用时关闭 ControlNet 节点
- 如果只是背景替换,不叠加多个模型
显存占用必须以实际测试为准。不要只看别人贴的截图,同一张图、不同采样参数,占用能差出两个档次。
9. 常见问题与排查方法
| 问题现象 | 可能原因 | 排查方式 | 解决方案 |
|---|---|---|---|
| 服务启动后页面打不开 | 端口被占用或服务启动失败 | 查看启动日志,netstat检查端口 | 换端口或重启服务 |
| API 调用超时 | 单张生成时间长、batch 过大 | 查看服务日志和当前任务状态 | 降低 batch、加大 timeout |
| 商品结构变形 | ControlNet 强度不够或 denoising 过大 | 反复对比生成图和原图 | 开启 Canny/Depth,降低 denoising |
| 背景混入商品颜色 | 抠图边缘残渣 | 查看透明底 PNG 是否干净 | 重新抠图,加边缘羽化 |
| 生成图白底不纯 | 提示词没有强调纯白,或模型默认风格 | 检查输出像素值 | 后期统一压缩为纯白背景 |
| 尺寸标注错误 | 直接让 AI 生成文字 | 检查数字和单位 | 用脚本叠加真实尺寸标注 |
| 视频商品闪烁 | 图生视频帧间一致性差 | 逐帧观察 | 用低运动幅度提示词,或改用多视角图拼接 |
| 显存不足 | 分辨率过高或多模型同时加载 | 查看 nvidia-smi | 低显存模式、半精度、分步推理 |
| 批量任务中途卡住 | 网络请求阻塞或服务失联 | 查看日志和进程 | 加重试机制,失败单独记录 |
| 有 logo 的商品生成错误 | 模型不识别品牌图案 | 对比原图检查 | 尽量保留局部重绘,不重画 logo 区域 |
最容易踩的坑是前两个:服务看着启动了但端口不对,API 请求正常提交但超时。建议每次跑批量前,先用小图单张测试,确认整条链路能通,再放大规模。
10. 合规与最佳实践
AI 生成商品素材不是“生成完就能传上去”。Amazon 对图片和视频有明确的审核要求,乱传会被拒或下架。
10.1 图片合规
主图必须遵守平台规范:纯白背景、商品占画面约 85%、无水印无文字。AI 生成的“白色背景”经常是灰白色或米白色,建议统一用脚本压成 RGB(255, 255, 255)。卖点图、尺寸图中的文字必须准确,不要出现 AI 乱码。涉及品牌 logo 时,要么使用授权素材,要么用局部重绘保留原图 logo 区域。
10.2 视频合规
视频中展示的商品功能必须真实存在。AI 生成的动态效果不能虚构商品不支持的卖点,比如一个普通保温杯在视频里出现“充电”演示,就属于虚假宣传。视频中如果出现真人、人脸、可识别的背景建筑或品牌商标,需要确认肖像权和场地/商标使用权。
10.3 工作流建议
- 第一次跑通先用 1 张商品图、小分辨率、低步数
- 每批生成结束后人工抽检 3 到 5 张,确认商品特征无误
- 模型文件、输入素材、输出结果分目录管理
- 批量任务必须保留日志,方便失败重跑
- 云 GPU 实例用完及时释放,避免计费
- 涉及未授权图片素材,不要放进批量任务
技术本身不复杂,复杂度都在“稳定量产”和“合规交付”上。把流程拆成小模块,每个模块单独验证,整体跑通后就能复用到不同商品上。
11. 总结与下一步
这条“一张商品图 -> 6 张 Listing 图 + 3 套视频方案”的生产链路,最值得先跑通的是“抠图 + 白底主图”这个小闭环。它耗时短、效果直观、能立刻接入现有上架流程。跑通后再扩展场景图、尺寸图和视频,每一步都在前一步基础上加能力。
最容易踩的坑也很明确:商品特征变形的控制、显存不足导致的随机崩溃、以及 AI 文字乱码。前两个靠参数调优和分批处理解决,最后一个靠“AI 生成底图 + 脚本叠加文字”规避。
后续可以继续扩展的方向不少,比如训练商品专属 LoRA 来保证同款商品多角度一致性,接入多视角扩散模型生成 360 度展示图,或者把图生视频模型接进批量队列做长视频分镜合成。这套工作流不需要一步到位,先把单链路跑稳定,再逐步加模块,才是性价比最高的做法。
