Files
yingqing/core/bug/平台套图线上提示词优化版.md
T
zycandClaude Opus 4.8 1d5c2c0910 chore(bug/qa): 归档测试清单、bug 报告与 QA 诊断脚本
- core/bug: 各轮电商项目测试清单 xlsx + 验证报告/套图提示词梳理 md
- core/qa: consumption_summary / diag_login / diag_sessions / probe_usage 诊断脚本

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-29 19:26:36 +08:00

44 KiB
Raw Blame History

平台套图线上提示词优化版

基于 D:/feishudownload/平台套图提示词梳理.md 和当前仓库代码整理。 目标不是重写一套全新生图系统,而是在现在线上拼词链路上做最小可落地升级。


0. 结论

现在线上提示词的图片丰富度来源于 6 个 本张 轮换版式,这部分应该保留。

真正要改的是:

  1. 删除 详情 / 详情排版 / 详情套图,平台套图只生成头图、主图、封面图候选。
  2. 平台差异不能再靠末尾一句 {平台名}平台套图版式,需要把 platform_id 传到后端。
  3. 后端 build_platform_cover_prompt_refs() 在固定模板里注入平台块、品类块、模型块、背景反差块、文案块,但所有块都必须遵守“头图低信息密度上限”。
  4. cover 参考图不要只取 _product_cover_url() 单张主图,应改用 _product_reference_urls(limit=3),真实上传图优先、排除 AI 图。
  5. 普通客户不要选择模型;前端只暴露平台、张数、比例、是否真人上身、是否需要文案等业务选项,后端按 slot_name / category / copy_policy / platform_id 自动路由 Seedream 或 image2。
  6. 图片比例必须由后端 size / 后处理裁切保证,不能只在 prompt 里写比例。当前 4:5 会 fallback 成 1:1,这是比例错误的直接原因。

0.1 原 MD 逐条迁移对照

原文件 D:/feishudownload/平台套图提示词梳理.md 不是废弃材料,下面这些结论必须全部继承。本文件在原结论上做低信息密度和比例修正。

原 MD 内容 是否迁移 新文档处理方式
10 个平台只有最后一句平台名不同 已迁移 改为必须传 platform_id 到后端,不再靠 {平台名}平台套图版式
前端 base_prompt 是平台套图入口第一段 已迁移并修正 保留前端入口,但删除 详情排版,默认词改为“平台商品头图”。
后端 build_platform_cover_prompt_refs() 是真正发给模型的固定模板 已迁移 仍以这个函数为主改造点,新增 platform_id / index / count / model_route / selected_model / target_ratio 参数,其中 selected_model 仅内部覆盖。
有模特时参考图2是出镜模特 已迁移 保留模特参考逻辑,但内衣上身图新增“不得被其他衣物遮挡”的强约束。
6 个 本张 轮换版式能防雷同 已迁移并降噪 保留 6 个视觉骨架,但新增“头图低信息密度上限”,防止变成详情页。
各平台完整提示词只是最后一句不同 已迁移 不再复制原来的 10 条重复 prompt,改为 PLATFORM_COVER_BLOCKS 平台块。
cover 参考图确实有传,但只传 1 张主图 已迁移 P0 改为 _product_reference_urls(product, limit=3)
主图可能是 AI 生成图,误差会累积 已迁移 继续使用 _product_reference_urls 的“真实上传图优先、排除 AI 图”规则。
模特上身图模式已经用多图真实参考 已迁移 cover 向 model 模式看齐,也使用多张真实商品参考。
是否真编辑参考图取决于模型能力 已补充 新增模型能力检查:支持 image_edit 的模型优先;Seedream 需要按图生图能力单独降级预期。
Seedream 只松散借色调,不锁主体 已迁移 内衣/商品一致性中把 Seedream 作为单独分支处理,不承诺同等参考锁定能力。
平台差异没进提示词,也没进尺寸 已迁移并扩展 新增平台块 + 平台尺寸表 + target_ratio 最终比例校验。
建议 1cover 改用 _product_reference_urls(limit=3) 已迁移 P0 第 4 条。
建议 2:每个平台写真正差异化模板,最好 admin 可编辑 已补充 新增 platform_cover_{platform_id} 模板 key 建议;配置缺失时 fallback 到内置平台块。
建议 3:确认默认图像模型支持 image_edit 已补充 新增模型能力与 fallback 规则,避免悄悄落到只会图生图的模型。
注:当前 admin 只有共用 platform_cover 已补充 新增 admin 配置迁移方案,从单一 key 拆到平台 key。

不再逐字复制原 MD 里的 10 条平台示例 prompt,因为那些示例的价值是证明“它们完全一样”。新的实现应保留这个诊断结论,而不是保留重复 prompt 本身。


1. 当前线上问题对应代码

1.1 前端默认提示词

当前代码:

// core/frontend/src/routes/ai-tools.tsx
promptTemplate: (title) => `${title},电商平台套图,统一视觉,主图 + 详情排版`

问题:

  • 详情排版 会把模型引到详情页、长图、营销页。
  • 电商平台套图 太宽泛,不等于平台头图。

建议改为:

promptTemplate: (title) => `${title},平台商品头图,统一视觉,商品主体清晰`

页面文案也建议从:

选择平台模板,一键生成主图 / 封面 / 详情套图。

改为:

选择平台模板,一键生成平台商品头图。

1.2 前端平台拼词

当前代码:

// core/frontend/src/routes/ai-tools.tsx
void startBatch({
  ...base,
  prompt: platName ? `${base.prompt}${platName}平台套图版式` : base.prompt,
  platformIds: [pid]
});

