@optima-chat/optima-agent 0.9.3 → 0.9.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (103) hide show
  1. package/.claude/skills/channels/SKILL.md +7 -14
  2. package/.claude/skills/video-edit/SKILL.md +99 -0
  3. package/.claude/skills/video-gen/SKILL.md +188 -66
  4. package/.claude/skills/video-gen/templates/INDEX.md +78 -0
  5. package/.claude/skills/video-gen/templates/before-after-beauty.md +183 -0
  6. package/.claude/skills/video-gen/templates/drama-fmcg.md +183 -0
  7. package/.claude/skills/video-gen/templates/kol-reaction-food.md +193 -0
  8. package/.claude/skills/video-gen/templates/multi-point-apparel.md +185 -0
  9. package/.claude/skills/video-gen/templates/pain-solution-home.md +184 -0
  10. package/.claude/skills/video-gen/templates/pdp-360-showcase.md +189 -17
  11. package/.claude/skills/video-gen/templates/pdp-feature-highlight.md +182 -18
  12. package/.claude/skills/video-gen/templates/scene-digital.md +183 -0
  13. package/dist/bin/bi-cli.js +0 -0
  14. package/dist/bin/browser-cli.js +0 -0
  15. package/dist/bin/commerce.js +0 -0
  16. package/dist/bin/gen.js +0 -0
  17. package/dist/bin/google-ads.js +0 -0
  18. package/dist/bin/logistics.js +0 -0
  19. package/dist/bin/optima.js +0 -0
  20. package/dist/bin/scout.js +0 -0
  21. package/dist/bin/sentinel.js +0 -0
  22. package/dist/bin/shopify.js +0 -0
  23. package/dist/src/system-prompt.d.ts.map +1 -1
  24. package/dist/src/system-prompt.js +0 -4
  25. package/dist/src/system-prompt.js.map +1 -1
  26. package/package.json +1 -1
  27. package/.claude/settings.local.json +0 -166
  28. package/.claude/skills/video-gen/templates/lifestyle-scene.md +0 -18
  29. package/.claude/skills/video-gen/templates/tiktok-before-after.md +0 -17
  30. package/.claude/skills/video-gen/templates/tiktok-product-reveal.md +0 -17
  31. package/.claude/skills/video-gen/templates/tiktok-unboxing.md +0 -18
  32. package/dist/bin/comfy.d.ts +0 -3
  33. package/dist/bin/comfy.d.ts.map +0 -1
  34. package/dist/bin/comfy.js +0 -3
  35. package/dist/bin/comfy.js.map +0 -1
  36. package/dist/bin/growth.d.ts +0 -3
  37. package/dist/bin/growth.d.ts.map +0 -1
  38. package/dist/bin/growth.js +0 -3
  39. package/dist/bin/growth.js.map +0 -1
  40. package/dist/src/hooks-loader.d.ts +0 -6
  41. package/dist/src/hooks-loader.d.ts.map +0 -1
  42. package/dist/src/hooks-loader.js +0 -215
  43. package/dist/src/hooks-loader.js.map +0 -1
  44. package/dist/src/ui/App.d.ts +0 -6
  45. package/dist/src/ui/App.d.ts.map +0 -1
  46. package/dist/src/ui/App.js +0 -164
  47. package/dist/src/ui/App.js.map +0 -1
  48. package/dist/src/ui/components/Composer.d.ts +0 -10
  49. package/dist/src/ui/components/Composer.d.ts.map +0 -1
  50. package/dist/src/ui/components/Composer.js +0 -13
  51. package/dist/src/ui/components/Composer.js.map +0 -1
  52. package/dist/src/ui/components/Header.d.ts +0 -7
  53. package/dist/src/ui/components/Header.d.ts.map +0 -1
  54. package/dist/src/ui/components/Header.js +0 -7
  55. package/dist/src/ui/components/Header.js.map +0 -1
  56. package/dist/src/ui/components/Message.d.ts +0 -12
  57. package/dist/src/ui/components/Message.d.ts.map +0 -1
  58. package/dist/src/ui/components/Message.js +0 -21
  59. package/dist/src/ui/components/Message.js.map +0 -1
  60. package/dist/src/ui/components/MessageList.d.ts +0 -9
  61. package/dist/src/ui/components/MessageList.d.ts.map +0 -1
  62. package/dist/src/ui/components/MessageList.js +0 -18
  63. package/dist/src/ui/components/MessageList.js.map +0 -1
  64. package/dist/src/ui/components/Spinner.d.ts +0 -6
  65. package/dist/src/ui/components/Spinner.d.ts.map +0 -1
  66. package/dist/src/ui/components/Spinner.js +0 -7
  67. package/dist/src/ui/components/Spinner.js.map +0 -1
  68. package/dist/src/ui/components/StatusBar.d.ts +0 -11
  69. package/dist/src/ui/components/StatusBar.d.ts.map +0 -1
  70. package/dist/src/ui/components/StatusBar.js +0 -7
  71. package/dist/src/ui/components/StatusBar.js.map +0 -1
  72. package/dist/src/ui/components/index.d.ts +0 -7
  73. package/dist/src/ui/components/index.d.ts.map +0 -1
  74. package/dist/src/ui/components/index.js +0 -7
  75. package/dist/src/ui/components/index.js.map +0 -1
  76. package/dist/src/validation/error-formatter.d.ts +0 -21
  77. package/dist/src/validation/error-formatter.d.ts.map +0 -1
  78. package/dist/src/validation/error-formatter.js +0 -98
  79. package/dist/src/validation/error-formatter.js.map +0 -1
  80. package/dist/src/validation/index.d.ts +0 -10
  81. package/dist/src/validation/index.d.ts.map +0 -1
  82. package/dist/src/validation/index.js +0 -10
  83. package/dist/src/validation/index.js.map +0 -1
  84. package/dist/src/validation/json-validator.d.ts +0 -25
  85. package/dist/src/validation/json-validator.d.ts.map +0 -1
  86. package/dist/src/validation/json-validator.js +0 -173
  87. package/dist/src/validation/json-validator.js.map +0 -1
  88. package/dist/src/validation/schema.d.ts +0 -353
  89. package/dist/src/validation/schema.d.ts.map +0 -1
  90. package/dist/src/validation/schema.js +0 -57
  91. package/dist/src/validation/schema.js.map +0 -1
  92. package/dist/src/validation/suggestions.d.ts +0 -25
  93. package/dist/src/validation/suggestions.d.ts.map +0 -1
  94. package/dist/src/validation/suggestions.js +0 -144
  95. package/dist/src/validation/suggestions.js.map +0 -1
  96. package/dist/src/validation/types.d.ts +0 -40
  97. package/dist/src/validation/types.d.ts.map +0 -1
  98. package/dist/src/validation/types.js +0 -5
  99. package/dist/src/validation/types.js.map +0 -1
  100. package/dist/src/validation/yaml-validator.d.ts +0 -25
  101. package/dist/src/validation/yaml-validator.d.ts.map +0 -1
  102. package/dist/src/validation/yaml-validator.js +0 -177
  103. package/dist/src/validation/yaml-validator.js.map +0 -1
