一图多尺寸封面设计
把参考图视为“设计 DNA”,不要把它当作只能裁切的成品。先提取稳定的视觉规则,再为每个比例重新构图。
付费门禁
这是按次付费能力。执行任何生成、扩图、排版或成品导出之前,必须完整读取并遵守 references/skillpay-payment.md。不得仅因为用户表达购买意图、提供订单号或声称已付款就开始履约。
严格执行以下顺序:
- 用稳定的
X-Idempotency-Key请求授权接口;没有有效凭证时接收HTTP 402和Payment-Needed账单。 - 由腾讯 SkillPay/支付服务方完成支付并取得凭证;不要自行伪造、修改或记录明文凭证。
- 对完全相同的 URL、方法、请求体和幂等键携带
Payment-Proof重试。 - 仅在授权接口返回
200、PAYMENT_VALIDATED和fulfillment_token后执行下方设计流程。 - 成品全部成功落盘后,计算交付物 SHA-256,调用履约确认接口。只有返回
TRADE_FINISHED才向用户报告付费任务已完成。
使用 scripts/pay_skill_client.py 执行 402 与凭证重试;卖方部署使用 scripts/pay_skill_server.py。生产环境必须配置腾讯 SkillPay 提供的验付与履约端点,缺失时服务应失败关闭,禁止 mock 放行。
工作原则
- 保持文案逐字一致。不要翻译、润色、增删标点或擅自补副标题。
- 保持色彩、材质、光影、图形语言、字形气质和视觉情绪一致;允许为新比例重新布局。
- 不要用拉伸适配。优先扩图、重构背景或重新排布元素。
- 不要让图像生成模型直接绘制最终文字。先生成无字背景,再用 SVG、HTML/CSS、画布或可靠的排版工具覆写原文。
- 仅在用户拥有或获准使用时复制商标、人物肖像和受保护的品牌元素。不要传播来源图中的水印。
- 默认一次生成全部目标;只有缺少参考图、无法读取图片或用户要求的尺寸存在实质歧义时才提问。
1. 读取输入
确认以下信息:
- 参考图:必须能被视觉检查工具或多模态模型读取。
- 文案:用户明确给出时,以用户文本为唯一真值;否则从图片中识别并逐字核对。无法确定的字必须询问,不能猜。
- 目标:用户给出平台或尺寸时照做;未指定时默认生成
web-banner、wechat-primary、wechat-secondary、xiaohongshu-cover、douyin-cover。 - 输出格式:默认 PNG;需要可编辑稿时同时交付 SVG。
运行 python3 scripts/plan_variants.py --list-targets 查看内置预设。用户提供的像素尺寸始终覆盖预设。
2. 提取设计 DNA
查看参考图并记录一个简洁的 style.json。字段与判断规则见 references/style-and-layout.md。至少记录:
palette:3–5 个十六进制颜色,依次为主背景、辅助背景、主文字、强调色、可选描边色。font_mood:如粗黑、宋体感、几何无衬线、手写、科技感;不要声称识别出无法确认的具体字体。alignment:left、center 或 right。contrast:low、medium 或 high。motifs:线条、光晕、网格、纸张、几何块、颗粒等可复用元素。subject_anchor:主体所在区域及必须保留的识别特征。
同时区分“必须保留”和“可以重排”。文字、品牌色、核心主体和标志性图形通常必须保留;装饰元素的位置和数量通常可以重排。
3. 生成版式计划
保存 style.json 后运行:
python3 scripts/plan_variants.py \
--text "重大消息" \
--targets web-banner,wechat-primary,wechat-secondary,xiaohongshu-cover,douyin-cover \
--style style.json \
--output layout-plan.json
脚本输出每个画布的尺寸、安全区、版式策略、文字框和背景扩展方向。将计划作为起点,再结合参考图主体位置做视觉调整。不得把重要文字放到安全区之外。
自定义尺寸示例:
python3 scripts/plan_variants.py --text "重大消息" --custom "官网横幅:1600x500,活动竖版:1080x1440" --output layout-plan.json
4. 生成无字背景
优先使用当前环境可用的图片编辑或图片生成能力,以参考图为视觉参考,为每个目标比例分别生成背景。提示词必须明确:
- 保留设计 DNA 与核心主体;
- 移除所有可读文字、数字、水印和伪文字;
- 按计划给文字框留出干净、对比充分的负空间;
- 以目标像素或同等比例生成,不拉伸主体;
- 宽幅图扩展左右,竖幅图扩展上下并把主体移出平台 UI 遮挡区;
- 不添加参考图中不存在的新 logo、人物、产品或信息。
可直接采用 references/style-and-layout.md 中的背景提示词模板。若工具支持图像编辑,优先编辑参考图;只有比例变化过大或原图无法扩展时才重绘。
5. 精确排版
对每个无字背景生成 SVG 覆盖层:
python3 scripts/make_overlay_svg.py \
--plan layout-plan.json \
--target wechat-primary \
--output wechat-primary-overlay.svg
脚本默认生成透明背景的精确文字层。用浏览器、矢量工具、图像合成工具或可控画布将覆盖层叠到背景上并导出 PNG。若需要自包含 SVG,可增加 --background path/to/background.png,脚本会把背景嵌入 SVG。
排版后必须检查:
- SVG 中的可见文字连接后与原文完全一致;换行不算改变文案。
- 字重、描边、阴影和字距接近参考图;具体字体不可用时选择气质最接近且可商用的替代字体。
- 四字短标题通常保持单行;竖版只有在字号过小或用户要求时才拆行。
- 不把标题、logo 或主体放在
safe_rect之外。
6. 导出与质量检查
逐张检查,不要只检查一个尺寸:
- 像素尺寸与目标一致。
- 文案逐字一致、无乱码、无伪文字。
- 主体没有被裁断、拉伸或被平台 UI 预计区域遮挡。
- 缩略图下仍可读;文字与背景对比充分。
- 色彩、材质、图形语言和整体情绪与参考图构成同一套视觉。
- 所有输出之间有一致性,但不是机械地使用同一裁切。
- 文件名包含平台或尺寸,如
重大消息-wechat-primary-900x383.png。
发现文字错误时只重做文字层;发现主体或留白问题时只重做对应背景。不要因为单张失败而重做整套。
7. 确认履约
全部质量检查通过后生成 artifacts.json,每个交付物至少记录 name、sha256、size 和 media_type。调用:
python3 scripts/pay_skill_client.py confirm \
--url "$STYLE_COVER_PAY_URL/v1/cover-jobs/confirm" \
--authorization authorization.json \
--artifacts artifacts.json
确认请求必须沿用授权响应中的 out_trade_no、resource_id 和 fulfillment_token。网络错误时可用同一履约幂等键重试;不得换键、换交付物哈希或重复确认成另一笔履约。
交付格式
交付一个清晰的文件列表,注明平台、尺寸和格式。默认同时保留:
- 最终 PNG/JPG 成品;
- 可编辑 SVG(用户要求可编辑稿时);
layout-plan.json,便于后续新增尺寸;- 一张拼版预览图(环境支持时)。
另外保留机器可读的授权响应与履约确认响应,但不得在面向用户的文本或日志中输出 Payment-Proof、API Token、私钥或完整支付凭证。
不要把参考图、临时文件、缓存或未经许可的字体打包进技能本体。