问题:

  • platformIds 只存在前端 batch 展示里,没有传给后端。
  • 后端实际只能看到 prompt 里那句平台名。
  • 另一个多商品入口只传 platformIds,甚至没有把平台名拼进 prompt,两个入口不一致。

建议:

void startBatch({
  ...base,
  prompt: base.prompt,
  platformId: pid,
  platformIds: [pid]
});

并在 onGenerate / api.submitGenerateImage / GenerateImageView / enqueue_standalone_images / request_payload 全链路新增:

platform_id?: string

后端任务需要保存:

{
  "platform_id": "taobao",
  "platform_name": "淘宝"
}

不要再把平台名作为用户提示词的一部分。

1.3 后端固定模板

当前代码:

def build_platform_cover_prompt_refs(product, has_model: bool, base_prompt: str = "") -> str:
    lines = [f"参考图1是「{name}」的真实商品主图。"]
    if has_model:
        lines += [
            "参考图2是出镜模特。请生成参考图2中的这位模特展示参考图1中商品的电商平台套图(主图 / 封面 / 详情);",
            "模特的五官、发型、肤色、身形必须与参考图2高度一致,不要换人;",
        ]
    else:
        lines.append("请基于该商品生成电商平台套图(主图 / 封面 / 详情排版),统一视觉风格;")

建议改为:

def build_platform_cover_prompt_refs(
    product,
    *,
    has_model: bool,
    base_prompt: str = "",
    platform_id: str = "taobao",
    index: int = 0,
    count: int = 4,
    model_route: str = "",
    selected_model: str = "",  # 仅内部调试/强制覆盖使用,普通客户不传
    product_ref_count: int = 1,
) -> str:
    ...

其中:

  • platform_id 用于选择平台提示词块。
  • index 用于选择本张 slot。
  • count 用于 4/8/12 张变体。
  • model_route 是后端按 slot 自动算出的模型路由结果,用于 image2 / Seedream 分支。
  • selected_model 只作为内部调试或后台强制覆盖字段,普通客户不应看到也不应传。
  • product_ref_count 用于写 参考图1~N,避免多图参考时 prompt 仍写只有参考图1。

2. 参考图策略

当前 cover 使用:

product_url = _product_cover_url(product)
edit_images = [product_url] + ([model_url] if model_url else [])

建议 cover 也改为:

product_urls = _product_reference_urls(product, limit=3)
edit_images = product_urls + ([model_url] if model_url else [])

提示词写法:

参考图1~{{product_ref_count}} 是同一件商品的真实商品参考图,用于锁定商品外观、颜色、材质、结构、Logo、品牌文字和比例。
这些参考图只锁定商品本体,不锁定原图里的床品、桌面、墙面、绿植、毛巾、窗帘、道具和拍摄光线。

如果后端能生成 product_cutout_ref,商品图、结构图、细节图优先传去背景商品参考图。


3. 保留线上 6 个版式骨架

不要废掉线上这 6 类,它们是现在图片丰富度比较好的原因。

但不要原样写成“所有平台通用”,而是作为 slot,再被平台/品类/模型翻译。

slot_1_hero:
正面居中主图版式,商品占画面主体,纯净背景,经典电商主图构图。

slot_2_selling_layout:
商品偏置 + 卖点文案分区,场景化背景,杂志感构图。

slot_3_detail_closeup:
特写细节版式,放大商品材质/做工,近景视角,突出质感。

slot_4_lifestyle_scene:
生活场景套图版式,商品置于真实使用情境,环境光,氛围感构图。

slot_5_multi_angle:
多角度组合版式,商品换一个朝向/视角,几何分区背景,现代简约风。

slot_6_promo_cover:
促销封面版式,留出标题/价签区,高对比配色,强视觉冲击构图。

4 张时不要总取前 4 个固定模板。应按平台和品类挑 4 个最适合的角色。

重要修正:

这 6 个版式只是“画面丰富度骨架”,不是信息密度许可。
平台头图不是详情页。默认 4 张里不要出现参数表、长卖点列表、复杂箭头结构图、密集图标、2x3 信息宫格。
结构说明和细节宫格只能作为 8 / 12 张里的轻量辅图,而且必须像单张商品轮播头图,不像详情页截图。

3.1 头图低信息密度上限

所有平台、所有模型都必须遵守:

一张头图只讲一个视觉任务。
画面第一优先级是商品/上身效果/使用场景,不是文字信息。
商品或模特主体占画面 60%-80%,文字和装饰不能抢主体。

允许的信息量:

无文案图:0 个字。适合首图、上身图、挂拍、生活场景、细节摄影。
轻文案图:1 个短标题,最多 8 个汉字左右;可加 1-2 个极短标签。
活动图:1 个品牌名 + 1 条活动短语,活动条只占底部或角落,不铺满画面。
轻细节图:1-2 个局部特写,可有极短标签;不要做成详情页的 4 宫格说明。

禁止的信息量:

不要参数表、规格表、长句卖点、三段式说明、大量箭头、密集图标、2x3/3x3 宫格、左右对比详情页。
不要一张图同时出现品牌区、活动条、价格区、图标卖点、编号卖点、结构箭头和细节标签。
不要为了平台感写很多文字;平台感主要靠背景、镜头、主体占比、轻量版式和调色。

4 张默认角色应收敛为:

1. 商品/上身主视觉:无文案。
2. 场景主视觉:挂拍、生活场景、手部整理、穿搭准备,无文案或 1 个极短标题。
3. 轻卖点封面:商品主体 + 1 个短标题 + 最多 2 个短标签。
4. 质感特写:材质/扣位/肩带/细节摄影,无文案或 1 个短标签。

