跳到主内容
快讯直播
AI智模界
教程

AI 生成电商主图:产品图+文案落地流程

这篇能做出什么

照这套流程走完,你能拿到这样的结果:

  • 一张符合平台尺寸要求的主图,产品本体是你实拍的那一件,背景是 AI 生成的场景,画面里有一句卖点主标和一句副标;
  • 同一个产品,一次产出 6~10 张差异化主图:木质桌面、纯色影棚、户外草地、节日氛围各一套,用来做点击率对比;
  • 一套可复用的模板:换产品图、换卖点词,脚本跑一遍自动出图,几十个 SKU 也能撑得住。

这里不承诺"一键出图"。稳定可用的做法是拆成三段:抠产品 → 生成背景 → 后期叠字。为什么顺序不能反,后面"常见坑"会讲清楚。

前置条件清单

动手前把这些准备好,能省掉大量返工:

1. 平台规则:主图尺寸与比例、是否要求白底、画面文字占比上限、是否允许非实拍背景、是否禁止拼接。以各平台官方规则页当前版本为准,规则会调整。

2. 产品素材:至少一张顺光、纯色背景、产品占画面 60% 以上的实拍图。手机拍完全可以,关键是没有大面积阴影和反光。

3. 一个图像生成或图像编辑工具:需要支持"参考图"或"局部重绘(inpaint)"。纯文字生成图片的工具做不了这一步。

4. Python 环境:用于批量抠图与叠字。装 pillow,抠图可选装 rembg

5. 一份卖点清单:3~5 条,来源是详情页、客服聊天记录、买家评价里的高频词,比凭空想靠谱。

6. 可商用中文字体:商用字体有授权要求,用之前确认授权范围。

第 1 步:先定模板,再动手

很多人一上来就写提示词,出十张废九张。先定死版式参数,后面每一步都往里填。

建一个 config.json

```json

{

"canvas": [1200, 1200],

"product_width_ratio": 0.62,

"product_center_y_ratio": 0.58,

"text_box": { "x": 80, "y": 880, "max_width": 1040 },

"title_size": 84,

"sub_size": 40,

"safe_margin": 60

}

```

三个数字最关键:

  • product_width_ratio:产品宽度占画布的比例。低于 0.5 会显得空,高于 0.75 会挤掉文案空间;
  • product_center_y_ratio:产品中心落在画布偏下位置,上方留给氛围和留白;
  • safe_margin:四周留白,避免内容顶到画面边缘被平台裁切。

第 2 步:把产品抠干净

扣图质量决定成图质量。边缘毛糙、残留原背景色,后面再修很费劲。

命令行方式,先把输入图放到工作目录:

```bash

pip install rembg pillow

rembg i product.jpg product_nobg.png

```

输出的 PNG 带透明通道。检查三件事:

  • 产品轮廓外是否还有半透明的原背景残留;
  • 细结构(电线、瓶口、镂空、毛绒边缘)有没有被削掉;
  • 透明区域是不是真的透明,而不是白色。

有问题就换一张更好拍的原图重来,通常比反复修图更快。追求更干净的边缘,可以换用商业抠图接口,参数以服务方官方文档为准。

第 3 步:生成背景,不要重画产品

这是整个流程里最容易翻车的一步。图像生成模型看到产品,倾向于"重新画一个差不多的",结果就是 LOGO 变形、按钮位置不对、材质变了。

两条路线:

路线 A(推荐):生成纯背景,再合成。

提示词模板:

```text

场景:一张{材质}台面,背景是{环境描述},虚化处理

光线:{方向}柔和自然光,产品下方有轻微投影

镜头:中焦,浅景深,画面干净

构图:正中央留出放置产品的空间,四周留出文字区域

限制:画面中不要出现任何文字、水印、logo、人物、多余商品

```

{材质}{环境描述}{方向} 换成你的需求,比如"浅色橡木""暖色调客厅""左上 45 度"。一次生成 4 张,挑构图和光线合适的。

路线 B:图生图或局部重绘。

把抠好的产品合成到一张粗略底图上,再把产品以外的区域圈出来做局部重绘,重绘幅度调到中低档,并把产品区域加进遮罩保护范围。这条路出图更自然,但需要工具支持遮罩,且要反复试参数。

不管走哪条路,同一个产品的所有主图都用同一张 product_nobg.png,这样多张图之间产品形态完全一致,不会出现"六张图里产品像六个款式"的问题。

第 4 步:合成,并补一个可信的投影

```python

from PIL import Image, ImageFilter

BG_SIZE = (1200, 1200)

bg = Image.open("bg.png").convert("RGBA").resize(BG_SIZE)

product = Image.open("product_nobg.png").convert("RGBA")

按目标宽度等比缩放产品

ratio = 0.62

target_w = int(BG_SIZE[0] * ratio)

target_h = int(product.height * target_w / product.width)

product = product.resize((target_w, target_h), Image.LANCZOS)

x = (BG_SIZE[0] - target_w) // 2

y = int(BG_SIZE[1] * 0.58) - target_h // 2

canvas = bg.copy()

用产品自身的 alpha 通道生成柔化投影

alpha = product.split()[-1]

shadow = Image.new("RGBA", product.size, (0, 0, 0, 0))

shadow.putalpha(alpha.point(lambda a: int(a * 0.35)))

shadow = shadow.filter(ImageFilter.GaussianBlur(18))

canvas.alpha_composite(shadow, (x + 10, y + 26))

canvas.alpha_composite(product, (x, y))

canvas.convert("RGB").save("main_raw.jpg", quality=92)

```

