# AI 智能套图方案 v2 > 基于 v1 实践反馈的完整升级方案 --- ## 1. 核心问题 v1 方案对所有裁片都采用「逐片 crop → refine → place」的流程,存在以下问题: | 问题 | 影响 | |------|------| | 全身花型衣服每片单独生成,花型不连贯 | 效果差 | | 每片调用一次 AI,5 片衣服 = 5+ 次 API | 慢、贵 | | 左右袖花型不一致(AI 每次生成不同) | 效果差 | | AI 容易陷入 identify → preview 循环 | 流程卡住 | | 渐变花型无法正确还原 | 效果差 | --- ## 2. 服装花型分类 ### 2.1 按花型覆盖方式分 | 模式 | 英文标识 | 说明 | 示例 | |------|---------|------|------| | **全身花型** | `all_over` | 所有裁片来自同一块面料 | 碎花连衣裙、格子衬衫、渐变花T | | **局部印花** | `placement` | 各部位独立处理 | 卡通卫衣(前片印花+袖子纯色) | | **纯色拼接** | `color_block` | 全部纯色,无花型 | 撞色 POLO 衫 | ### 2.2 按花型特征分(全身花型的子分类) | 特征 | 说明 | 生图策略 | |------|------|---------| | **均匀铺满** | 碎花、波点、小格子 | 生成一个重复单元 → PS 图案填充 | | **大面积图案** | 大花、大格纹 | 生成一张大尺寸面料图 → 覆盖裁片 | | **渐变过渡** | 上深下浅、色彩渐变 | 生成一张带渐变的面料图 | | **方向性** | 条纹、斜纹 | 需要指定花型方向 | --- ## 3. 升级后的套图流程 ### 3.1 总流程 ``` 用户上传成衣图 + 点击"帮我套图" │ ▼ ┌─────────────────┐ │ 阶段 0: 智能分析 │ ← 新增 │ 判断花型模式 │ │ all_over / placement / color_block └────────┬────────┘ │ ┌─────┼──────┐ ▼ ▼ ▼ all_over placement color_block │ │ │ ▼ ▼ ▼ 阶段 1A 阶段 1B 直接填色 生成面料图 逐片生成 (不需要 AI 生图) │ │ ▼ ▼ 用户确认预览 │ ▼ 阶段 2: 正式套图 ``` ### 3.2 all_over 模式(全身花型) ``` 1. identify_pieces → 返回 pattern_mode: "all_over" → 返回花型描述(渐变方向、花型元素、色彩等) 2. 生成面料图(1 次 AI 调用) → 提示词包含:面料类型、花型方向、元素、色彩、密度 → 输出一张高清矩形面料图 3. 预览:将面料图覆盖到所有裁片上 → 用户确认 4. 正式套图: → 同一张面料图 place 到每个裁片 → 每片只调整位置/缩放 + 剪切蒙版 → 左右袖:同一张图,右袖水平翻转 → 不需要 refine(已经是干净的面料图) ``` ### 3.3 placement 模式(局部印花) ``` 沿用 v1 的逻辑,但优化: 1. identify_pieces → 返回 pattern_mode: "placement" → 每片的 type: solid / fill_pattern / theme_pattern / mixed_pattern 2. 生成预览(1 次 AI 调用) 3. 用户确认后,逐片处理: → solid: PS 填色 → theme_pattern: 先放主题(白底+正片叠底) 再填底色 → fill_pattern: crop → refine → place → mixed_pattern: 两层(花型底 + 主题白底) 优化点: → 左右对称片只处理一片,另一片复制+翻转 → 相同类型的片复用同一次 AI 结果 ``` ### 3.4 color_block 模式(纯色拼接) ``` 最简单: 1. identify_pieces → 所有片都是 solid + color 2. 不需要生成预览 3. 直接 PS 填色 ``` --- ## 4. 提示词改进 ### 4.1 identify_pieces 提示词(新增 pattern_mode) ``` 任务1 不变(识别裁片部位) 任务2 改进: 分析成衣的花型覆盖模式 pattern_mode: - "all_over":所有裁片来自同一块面料(碎花/格子/渐变等整体花型) → 需要额外描述: - fabric_type: 数码印花/提花/梭织/针织 - pattern_direction: 均匀/上下渐变/左右渐变/斜向 - pattern_elements: 花朵/几何/条纹/格子/... - color_transition: 从XX色渐变到XX色 / 无渐变 - density: 密集/稀疏/上密下疏/... - "placement":各裁片独立(有的印花有的纯色) → 每片单独分析 type - "color_block":全部纯色拼接 → 每片给出 color 输出 JSON 新增 pattern_mode 和 fabric_info 字段 ``` ### 4.2 全身花型的生图提示词 ``` 请根据这件成衣照片,生成一张高清面料花型平铺图。 要求: 1. 输出一张大的矩形花型图(不是裁片形状,而是一块平铺的面料) 2. 面料类型:{fabric_type} 3. 花型元素:{pattern_elements} 4. 花型方向:{pattern_direction} 5. 色彩过渡:{color_transition} 6. 花型密度:{density} 7. 去掉所有服装褶皱/阴影效果,呈现平铺面料的样子 8. 图案要清晰、颜色准确、可以用于裁片套图 9. 宽高比: {aspect_ratio} ``` ### 4.3 局部印花的生图提示词(分 type 优化) | type | 提示词重点 | |------|-----------| | fill_pattern | 花型铺满矩形,保持连续无接缝 | | theme_pattern | 主题图案居中,纯白底(#FFF) | | mixed_fill | 只保留底纹,去掉主题图案 | | mixed_theme | 只保留主题图案,纯白底 | --- ## 5. 不可见部位的智能推理 ### 5.1 问题 成衣照片通常只拍正面,**后片、内衬、侧面**等部位看不到。AI 不能瞎猜,需要根据前面的信息来推理。 ### 5.2 推理规则 | 前片情况 | 后片推理 | 理由 | |---------|---------|------| | **全身花型**(碎花/格子/条纹) | 后片 = **同花型** | 同一块面料裁的,花型一样 | | **前片有大面积主题印花**(卡通/Logo) | 后片 = **纯色**(用底色) | 99% 的衣服背面不印主图 | | **前片纯色** | 后片 = **同色纯色** | 一样的颜色 | | **渐变花型** | 后片 = **同花型或纯色** | 看具体款式,需要让用户确认 | | **前片拼接**(上下不同花型) | 后片 = **取上半部分花型或底色** | 常见做法 | ### 5.3 identify_pieces 输出新增字段 ```json { "analysis": [ { "layer": "组 4", "piece": "后片", "type": "all_over", "visible": false, "inferred_from": "组 3", "inference_reason": "全身花型面料,后片花型与前片相同", "confidence": "high" }, { "layer": "组 4", "piece": "后片", "type": "solid", "visible": false, "color": "#F5E6D0", "inferred_from": "组 3", "inference_reason": "前片为局部卡通印花,后片通常为底色纯色", "confidence": "medium" } ] } ``` 新增字段: - `visible`: 该部位在成衣照片中是否可见(false = AI 推理的) - `inferred_from`: 推理依据(哪个裁片) - `inference_reason`: 推理理由(中文,展示给用户) - `confidence`: 推理置信度(high/medium/low) ### 5.4 用户确认环节 当存在 `visible: false` 的裁片时,AI 应该**明确告诉用户**: ``` ✅ 可见部位分析完成: - 组 1 左袖:黑底白花(主题图案) - 组 2 右袖:同左袖(镜像) - 组 3 前片:上半黑底大花 + 下半灰白格纹 - 组 5 领口:纯黑色 ⚠️ 以下部位在照片中不可见,我根据经验推测: - 组 4 后片:推测与前片相同花型(全身印花面料) → 如果后片其实是纯色,请告诉我 请确认后我开始套图。 ``` ### 5.5 提示词中的推理指引 ``` 如果某个裁片在成衣照片中看不到(如后片、内衬): 1. 设置 visible: false 2. 根据以下规则推理: - 全身花型(all_over):不可见部位使用相同花型 - 局部印花(placement):不可见部位通常为底色纯色(solid) - 纯色拼接(color_block):不可见部位使用相同或相近颜色 3. 给出推理理由和置信度 4. 置信度为 low 时,必须让用户确认 ``` --- ## 6. 镜像与复用优化 ### 5.1 左右对称片 ``` 识别到左袖+右袖时: → 只生成左袖的花型 → 右袖 = 左袖的水平翻转(JSX flip) → 省一次 AI 调用 ``` ### 5.2 前后片 ``` 如果前后片花型相同(all_over 模式下通常如此): → 同一张面料图 place 两次(不同位置) → 不需要分别生成 ``` ### 5.3 相同纯色片 ``` v1 已有颜色归一化(RGB 距离 < 40 视为相同) → 保持 ``` --- ## 6. System Prompt 优化 ### 6.1 防止 AI 循环调用 ``` ## 严格禁止 - ❌ 预览生成后不要再次调用 identify_pieces - ❌ 不要在同一次对话中多次生成预览(除非用户明确要求重新生成) - ❌ 不要自作主张修改分析结果后重新执行(应该告诉用户发现的问题,让用户决定) ## 流程纪律 - 每个工具最多调用 1 次(除非上次失败) - identify_pieces → generate_preview → 等用户确认 → extract_and_apply_all_pieces - 这 4 步是固定顺序,不要跳步、不要回头 ``` ### 6.2 自我纠错的正确方式 ``` 如果在生成预览后发现分析可能有误: → ✅ 告诉用户:"我注意到袖口颜色可能判断有误,您要我重新分析吗?" → ❌ 不要自己偷偷重新调用 identify_pieces ``` --- ## 7. identify_pieces 输出格式(v2) ```json { "pattern_mode": "all_over", "fabric_info": { "fabric_type": "数码印花", "pattern_direction": "上下渐变", "pattern_elements": "白色百合花朵", "color_transition": "从黑色渐变到灰白格纹", "density": "上部花朵密集,下部稀疏" }, "mapping": { "组 1": "左袖", "组 2": "右袖", "组 3": "领口", "组 4": "前片", "组 5": "后片" }, "analysis": [ {"layer": "组 1", "piece": "左袖", "type": "all_over", "description": "黑底白花渐变"}, {"layer": "组 2", "piece": "右袖", "type": "all_over", "mirror_of": "组 1"}, {"layer": "组 3", "piece": "领口", "type": "solid", "color": "#000000"}, {"layer": "组 4", "piece": "前片", "type": "all_over", "description": "上半黑底花+下半灰白格纹"}, {"layer": "组 5", "piece": "后片", "type": "all_over", "description": "同前片"} ], "symmetric_pairs": [["组 1", "组 2"]], "base_color": "#1A1A1A" } ``` 新增字段: - `pattern_mode`: all_over / placement / color_block - `fabric_info`: 面料花型详细描述(仅 all_over 模式) - `mirror_of`: 标记镜像片(省一次 AI 调用) - `symmetric_pairs`: 对称片配对 --- ## 8. 前端流程变化 ### 8.1 all_over 模式 ``` extract_and_apply_all_pieces 新逻辑: 1. 调用 AI 生成一张面料图(用 fabric_info 构建提示词) 2. 下载面料图 → 保存临时文件 3. 遍历每个裁片: a. 纯色片 → PS 填色 b. all_over 片 → place 同一张面料图 + 缩放 + 剪切蒙版 c. mirror_of 片 → 复制已套好的图层 + 水平翻转 4. 清除标签 ``` ### 8.2 placement 模式 ``` 保持 v1 逻辑 + 镜像优化: 1. 遍历裁片,按 type 处理 2. 遇到 mirror_of 片时,跳过 AI,复制+翻转 3. 其余逻辑不变 ``` --- ## 9. 实现优先级 | 优先级 | 改动 | 预计工作量 | |--------|------|-----------| | **P0** | System Prompt 防循环 | 小(改提示词) | | **P0** | identify 返回 pattern_mode | 小(改提示词+解析) | | **P1** | all_over 模式生成面料图 | 中(新的生图逻辑) | | **P1** | all_over 模式一图套多片 | 中(改 extract 逻辑) | | **P2** | 镜像片优化(左右袖复用) | 小(JSX 复制+翻转) | | **P2** | placement 模式提示词细化 | 小 | | **P3** | 花型重复单元 → PS 图案填充 | 大(需要新的 JSX) | | **P3** | 前后片花型对齐 | 大 | --- ## 10. 对比总结 | | v1(现在) | v2(升级后) | |---|---|---| | 花型模式识别 | 无,统一处理 | 自动判断 all_over/placement/color_block | | 全身花型 | 逐片生成(效果差) | 一张面料图覆盖所有片 | | AI 调用次数 | 每片 1-2 次 | all_over: 仅 1 次 | | 左右对称 | 分别生成(可能不一致) | 一次生成+镜像翻转 | | 流程稳定性 | AI 可能循环调用 | 严格单向流程 | | 渐变花型 | 无法正确还原 | 保留面料完整渐变 |