4. 平台提示词块

后端维护 PLATFORM_COVER_BLOCKS

淘宝

平台:淘宝。
画面像淘宝搜索货架和商品主图,移动端缩略图下商品一眼可识别。
常见结构:左上小品牌区、中央或偏右商品主体、底部活动条或底部轻卖点条、成人模特上身、挂拍、局部质感特写。
内衣类默认 4 张优先成人模特上身、挂拍/场景、轻卖点封面、质感特写;图标卖点、编号卖点、结构说明、细节宫格只作为 8/12 张轻量辅图,不进入默认 4 张。
背景干净但不能单调,允许浅灰棚拍、浅色墙面、试衣间背景、窗边挂拍、干净台面。
禁止生成详情页、长图、平台 UI、二维码、直播间界面、虚假价格和未提供折扣。

天猫

平台:天猫。
画面像品牌旗舰店商品首图,品牌感、质感、留白、材质光影更重要。
常见结构:品牌主视觉、材质背景、精致展台、克制卖点区、少量品牌文案。
促销感弱于淘宝,不要大红大黄低价感,不要拼多多式强利益区。

京东

平台:京东。
画面像京东商品主图,清晰、可信、理性、标准。
常见结构:白底/浅灰商品图、克制品质短标题、包装/配件/材质细节。
信息区要非常少,只允许 1 个短标题或 1-2 个短标签;不要参数表、功能说明长区、详情页式模块,不要小红书滤镜,不要强生活方式过度氛围。

拼多多

平台:拼多多。
画面像拼多多商品主图或活动头图,主体大、信息直接、利益区明显。
可以有高对比活动区和大标题,但只讲一个利益点;不能编造价格、优惠、折扣、销量和平台补贴。
背景明亮,商品边缘清楚,不要复杂品牌大片感。

抖音电商

平台:抖音电商。
画面像信息流商品封面和短视频电商封面,近景、强裁切、真实使用瞬间、动作感更强。
常见背景:衣橱、梳妆台、卧室、开箱、手部整理、拿取、穿搭准备。
文案更短,商品主体更大,适合快速停留。
不要生成抖音 UI、播放按钮、直播间贴片、字幕条,也不要套淘宝底部活动条。

小红书

平台:小红书。
画面像生活方式笔记封面,自然光、真实体验、种草氛围。
常见背景:卧室、衣橱、梳妆台、桌面、浴室、旅行收纳、通勤准备。
标题像用户体验表达,少硬广、少参数表、少促销条。

快手

平台:快手。
画面像快手小店商品图或直播前置封面素材,真实、直接、可信。
可以有桌面展示、手持展示、打包台、家中真实环境、开箱场景。
不要生成直播 UI、主播贴片和平台水印。

视频号

平台:视频号/微信小店。
画面克制可信,适合社交分享和商品卡。
背景可用干净家居、礼赠、办公、生活空间、柔和自然光。
不要生成微信聊天界面、二维码、公众号 UI。

亚马逊

平台:亚马逊。
第 1 张必须是 MAIN 合规图:纯白背景,只展示售卖商品本体,无文字、无道具、无边框、无水印,商品占画面主要区域。
第 2 张以后可以是 Lifestyle、Feature、Size、Detail、Package 辅图。
不要生成 Amazon 徽章、评分、排名、优惠和平台 UI。

1688

平台:1688。
画面像批发采购图,商品清楚,偏规格、材质、工艺、包装、供货信息。
背景可用白底、浅灰、工厂台面、仓储、包装台、材料/工艺背景。
头图仍然保持低信息密度,只允许 1 个短标题或 1-2 个短标签;不要做成规格表详情页。不要虚构工厂资质、库存、起订量、认证和价格。

4.1 Admin PromptTemplate 拆分

原 MD 里提到:当前 admin 提示词页可改的只有后端共用模板 platform_cover,不区分平台。这一点要保留为开发改造项。

建议模板 key

platform_cover_base
platform_cover_taobao
platform_cover_tmall
platform_cover_jd
platform_cover_pdd
platform_cover_douyin
platform_cover_xhs
platform_cover_kuaishou
platform_cover_wechat
platform_cover_amazon
platform_cover_1688

读取规则:

1. 先读 platform_cover_base,放商品锁定、头图范围、低信息密度、通用负面约束。
2. 再读 platform_cover_{platform_id},放平台调性、默认比例、平台版式倾向。
3. 如果平台 key 不存在,fallback 到代码内置 PLATFORM_COVER_BLOCKS。
4. 不允许继续用一个 platform_cover 模板服务所有平台。

这样 UI 设计师后续可以在 admin 中单独微调淘宝、抖音、小红书等平台的提示词,不需要每次改代码。


4.2 模型能力检查

原 MD 里提到:是否真“编辑参考图”取决于当前图像模型。这是参考不精准的核心原因之一,需要作为任务创建前的能力检查。

规则:

resolved_model = selected_model_override or model_route_result

if mode = cover and resolved_model supports image_edit:
  使用多图参考 edit_images,商品外观锁定预期较高。

if mode = cover and resolved_model does not support image_edit:
  明确标记 reference_lock_level = weak。
  prompt 中仍传商品参考,但不能承诺严格编辑参考图。
  需要更强商品锁定提示,并优先使用 product_cutout_ref。

if resolved_model = Seedream:
  按图生图 / 参考图生成能力处理,商品外观可能只松散继承。
  不要把 Seedream 和 gpt-image-2 写成同等参考锁定能力。