投影的方向要和背景里生成的光线方向一致。背景光从左边来,投影就往右偏;方向反了,第一眼就会觉得假。

第 5 步:写文案,别写成小作文

电商主图的文案有硬约束:手机上一秒扫过,能看清的字数有限。推荐三段式:

  • 主标:4~8 字,说品类或核心差异;
  • 副标:10~16 字,说清"给谁解决什么问题";
  • 角标:2~6 字,放规格、材质、适用场景。

让模型帮你出候选,提示词这样写:

```text

角色:电商主图文案

输入:

  • 产品:{产品名}
  • 目标人群:{人群}
  • 卖点:{卖点1};{卖点2};{卖点3}
  • 使用场景:{场景}

输出:5 组,每组包含

1) 主标(不超过 8 字)

2) 副标(不超过 16 字)

3) 角标(不超过 6 字)

约束:

  • 不使用绝对化用语、功效承诺、夸大对比
  • 不写价格、不写促销倒计时
  • 不使用平台与广告法禁止的表述,具体词表以平台规则为准
  • 不编造产品不具备的功能

```

拿到候选后人工过一遍。模型很容易写出"必买""闭眼入"这类在平台规则里风险较高的词,删掉。

第 6 步:把字叠上去

```python

from PIL import ImageDraw, ImageFont

换成系统里实际存在的可商用中文字体路径

FONT_PATH = "/path/to/your/font.ttf"

title_font = ImageFont.truetype(FONT_PATH, 84)

sub_font = ImageFont.truetype(FONT_PATH, 40)

canvas = Image.open("main_raw.jpg").convert("RGBA")

draw = ImageDraw.Draw(canvas)

title = "卖点主标"

sub = "一句副标,说清给谁解决什么问题"

stroke 描边,保证浅色背景上也看得清

draw.text((80, 880), title, font=title_font,

fill=(255, 255, 255, 255), stroke_width=3, stroke_fill=(0, 0, 0, 160))

draw.text((80, 990), sub, font=sub_font,

fill=(255, 255, 255, 255), stroke_width=2, stroke_fill=(0, 0, 0, 140))

canvas.convert("RGB").save("main_01.jpg", quality=92)

```

文字永远在最后一步用脚本叠加,不要让图像模型去画字。模型画的字基本是乱码或错别字,而且改一个词就要重出一整张图。

第 7 步:批量产出与命名

把上面几步串成一个循环:遍历"背景图列表 × 文案组列表",输出成对的文件名,例如 main_01_木桌_主标A.jpg。命名里带上变量,做 A/B 测试时能对上号。

同一批出图后做两件事:

1. 缩到手机尺寸(比如宽度 400px)看一眼,主标还认不认得出;

2. 六张图并排看,确认产品形态、色调、文案风格不至于互相打架。

常见坑与排错

产品被模型改样,LOGO 变形、按钮错位

改成"抠图 + 生成背景 + 合成"的路线,或者在图生图里把产品区域加进遮罩保护。不要指望靠提示词描述产品细节来保证还原。

生成图里出现乱码文字

在提示词里明确写"不要出现任何文字、水印、logo",同时所有文案后期叠加。

抠图边缘有白边或半透明残留

把产品图缩小 1~2 像素再放大,或者对蒙版做轻微收缩。也可以在合成后给产品加一圈极细的暗描边压住白边。

投影和背景光线方向不一致

先判断背景的主光源在哪个方向(看背景里物体的亮面和投影),再决定投影偏移量。

模特手指变形、多余肢体

主图尽量不让手部入镜,或者用产品特写替代。生成后再局部修,成本通常更高。

字体版权风险

商用字体需授权。系统自带字体不等于可商用,使用前确认授权范围。

生成图片的商用授权

各工具对生成内容的商用条件不同,以工具的官方条款为准,别默认可以随便用。

同一个产品出图后像不同款式

统一使用同一张抠图文件,背景可以换,产品本体不要重新生成。

多 SKU 被判图片重复

给每个 SKU 换背景、换文案、换产品摆放角度,形成可见差异。

下一步建议

1. 沉淀模板库:把背景提示词、文案模板、排版参数各存一份,按品类分组。下次上新只改变量。

2. 做小规模 A/B 测试:同一产品出 4 张不同风格主图,跑一段时间看点击率与转化率的变化,再决定主推哪张。不要凭感觉拍板。

3. 扩展到详情页与短视频封面:同一套抠图和文案模板,换个画布比例就能复用,边际成本很低。

4. 建立素材库:把抠好的产品图、可用的背景图、通过审核的文案归档,长期看比每次重做省事得多。

5. 定期回看平台规则:主图规范、广告用语要求都会更新,出图脚本里的约束条件也要跟着改。

AI 生成本文由 AI 基于公开信息自动生成,仅供参考。