| name | fashion-item-extractor |
| description | 从一张穿搭/服装图里提取、拆解单品。**只要用户提到提取单品、拆单品、拆解穿搭、把这身拆开、扒一下这套、这身有什么、逐件识别、单品清单、找同款先拆出来、复刻这套的每一件、把衣服一件件分出来——必须用本技能**,无论有没有附图、措辞怎么变。也覆盖:穿搭/look/outfit 拆解、服装单品提取、秀场/街拍/明星穿搭逐件还原、做成白底图/电商主图。触发词:提取单品、单品提取、拆单品、拆解、扒图、扒穿搭、拆穿搭、这套是什么、有哪些单品、逐件、一件件、找同款、复刻穿搭、白底单品图。识别出意图就触发,不要犹豫。触发后执行三步工作流:①逐件拆解+为每件写白底单品 prompt ②用脚本把原图每件矩形截图出来当视觉锚点 ③把截图+prompt 喂图生图模型(Seedream 4.0 / nano-banana)生成无模特纯白底商品主图。默认走完三步;用户明说"只拆解/只要 prompt/别出图"时停在对应步骤,没配 API key 时停在截图并提示。本技能是 fashion-model-shot 的逆向(那个:单品图→模特上身图;本技能:穿搭整图→逐件单品白底图)。 |
Fashion Item Extractor — 穿搭照逐件拆解并还原成单品白底图
你的任务:拿到一张有人穿搭的照片(秀场、街拍、明星图、lookbook 都行),把里面每一件可识别的单品逐一拆出来,并一路做到每件的成品电商白底图。
这件事的价值:用户看到一张好看的整体造型,想知道"这身到底由哪些东西组成"、想逐件复刻或找同款。你要做的是当一个有经验的买手/造型师的眼睛,把一张融合在一起的 look 拆解成清晰的单品,再真正还原成可用的单品白底图。
默认工作流:三步走到底
拿到穿搭图,默认依次走完这三步,不用等用户逐步开口:
- 拆解 + 写单品图 prompt —— 逐件识别、看准维度、为每件写一段白底单品 prompt。
- 截出每件的实拍图 —— 用
scripts/crop_items.py 把原图里每件矩形裁剪出来,当视觉锚点。
- 生成成品白底图 —— 用
scripts/generate_whitebg.py 把「截图 + prompt」喂图生图模型,真正出成品图。
两个例外让步骤提前停下:① 用户明说"只拆解 / 只要文字 prompt / 别出图"——停在他要的那步;② 出图所需的 API key/依赖没配——停在步骤二(截图),提示用户配好就能接着出(见步骤三)。
这是 fashion-model-shot 技能的逆操作。两者配合:整图 →(本技能)→ 单品白底图;单品图 →(fashion-model-shot)→ 模特上身图。
步骤一:拆解每件单品 + 写单品图 prompt
拆解原则:全部拆到底
一张造型图里能识别的单品都要拆,不要只拆主要服装。完整地过一遍这个清单,逐项检查图里有没有:
- 主体服装:上衣 / T恤 / 衬衫 / 卫衣 / 针织衫 / 下装(裤/裙) / 连衣裙 / 连体衣
- 外层:外套 / 大衣 / 西装 / 夹克 / 风衣 / 马甲
- 鞋:款式、颜色、鞋型
- 包:手提 / 单肩 / 斜挎 / 双肩 / 手拿,材质、颜色、五金
- 头部:帽子 / 头巾 / 发饰 / 眼镜墨镜
- 颈部:项链 / 围巾 / 丝巾 / choker
- 手腕手部:手表 / 手镯 / 戒指 / 手套
- 耳部:耳环 / 耳饰
- 腰部:腰带 / 腰封
- 腿足:袜子 / 丝袜 / 腿套
判断尺度:能在图里明确看清、且是穿戴的单品就拆出来。看不清的不硬编(比如背面的包看不到正脸、被头发挡住的耳饰),但要诚实标注"图中部分遮挡/不可见",不要凭空编一个。如果某件单品只露出一角无法判断细节,可以拆出来但说明"仅可见局部"。
按"从上到下、从主到次"的顺序拆,读起来清楚:头 → 上身 → 外层 → 下身 → 鞋 → 包 → 配饰。
每件单品要看准的维度
对每一件,像写商品详情页一样把这些维度看准——这是后面单品图 prompt 能还原的地基(看错则全错):
- 品类与版型:具体到款(不是"上衣"而是"oversize 落肩圆领卫衣")。版型决定平铺/挂拍时的形态。每件做到「具体色修饰词 + 精确品类 + 一个关键结构/工艺细节」的密度,且每件独立成段——如"酒红色尖头乐福鞋,金属马衔扣""白色短袖T恤,锈红色插肩袖拼接",不要把多件并进一句。
- 合身度/垂坠状态:这件穿在身上是贴身、宽松、堆叠还是垂坠?记下来——平铺/挂拍还原成单品独立形态时,靠它判断布料该怎么摊开、怎么垂。
- 颜色:主色 + 点缀色,用具体修饰词("雾霾蓝"而非"蓝","燕麦色"而非"米")。颜色是还原最易跑偏处。
- 面料与质感:棉/丝/针织/牛仔/皮革/羊毛/雪纺/亮片……决定单品图的光泽和褶皱。
- 廓形与关键细节:领型、袖型、纽扣、拉链、印花、口袋、做旧、拼接、五金、走线。细节丢了就变成"另一件"。
- 图案/印花:有无、什么图案、位置、配色。
- 风格归属:街头/极简/复古/学院/机能/法式/Y2K——帮用户理解这件的调性。
被遮挡时,基于可见部分做合理推断并标注是推断(如"裤子下摆被外套遮住,从可见部分判断为直筒,款式存疑")。被遮挡单品的出图 prompt 默认补全成一件完整单品(用户找同款需要完整的图),但要在描述里老实标出哪部分是可见、哪部分是推断补全,不要把推断当事实。
为每件生成单品图 Prompt
护栏:本技能默认且只产出 N 段相互独立的白底单品 prompt(一件一段)。 不要把多件单品合成进"一张分解图 / 九宫格 / 带中心人物的拆解海报"——那是另一种插画类需求(且画风冲突),不在本技能范围。你刚把模特从画面里拆掉,不要又把人物加回来。用户真要那种合成图时,明确告诉他这不是本技能做的事。
每件单品配一段自然语言长描述 prompt,目标是还原出这件单品的干净商品图——默认两种呈现,按单品类型选更合适的:
- 白底产品图:单品平铺或挂拍在纯白/浅灰背景上,均匀柔和棚拍布光,无模特,clean product shot,电商主图风格。适合大多数服装、鞋、包。
- 平铺 flat-lay:单品平铺俯拍,整理服帖,自然褶皱,柔光。适合需要看版型全貌的上衣/裙装。
prompt 写作要点(与 fashion-model-shot 同源,针对"无人单品图"调整):
- 写成连贯自然语言段落,不是关键词堆叠(这些模型吃长描述,不吃 Midjourney 参数式,除非用户明确要 MJ 版)。
- 信息密度集中在单品本身:品类、颜色(具体修饰词)、面料质感、廓形、关键细节、印花,全写进去。
- 明确"无模特、白底、聚焦单品":直接写"单品独立平铺/挂拍呈现,自然服帖的真实褶皱,无人体、无模特,纯白无缝背景,均匀柔光"即可——不必写"从人体剥离/decoupled"这种话,文生图模型本就没有原图人体可带入,正面描述更干净。避免模型自作主张加人或复杂背景。
- 面料配光:丝绸侧光带高光、针织柔光显纹理、皮革硬光出高光、棉布均匀柔光。
- 画质收尾模板(电商单品图骨架,可直接套):
clean product shot on a pure white seamless background, soft diffused studio lighting with gentle even shadows, the item centered in frame, sharp all-over focus with every detail crisp, true-to-color, highly detailed fabric texture, professional e-commerce product photography. —— 单品商品图要全幅清晰、不要浅景深虚化(买家要看清细节),且绝不出现人手、微缩等元素。
- 语言按模型脾气:即梦/可图中文优先、Gemini 系英文更稳;默认给中文 prompt。
更细的面料词、布光对照、各模型差异,见 references/fashion-vocabulary.md,需要时查。
步骤二:从原图截出每件单品的实拍图
这是工作流的固定一步,默认就做,不用等用户开口。 文字 prompt 是"凭描述重画",模型看不到原图;要照着原图那件 1:1 还原、要找同款,都需要原图里那件的实拍截图当视觉锚点。这一步把原图按单品区域矩形裁剪出来,每件一张图,给下一步出白底图当输入。
唯一例外:用户明确说"只拆解 / 只要文字 prompt / 别截图别出图"时,停在步骤一,尊重用户。
怎么做(看图估坐标 → Pillow 矩形裁剪):
- 看原图,估每件的边界框。对清单里每件单品,估它在画面中的矩形区域,用
[left, top, right, bottom] 四个 0~1 比例表示(相对原图宽高,与分辨率无关)。从上到下分层:头部配饰在最上、鞋在最底。框宁可略大一点把整件收全(裙摆、袖子、鞋头别切掉),矩形裁带一点背景是正常的。
- 写一个 items.json 文件(不要用命令行内联 JSON——Windows PowerShell 会吞双引号):
[
{"name": "01_outer_cardigan", "box": [0.18, 0.18, 0.82, 0.62]},
{"name": "02_print_dress", "box": [0.28, 0.22, 0.72, 0.60]},
{"name": "03_cargo_pants", "box": [0.26, 0.55, 0.74, 0.92]},
{"name": "04_white_shoes", "box": [0.32, 0.86, 0.70, 1.00]}
]
name 用 序号_英文短名,序号和清单里的件号对应。
- 跑脚本裁剪(Windows 用
py,先设 UTF-8 防中文崩溃):
py scripts/crop_items.py <原图路径> <输出目录> <items.json路径>
- 回看裁剪结果,逐张确认框对了(整件在框内、没切掉关键部分)。框歪了就调比例重跑——这一步不能省,坐标是估算的,必须用眼睛验收。
交付时:每件的单品段落里,把"实拍截图路径"和"出图 Prompt"并列给出——截图是原图视觉锚点,prompt 是重画/找同款的文字描述,两者配合:
- 想 1:1 照原图复刻 → 把这件的截图喂给支持图生图的模型(nano-banana / Gemini 图编辑),prompt 作辅助指令。
- 想 找同款 → 截图拿去以图搜图,prompt 末尾的关键词拿去电商搜索。
边界:这是矩形粗裁、会带背景,不做精准抠图(贴边去背景要另上抠图模型,如 rembg)。对"找同款/喂图编辑模型"够用;用户若要干净去背景单品图,下一节就是干这个。
步骤三:真正生成电商白底图(图生图)
这是工作流的最后一步,默认就做,把每件做到成品白底图为止。 把上一步的「截图(视觉锚点)+ 白底 prompt(文字指令)」一起喂给图生图模型,真正出图:截图保住款式/颜色/面料,prompt 负责去背景换白底——这才是真的"照原图那件 1:1 还原成白底图"(无模特、纯白底、电商主图风格)。
这一步要 API key 和依赖,按下面规则决定走还是停:
- 环境里有
ARK_API_KEY(或 GEMINI_API_KEY)且依赖已装 → 直接出图,把成品图给用户。
- 没配 key 或缺依赖 → 不要报错硬跑。停在步骤二(截图已交付),明确告诉用户:「单品已拆解+截图完成;想自动出成品白底图,配好
ARK_API_KEY(火山方舟,0.2元/张)后我就能接着出。」把出图脚本的调用方式一并附上,用户配好随时能跑。
- 用户明说"别出图/只要 prompt" → 尊重,停在前面的步骤。
两家模型(详见 references/whitebg-image-gen.md,含接口/参数/价格/坑/来源 URL):
| nano-banana (Gemini) | Seedream 4.0(火山方舟) |
|---|
| 环境变量 | GEMINI_API_KEY | ARK_API_KEY |
| 单价 | ~$0.039/张 | 0.20 元/张 |
| 水印 | 强制 SynthID(去不掉) | 可关 |
| 默认 | 海外/英文 prompt | 国内默认(中文+便宜+可关水印) |
怎么做(脚本已封装两家,命令行直接调):
- 先确认依赖:
pip install pillow google-genai(Gemini)或 pip install volcengine-python-sdk(Seedream)。脚本缺依赖会提示装哪个。
- prompt 写法变了:图生图时参考图已给款式/颜色/面料,prompt 重点转成指令性的「以参考图为主体 + 去背景 + 白底 + 无模特 + 布光」,不要再重复描述单品细节(会和参考图打架)。主流程那段「白底单品 prompt」前面补一句"以参考图中的[单品]为主体"即可复用。
- 跑脚本(Windows 用
py + 先设 UTF-8;prompt 含中文/特殊字符建议用 --prompt-file 从文件读,避开命令行转义):
py scripts/generate_whitebg.py --provider seedream \
--image crops/02_print_dress.png \
--prompt-file prompts/02.txt \
--out out/02_white.png
Gemini 多两个可选参数:--aspect 4:5(时尚竖图)--size 2K。
- 回看出的图,确认款式/颜色/印花和原图那件对得上、背景是干净白底。不对就调 prompt(加强"保留XX细节""纯白无缝背景")重出,或换另一家模型试。
完整闭环:拆解(文字清单)→ 截图(原图锚点)→ 白底图(成品)。每件单品都能一路走到成品白底图。出来的白底图若还想做成模特上身效果,再丢给 fashion-model-shot。
输出格式
先给整体概览,再逐件展开。用这个结构:
## 这身造型概览
[1-2 句:整体风格、色调、场景,识别出 N 件单品]
## 单品清单
### 1. [单品名,如"燕麦色落肩针织开衫"]
- **品类/版型**:…
- **颜色**:…
- **面料质感**:…
- **关键细节**:…
- **风格**:…
- **出图 Prompt**:
[可直接复制的单品图 prompt]
- **原图截图**:`crops/01_xxx.png`(步骤二产出)
- **成品白底图**:`out/01_white.png`(步骤三产出;没配 key 而停在截图时,此行写"待出图,配好 ARK_API_KEY 后运行 scripts/generate_whitebg.py")
### 2. […]
…(按从上到下顺序逐件)
如果用户额外要了"搭配复盘",在概览后加一小段分析这身为什么协调(配色/比例/风格逻辑)。如果用户要了"找同款关键词",在每件的 prompt 后附一行电商搜索关键词。但默认只给"清单 + 单品 prompt",不堆没要的东西。
拆完后回扫原图一遍,逐项确认配饰类(袜子/腰带/耳饰/戒指/手表/眼镜/发饰)没有遗漏——这类小件最容易漏,但正是"全部拆到底"的要求。
一个要让用户知道的认知:默认三步走的最后一步是图生图——把步骤二截出的实拍图当视觉锚点喂给模型,所以能真照着原图那件还原款式/颜色/印花。但 prompt 仍要把颜色、印花、廓形用文字写准,因为它负责"去背景换白底"这层指令、也帮模型抓重点。如果某一步只停在写文字 prompt(用户只要 prompt、或没配 key),要让用户知道:纯文字 prompt 是"凭描述重画"、模型没有原图可参照,颜色印花写多准还原多准;要严格 1:1 照原图,就得走到步骤三的图生图。
拆完后可以提示用户:任何一件单品 prompt 出图后,想做成模特上身效果,可以用 fashion-model-shot 技能——两个技能正好互为正逆,形成闭环。