if resolved_model = gpt-image-2 / image2:
  优先使用 image_edit 能力;若当前网关实际不支持 reference image,则必须在 debug metadata 标记 image_edit_unavailable。

任务 debug metadata 必须保存:

{
  "model_route": "auto / seedream / image2 / overlay_text",
  "resolved_model": "seedream / gpt-image-2 / image2",
  "selected_model": "",
  "model_route_reason": "slot_name + category + copy_policy",
  "override_by_user": false,
  "supports_image_edit": true,
  "reference_lock_level": "strong / weak",
  "product_ref_count": 3,
  "used_real_uploaded_refs": true,
  "used_ai_generated_cover_ref": false
}

4.3 自动模型路由策略

实测结论:不要让普通客户手动选择 Seedream / image2。商家只关心平台、张数、比例、是否真人上身、是否需要文案;模型选择应由后端按图片角色自动决定。

后台可以保留 selected_model 作为调试开关,但线上默认使用 model_route = auto

默认模型分工:

Seedream:
- 适合内衣/服饰真人上身图。
- 适合淘宝感、卖货感、轻营销封面。
- 可以生成少量中文卖点,但仍必须限制在 allowed_copy_text。

image2
- 适合无字商品摄影。
- 适合挂拍、平铺、收纳、材质、肩带、背扣、边缘走线等细节图。
- 对假品牌、假 Logo、信息图漂移更可控。
- 不建议直接生成成人内衣真人上身图。

overlay_text:
- 当文案必须准确时,模型只生成无字图,再由前端/后端叠字。
- 不依赖模型生成价格、折扣、品牌名、卖点短句或平台合规文案。

路由规则:

if category in ["服饰内衣", "内衣", "泳衣", "贴身衣物"] and slot_name = clean_on_model_hero:
  model_route = seedream
  display_mode = on_model
  copy_policy = none

if slot_name in ["product_hanging_scene", "flat_lay_lifestyle_scene", "texture_detail_photo", "package_or_material_context"]:
  model_route = image2
  copy_policy = none

if slot_name = light_selling_cover:
  if copy_must_be_accurate = true:
    model_route = image2 + overlay_text
    copy_policy = none_for_model_then_overlay
  else:
    model_route = seedream
    copy_policy = selling_point_copy

if platform_id = amazon and amazon_slot = MAIN:
  model_route = image2
  copy_policy = none
  background = pure_white

if selected_model is provided by internal debug/admin:
  selected_model can override model_route, but debug metadata must record override_by_user = true.

内衣默认 4 张推荐路由:

1. clean_on_model_hero → Seedream
   成人模特直接穿着内衣,无文案。

2. product_hanging_scene → image2
   挂拍/衣架/窗边/衣橱,无文案。

3. light_selling_cover → Seedream 或 image2 + overlay_text
   若只要氛围卖点图,可用 Seedream 直接生成少量短文案;
   若要求文字准确、可控、可改,必须用 image2 生成无字图后叠字。

4. texture_detail_photo → image2
   面料、肩带、背扣、边缘走线等单个细节,无文案。

前端交互原则:

普通客户不显示模型下拉框。
普通客户只选择:平台、图片数量、比例、是否真人上身、是否需要文案、视觉偏好。
高级调试/运营后台才显示模型覆盖选项。

混合模型成套感约束:

Seedream 和 image2 可以混合生成同一套图,但不能只靠 slot 自己发挥。
后端必须为同一批次生成 visual_system_guard,并注入每一张 prompt。

visual_system_guard 至少包含:
- 统一商品主色:商品颜色、材质、结构不能随模型改变。
- 统一背景色系:同一批次限定 1-2 个背景色族,例如冷灰 / 蓝灰 / 浅灰,不允许一张深灰商业棚拍、一张暖白生活大片差太远。
- 统一背景明度:默认中浅灰到浅灰,不要 Seedream 过深、image2 过白;除白底合规图外,不要纯白大底。
- 统一光线:柔和自然光或柔和棚拍二选一,同一批次不要混用夜景、强硬光、暖黄家居光和冷灰棚拍。
- 统一构图气质:高端淘宝轮播商品摄影,主体大、低信息密度、留白克制。
- 统一后处理:输出后可做轻量色温/亮度/对比度归一化,让不同模型看起来像同一品牌同一天拍摄。

若混合模型结果看起来不是一套,优先修 visual_system_guard 和后处理,不退回让客户手动选模型。

5. 背景反差规则

新增后端字段:

product_color_family = 从商品图或商品数据识别出的主色
background_contrast_guard = 根据主色生成的背景避让规则

直接写进 prompt

背景必须和商品主色形成清楚反差,不能让商品和背景同色相融。
浅色商品不要使用奶白、浅米、浅粉等近似大面积背景;优先使用冷灰、蓝灰、浅绿、浅薰衣草、自然木色、明确投影或边缘光。
黑色/深色商品不要使用黑色、深灰、深棕大背景;优先使用暖白、浅灰、肤色墙面、浅木色或日光窗边背景。
粉色/红色商品不要使用同色粉红或红色大背景;优先白、浅灰、浅绿、浅蓝、自然木色。
除亚马逊 MAIN 或明确白底 slot 外,不要把整组图片都做成白底/浅灰底。

6. 内衣类模型分支

6.1 Seedream

Seedream 可以生成成人内衣上身图,但容易出现其他衣服污染。

Seedream 内衣上身图必须注入:

