Dev Spec v2 · ← 返回文档首页

04 生成与质检

1. 风格配置

id: pet.renaissance_noble
subject: pet
name: {en: "Renaissance Noble", zh: "文艺复兴贵族"}
gateway_task: pix.pet_portrait
prompt_template: |
  Transform the {species} in the reference photos into a Renaissance oil portrait of a noble,
  wearing {outfit}. Keep the exact fur colors, markings, eye color, ear shape and face
  proportions of this specific {species}. Plain dark background, museum lighting.
variables:
  outfit: ["a velvet cloak with a gold chain", "a lace collar and military jacket"]   # 每张随机取一个
judge_rubric: pet_identity_v1
allowed_skus: [digital_hd, canvas_8x10, canvas_12x16, canvas_16x20, poster_18x24, mug_11oz, blanket_50x60]
  • {species} 由上传检查时识别出的主体自动填入(dog / cat / …)
  • 一轮生成 4 张:每张使用不同的变量组合,保证多样性

2. 预览生成流程

1. 取会话里已通过检查的 1~3 张照片
2. 网关.image_edit(task, images, prompt_i) × 4(并发)
3. 网关.vision_judge 逐张打分(见第 3 节)
4. 通过的图 → 生成带水印的展示图;不通过的 → 补生成
5. 凑够 4 张通过的图(最多补 2 轮,即最多生成 12 张)
6. 仍不够 4 张:有 ≥ 2 张就先展示;0~1 张 → 会话进入 failed,提示换照片(不消耗重新生成次数)
  • 生成的原图分辨率 ~1024 级别,只存私有路径;客户只能看到水印图
  • 付款前不做放大

3. 视觉打分(取代 v1 的人脸模型质检)

一次调用对"客户原图 + 候选图"一起打分,要求返回 JSON:

{
  "same_subject": 0.86,        // 是不是同一只宠物 / 同一个人(0~1)
  "markings_match": 0.8,       // 花纹、毛色、眼睛颜色是否一致(宠物)
  "anatomy_ok": true,          // 有没有多余的腿、畸形的眼睛、融化的脸
  "style_match": 0.9,          // 是否符合风格要求
  "unsafe": false,
  "text_artifacts": false,     // 是否出现乱码文字
  "notes": "..."
}

通过条件(按风格可以调整):same_subject ≥ 0.75、markings_match ≥ 0.7(宠物)、anatomy_ok、!unsafe、!text_artifacts。

注意 说明
阈值校准 P0 期间对 200 张图做人工标注(这是开发阶段的一次性工作,不是运营中的人工),用来确定阈值:目标是通过的图里,人工也认可的 ≥ 90%
打分模型 通过网关调用;国内使用已备案的视觉大模型
成本 每张约几毛分到 1 分美元级,远低于生成成本
持续改进 客户最终挑中的图、重新生成的次数、售后原因都记录下来,每月复核一次阈值

4. 保真度测试(风格上线前必须通过)

  • 测试集:20 只宠物(纯色、双色、复杂花纹、长毛、猫狗各半),每只 3 张照片
  • 对每种风格 × 每个候选模型各跑一轮
  • 指标:视觉打分通过率、客户视角的"像"(开发阶段人工抽看 20%)
  • 通过标准:首轮 4 张中至少有 3 张通过的比例 ≥ 80%
  • 同一种风格的不同模型分别打分,最高的设为首选,其次为备选

5. 老照片修复

上传 → 检查(是否有人脸、分辨率、是否黑白)
  → 网关.image_edit(task="pix.restore"),一次两个版本:
      保守版:只去划痕、去噪、轻度修复人脸
      增强版:修复 + 上色(黑白照)+ 细节增强
  → 网关.vision_judge(rubric="restore_identity"):修复后的人是否还像原图里的人、有没有凭空多出的人或物
  → 不通过的版本自动重做 1 次;仍不通过则只展示通过的那个版本
  • 页面固定说明:"修复结果是 AI 推测,不是真实还原"
  • 如果使用自部署的开源修复模型,必须是许可证允许商用的(例如 GFPGAN、Real-ESRGAN;不用 CodeFormer)

6. 印刷文件

需要像素 = 印刷尺寸(英寸)× 300,再加上出血
  1. 取选中预览的原图
  2. 放大:网关.upscale(或自部署的 Real-ESRGAN),放大到 ≥ 需要像素
  3. 按 SKU 的比例智能裁切(保证主体在安全区内:用主体检测框确定裁切中心)
  4. 加出血;转换为 sRGB;写入 300 DPI 元数据
  5. 加隐式 AI 标识;电子版另加显式角标(位置和大小可配置);实物不加显式角标,在商品页和包装卡片上披露 AI 生成
  6. 上传到私有路径 print/,供代发平台下载(带时效的签名链接);设置 retain_until = 签收后 45 天(签收时间未知时先按下单后 75 天设置,收到签收事件后更正),售后重印直接复用

电子版是否在图上加显式角标,需要对照《人工智能生成合成内容标识办法》对"下载、导出"场景的要求。国内版必须加;海外版至少要写入隐式标识,并在页面上披露。

7. 成本控制

项 限制
每个会话最多生成 12 张(首轮)+ 每次重新生成最多 8 张
付费重新生成 免费次数用完后收 $0.99
匿名会话 每个设备每天最多 3 个会话(防刷)
每单 AI 成本 超过 $0.5 的订单在日报中单独列出