fix(#2186): portrait_prompt智能回填+few-shot示例,服装发型还原增强 #2186

Merged
auto-approve-bot merged 2 commits from fix/portrait-prompt-smart-fallback into develop 2026-10-05 01:03:16 +08:00
Owner

问题

#2185 强化prompt后VLM仍整体省略hair/skin_tone/face_shape/outfit四属性(连"无法判断"都不输出),worker兜底走通用值(自然发型/日常服装),导致:

  • 服装还原失败:米色翻领衬衫→浅米色针织上衣
  • 发型靠Seedream猜测:上次低马尾→这次黑色长发(巧合)

双层增强

  1. 智能回填(worker _xml_to_product):

    • outfit:从product.name+features中匹配30+类服装关键词(衬衫/T恤/毛衣/针织/外套/西装/连衣裙/牛仔裤...),提取前后短语作为具体服装描述(覆盖"日常服装"通用值)
    • hair:从colors标签中识别小面积发色(coverage<0.3的黑/棕/金/栗等颜色),自动填充为"XX色头发"
    • 回填不覆盖VLM正确输出的值,只补全缺失/通用值
    • 回填后重新拼装_parts
  2. few-shot示例(prompt):

    • image_analysis system prompt新增有人物场景的完整10属性输出示例
    • 明确"必须写全10个属性,禁止省略"

预期

原米色翻领衬衫人像→outfit回填"米色翻领衬衫"、hair回填"黑色头发"→Seedream t2i还原服装款式→人物整体相似度稳超85%且服装准确

关联#2184/#2185

## 问题 #2185 强化prompt后VLM仍整体省略hair/skin_tone/face_shape/outfit四属性(连"无法判断"都不输出),worker兜底走通用值(自然发型/日常服装),导致: - 服装还原失败:米色翻领衬衫→浅米色针织上衣 - 发型靠Seedream猜测:上次低马尾→这次黑色长发(巧合) ## 双层增强 1. **智能回填(worker `_xml_to_product`)**: - outfit:从product.name+features中匹配30+类服装关键词(衬衫/T恤/毛衣/针织/外套/西装/连衣裙/牛仔裤...),提取前后短语作为具体服装描述(覆盖"日常服装"通用值) - hair:从colors标签中识别小面积发色(coverage<0.3的黑/棕/金/栗等颜色),自动填充为"XX色头发" - 回填不覆盖VLM正确输出的值,只补全缺失/通用值 - 回填后重新拼装_parts 2. **few-shot示例(prompt)**: - image_analysis system prompt新增有人物场景的完整10属性<people>输出示例 - 明确"必须写全10个属性,禁止省略" ## 预期 原米色翻领衬衫人像→outfit回填"米色翻领衬衫"、hair回填"黑色头发"→Seedream t2i还原服装款式→人物整体相似度稳超85%且服装准确 关联#2184/#2185
xiaoxia added 1 commit 2026-10-05 00:46:39 +08:00
fix(#2186): 智能回填portrait_prompt+few-shot示例,服装发型还原增强
CI/CD Pipeline / Check push changed paths (pull_request) Has been skipped
CI/CD Pipeline / Dedup Check - skip PR tests when covered by push pipeline (pull_request) Successful in 0s
CI/CD Pipeline / Check if frontend-only change (pull_request) Successful in 1s
CI/CD Pipeline / Build Staging API Image (pull_request) Has been skipped
CI/CD Pipeline / Build Staging Web Image (pull_request) Has been skipped
CI/CD Pipeline / Build Staging Worker Image (pull_request) Has been skipped
CI/CD Pipeline / Frontend Lint (pull_request) Has been skipped
CI/CD Pipeline / Frontend Unit Tests (pull_request) Has been skipped
CI/CD Pipeline / PR Build Web Image (pull_request) Has been skipped
CI/CD Pipeline / Retag skipped Staging API Image (pull_request) Has been skipped
CI/CD Pipeline / Retag skipped Staging Web Image (pull_request) Has been skipped
CI/CD Pipeline / Retag skipped Staging Worker Image (pull_request) Has been skipped
CI/CD Pipeline / Deploy Staging (Watchtower auto-deploy) (pull_request) Has been skipped
CI/CD Pipeline / Staging E2E Tests (pull_request) Has been skipped
CI/CD Pipeline / Staging API Integration Tests (pull_request) Has been skipped
CI/CD Pipeline / ACR Image Cleanup (pull_request) Has been skipped
CI/CD Pipeline / Integration Tests (pull_request) Successful in 2m44s
Preview Deploy / Deploy Preview Environment (pull_request) Successful in 2m55s
CI/CD Pipeline / PR Build API Image (pull_request) Successful in 2m52s
PR Automation / Auto Approve on CI Green (pull_request) Successful in 3m0s
CI/CD Pipeline / Validate - Python (mypy + alembic) (pull_request) Successful in 3m4s
CI/CD Pipeline / PR Build Worker Image (pull_request) Successful in 3m38s
CI/CD Pipeline / Validate - Security (pull_request) Successful in 6m2s
AI Code Review / AI Code Review (pull_request) Successful in 6m36s
CI/CD Pipeline / Validate - Style (pull_request) Has been cancelled
CI/CD Pipeline / Unit Tests (pull_request) Has been cancelled
CI/CD Pipeline / Build Production API Image (pull_request) Has been cancelled
CI/CD Pipeline / Build Production Web Image (pull_request) Has been cancelled
CI/CD Pipeline / Build Production Worker Image (pull_request) Has been cancelled
CI/CD Pipeline / Deploy Production (pull_request) Has been cancelled
CI/CD Pipeline / Production Browser E2E (pull_request) Has been cancelled
CI/CD Pipeline / Canary Release to Production (pull_request) Has been cancelled
CI/CD Pipeline / CI Gate (pull_request) Has been cancelled
PR Automation / Auto Merge on CI Green + Approved (pull_request) Has been cancelled
5482efa045
#2185后VLM仍省略hair/outfit四属性(只输出6个旧属性,连"无法判断"都不写),
worker兜底用通用值导致服装还原失败(翻领衬衫→浅米色针织上衣)。

双层增强:
1. 智能回填(worker):
   - outfit兜底不再固定"日常服装",从product.name+features中匹配服装关键词
     (衬衫/T恤/毛衣/针织/外套/西装/连衣裙/牛仔裤等30+类),提取前后短语作为具体服装描述
   - hair兜底不再固定"自然发型",从color标签中识别小面积发色(占比<0.3的黑/棕/金/栗等颜色)
     自动填充发色+"头发"
   - 回填后重新拼装_parts,保证portrait_prompt信息密度
   - 回填不覆盖VLM正确输出的值,只补全缺失/通用值

2. few-shot示例(prompt):
   - image_analysis system prompt新增有人物场景的<people>完整10属性输出示例
   - 明确"必须写全10个属性,禁止省略"

预期:原米色翻领衬衫人像→outfit回填为"米色翻领衬衫"、hair从颜色提取"黑色头发"
→Seedream t2i还原服装款式→整体人物相似度稳超85%且服装更准

🚀 预览环境已部署

项目 详情
PR号 #2186
预览链接 https://pr-2186.preview.xiaoxiajianji.com
API环境 staging

💡 预览环境使用 staging API 数据,请勿在预览环境中操作重要数据。

🔄 每次提交新代码后预览环境会自动更新。

🗑️ PR 关闭或合并后,预览环境会自动清理。

🚀 **预览环境已部署** | 项目 | 详情 | |------|------| | PR号 | #2186 | | 预览链接 | [https://pr-2186.preview.xiaoxiajianji.com](https://pr-2186.preview.xiaoxiajianji.com) | | API环境 | staging | > 💡 预览环境使用 staging API 数据,请勿在预览环境中操作重要数据。 > > 🔄 每次提交新代码后预览环境会自动更新。 > > 🗑️ PR 关闭或合并后,预览环境会自动清理。
auto-approve-bot added 1 commit 2026-10-05 00:57:07 +08:00
style: auto-format with black + isort + ruff + prettier [skip ci-format-check]
CI/CD Pipeline / Check push changed paths (pull_request) Has been skipped
CI/CD Pipeline / Dedup Check - skip PR tests when covered by push pipeline (pull_request) Successful in 1s
CI/CD Pipeline / Check if frontend-only change (pull_request) Successful in 2s
CI/CD Pipeline / Build Staging API Image (pull_request) Has been skipped
CI/CD Pipeline / Build Staging Web Image (pull_request) Has been skipped
CI/CD Pipeline / Frontend Lint (pull_request) Has been skipped
CI/CD Pipeline / Frontend Unit Tests (pull_request) Has been skipped
CI/CD Pipeline / PR Build Web Image (pull_request) Has been skipped
CI/CD Pipeline / PR Build API Image (pull_request) Successful in 45s
CI/CD Pipeline / Build Staging Worker Image (pull_request) Has been skipped
CI/CD Pipeline / Retag skipped Staging API Image (pull_request) Has been skipped
CI/CD Pipeline / Retag skipped Staging Web Image (pull_request) Has been skipped
CI/CD Pipeline / Retag skipped Staging Worker Image (pull_request) Has been skipped
CI/CD Pipeline / Deploy Staging (Watchtower auto-deploy) (pull_request) Has been skipped
CI/CD Pipeline / Staging API Integration Tests (pull_request) Has been skipped
CI/CD Pipeline / Staging E2E Tests (pull_request) Has been skipped
CI/CD Pipeline / ACR Image Cleanup (pull_request) Has been skipped
Preview Deploy / Deploy Preview Environment (pull_request) Successful in 1m15s
CI/CD Pipeline / Integration Tests (pull_request) Successful in 1m45s
CI/CD Pipeline / Validate - Python (mypy + alembic) (pull_request) Successful in 2m23s
CI/CD Pipeline / Unit Tests (pull_request) Successful in 2m31s
PR Automation / Auto Approve on CI Green (pull_request) Successful in 3m2s
CI/CD Pipeline / PR Build Worker Image (pull_request) Successful in 4m3s
CI/CD Pipeline / Validate - Style (pull_request) Successful in 5m22s
CI/CD Pipeline / Validate - Security (pull_request) Successful in 5m31s
CI/CD Pipeline / Build Production Worker Image (pull_request) Has been skipped
CI/CD Pipeline / Build Production API Image (pull_request) Has been skipped
CI/CD Pipeline / Build Production Web Image (pull_request) Has been skipped
CI/CD Pipeline / Deploy Production (pull_request) Has been skipped
CI/CD Pipeline / Canary Release to Production (pull_request) Has been skipped
CI/CD Pipeline / Production Browser E2E (pull_request) Has been skipped
CI/CD Pipeline / CI Gate (pull_request) Successful in 1s
PR Automation / Auto Merge on CI Green + Approved (pull_request) Successful in 3m6s
ACR Cleanup / ACR Image Cleanup (pull_request_target) Successful in 24s
AI Code Review / AI Code Review (pull_request) Successful in 6m49s
Preview Cleanup / Cleanup Preview Environment (pull_request) Successful in 5m50s
b21e8e1659
auto-approve-bot merged commit 2b4f11036f into develop 2026-10-05 01:03:16 +08:00
auto-approve-bot deleted branch fix/portrait-prompt-smart-fallback 2026-10-05 01:03:19 +08:00

🗑️ 预览环境已清理

PR #2186 已关闭或合并,对应的预览环境已被清理。

如有需要,可以重新打开 PR 来重新生成预览环境。

🗑️ **预览环境已清理** PR #2186 已关闭或合并,对应的预览环境已被清理。 > 如有需要,可以重新打开 PR 来重新生成预览环境。
Sign in to join this conversation.