这是真人试穿商品头图任务。
必须生成成人模特直接穿着参考商品图中的内衣,内衣是唯一服饰重点。
罩杯、肩带、下围、杯型、面料、颜色和关键版型必须完整可见,并与参考商品一致。
不要出现 T 恤、衬衫、吊带背心、运动上衣、连衣裙、制服、职业装、厚外套或任何遮挡内衣主体的第二件衣服。
不要把内衣穿在其他衣物外面,也不要在内衣下面加一层衣服。
最多允许轻薄开衫、薄纱或披肩松散搭在肩膀/手臂外侧,但不得盖住罩杯、肩带、下围和关键版型。
画面是正规电商服饰目录拍摄,成人、克制、商品展示向,非性感化,非挑逗姿势。
本张默认无文案,不要活动条、卖点图标和复杂模板。
镜头建议为脖颈以下到腰部/胯部以上的上半身商品目录构图,模特正面或轻微侧身,罩杯、肩带、下围和背带结构不能被裁切。
不要生成时尚大片、写真大片、暧昧姿势、夸张首饰、纹身、强烈夜店光、品牌水印、伪水印或角落签名。

Seedream 内衣 4 张推荐:

1. clean_on_model_hero:成人模特直接穿着内衣,干净上身主视觉,无文案。
2. hanging_or_lifestyle_scene:窗边挂拍、衣橱、手部整理或轻生活场景,无文案。
3. light_selling_cover:商品主体 + 1 个短标题 + 最多 2 个短标签,不出现真人。
4. texture_detail_photo:面料、肩带、扣位或边缘走线的质感特写,无文案或 1 个短标签。

6.2 image2

image2 更稳定,但成人内衣真人上身容易被安全策略拦截。

image2 内衣套图不能退化成 4 张相似浅色商品图。推荐角色:

1. product_hanging_scene:挂拍/衣架/窗边/衣橱,自然光,无文案。
2. flat_lay_lifestyle_scene:平铺或手部整理,桌面/收纳/旅行场景,无真人身体。
3. light_selling_cover:商品主体 + 1 个平台化短标题 + 最多 2 个短标签,文案来自 allowed_copy_text。
4. texture_detail_photo:单个材质/肩带/背扣/边缘走线特写,无文案或 1 个短标签。
5. soft_shape_display:隐形人台或立体轮廓,无真人皮肤,无复杂标签。
6. ghost_mannequin_shape_display:隐形人台或立体轮廓,无真人皮肤。
7. package_or_material_context:包装、材质、收纳、洗护或手感场景,不虚构配件。

4 张至少选择 4 个不同角色,但不能选择“结构说明图 + 细节宫格 + 卖点信息图”这种组合;默认组合应是挂拍、生活平铺、轻卖点封面、质感特写。

image2 实测会主动把“主图/卖点/信息图/模板”理解成多文字海报,所以 copy_policy = none 的 slot 不要使用这些词。应改写成“纯商品摄影、无文字、无标签、无图标、无排版模块、无海报感”。若需要文案,优先后期叠字,不依赖模型生成准确文字。


7. 文案生成规则

不要只照抄商品库卖点,也不要让模型自由编。

后端先生成 copy_plan

{
  "product_display_name_for_prompt": "黑色夏薄款文胸",
  "cover_headline": "夏日轻薄透气",
  "cover_subpoints": ["清爽透气", "日常舒适", "穿着不闷"],
  "allowed_copy_text": ["夏日轻薄透气", "清爽透气", "日常舒适", "穿着不闷"],
  "copy_sources": {
    "夏日轻薄透气": ["title: 夏薄款", "selling_points[0]: 透气"],
    "清爽透气": ["selling_points[0]: 透气"]
  }
}

允许:

  • 透气 丰富成 夏日透气不闷清爽透气感
  • 把标题里的类目/季节/款式和卖点合成短标题。
  • 按平台语气调整表达。

禁止:

  • 商品数据没有的价格、折扣、销量、排名、认证、百分比、杯型范围、尺码、明星同款。
  • 把普通卖点扩成强功效或绝对承诺。
  • 把完整 SEO 标题直接塞给生图模型。

7.1 图片比例修正

当前比例错误不是提示词问题,而是后端 size 映射问题。

当前代码:

def _ratio_to_image_size(ratio: str) -> str:
    return {
        "1:1": "1024x1024",
        "3:4": "1024x1536",
        "9:16": "1024x1536",
        "4:3": "1536x1024",
        "16:9": "1536x864",
    }.get((ratio or "").strip(), "1024x1024")

问题:

平台套图前端默认 ratio = 4:5,但后端没有 4:5,所以 fallback 成 1024x1024。
3:4 和 9:16 都映射成 1024x1536,实际是 2:3,不是 3:4,也不是 9:16。
如果使用 YunQi gpt-image-2,网关只支持 1024x1024 / 1024x1536 / 1536x1024 这类固定 size,无法直接生成精确 4:5。
混合模型时原始输出尺寸会不一致:实测同一批 target_ratio = 1:1Seedream 返回 1664x2496image2 返回 1024x1024。

必须改:

1. 后端 request_payload 必须保存用户选择的 target_ratio。
2. 后端必须根据 platform_id + target_ratio 算出同批次唯一 target_export_size,例如 1:1 = 1200x12003:4 = 900x12004:5 = 960x1200。
3. 如果模型支持目标比例,就直接用最接近且不低于 target_export_size 的 size。
4. 如果模型只支持固定 size,就先生成最接近且覆盖目标画幅的尺寸,再做主体保护裁切或补边。
5. 所有模型返回的原图都必须进入同一个 normalize_output_image() 后处理,最终返回给用户的同一批图片必须是完全相同的 width x height,而不只是比例相同。
6. prompt 里可以写“1:1 方图构图 / 4:5 构图”,但不能依赖 prompt 保证最终像素比例或最终像素尺寸。