@@ -0,0 +1,185 @@
1
+ ---
2
+ name: multi-point-apparel
3
+ type: multi-point
4
+ category: apparel
5
+ duration_sweet_spot: 20-30s
6
+ design_principle: "每个字段对应一个可预见的失败模式;字段密度按镜头风险不对称"
7
+ ---
8
+
9
+ # Template: 多卖点快剪型(服装 / 配饰)
10
+
11
+ > **第一性原理**:本模板每个字段对应一个具体的失败模式。
12
+ > **适合**:连衣裙 / 外套 / 运动鞋 / 包袋 / 帽子,客单价 ¥100–800
13
+ > **高风险镜头**:#3 #5 #7(三个卖点特写)· #9(CTA)
14
+
15
+ ---
16
+
17
+ # A · 项目卡
18
+
19
+ | 字段 | 填写 | 不填的后果 |
20
+ |---|---|---|
21
+ | `{product_name}` | | PRODUCT_LOCK 无锚点 |
22
+ | `{product_type}`(连衣裙/T 恤/鞋/包)| | 拍摄视角选错 |
23
+ | `{price}` / `{original_price}` | | CTA 写不出 |
24
+ | `{three_points}`(3 个卖点短语) | | 骨架无法展开 |
25
+ | `{target_user}`(通勤女性/大学生/潮酷)| | Hook 调性错 |
26
+ | `{model_demographics}` | | 人物选型错(肤色/身型)|
27
+ | `{season}`(春/夏/秋/冬) | | 环境光和搭配错 |
28
+
29
+ ---
30
+
31
+ # B · 五段骨架(Hook-P1-P2-P3-CTA)
32
+
33
+ | 段 | 时长 | 必须决定的事 |
34
+ |---|---|---|
35
+ | HOOK | 0-3s | 产品亮相 + 数字承诺("3 个理由收藏")|
36
+ | POINT 1 | 3-10s | 卖点 1:如 "面料透气" → 画面动作(拉扯/透光展示)|
37
+ | POINT 2 | 10-17s | 卖点 2:如 "一衣三穿" → 多穿搭快切 |
38
+ | POINT 3 | 17-24s | 卖点 3(**最强**):如 "显瘦 10 斤" → CU + 全身对比 |
39
+ | CTA | 24-30s | 限时 + 尺码提示 + 购物车指示 |
40
+
41
+ **服装类铁律**:三个卖点**必须递进**(不能三个都是颜色 / 都是材质),POINT 3 放最强。
42
+
43
+ ---
44
+
45
+ # C · 镜头表(11 镜 · 30s · ASL ~2.7s)
46
+
47
+ | # | 时长 | 画面 | 字幕 | 运镜 | PRODUCT_LOCK | REF_IMG | NEGATIVE |
48
+ |---|---|---|---|---|---|---|---|
49
+ | 1 | 0-2s | `{model_hero}` 模特身着产品正面全景 | `{hook_line}`("3 个理由") | 缓推 + 自然光 | **★ full** | **`refs/product_front.jpg`** | **no color distortion, no texture loss** |
50
+ | 2 | 2-3s | 全屏大字 "1." | 1 | — | — | — | — |
51
+ | **3** | **3-7s** | **`{point_1_visual}`** 卖点 1 可视化 | `{point_1_label}` | **CU 或 MS** | **★ same** | **`refs/point_1_detail.jpg`** | **no fabric error** |
52
+ | 4 | 7-10s | `{point_1_benefit}` 效果 / 对比 | "{benefit_word}" | 跟手 / 对比 | — | — | — |
53
+ | 5 | 10-11s | 全屏大字 "2." | 2 | — | — | — | — |
54
+ | **6** | **11-16s** | **`{point_2_visual}`** 卖点 2 | `{point_2_label}` | **多机位快切** | **★ same** | `refs/point_2_detail.jpg` | **no color flip between angles** |
55
+ | 7 | 16-17s | 全屏大字 "3." | 3 | — | — | — | — |
56
+ | **8** | **17-23s** | **`{point_3_visual}`** 卖点 3(最强)| `{point_3_label}` | **CU + 慢镜** | **★ same** | `refs/point_3_detail.jpg` | **no body distortion, no proportion issue** |
57
+ | 9 | 23-26s | `{model_full_walk}` 全身走秀 | `{season_label}` | 跟拍 + 侧光 | **★ same** | `refs/product_walk.jpg` | no stiff posture |
58
+ | **10** | **26-29s** | **`{product_flat_lay}` + 价格 + 尺码表 + 购物车** | `{cta_line}` | **静止 + 叠加** | **★ hero** | **`refs/product_flat.jpg`** | **no burned subtitle** |
59
+ | 11 | 29-30s | 品牌 logo + "{brand_line}" | `{brand_tagline}` | 静止 | — | `refs/logo.jpg` | — |
60
+
61
+ ---
62
+
63
+ # D · PRODUCT_LOCK 规范
64
+
65
+ ```yaml
66
+ product_lock:
67
+ name: "{product_name}"
68
+ must_specify:
69
+ - color_palette: "{e.g. 雾霾蓝 with 米白拼接}"
70
+ - fabric_texture: "{e.g. 细纹涤纶 / 磨毛棉 / 光泽缎面}"
71
+ - silhouette: "{e.g. A 字裙 · 过膝长度 · 收腰}"
72
+ - detail_elements: "{e.g. 纽扣材质 / 拉链位置 / logo 绣花}"
73
+ - brand_label: "{位置 + 字体}"
74
+ consistency_method:
75
+ primary: "same seed across all product shots #1/#3/#6/#8/#9/#10"
76
+ backup: "image-to-video chain #3 → #4 (卖点 1 的前后)"
77
+ reference_image: "refs/product_front.jpg + 细节 ×3"
78
+ ```
79
+
80
+ ---
81
+
82
+ # E · 参考图清单
83
+
84
+ | 文件 | 用途 | 必须 |
85
+ |---|---|---|
86
+ | `refs/product_front.jpg` | 产品正面模特照 | ✅ |
87
+ | `refs/point_1_detail.jpg` | 卖点 1 细节特写 | ✅ |
88
+ | `refs/point_2_detail.jpg` | 卖点 2 细节特写 | ✅ |
89
+ | `refs/point_3_detail.jpg` | 卖点 3 细节特写 | ✅ |
90
+ | `refs/product_flat.jpg` | 产品平铺图(用于 CTA)| ✅ |
91
+ | `refs/product_walk.jpg` | 动态走秀参考 | ⚠️ 推荐 |
92
+ | `refs/logo.jpg` | 品牌标志 | ⚠️ 推荐 |
93
+
94
+ **服装类铁律**:**每个卖点必须有独立参考图**,否则 AI 生成时会"把三个卖点融成一个模糊画面"。
95
+
96
+ ---
97
+
98
+ # F · 通用默认值
99
+
100
+ ```yaml
101
+ aspect: "9:16"
102
+ total_duration: 30
103
+ pacing: fast
104
+ asl: 2.7
105
+ bgm:
106
+ douyin: "商家原声讲解(亲切)"
107
+ tiktok: "fashion electronic / original sound"
108
+ xhs: "轻快爵士 / 氛围感"
109
+ hook_template: "{season} 必收!{product_type} 3 个理由"
110
+ cta_template: "{price} · 运费险 · {size_range}"
111
+ ```
112
+
113
+ ---
114
+
115
+ # G · 平台 Delta
116
+
117
+ | | 抖音小店 | TikTok Shop | 小红书 |
118
+ |---|---|---|---|
119
+ | 字幕 | 中文 + 尺码信息 | 英文大写 + sizing | 中文 + 穿搭场景 |
120
+ | 时长 | 30s | 25s(砍 #4 或 #9) | 35s(加 OOTD 场景) |
121
+ | 模特 | 亚洲人 | 多元化 | 生活感博主 |
122
+ | BGM | 商家原声 | fashion beat | 氛围轻音乐 |
123
+ | CTA 话术 | "小黄车 · 不合适包退" | "$XX · free returns" | "评论区穿搭链接" |
124
+ | Hashtag | `#春日穿搭 #显瘦连衣裙` | `#ootd #fashionhaul #styletips` | `#穿搭 #显瘦 #通勤` |
125
+ | 封面帧 | #1 模特正面 | #8 卖点 3 特写 | #9 全身走秀 |
126
+
127
+ ---
128
+
129
+ # H · 失败模式 Checklist
130
+
131
+ ## H.1 生成前
132
+
133
+ - [ ] 三个卖点**互不重叠**(不能都是"颜色 / 面料 / 舒适"这种相似维度)
134
+ - [ ] 每个卖点有独立 REF_IMG
135
+ - [ ] `PRODUCT_LOCK.brand_label` 包含品牌文字**完整描述**(服装标签易乱码)
136
+ - [ ] NEGATIVE 含 `no body distortion, no proportion issue`(服装类身型扭曲是高发点)
137
+
138
+ ## H.2 导出前
139
+
140
+ - [ ] 产品在 #1/#3/#6/#8/#9/#10 外观一致(颜色 · 纹理 · 剪裁)
141
+ - [ ] 模特**身型比例正常**(AI 易生成过长腿 / 扭曲肢体)
142
+ - [ ] 每个卖点字幕是否**真实可查**("100% 纯棉" 要能兑现)
143
+ - [ ] #9 走秀姿势自然(不是僵硬机器人步)
144
+
145
+ ## H.3 发布前
146
+
147
+ - [ ] 静音能看懂 3 个卖点(字幕编号 1 2 3 清晰)?
148
+ - [ ] 2× 播放能跟上?
149
+ - [ ] 卖点承诺合规(不说"瘦身""减肥"等医疗词)?
150
+ - [ ] 尺码信息完整(否则退货率高)?
151
+
152
+ ---
153
+
154
+ # I · 成本预估
155
+
156
+ ```yaml
157
+ production_cost:
158
+ per_second_rate_usd:
159
+ standard: TBD # 填自 Optima credits 换算表
160
+ hifi: TBD # 填自 Optima credits 换算表
161
+ complexity_note: "模特 + 细节图多"
162
+ human_review: "30 min"
163
+ editing_subtitle: "1.5 hours(大字幕 1-2-3 制作)"
164
+ per_platform_delta: "20 min × 3 = 1 hour"
165
+ total: "$7.7 + 3 hours"
166
+
167
+ breakeven_math:
168
+ margin_typical: "50-70%(服装高毛利)"
169
+ conversion_rate: "1.5-3%(服装冲动消费高)"
170
+ realistic_range_per_platform: "30K-200K views"
171
+ typical_return_rate: "15-30%(服装退货高,必须算进 ROI)"
172
+ ```
173
+
174
+ ---
175
+
176
+ # J · 复用边界
177
+
178
+ **✅ 直接套用**:
179
+ 连衣裙 · T 恤 · 外套 · 运动鞋 · 休闲鞋 · 帽子 · 包袋 · 围巾 · 腰带
180
+
181
+ **❌ 不适合**:
182
+ - 配饰珠宝 → 多用 PDP 360 型
183
+ - 内衣 / 泳装 → 需要特殊镜头规则
184
+ - 高定 / 礼服 → KOL 试穿型更合适
185
+ - 童装 → 需要亲子场景模板(未来版本)
@@ -0,0 +1,184 @@
1
+ ---
2
+ name: pain-solution-home
3
+ type: pain-solution
4
+ category: home
5
+ duration_sweet_spot: 18-22s
6
+ design_principle: "每个字段对应一个可预见的失败模式;字段密度按镜头风险不对称"
7
+ ---
8
+
9
+ # Template: 痛点-解决型(家居 / 日用)
10
+
11
+ > **第一性原理**:本模板的每个字段都是为了阻止一个具体的失败模式。没有装饰字段。
12
+ > **适合**:家居 / 日用 / 清洁 / 收纳,客单价 ¥50–300
13
+ > **高风险镜头**:#4(产品首次出现)· #9(商品 CTA)—— 字段密度最高
14
+
15
+ ---
16
+
17
+ # A · 项目卡(**对抗"类型选错 / 决策基础不全"**)
18
+
19
+ | 字段 | 填写 | 不填的后果 |
20
+ |---|---|---|
21
+ | `{product_name}` | | PRODUCT_LOCK 无锚点 |
22
+ | `{product_category}` | | 判断不了是否属于本模板 |
23
+ | `{price}` / `{original_price}` | | CTA 写不出 |
24
+ | `{price_point}`(低/中/高客单)| | 客单 >¥300 应切 KOL 模板 |
25
+ | `{target_user}` | | Hook 找不到切入语气 |
26
+ | `{core_pain_noun}`(如"脏水"/"油污")| | HOOK 模板无法填充 |
27
+
28
+ ---
29
+
30
+ # B · 五段骨架(**对抗"电商结构不全,漏 PROOF 则转化崩"**)
31
+
32
+ | 段 | 时长 | 必须决定的事 |
33
+ |---|---|---|
34
+ | HOOK | 0-2s | 痛点反问的**一句话**(≤15 字)|
35
+ | PAIN | 2-5s | 旧方案要暴露哪**两个**缺陷 |
36
+ | SOLUTION | 5-12s | 核心动作名(如"一脚踩→自动拧")|
37
+ | PROOF | 12-18s | **拿什么证据**:销量数字 / 评论截图 / 对比图(必须指定)|
38
+ | CTA | 18-22s | 紧迫感 + 位置指示("左下角 ¥99 限时")|
39
+
40
+ ---
41
+
42
+ # C · 镜头表(**字段密度按风险不对称**)
43
+
44
+ **低风险镜头**(#1-#3 痛点场景)只需要 4 列;
45
+ **高风险镜头**(#4-#6 产品演示 · #9 CTA)增加 PRODUCT_LOCK + REFERENCE_IMG + NEGATIVE 三列。
46
+
47
+ | # | 时长 | 画面 | 字幕 | 运镜 | PRODUCT_LOCK | REF_IMG | NEGATIVE |
48
+ |---|---|---|---|---|---|---|---|
49
+ | 1 | 0-2s | `{pain_CU}` 痛点 CU | `{hook_line}` | CU + 手持微抖 | — | `refs/pain_context.jpg`(可选) | no text overlay |
50
+ | 2 | 2-3.5s | `{old_method_pain}` | "痛点关键词" | 跟手 | — | — | — |
51
+ | 3 | 3.5-5s | `{pain_consequence}` | "三大问题" | 特写 | — | — | — |
52
+ | **4** | **5-8s** | **`{product}` 出场 + 核心动作** | `{core_action}` | **CU + 静止** | **★ full** | **`refs/product.jpg`** | **no variations, no morphing** |
53
+ | **5** | **8-11s** | **`{product_demo}` 效果** | "自动/一键" | **跟手** | **★ same as #4** | **`refs/product.jpg`** | **no color shift, no flip** |
54
+ | **6** | **11-14s** | **全景 `{clean_result}`** | "省时 80%" | **中景** | **★ same** | — | **no warping** |
55
+ | 7 | 14-17s | `{sales_screenshot}` | "热卖 {sales_number}" | 屏录 | — | `refs/sales_page.png` | no fake data, no blur |
56
+ | 8 | 17-19s | `{reviews_rollup}` | "4.9 分好评" | 屏录 | — | `refs/reviews.png` | no text distortion |
57
+ | **9** | **19-22s** | **`{product_CU}` + 价格 + 购物车箭头** | `{cta_line}` | **CU + 轻推** | **★ hero shot** | **`refs/product.jpg`** | **no burned-in subtitle, no extra arrows** |
58
+
59
+ ---
60
+
61
+ # D · PRODUCT_LOCK 规范(**对抗"AI 生成时产品每段都变形"**)
62
+
63
+ ```yaml
64
+ product_lock:
65
+ name: "{product_name}"
66
+ must_specify:
67
+ - color_palette: "{e.g. matte white + silver accents + blue ring}"
68
+ - material_finish: "{e.g. ABS plastic + brushed aluminum}"
69
+ - logo_position: "{e.g. top front, 5mm height}"
70
+ - silhouette: "{e.g. cylindrical head + 30cm pole + pedal base}"
71
+ consistency_method:
72
+ primary: "same seed across shots #4/#5/#6/#9"
73
+ backup: "image-to-video chain #4 → #5 → #6 (use last frame as next input)"
74
+ reference_image: "refs/product.jpg (800x800 white background, 3+ angles)"
75
+ ```
76
+
77
+ ---
78
+
79
+ # E · 参考图清单(**对抗"缺视觉锚点 / 照着空气生成"**)
80
+
81
+ | 文件 | 用途 | 必须有 |
82
+ |---|---|---|
83
+ | `refs/product.jpg` | 产品主图(白底 · ≥800x800) | ✅ |
84
+ | `refs/product_detail.jpg` | 细节特写(logo / 材质) | ✅ |
85
+ | `refs/pain_context.jpg` | 痛点场景参考(可选,增强 #1-#3 真实感) | ⚠️ 推荐 |
86
+ | `refs/sales_page.png` | 销量截图(用于 #7) | ✅ |
87
+ | `refs/reviews.png` | 评论滚动截图(用于 #8) | ✅ |
88
+
89
+ **缺任何一张 ✅ 标的 → storyboard 未完成,不能进生成**。
90
+
91
+ ---
92
+
93
+ # F · 通用默认值
94
+
95
+ ```yaml
96
+ aspect: "9:16"
97
+ total_duration: 22
98
+ pacing: moderate-fast
99
+ asl: 2.4 # 平均镜头长度(秒)
100
+ bgm:
101
+ douyin: "商家原声讲解"
102
+ tiktok: "original sound"
103
+ xhs: "轻音乐 + ASMR"
104
+ hook_template: "你家的 {core_pain_noun} 还是这样吗?"
105
+ cta_template: "左下角 {price}(原价 {original_price})限时"
106
+ ```
107
+
108
+ ---
109
+
110
+ # G · 平台 Delta(**对抗"一版三投,数据必有两个差"**)
111
+
112
+ | | 抖音小店 | TikTok Shop | 小红书 |
113
+ |---|---|---|---|
114
+ | 字幕 | 中文 | 英文大写 + 🤯 | 中文 + 表情 |
115
+ | 时长 | 22s(master)| 17s(砍 #2 #6)| 28s(加场景化前置)|
116
+ | BGM | 商家原声 | original sound | 轻音乐 + ASMR |
117
+ | CTA 话术 | "左下角小黄车" | "Yellow basket 👇" | "评论区拿链接" |
118
+ | Hashtag | `#家居好物 #懒人神器` | `#tiktokmademebuyit #cleantok` | `#家居种草 #懒人必备` |
119
+ | 封面帧 | #4 动作感 | #5 前后对比 | #6 治愈感 |
120
+
121
+ ---
122
+
123
+ # H · 失败模式 Checklist(**发布前必过**)
124
+
125
+ ## H.1 生成前(**对抗"生成就翻车"**)
126
+
127
+ - [ ] `refs/product.jpg` 存在且清晰度 ≥ 1080×1080
128
+ - [ ] `PRODUCT_LOCK` 的 4 项 must_specify 全部填写
129
+ - [ ] 镜头 #4 #5 #6 #9 使用同一个 seed 和同一张 reference
130
+ - [ ] `NEGATIVE` 字段包含 5 要素(no distorted hands / no text / no variations / no morphing / no watermark)
131
+
132
+ ## H.2 导出前(**对抗"生成完了才发现错"**)
133
+
134
+ - [ ] 产品在 #4/#5/#6/#9 四个镜头里外观一致(目检)
135
+ - [ ] 没有手指畸形 / 产品文字被 AI 错误生成
136
+ - [ ] 字幕是后期叠加,不是被生成到画面里
137
+ - [ ] 9 个镜头拼接后总时长 = 22s ± 0.5s
138
+ - [ ] BGM 节拍对齐 Shot #4 的动作点
139
+
140
+ ## H.3 发布前(**对抗"发了没人看"**)
141
+
142
+ - [ ] 静音测试:关声音能看懂卖点?
143
+ - [ ] 2× 播放能跟上节奏?
144
+ - [ ] Scroll Stop:朋友看首 3 秒会划走吗?
145
+ - [ ] 价格 / 库存 / CTA 信息当下有效?
146
+ - [ ] 各平台 Delta 已按 G 表改完?
147
+
148
+ **三段 checklist 全过才发。**
149
+
150
+ ---
151
+
152
+ # I · 成本预估(**对抗"商家盲投"**)
153
+
154
+ ```yaml
155
+ production_cost:
156
+ per_second_rate_usd:
157
+ standard: TBD # 填自 Optima credits 换算表
158
+ hifi: TBD # 填自 Optima credits 换算表
159
+ complexity_note: ""
160
+ human_review: "30 min"
161
+ editing_subtitle_bgm: "1 hour"
162
+ per_platform_delta: "15 min × 3 = 45 min"
163
+ total: "$4.5 + 2.5 hours"
164
+
165
+ breakeven_math:
166
+ if_product_margin: "{margin}"
167
+ conversion_rate_assumption: "2%"
168
+ views_to_breakeven: "total_cost / (price × margin × conversion_rate)"
169
+ realistic_range_per_platform: "10K-100K views (based on 15-item viral sample)"
170
+ ```
171
+
172
+ ---
173
+
174
+ # J · 复用边界(**对抗"模板套错产品"**)
175
+
176
+ **✅ 直接套用**(仅改 `{product}` / `{pain}` / `{sales}` 字段):
177
+ 洗衣球 · 洗鞋机 · 油烟净 · 厨房收纳 · 切菜神器 · 马桶刷 · 地板清洁剂
178
+
179
+ **❌ 不适合**(切换到其他模板):
180
+ - 美妆 → `before-after-beauty.md`
181
+ - 数码 / 3C → `scene-digital.md`
182
+ - 服装 → `multi-point-apparel.md`
183
+ - 食品 → `kol-reaction-food.md`
184
+ - 客单价 ≥¥500 → KOL 信任型模板
@@ -1,17 +1,189 @@
1
- # Template: PDP 360 度展示
2
-
3
- 适合:产品详情页主视频,强调产品外观
4
-
5
- ## 镜头表
6
- | 段 | 时长 | 内容 | 运镜 |
7
- |---|---|---|---|
8
- | 1 | 0-5s | {product} 正面 → 缓慢旋转一圈 | 环绕 |
9
- | 2 | 5-10s | {product} 细节特写(材质/按钮/接口)| 推近 |
10
- | 3 | 10-{duration}s | {product} 全景 + 尺寸参照 | 拉远 |
11
-
12
- ## 默认值
13
- - Hook: 干净的产品正面
14
- - CTA: 产品名(无侵入式 CTA)
15
- - Pacing: slow, steady
16
- - Duration: 15-25s
17
- - Aspect: 1:1 或 16:9
1
+ ---
2
+ name: pdp-360-showcase
3
+ type: pdp-360
4
+ category: product-detail-page
5
+ duration_sweet_spot: 15-25s
6
+ design_principle: "每个字段对应一个可预见的失败模式;字段密度按镜头风险不对称"
7
+ ---
8
+
9
+ # Template: 产品 360 度展示(PDP / 详情页)
10
+
11
+ > **第一性原理**:本模板每个字段对应一个具体的失败模式。
12
+ > **适合**:详情页主视频 · 重视觉外观的产品(家居 / 数码 / 服装 / 配饰 / 玩具)
13
+ > **高风险镜头**:#2(旋转中的产品一致性)· #4-#6(细节特写)
14
+ > **核心挑战**:旋转过程中产品**每一帧都必须是同一件产品**
15
+
16
+ ---
17
+
18
+ # A · 项目卡
19
+
20
+ | 字段 | 填写 | 不填的后果 |
21
+ |---|---|---|
22
+ | `{product_name}` | | PRODUCT_LOCK 无锚点 |
23
+ | `{aspect_ratio}`(1:1 / 16:9 / 9:16)| | PDP 默认 1:1 或 16:9,与社媒不同 |
24
+ | `{rotation_direction}`(顺 / 逆)| | 旋转方向必须前后一致 |
25
+ | `{detail_highlights}`(3 个细节)| | #4 #5 #6 拍什么空 |
26
+ | `{size_reference}`(手 / 硬币 / 尺)| | 用户无法判断大小 |
27
+ | `{brand_line}` | | 片尾无 branding |
28
+
29
+ ---
30
+
31
+ # B · 五段骨架(PDP 专用 · 非电商 5 段)
32
+
33
+ | 段 | 时长 | 必须决定的事 |
34
+ |---|---|---|
35
+ | ESTABLISH | 0-3s | 产品干净全景(白底)|
36
+ | ROTATE | 3-10s | 360° 旋转(5-7 秒完成一圈)|
37
+ | DETAILS | 10-17s | 3 个关键细节 CU |
38
+ | SCALE | 17-20s | 尺寸参照(vs 手 / 硬币)|
39
+ | CLOSE | 20-22s | 品牌 + logo 定格 |
40
+
41
+ **PDP 铁律**:不加 CTA / 不加价格 / 不加 hashtag —— PDP 视频是"产品档案",不是广告。
42
+
43
+ ---
44
+
45
+ # C · 镜头表(9 镜 · 22s · ASL ~2.4s)
46
+
47
+ | # | 时长 | 画面 | 字幕 | 运镜 | PRODUCT_LOCK | REF_IMG | NEGATIVE |
48
+ |---|---|---|---|---|---|---|---|
49
+ | 1 | 0-3s | `{product_front}` 产品正面静止 | `{product_name}` | 静止 + 干净白底 | **★ full** | **`refs/product_front.jpg`** | **no background clutter, no shadows** |
50
+ | **2** | **3-10s** | **`{product_rotate_360}` 360° 环绕** | — | **环绕 + 匀速** | **★ continuous lock** | **`refs/product_front.jpg` + side + back** | **no color shift mid-rotation, no model swap** |
51
+ | 3 | 10-12s | `{product_top_view}` 俯视 | — | 俯拍 | **★ same** | `refs/product_top.jpg` | no perspective distortion |
52
+ | **4** | **12-14s** | **`{detail_1_CU}` 细节 1** | `{detail_1_label}`(材质 / 按钮 / 接口)| **微距 + 静止** | **★ same** | **`refs/detail_1.jpg`** | **no material fakery** |
53
+ | 5 | 14-16s | `{detail_2_CU}` 细节 2 | `{detail_2_label}` | 微距 | **★ same** | `refs/detail_2.jpg` | — |
54
+ | 6 | 16-17s | `{detail_3_CU}` 细节 3 | `{detail_3_label}` | 微距 | **★ same** | `refs/detail_3.jpg` | — |
55
+ | **7** | **17-20s** | **`{size_reference}` 尺寸对比** | `{size_label}`("长 15cm")| **MS + 手持** | **★ same** | **`refs/size_compare.jpg`** | **no unnatural scale** |
56
+ | 8 | 20-21s | `{product_full_clean}` 回到干净全景 | — | 拉远 | **★ same** | `refs/product_front.jpg` | — |
57
+ | 9 | 21-22s | 品牌 logo + 留白 | `{brand_line}` | 静止 | — | `refs/logo.jpg` | — |
58
+
59
+ ---
60
+
61
+ # D · PRODUCT_LOCK 规范(**PDP 最严**)
62
+
63
+ ```yaml
64
+ product_lock:
65
+ name: "{product_name}"
66
+ must_specify:
67
+ - exact_dimensions: "{长 × 宽 × 高 + 重量}"
68
+ - exact_colors: "{Pantone / RGB / hex 具体值}"
69
+ - material_finish: "{哑光 / 光泽 / 磨砂 + 具体材料名}"
70
+ - every_visible_detail: "{logo 位置 + 字体 + 接缝 + 按钮 + 接口}"
71
+ - manufacturing_marks: "{模具分型线 / 品牌铭牌}"
72
+ consistency_method:
73
+ primary: "旋转段必须用 image-to-video 链(非 text-to-video)"
74
+ backup: "每 0.5s 一帧的人工关键帧介入"
75
+ reference_image: "refs/product_front.jpg + side + back + top 共 4-6 张"
76
+ warning: "PDP 对产品一致性要求最严 —— 任何帧的变化都会被详情页用户放大看到。"
77
+ ```
78
+
79
+ ---
80
+
81
+ # E · 参考图清单
82
+
83
+ | 文件 | 用途 | 必须 |
84
+ |---|---|---|
85
+ | `refs/product_front.jpg` | 正面 | ✅ |
86
+ | `refs/product_side.jpg` | 侧面 | ✅ |
87
+ | `refs/product_back.jpg` | 背面 | ✅ |
88
+ | `refs/product_top.jpg` | 俯视 | ✅ |
89
+ | `refs/detail_1.jpg` | 细节 1(通常是 logo / 按钮 / 接口)| ✅ |
90
+ | `refs/detail_2.jpg` | 细节 2 | ✅ |
91
+ | `refs/detail_3.jpg` | 细节 3 | ⚠️ 推荐 |
92
+ | `refs/size_compare.jpg` | 尺寸参照 | ✅ |
93
+ | `refs/logo.jpg` | 品牌 logo | ⚠️ 推荐 |
94
+
95
+ **PDP 铁律**:**至少 4 张产品角度图 + 3 张细节图 = 7 张参考**,否则 AI 360 旋转会"编造"不存在的角度。
96
+
97
+ ---
98
+
99
+ # F · 通用默认值
100
+
101
+ ```yaml
102
+ aspect: "1:1" # PDP 默认方形;若视频详情页用 16:9
103
+ total_duration: 22
104
+ pacing: slow(匀速,不追求戏剧节奏)
105
+ asl: 2.4
106
+ bgm:
107
+ pdp: "无(或极轻环境音)" # PDP 视频通常静音播放
108
+ social_crossover: "轻音乐(若同时用作社媒)"
109
+ # PDP 不需要 hook / CTA / hashtag 字段
110
+ ```
111
+
112
+ ---
113
+
114
+ # G · 平台 Delta(PDP 特殊 · 不分社媒平台)
115
+
116
+ | 用途 | 配置 |
117
+ |---|---|
118
+ | **淘宝 / 天猫详情页** | 1:1 或 16:9,静音播放兼容 |
119
+ | **亚马逊 A+ 页面** | 16:9,无字幕(英文市场)|
120
+ | **京东详情页** | 1:1,可加字幕 |
121
+ | **独立站** | 16:9,含 CTA 按钮 overlay |
122
+ | **跨境 Shopify** | 16:9 或 9:16(mobile-first)|
123
+ | **作为社媒素材复用时** | 改 9:16 + 加字幕 + 加 CTA(实际上切到 scene-digital 模板)|
124
+
125
+ ---
126
+
127
+ # H · 失败模式 Checklist
128
+
129
+ ## H.1 生成前
130
+
131
+ - [ ] 至少 4 张产品角度图就位(正 / 侧 / 背 / 顶)
132
+ - [ ] 每个角度图**光线一致**(否则 AI 旋转时会跳光)
133
+ - [ ] `PRODUCT_LOCK.exact_dimensions` 精确到毫米(防 AI 随便缩放)
134
+ - [ ] NEGATIVE 含 `no color shift, no material fakery, no manufacturing mark change`
135
+
136
+ ## H.2 导出前
137
+
138
+ - [ ] 旋转段(#2)**每一帧都是同一件产品**(最严格检查点)
139
+ - [ ] 细节 CU 的材质和主镜一致(#4/#5/#6 vs #1)
140
+ - [ ] 尺寸参照合理(手大小 / 硬币尺寸对应真实)
141
+ - [ ] 背景干净(白底无阴影无杂物)
142
+ - [ ] **没有 CTA / 价格 / 紧迫感** 元素(PDP 铁律)
143
+
144
+ ## H.3 发布前
145
+
146
+ - [ ] 静音播放时画面仍然信息充分?(PDP 常静音)
147
+ - [ ] 旋转速度匀速不卡顿?
148
+ - [ ] 比例符合目标详情页(1:1 vs 16:9 vs 9:16)?
149
+ - [ ] 时长不超过 30s(PDP 用户耐心短)?
150
+
151
+ ---
152
+
153
+ # I · 成本预估
154
+
155
+ ```yaml
156
+ production_cost:
157
+ per_second_rate_usd:
158
+ standard: TBD # 填自 Optima credits 换算表
159
+ hifi: TBD # 填自 Optima credits 换算表
160
+ complexity_note: "360 旋转 prompt 复杂度高"
161
+ human_review: "45 min(质检严格)"
162
+ editing: "1 hour(主要是拼接和调色匹配)"
163
+ total: "$7.2 + 2 hours"
164
+ note: "PDP 一次做好多年使用(产品不改则视频不改),ROI 极高"
165
+
166
+ breakeven_math:
167
+ pdp_value_model: "提升详情页转化率(+2-5%)"
168
+ typical_uplift: "按店铺日单量 100 · 每单 ¥200 · 毛利 40% → 提升 2% 转化 = +¥160/日"
169
+ pdp_video_payback: "~50 天(按 $7.2 成本)"
170
+ ```
171
+
172
+ ---
173
+
174
+ # J · 复用边界
175
+
176
+ **✅ 直接套用**:
177
+ 任何需要展示产品外观的实物商品 —— 家居 · 数码 · 配饰 · 玩具 · 工具 · 厨具
178
+
179
+ **❌ 不适合**:
180
+ - 软性产品(护肤品 / 食品)→ 没"外观"可 360
181
+ - 虚拟商品(软件 / 课程)→ 完全不适用
182
+ - 高度标准化无差异产品(如纸巾 / 纯色 T 恤)→ PDP 360 没看点
183
+ - 需要演示使用的产品 → `pdp-feature-highlight.md`
184
+
185
+ ---
186
+
187
+ # 相关
188
+
189
+ - 姊妹模板:`pdp-feature-highlight.md`(功能展示型 PDP)