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,再加上出血
- 取选中预览的原图
- 放大:网关.upscale(或自部署的 Real-ESRGAN),放大到 ≥ 需要像素
- 按 SKU 的比例智能裁切(保证主体在安全区内:用主体检测框确定裁切中心)
- 加出血;转换为 sRGB;写入 300 DPI 元数据
- 加隐式 AI 标识;电子版另加显式角标(位置和大小可配置);实物不加显式角标,在商品页和包装卡片上披露 AI 生成
- 上传到私有路径
print/,供代发平台下载(带时效的签名链接);设置retain_until= 签收后 45 天(签收时间未知时先按下单后 75 天设置,收到签收事件后更正),售后重印直接复用
电子版是否在图上加显式角标,需要对照《人工智能生成合成内容标识办法》对"下载、导出"场景的要求。国内版必须加;海外版至少要写入隐式标识,并在页面上披露。
7. 成本控制
| 项 | 限制 |
|---|---|
| 每个会话最多生成 | 12 张(首轮)+ 每次重新生成最多 8 张 |
| 付费重新生成 | 免费次数用完后收 $0.99 |
| 匿名会话 | 每个设备每天最多 3 个会话(防刷) |
| 每单 AI 成本 | 超过 $0.5 的订单在日报中单独列出 |