同批次导出契约:

batch_target_ratio = 用户选择或 platform_default_ratio
batch_target_export_size = 后端根据 platform_id + target_ratio 决定

每张图生成后必须执行:
1. 读取 raw_width / raw_height。
2. 按 batch_target_ratio 做主体保护裁切或补边。
3. resize 到 batch_target_export_size。
4. 写入 normalized_width / normalized_height / crop_or_pad_method 到 debug metadata。
5. 返回给前端和素材库的只能是 normalized image,不返回 raw image。

normalize_output_image() 推荐策略:

优先主体保护裁切:适合商品主体完整、背景足够的图。
主体会被裁掉时改用补边:使用同批次背景色 / 模糊延展 / 纯净浅灰补边,不改变商品本体。
禁止直接拉伸变形。
禁止同一批次有的图 1664x2496、有的图 1024x1024 直接进入素材库。

建议平台默认比例:

淘宝 / 天猫 / 京东 / 拼多多 / 快手 / 视频号 / 1688:默认 1:1,适合商品上架主图。
亚马逊 MAIN:默认 1:1,纯白合规主图。
抖音电商:商品上架主图默认 1:1;鞋包服饰类可额外支持 3:4,但不是默认全平台 4:5。
小红书:商城商品主图默认 1:1;如果用户明确选择“笔记封面 / 种草封面”,再用 3:4。
不要把内容流封面比例直接当商品上架主图比例。

验收标准:

用户选 1:1,最终图片像素比例必须是 1:1。
用户选 4:5,最终图片像素比例必须是 4:5,不能返回 1:1。
用户选 3:4,最终图片像素比例必须是 3:4,不能返回 2:3。
用户选 9:16,最终图片像素比例必须是 9:16,不能返回 2:3。
同一批平台套图的最终图片必须是完全相同的像素尺寸,例如全部 1200x1200,不能混用 1664x2496 和 1024x1024。

7.2 各平台头图尺寸调研

这里的“头图尺寸”按用户可直接上架的商品主图 / 商品轮播图理解,不按短视频封面、笔记封面或店铺装修 banner 理解。

结论:

大多数电商商品主图仍然以 1:1 方图为默认安全规格。
服饰、鞋包、内衣等展示类目常见 3:4 长图,但通常是类目/素材位扩展,不应替代所有平台默认比例。
小红书、抖音等内容平台的“内容封面”可以是 3:4、4:5 或 9:16,但“商品上架主图”仍要优先按商品图规则处理。

7.2.1 平台尺寸表

platform_id 平台 商品上架主图默认比例 常见/可选比例 建议最终导出尺寸 备注
taobao 淘宝 1:1 服饰/部分类目可用 3:4 1:11200x1200 或至少 800x8003:4750x1000 或更高等比 不要默认 4:5。平台头图首图仍优先方图;服饰/内衣可按用户或类目切到 3:4。
tmall 天猫 1:1 服饰/部分类目可用 3:4 1:11200x1200 或至少 800x8003:4750x1000 或更高等比 与淘宝类似,但视觉更品牌化。
jd 京东 1:1 可支持 3:4 长图 方图最终限制在平台可接受区间内,建议 1200x1200;长图可用 750x1000 京东公开公告提到主图方图和长图均有尺寸范围,不要把京东做成内容流竖封。
pdd 拼多多 1:1 活动素材位可能有横版特殊图 商品轮播图建议 800x8001000x1000,至少不低于 480x480 商品主轮播图保守按方图;活动横图不是平台套图默认输出。
douyin 抖音电商 1:1 鞋包服饰类可用 3:4;内容流封面另算 方图至少 600x600,白底/场景建议 800x800;服饰 3:4 可用 750x1000 商品上架主图不是短视频封面。只有用户明确要信息流封面时,才走 3:4/9:16。
xhs 小红书 商城商品主图优先 1:1 店铺商品也常见 3:4;笔记封面推荐 3:4 商城商品主图 800x800750x1000;笔记封面可用 1080x1440 / 1242x1660 如果目标是“商品上架”,默认 1:1;如果目标是“种草笔记封面”,才默认 3:4。
kuaishou 快手 1:1 可按类目支持 3:4,但不作为默认 建议 800x800 或更高方图 快手规则强调商品主图为 1:1,至少 3 张清晰主图。
wechat 视频号 / 微信小店 1:1 社交封面可另配竖版,但商品主图保守方图 建议 800x800 方图 公开资料未给稳定统一像素规格,具体以微信小店后台提示为准;系统默认不要 4:5。
amazon 亚马逊 MAIN 图建议 1:1 方图输出 辅图可有生活方式/尺寸说明,但仍建议统一商品图比例 MAIN 建议 1600x1600,至少最长边 1000px;平台接受最长边 500-10000px MAIN 图必须纯白背景、无文案、无道具,商品填充约 85%。
1688 1688 1:1 或近似方图 B2B 信息图仍保持方图或近方图 建议 750x750 / 800x800 / 1000x1000 1688/阿里系 B2B 主图倾向正方形或近正方形,不能默认竖封。

7.2.2 平台比例选择规则

如果用户未手动选择比例:
  使用 platform_default_ratio。

如果用户手动选择比例:
  仍应尊重用户选择,但最终图片必须真实裁切/补边到该比例。

如果用户选择的平台默认不适合该比例:
  前端可以给轻提示,例如“淘宝/京东/拼多多商品主图通常建议 1:1,当前选择 4:5 可能不适合直接上架”。

