
1. 为什么我最终把营销图生产线交给了 gpt-image-2做电商和内容运营的朋友应该都有同感每个月最头疼的不是写文案而是配图。一个新品上架主图、详情页场景图、朋友圈海报、公众号封面、小红书首图加起来少说十几张多则上百张。以前我的做法是设计师排期或者自己硬着头皮开设计软件抠图一张图从构思到出稿半小时起步遇到大促节点直接通宵。gpt-image-2 出来之后我把整条营销素材生产线重构了一遍。核心逻辑很简单把画图这件事拆成描述需求和批量执行两步前者由人写提示词后者交给 API 跑批处理。实测下来一张合格的商品场景图成本压到了几毛钱出图速度从半小时缩短到十几秒而且风格一致性比人工拼图还稳。这套工作流适合三类人一是没有专职设计师的中小卖家二是需要高频产出内容的自媒体运营三是想给现有系统加自动配图能力的开发者。它不要求你会画画但要求你能把我想要什么图说清楚——这恰恰是提示词工程的核心。下面我把整套流程从思路到落地完整拆一遍包括我踩过的坑和参数怎么调。2. 整体工作流设计与方案选型思路2.1 为什么是批量而不是单张精修很多人第一次接触 AI 生图习惯一张一张调改提示词、重生成、再微调一张图磨二十分钟。这个思路在单张艺术创作上没问题但用在营销素材上是灾难。营销图的本质是标准化产出同一个商品要出白底图、场景图、模特图、海报图它们共享同一套视觉语言只是构图和用途不同。所以我的方案核心是模板化 变量替换。先为每一类素材定义一套固定的提示词模板把商品名称、颜色、材质、场景、光线这些会变的部分抽成变量然后用脚本批量填充、批量调用 API。这样出来的图风格统一而且新增一个商品只需要改几个变量值不用重新想提示词。提示批量不等于无脑堆量。模板设计阶段仍然要人工打磨一个模板跑通后再复制到几十个商品上这才是效率的来源。2.2 三类素材的提示词结构差异商品图、海报、文章封面虽然都是图但提示词结构完全不同混用会翻车。我总结了一张对照表素材类型核心目标提示词重点常见比例商品图还原商品本身材质、颜色、细节、白底或纯色背景1:1营销海报传递促销信息构图留白、氛围、主体突出、文字区预留3:4 或 9:16文章封面吸引点击视觉冲击、概念化表达、留标题空间16:9 或 2.35:1商品图最怕 AI自由发挥把商品画变形所以提示词里要反复强调product photographyaccurate detailsno distortion。海报则相反需要 AI 有想象力把氛围拉满但必须留出文字区域否则后期加字会盖住主体。封面图介于两者之间既要概念清晰又要留白。2.3 技术栈选择脚本直连还是工作流平台市面上有两条路一条是用 Dify、Coze 这类工作流平台拖拽编排另一条是自己写脚本直连 API。我两条都试过最后主力用脚本原因有三个。第一批量场景下脚本更可控。工作流平台适合交互式、单次触发的场景但我要一次跑 200 张图需要断点续跑、失败重试、并发控制这些用代码写更直接。第二成本核算更清晰。脚本里能精确记录每次调用的 token 消耗和图片数量方便算账。第三和现有系统集成更方便。我的商品数据在数据库里脚本直接读库生成提示词比在平台里手动导入导出快得多。当然如果你完全不想碰代码工作流平台也能跑通只是批量能力和容错性会打折扣。下面我以 Python 脚本为主线讲思路对平台用户同样适用。3. 核心细节解析与实操要点3.1 提示词模板怎么设计才不翻车提示词是整套工作流的灵魂。我见过太多人写一个好看的杯子出来的图千奇百怪。好的营销图提示词要包含五个要素主体描述、材质细节、场景环境、光线氛围、构图要求。以一款陶瓷马克杯为例我的商品图模板是这样的Professional product photography of a {color} ceramic mug, {material_detail}, placed on a clean {background} background, soft studio lighting, sharp focus, high detail, centered composition, no text, no watermark, 1:1 aspect ratio其中{color}、{material_detail}、{background}是变量。注意最后那句no text, no watermark非常重要AI 生图经常自作主张加一些莫名其妙的文字和水印营销图里这是大忌。场景图模板则要换一套逻辑Lifestyle product photo of a {color} ceramic mug on a wooden desk, next to a book and a small plant, warm morning sunlight from the window, cozy atmosphere, shallow depth of field, {mood} mood, professional commercial photography, 3:4 aspect ratio这里{mood}可以是relaxingenergeticminimalist用来控制整体调性。实测下来场景图里加入具体道具书、植物、咖啡豆比抽象描述温馨环境效果好得多AI 对具体名词的理解远强于形容词。3.2 参数怎么调尺寸、质量、数量的取舍gpt-image-2 的 API 有几个关键参数直接决定成本和效果。我整理了一张实测对照表参数可选值我的建议理由size1024x1024 / 1536x1024 / 1024x1536按用途选方图用 1024横图用 1536x1024qualitylow / medium / high商品图 high草稿 mediumhigh 细节明显更好但贵n1-10批量时设 1多跑几次一次生成多张质量不稳定关于成本我算过一笔账medium 质量 1024x1024 的图单张成本大概在几毛钱区间high 质量会翻倍。所以我的策略是先用 medium 跑一批看效果选中的再单独用 high 重生成。这样既控制了成本又保证了最终成图质量。注意不要一次性把 n 设成 10 指望多生成几张挑一张。实测下来同一批次里质量参差不齐而且失败一张整批都要重来。稳妥做法是循环调用每次生成 1 张失败单独重试。3.3 并发控制与失败重试机制批量跑图最容易忽略的是限流和超时。我一开始图省事开了 20 个并发线程猛冲结果一半请求被限流拒绝还有几个超时后图片生成了一半。后来改成并发数 3-5配合指数退避重试稳定性大幅提升。重试逻辑要区分错误类型网络超时、限流这类可重试参数错误、内容审核拒绝这类重试也没用直接记录跳过。我的脚本里维护了一个失败队列跑完一轮后单独处理避免因为个别失败卡住整批。另外每张图生成后立即落盘保存不要等全部跑完再统一写。我踩过一次坑跑了 150 张图程序在最后一步崩溃内存里的结果全丢了白烧了几十块钱。现在改成生成一张存一张文件名带上商品 ID 和序号断点续跑时先检查文件是否存在存在就跳过。4. 完整实操流程与关键环节实现4.1 环境准备与依赖安装先把环境搭起来。我用的是 Python 3.10依赖就三个openai官方 SDK、requests处理下载、pandas读商品表。pip install openai requests pandas pillowAPI Key 不要硬编码在脚本里用环境变量管理export OPENAI_API_KEY你的key脚本里这样读取import os from openai import OpenAI client OpenAI(api_keyos.environ.get(OPENAI_API_KEY))提示如果你在团队里协作建议把 key 放在.env文件里用python-dotenv加载并且把.env加进.gitignore避免误提交泄露。4.2 商品数据表的结构设计批量生成的前提是数据规整。我建了一张 CSV 表每行一个商品列包括商品 ID、名称、颜色、材质、场景、调性、输出类型。这样脚本读一行就能拼出一套提示词。product_idnamecolormaterialscenemoodtypeP001陶瓷马克杯米白哑光釉面木质书桌温馨productP002保温杯深灰磨砂不锈钢户外露营活力scene这张表是整个工作流的输入源运营同学只需要维护这张表不用碰代码。新增商品就是加一行改配色就是改一个单元格非常直观。4.3 提示词拼装函数把模板和变量拼起来我写了一个函数根据 type 字段选择不同模板def build_prompt(row): if row[type] product: return ( fProfessional product photography of a {row[color]} f{row[name]}, {row[material]}, placed on a clean fwhite background, soft studio lighting, sharp focus, fhigh detail, centered composition, no text, no watermark ) elif row[type] scene: return ( fLifestyle product photo of a {row[color]} {row[name]} fon a {row[scene]}, {row[mood]} atmosphere, fnatural lighting, shallow depth of field, fprofessional commercial photography, no text ) else: return ( fConceptual cover image representing {row[name]}, f{row[mood]} mood, minimalist composition, flarge empty space for title text, no text, no watermark )这个函数是整套流程的核心模板质量直接决定出图质量。建议先小批量测试把模板调满意了再全量跑。4.4 批量调用与图片保存主循环逻辑读表、拼提示词、调 API、下载图片、记录日志。import time import requests import pandas as pd def generate_image(prompt, size1024x1024, qualitymedium): for attempt in range(3): try: resp client.images.generate( modelgpt-image-2, promptprompt, sizesize, qualityquality, n1, ) return resp.data[0].url except Exception as e: wait 2 ** attempt print(f第 {attempt1} 次失败: {e}{wait}s 后重试) time.sleep(wait) return None def save_image(url, path): r requests.get(url, timeout60) with open(path, wb) as f: f.write(r.content) df pd.read_csv(products.csv) for _, row in df.iterrows(): prompt build_prompt(row) url generate_image(prompt) if url: save_image(url, foutput/{row[product_id]}_{row[type]}.png) print(f{row[product_id]} 完成) time.sleep(1) # 控制节奏避免触发限流注意最后那个time.sleep(1)别小看这一秒它能显著降低被限流的概率。批量跑的时候节奏比速度重要。4.5 海报和封面的后期加字AI 生成的图基本不带可用的文字海报和封面的文案要后期加。我的做法是让 AI 生成留白版底图然后用 Pillow 或设计工具批量叠字。from PIL import Image, ImageDraw, ImageFont def add_title(image_path, title, output_path): img Image.open(image_path) draw ImageDraw.Draw(img) font ImageFont.truetype(SourceHanSans-Bold.ttf, 72) w, h img.size draw.text((w*0.1, h*0.7), title, fillwhite, fontfont) img.save(output_path)这样底图可以复用文案随时改比让 AI 直接画字靠谱得多。AI 画中文字目前还是灾难别为难它。5. 常见问题与排查技巧实录5.1 出图质量不稳定的排查思路最常见的问题是同一批图风格不统一。排查顺序是这样的先看提示词模板是不是变量太多变量越多风格越飘再看是不是 quality 设得太低low 质量的图细节和一致性都差最后看是不是并发太高导致部分请求被降级处理。我的经验是把变量控制在 3 个以内超过就容易失控。如果确实需要更多变化宁可拆成多个模板也不要在一个模板里塞一堆变量。5.2 内容审核被拒怎么办营销图里如果涉及人物、品牌 logo、特定场景可能触发内容审核。被拒后不要反复重试同样的提示词要改描述方式。比如模特拿着杯子可能被拒改成一只手握着杯子通常能过。涉及具体品牌名的一律去掉用通用描述代替。5.3 成本失控的预防我见过有人跑批量忘了设上限一晚上烧掉几百块。预防措施有三个脚本里加最大生成数量限制每次运行前打印预估成本让操作者确认用 medium 质量先跑草稿确认后再用 high 重生成。问题现象可能原因解决方向图片风格不统一变量过多 / quality 低精简变量提高质量请求频繁失败并发过高被限流降到 3-5 并发加退避重试商品变形提示词缺少约束加 accurate details, no distortion出现乱码文字AI 自作主张加字提示词加 no text, no watermark成本超预期未设上限 / 质量过高加数量限制草稿用 medium5.4 我踩过的几个坑第一个坑是文件名冲突。早期我用商品名做文件名结果两个商品重名后生成的把前面的覆盖了。现在统一用商品 ID 加类型加时间戳绝不重复。第二个坑是忘记保存原始提示词。有次出了张特别好的图想复现却想不起来当时提示词怎么写的。现在每张图旁边都存一个同名 txt记录完整提示词和参数方便复现和迭代。第三个坑是直接拿 AI 图当主图。平台对主图有规范要求AI 图有时候背景不够纯净、边缘有瑕疵直接上架可能被驳回。我的做法是 AI 出图后用抠图工具过一遍确保白底纯净、边缘干净再上架。6. 把这套流程接入现有系统的扩展思路跑通脚本只是第一步真正省时间的是把它接进日常运营流程。我现在的做法是运营在表格里填好商品信息提交后自动触发脚本生成的图直接进素材库带标签分类。新品上架时主图、场景图、海报一次性生成运营只需要挑选和微调。如果你用 Dify 这类工作流平台可以把提示词模板做成节点商品数据从表格或数据库读取生成后自动推送到素材管理工具。核心逻辑和脚本版一样只是把代码换成了可视化编排。对于不想维护代码的团队这条路更省心。对于开发者还可以进一步做成服务暴露一个接口传入商品信息返回图片 URL前端或小程序直接调用。这样连表格都不用填商品录入的同时图就生成好了。我试过用 FastAPI 包一层几十行代码就能跑起来接入成本很低。最后分享一个我最近在用的技巧建立提示词库。把跑出来效果好的提示词按品类存起来新商品优先复用同品类模板只在变量上做微调。这样出图质量越来越稳因为好模板是经过验证的。我现在的提示词库里按杯具服饰数码食品分了几大类每类下面有几个经过实战检验的模板新商品直接套用效率比从零写提示词高太多了。