如果用户目标是“内容封面”而非“商品上架主图”:
  抖音 / 小红书 / 快手 / 视频号可使用 3:4、4:5 或 9:16,但 prompt 中必须标记 cover_usage = content_feed_cover。

如果目标是“商品上架主图”:
  不要默认使用 4:5。

7.2.3 建议配置

const PLATFORM_RATIO_PRESETS = {
  taobao: {
    listingDefault: "1:1",
    apparelOptional: "3:4",
    finalSizes: { "1:1": "1200x1200", "3:4": "750x1000" }
  },
  tmall: {
    listingDefault: "1:1",
    apparelOptional: "3:4",
    finalSizes: { "1:1": "1200x1200", "3:4": "750x1000" }
  },
  jd: {
    listingDefault: "1:1",
    optional: "3:4",
    finalSizes: { "1:1": "1200x1200", "3:4": "750x1000" }
  },
  pdd: {
    listingDefault: "1:1",
    finalSizes: { "1:1": "1000x1000" }
  },
  douyin: {
    listingDefault: "1:1",
    apparelOptional: "3:4",
    contentCoverOptional: "9:16",
    finalSizes: { "1:1": "1000x1000", "3:4": "750x1000", "9:16": "1080x1920" }
  },
  xhs: {
    listingDefault: "1:1",
    shopOptional: "3:4",
    noteCoverDefault: "3:4",
    finalSizes: { "1:1": "1080x1080", "3:4": "1080x1440" }
  },
  kuaishou: {
    listingDefault: "1:1",
    finalSizes: { "1:1": "1000x1000" }
  },
  wechat: {
    listingDefault: "1:1",
    finalSizes: { "1:1": "1000x1000" }
  },
  amazon: {
    listingDefault: "1:1",
    finalSizes: { "1:1": "1600x1600" }
  },
  "1688": {
    listingDefault: "1:1",
    finalSizes: { "1:1": "1000x1000" }
  }
}

7.2.4 对当前产品的直接修正

平台套图页面不要再全局默认 4:5。
默认比例应改为“自动:按平台推荐”。
如果开发暂时不做自动比例,保守默认应改成 1:1,而不是 4:5。
比例选择器保留 1:1 / 3:4 / 4:5 / 9:16 / 16:9,但 4:5 不作为任何商品上架主图默认值。

7.2.5 尺寸来源与可信度

官方公开规范优先,其次使用平台商家后台公告、平台学习中心、主流设计工具/服务商整理。
淘宝、天猫、拼多多、微信小店、小红书店铺等平台部分尺寸规则会按类目和后台版本变化,公开网页不一定完整;最终实现应保留后台配置能力。

参考链接:


8. 后端主模板建议

参考图1~{{product_ref_count}} 是「{{product_display_name_for_prompt}}」的真实商品参考图。
这些参考图用于锁定商品外观、颜色、材质、结构、Logo、品牌文字、比例和关键细节。
不要根据商品名称重新设计商品,不要生成相似款,不要改变商品品类。

只生成一张适合「{{platform_name}}」的商品头图/主图/封面图候选。
不要生成详情页、详情长图、多屏排版、店铺首页、平台 UI、直播间界面、二维码、水印或广告后台素材。

头图信息密度:
这是一张商品头图,不是商品详情页。画面第一优先级是商品主体/上身效果/使用场景。
商品或模特主体应占画面 60%-80%。除非本张 copy_policy 要求轻文案,否则不要出现文字。
如需文案,只允许 1 个短标题,最多再加 1-2 个极短标签;不要参数表、规格表、长句卖点、密集图标、复杂箭头、2x3/3x3 宫格或详情页式模块。

{{platform_prompt_block}}

本张是同一组平台头图中的第 {{image_index}} 张,共 {{count}} 张。
本张版式角色:{{slot_name}}
本张版式要求:{{slot_prompt_block}}
本张展示方式:{{display_mode}}
本张文案策略:{{copy_policy}}
本张模型路由:{{model_route}} / {{resolved_model}}(后端自动决定,非用户输入)
本张目标画幅:{{target_ratio}} 构图;最终像素尺寸由系统后处理统一为 {{target_export_size}},不要在画面内生成边框或留白模板。

同组视觉系统:
{{visual_system_guard}}

背景要求:
{{background_contrast_guard}}
参考图里的床品、桌面、墙面、绿植、毛巾、窗帘、道具和原始拍摄光线都不是锁定对象。
背景必须服从本张平台和 slot,不要复刻参考图背景。

商品数据:
品牌:{{brand}}
品类:{{category}}
商品卖点:{{selling_points}}
允许出现的文案:{{allowed_copy_text}}

文案限制:
若 copy_policy = none,画面不要出现任何文字。
若 copy_policy = selling_point_copy,只使用 allowed_copy_text 里的短文案,并且最多出现 1 个短标题 + 2 个短标签。
不要生成任何商品数据中不存在的品牌名、英文 Logo、角落签名、系列名、假水印或模型名;品牌为空或不确定时,画面不得出现品牌文字。
若画面必须有文字,只允许 1 个短标题或最多 2 个短标签;禁止把文案做成信息图、参数表、图标阵列或详情页模块。
不要生成商品数据没有的价格、折扣、销量、排名、认证、百分比、杯型范围、尺码或平台官方标识。

用户补充提示词:
{{base_prompt}}
用户提示词只影响氛围、构图、场景、光线和表达偏好;不能覆盖商品一致性、平台规则、slot 规则和合规限制。

画面质量:
商品主体清晰,移动端缩略图下仍能识别,商业级质感,真实可信,高分辨率。
同组图片必须像同一个品牌视觉系统,但每张在构图、背景、镜头距离、主体位置和信息重点上明显不同。

9. 通用负面提示词

不要生成详情页、详情长图、多屏排版、店铺页面、平台 UI、直播间界面、二维码、联系方式、水印、平台 Logo、官方认证标识、虚假角标。

不要根据商品名称重新生成商品,不要凭空设计新商品,不要改变参考商品图中的包装、Logo、颜色、材质、文字、图案、比例和关键细节,不要把商品生成成其他品类,不要擅自增加套装、配件或赠品。

不要生成商品数据中不存在的品牌名、英文 Logo、系列名、角落签名、模型名、AI 工具名、伪水印或装饰性商标。

不要生成商品数据中不存在的价格、优惠券、满减、折扣、限时活动、销量、排名、认证、功效承诺、医疗效果、绝对化用语或夸大宣传。

不要出现错别字、乱码、小字堆叠、不可读文字、大段文案、过度牛皮癣式排版。不要让文字遮挡商品主体。

不要生成 2x3 / 3x3 信息宫格、密集图标卖点、参数表、横向长条详情页、结构箭头堆叠或把多张详情页压缩进一张图。

不要让商品和背景同色相融。不要用与商品主色过于接近的大面积背景,不要让浅色商品贴在奶白/浅米/浅粉底上消失,不要让深色商品贴在深灰/黑色背景里丢失边缘。

若 display_mode = on_model 且商品为内衣、泳衣或贴身衣物,不要出现 T 恤、衬衫、吊带背心、运动上衣、连衣裙、制服、职业装、厚外套或任何遮挡内衣主体的第二件衣服。

不要让同组图片看起来像同一张图的重复版本。不要重复同一背景、同一构图、同一镜头距离、同一商品位置和同一信息重点。

10. 开发落地顺序

P0

  1. 前端默认 prompt 删除 详情排版
  2. API payload 新增 platform_id,后端 request_payload 保存 platform_id
  3. 后端保存 target_ratiotarget_export_size,修正 _ratio_to_image_size(),所有模型原图必须经过 normalize_output_image() 裁切/补边/resize 到同一批次统一像素尺寸。
  4. 后端 cover 参考图改为 _product_reference_urls(product, limit=3)
  5. build_platform_cover_prompt_refs() 接收 platform_id/index/count/model_route/selected_model/product_ref_count/target_ratio,其中 selected_model 仅用于内部调试覆盖。
  6. 后端维护低信息密度版 PLATFORM_COVER_BLOCKSslot_prompt_block
  7. 增加模型能力检查,保存 supports_image_edit / reference_lock_level / product_ref_count,避免把 Seedream 当成强参考编辑模型。
  8. 新增 model_route = auto:按 slot_name / category / copy_policy / platform_id 自动选择 Seedream、image2 或 image2 + overlay_text;普通客户不显示模型选择。
  9. 内衣类新增 Seedream / image2 模型分支,但默认 4 张不使用复杂结构说明图和详情宫格。
  10. visual_system_guard,混合模型同批次必须统一商品主色、背景色族、背景明度、光线和后处理。
  11. background_contrast_guard,避免商品融背景。
  12. debug metadata 保存 raw_width/raw_height/normalized_width/normalized_height/crop_or_pad_method,方便排查尺寸问题。

P1

  1. 增加 copy_plan 生成,基于商品库卖点丰富文案。
  2. 商品上传后生成/缓存 product_cutout_ref
  3. 将 prompt、platform_id、slot_name、copy_policy、background_contrast_guard 写入 debug metadata。
  4. admin 提示词从单一 platform_cover 拆为 platform_cover_base + platform_cover_{platform_id},支持设计师按平台微调。
  5. 增加高级调试开关,允许内部人员覆盖 selected_model,但必须记录 override_by_user = true 和覆盖原因。

11. 验收标准

必须通过:

  1. 平台套图不再出现详情页、详情长图、多屏排版。
  2. 默认 4 张都像头图:主体大、信息少、没有参数表/长卖点/复杂箭头/密集宫格。
  3. 用户选择的比例必须被最终图片像素遵守,4:5 不能返回 1:1,3:4/9:16 不能返回 2:3。
  4. 同一批平台套图最终返回的图片必须是完全相同的像素尺寸,不能混用 Seedream 原始尺寸和 image2 原始尺寸。
  5. 同一平台 4 张图不是同一张图的轻微变体。
  6. 淘宝、抖音、小红书、京东的背景、镜头和排版明显不同。
  7. 内衣 Seedream 上身图不出现其他衣服遮挡内衣。
  8. image2 内衣 4 张至少覆盖挂拍、生活平铺、轻卖点封面、质感特写等不同视觉角色。
  9. 商品颜色不能和背景融在一起。
  10. 商品形态、颜色、结构、Logo、材质不能被模型重新设计。
  11. 文案可以基于卖点丰富,但不能编造价格、折扣、百分比、杯型范围、销量、认证。
  12. copy_policy = none 的图片不得出现任何文字、假品牌、假 Logo、模型名、工具名、伪水印或角落签名。
  13. image2 生成结果不得漂成信息图/详情页压缩图;Seedream 上身图不得漂成性感写真或裁切掉内衣关键结构。
  14. 普通客户前台不出现 Seedream / image2 模型选择;默认 4 张内衣套图应按路由生成:上身图 Seedream,挂拍/平铺/细节 image2,准确文案走 overlay_text。
  15. 混合模型同批次必须看起来像一套:商品颜色一致、背景色族一致、背景明度差异不过大、光线方向和后处理气质一致。