@gitruck/cli 0.2.15 → 0.2.17

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.
@@ -0,0 +1,81 @@
1
+ # 封面交付自检清单(两阶段 · 9 条硬规)
2
+
3
+ 交付前**一条一条对着过**,不合格直接说不合格,不要糊弄。
4
+ 按交付阶段分两组:阶段一在**交付 Prompt 时**核,阶段二在**交付排版工作台时**补核。
5
+
6
+ ---
7
+
8
+ ## 阶段一:交付 Prompt 时核(①~⑤)
9
+
10
+ ### ☐ 1. 意象与视频核心概念一致
11
+ 封面上的意象是不是**这个视频真正讲的东西**?
12
+ - 意象必须来自视频内容本身的视觉化,不能是随便一张好看的"情绪贴纸"。
13
+ - 栏目如有自己的「概念 → 意象」对照体系,从其封面风格资产读取并按其对照检验。
14
+ - **不合格的典型**:核心概念和画面互不相干,画面只负责好看。
15
+
16
+ ### ☐ 2. 情绪与视觉对齐
17
+ 当期情绪基调和**色板 + 表情 + 构图**是否对齐?
18
+ - 栏目风格资产如定义了情绪轴 / 情绪-色板绑定,按其轴判;未定义则按常识判。
19
+ - 常识底线:绝望段不要画笑脸;克制段不要画嚎叫;悬念钩子要有"正在降临"的不祥感而不是已经发生的惨状。
20
+
21
+ ### ☐ 3. 封面与标题的互文
22
+ 封面大字(T1)和视频标题是否**组成完整钩子**?
23
+ - 通过检验:只看标题不看封面,信息不完整;只看封面不看标题,也不完整;两者合起来才完整。
24
+ - 不通过:封面上直接把标题原样写了一遍(重复冗余);或者封面字和标题完全无关(脱节)。
25
+ - T1 通常是用户自己拟的 4~10 字核心句,**本 skill 不擅自改写 T1 内容**,只能建议字体 / 拆分 / 重音处理。
26
+
27
+ ### ☐ 4. 材质层已写进 Prompt
28
+ Prompt 里是否至少叠加了 1 层胶片颗粒 / 纸张纹理 / 印刷网点?
29
+ - 没有材质层 = AI 直出光滑感,与目标质感有明显差距。
30
+
31
+ ### ☐ 5. 生成图低级错误提示
32
+ 是否向用户显式提示了生成图的常见低级错误,提醒挑图时逐项检查?
33
+ - 多出来的手指 / 眼睛 / 发丝等解剖错误。
34
+ - 中文字符乱码。
35
+ - 手部特写、多人交叠等高危题材要**显式提醒**用户多生成几张挑图。
36
+
37
+ ---
38
+
39
+ ## 阶段二:交付排版工作台时补核(⑥~⑨)
40
+
41
+ ### ☐ 6. 字的主视觉重量
42
+ T1 在画面里是否具有**主视觉重量**,手机缩略图上能读清?
43
+ - 4 字 T1:单字高度 ≥ 画面高 15%(整体 T1 区 ≥ 35%)。
44
+ - 6~8 字 T1(含对偶):每半句字号保证手机缩略图上能读清。
45
+ - 长句 T1 必须用"关键词重音法"——关键词字号明显大于副行,否则整句堆成同样大会糊。
46
+ - 铁律:最大化利用可用区域。
47
+
48
+ ### ☐ 7. 留字位落点
49
+ 默认文字坐标是否落在画面的**气口**(干净留白区)?
50
+ - 主体没把所有关键区域吃满;文字区背景干净、无高频细节干扰。
51
+ - 栏目风格资产如有留白 / 密度规范,按其规范判。
52
+
53
+ ### ☐ 8. 身份锚不编造
54
+ - 用户给了栏目名 → 品牌戳是否合理放置(没压主视觉,没挤出安全区)?
55
+ - 用户没给 → 是否没瞎编,排版稿里老实标注"未提供,可省略"?
56
+ - 期号同上逻辑。
57
+
58
+ ### ☐ 9. 分发平台安全区
59
+ 按用户的分发平台适配安全区,关键元素(T1 / 主体五官 / 身份锚)不进裁切与遮挡区。
60
+ - B 站参考值:右上 1/8 角标区、底部 1/10 进度条灰化区。
61
+ - 其他平台按各自的裁切 / 遮挡规则判,不作无条件硬规。
62
+ - 主体脸不被 T1 大字压到"看不出表情"(可以压边缘,不可以压到五官中心)。
63
+
64
+ ---
65
+
66
+ ## 输出时的写法
67
+
68
+ ```
69
+ 自检结果(阶段一):
70
+ 1. 意象与核心概念 ✅ — 核心概念的视觉化贯穿主体
71
+ 2. 情绪与视觉对齐 ✅ — 冷峻诊断段,冷色板吻合(依栏目风格资产)
72
+ 3. 封面-标题互文 ⚠️ — T1 与标题组成钩子,但建议 T1 拆为单字重音,让标题承担更多
73
+ 4. 材质层 ✅ — Prompt 已含胶片颗粒
74
+ 5. 低级错误提示 ⚠️ — 含手部特写,已提醒多张挑图并检查手指
75
+
76
+ 自检结果(阶段二):
77
+ 6. 字够大 ✅
78
+ 7. 留字位落点 ✅
79
+ 8. 身份锚 ❓ — 尚未提供栏目名,已标注"未提供,可省略"
80
+ 9. 平台安全区 ✅ — 按 B 站规则避开右上角标区与底部进度条区
81
+ ```
@@ -0,0 +1,337 @@
1
+ # 布局配方(Layout Recipes)
2
+
3
+ 8 种布局(L1 / L1-对偶 / L2 / L2-长句 / L3 / L4 / L5 / L6),**每种都给出 16:9 / 4:3 / 3:4 三个尺寸的区域分配**。
4
+
5
+ 术语约定:
6
+ - **T1** = 主视觉大字(用户亲拟,典型 4~10 字,字数决定布局路由)
7
+ - **T2** = 副标题条(≤12 字钩子短句)
8
+ - **T3** = 角标信息(Vol.X / 期号 / 系列名)
9
+ - **T4** = 品牌戳
10
+ - **T5** = 装饰英文
11
+ - **S** = 主体(Subject,角色或意象)
12
+
13
+ > 铁律:本文件只持有工艺骨架(几何 / 字数路由 / 槽位结构)。凡色板、字体、参考封面等审美取值,一律由**栏目封面风格资产**供给,框架零预设。
14
+
15
+ ---
16
+
17
+ ## L1 「左右分飞」—— 仅适用 4 字 T1
18
+
19
+ **一个字在画面左,一个字在画面右(4 字则左右各 2 字),中间给主体。T1 的字**大到占画面高度的 60~80%**,部分被主体压在身后。
20
+
21
+ **适用**:**严格只用于 4 字 T1**。单人物 / 单意象、强对称感、最核心向选题。
22
+ **不适用**:5 字以上,或含逗号对偶句——那些用 L1-对偶变体 / L2 / L2-长句变体。
23
+ **参考气质**:单一意象顶天立地、文字与主体互相穿插的对称海报感。
24
+
25
+ ```
26
+ ┌────────────────────────┐
27
+ │ T3 │ ← T3 角标贴边缘对角分布
28
+ │ │
29
+ │ [T1左] [ S ] [T1右]│ ← T1 字压在 S 肩线以上/以下
30
+ │ │
31
+ │ T2 T4 │
32
+ └────────────────────────┘
33
+ ```
34
+
35
+ **16:9(2400×1350)**:
36
+ - T1 左:x=0~500, y=250~1050,字高约 800px
37
+ - S(主体):x=700~1700,垂直居中
38
+ - T1 右:x=1900~2400, y=250~1050
39
+ - T2:x=60~900, y=1180~1280(左下副标题)
40
+ - T3:x=60~700, y=60~160(左上角标)+ x=1700~2340 右上镜像
41
+ - T4:x=60~500, y=1280~1330(品牌戳叠在 T2 下方)
42
+
43
+ **4:3(2400×1800)**:按同上比例,但 S 区域更宽更饱满,T1 竖向拉长。
44
+
45
+ **3:4(1500×2000)**:左右分飞变成**上下分飞**——T1 的一个字在画面顶部,另一个在底部,主体在中段。
46
+
47
+ #### L1 — H5 工作台默认坐标(直接抄进 DEFAULTS)
48
+
49
+ ```js
50
+ const DEFAULTS = {
51
+ // 16:9 左右分飞(横板 L1 经典)
52
+ '16_9': {
53
+ canvas: { w: 2400, h: 1350 },
54
+ layers: {
55
+ char1: { type: 't1', pos: '左上', left: 140, top: 200, size: 520 },
56
+ char2: { type: 't1', pos: '左下', left: 260, top: 720, size: 520 },
57
+ char3: { type: 't1', pos: '右上', left: 1740, top: 200, size: 520 },
58
+ char4: { type: 't1', pos: '右下', left: 1620, top: 720, size: 520 },
59
+ t2: { type: 't2', pos: '底部居中', text: '{T2 副标}', left: 910, top: 1200, size: 46, visible: true },
60
+ t5: { type: 't5', pos: '顶部居中', text: '{T5 装饰英文}', left: 1020, top: 80, size: 34, visible: true },
61
+ },
62
+ },
63
+ // 4:3 对角分飞(横版饱满,适合主体顶到三边的背景)
64
+ '4_3': {
65
+ canvas: { w: 2400, h: 1800 },
66
+ layers: {
67
+ char1: { type: 't1', pos: '左上', left: 110, top: 150, size: 560 },
68
+ char2: { type: 't1', pos: '左中', left: 300, top: 700, size: 560 },
69
+ char3: { type: 't1', pos: '右中', left: 1540, top: 540, size: 560 },
70
+ char4: { type: 't1', pos: '右下', left: 1730, top: 1090, size: 560 },
71
+ t2: { type: 't2', pos: '右下角', text: '{T2 副标}', left: 1680, top: 1680, size: 44, visible: true },
72
+ t5: { type: 't5', pos: '左上角', text: '{T5 装饰英文}', left: 130, top: 75, size: 36, visible: true },
73
+ },
74
+ },
75
+ // 3:4 上下分飞(竖版 L1,顶部 2 字 + 底部 2 字,主体夹中段)
76
+ '3_4': {
77
+ canvas: { w: 1500, h: 2000 },
78
+ layers: {
79
+ char1: { type: 't1', pos: '左上', left: 180, top: 140, size: 440 },
80
+ char2: { type: 't1', pos: '右上', left: 880, top: 140, size: 440 },
81
+ char3: { type: 't1', pos: '左下', left: 180, top: 1380, size: 440 },
82
+ char4: { type: 't1', pos: '右下', left: 880, top: 1380, size: 440 },
83
+ t2: { type: 't2', pos: '中段留白', text: '{T2 副标}', left: 475, top: 620, size: 44, visible: true },
84
+ t5: { type: 't5', pos: '底部居中', text: '{T5 装饰英文}', left: 550, top: 1880, size: 34, visible: true },
85
+ },
86
+ },
87
+ };
88
+ ```
89
+
90
+ **说明**:
91
+ - 工作台模板已按 T1_KEYS 常量字数驱动,图层数随 T1 字数实例化(5 字即 char1~char5),不再写死 4 字。
92
+ - `char1-charN` 的 `text` 字段会被运行时的 T1 输入框同步覆盖,DEFAULTS 里不用写。
93
+ - `size` 是默认字号,用户可以在工作台里逐字调。字号单位是像素(画布坐标)。
94
+ - `pos` 是右栏 block 上显示的位置标签,**不影响**实际坐标。
95
+ - T2 的 `left` 值是视觉上居中的估算,不会精确——用户可以拖。
96
+
97
+ ---
98
+
99
+ ## L1-对偶 「对偶分飞」—— 适用 6~8 字含逗号句
100
+
101
+ **对偶句(6~8 字、中间一个逗号)专用**:上半句和下半句各占一半画面区域,对称铺开。典型如「圣人不死,大盗不止」「先有能量,后有爱」。
102
+
103
+ **两种子形式**:
104
+ - **左右对偶**:上半句靠左,下半句靠右(适合 16:9 / 4:3 横板)
105
+ - **上下对偶**:上半句在画面上 1/3,下半句在画面下 1/3,主体在中间(适合 3:4 竖板,也可用于横板)
106
+
107
+ ```
108
+ 左右对偶(横板推荐): 上下对偶(竖板推荐):
109
+ ┌─────────────────┐ ┌───────────┐
110
+ │ 上半句 │ │ 上半句 │
111
+ │ ┌─────┐ │ │ │
112
+ │ │ S │ │ │ S │
113
+ │ └─────┘ │ │ │
114
+ │ 下半句 │ │ 下半句 │
115
+ └─────────────────┘ └───────────┘
116
+ ```
117
+
118
+ **重要技巧**:对偶两半的**对应位置关键字**可以**同字号或略大**,作为视觉重音。
119
+ - 例:「圣人·大盗」分别成为两半的重音,"不死·不止"略小。
120
+
121
+ ---
122
+
123
+ ## L2 「左人右字」—— 最高频、最通用
124
+
125
+ **主体占画面左半,大字竖向或横向堆在右侧**。经典版式,信息密度高。
126
+
127
+ **适用**:有明确人物 / 意象 + 需要清晰阅读文字的选题。
128
+ **参考气质**:人物立绘 / 主意象与竖排大字对望的经典杂志式排版。
129
+
130
+ ```
131
+ ┌────────────────────────┐
132
+ │ T3 │
133
+ │ ┌──────┐ │
134
+ │ S │ T1 字│ │
135
+ │ │ T1 字│ │
136
+ │ └──────┘ │
137
+ │ T2 │
138
+ │ T4 │
139
+ └────────────────────────┘
140
+ ```
141
+
142
+ **16:9**:S 占左 55%,T1 堆在右 40% 居中。
143
+ **4:3**:S 占左 50%,T1 占右 45%。
144
+ **3:4**:改为"上图下字"或"上字下图"——竖版把 L2 旋转 90°。
145
+
146
+ ---
147
+
148
+ ## L2-长句 「关键词重音」—— 适用 9+ 字长句
149
+
150
+ **专门处理长句 T1**(如「集体潜意识的创伤释放」「你要选择怎样的人生」):抽出 2~4 个关键字做超大重音,其余字做中号副行。
151
+
152
+ ```
153
+ ┌───────────────────────────┐
154
+ │ T3 │
155
+ │ ┌─────┐ │
156
+ │ 副行1 │ 重 │ │
157
+ │ 副行2 │ 音 │ │ ← "重音"2~4字 占画面高 40%
158
+ │ S └─────┘ │ ← 副行字号是重音的 30~50%
159
+ │ T2 │
160
+ │ T4 │
161
+ └───────────────────────────┘
162
+ ```
163
+
164
+ **关键词选法**:从原句里挑**情绪/意象/动词最强**的 2~4 字作为重音。
165
+ - 「集体潜意识的创伤释放」→ 重音 **释放**,副行"集体潜意识的·创伤"
166
+ - 「你要选择怎样的人生」→ 重音 **选择** 或 **人生**,副行"你要·怎样的"
167
+
168
+ **重要**:副行字号小但**必须清晰**,不要做到手机上看不见。
169
+
170
+ ---
171
+
172
+ ## L3 「全景电影海报」
173
+
174
+ **主体做成全景式中心图,字压在底部或顶部横条**。最接近电影海报质感。
175
+
176
+ **适用**:史诗感 / 群像 / 全片概括向选题,尤其是主视觉本身有宏大场景(超新星、深海、废墟、城市)。
177
+ **参考气质**:全景大场面压顶、底部字幕条收束的院线海报感。
178
+
179
+ ```
180
+ ┌────────────────────────┐
181
+ │ T3 T5 │
182
+ │ [ 大全景 S ] │
183
+ │ │
184
+ │ ───────────── │
185
+ │ T1 T1 T2 │
186
+ │ T4 │
187
+ └────────────────────────┘
188
+ ```
189
+
190
+ **16:9**:全景占上 70%,底部 30% 给字区。
191
+ **4:3**:全景占上 65%,底部 35% 给字区。
192
+ **3:4**:全景占上 75%,底部 25% 给字区。
193
+
194
+ ---
195
+
196
+ ## L4 「胶片 / 磁带 / 取景框」
197
+
198
+ **用画中画形式**:画面主体是一个"设备 / 媒介物"(取景器、磁带、老电视、海报),里面嵌套真正的内容图。
199
+
200
+ **适用**:元讨论 / 媒介批评 / 影评 / 访谈类选题。
201
+ **参考气质**:媒介物做外框、内容图嵌套其中的画中画怀旧感。
202
+
203
+ ```
204
+ ┌────────────────────────┐
205
+ │ [设备外框装饰] │
206
+ │ ┌─────────┐ │
207
+ │ │ 内嵌 │ T1 T1 │
208
+ │ │ S │ T2 │
209
+ │ └─────────┘ │
210
+ │ T3 设备细节 T4 │
211
+ └────────────────────────┘
212
+ ```
213
+
214
+ **16:9**:内嵌图占中心 50%,设备外框占外围 50%。
215
+ **4:3**:内嵌图占中心 55%。
216
+ **3:4**:内嵌图占上 60%,下方 40% 留给 T1 大字和设备底部装饰。
217
+
218
+ ---
219
+
220
+ ## L5 「空灵素白 / 极简」
221
+
222
+ **大面积留白,主体以浅轮廓 / 线稿 / 透明叠加存在,T1 大字变成唯一视觉重量**。
223
+
224
+ **适用**:治愈 / 文学感 / 轻盈调性的选题。
225
+ **参考气质**:大留白 + 淡彩线稿主体的文艺极简海报感。
226
+
227
+ ```
228
+ ┌────────────────────────┐
229
+ │ T3 │
230
+ │ │
231
+ │ T1 T1 ╱S╲ │ ← S 是半透明线稿/淡彩
232
+ │ (浅) │
233
+ │ T2 │
234
+ │ T4 │
235
+ └────────────────────────┘
236
+ ```
237
+
238
+ 色板:用栏目色板中**最浅 / 最柔**的一档(由栏目封面风格资产供给)。
239
+
240
+ ---
241
+
242
+ ## L6 「撕痕 / 色块拼贴」
243
+
244
+ **画面被几何色块或不规则撕痕切开**,主体在一块,字在另一块,制造"蒙太奇"感。
245
+
246
+ **适用**:有强反差 / 二元对立的选题(如"主人也是奴隶"、"爱与恨"、"狂喜与绝望")。
247
+ **参考气质**:色块切割、两半互撞的拼贴蒙太奇感。
248
+
249
+ ```
250
+ ┌────────────────────────┐
251
+ │ ╱ 色块A ╲ ╱ 色块B ╲ │
252
+ │ │ T1 │ │ S │ │
253
+ │ │ T2 │ │ │ │
254
+ │ │ │ │ │ │
255
+ │ ╲──────╱ ╲──────╱ │
256
+ │ T4 T3 │
257
+ └────────────────────────┘
258
+ ```
259
+
260
+ 色块 A / B 颜色需从栏目色板中选一对**对比色**(对比色对由栏目封面风格资产供给)。
261
+
262
+ ---
263
+
264
+ ## 选配表(快速决策)
265
+
266
+ ### 第一步:按 T1 字数筛布局
267
+
268
+ | T1 字数 / 结构 | 主选布局 | 备选 |
269
+ |---|---|---|
270
+ | 4 字 | L1 左右分飞 | L3 全景底部整排 |
271
+ | 5 字 | L2 左人右字(右侧竖排) | L1(拆为 2+3 或 3+2) |
272
+ | 6~8 字含逗号(如"圣人不死,大盗不止") | **L1-对偶** | L6 撕痕拼贴(每半句在一个色块里) |
273
+ | 6~8 字不含逗号 | L2 分两行 | L3 底部两行 |
274
+ | 9+ 字长句(如"集体潜意识的创伤释放") | **L2-长句 关键词重音** | L5 极简(轻盈调性向) |
275
+
276
+ ### 第二步:按选题气质选色板
277
+
278
+ 方法条(框架只持有方法,不持有映射):
279
+ 1. 先定选题的**情绪 / 气质**(剖开、悬疑、史诗、温柔、对立、怀旧……)。
280
+ 2. 再按「气质 → 色板」映射表选色板——该映射表由**栏目封面风格资产**持有,本 skill 运行时从风格资产读取注入。
281
+
282
+ ### 第三步:品牌戳 / 期号放哪
283
+
284
+ **动态评估**,不固定:
285
+ 1. 画出主视觉之后,看四角哪两个留白最多且**不在 B 站右上角标安全区**(右上 1/8)。
286
+ 2. 品牌戳和期号分居两个角(避免扎堆)。
287
+ 3. 用户**没给**就**不放**,留白的角保持留白(这反而更高级)。
288
+
289
+ ---
290
+
291
+ ## 其他布局的 H5 默认坐标(待补)
292
+
293
+ 目前只有 **L1** 给出了完整的 H5 工作台 DEFAULTS JSON(见 L1 小节末尾)。
294
+
295
+ 其他布局(L1-对偶 / L2 / L2-长句 / L3 / L4 / L5 / L6)**第一次用到时现场推算**,推算方法:
296
+
297
+ 1. **T1 字符数** 决定 DEFAULTS 中 `layers` 里 T1 项的数量:
298
+ - L1 / L1-对偶:4 个 `char1-char4`(对偶按 2+2 拆,即便句子是 6~8 字,也按"重音字"逻辑选 4 个最大字)
299
+ - L2(5 字竖排):5 个 `char1-char5`
300
+ - L2-长句(关键词重音法):2~4 个 `char1-charN` 做重音字 + 额外一个 `subline` 放副行长文本
301
+ - L3(底部横排):全部字在一行,按 T1 字数决定数量
302
+ 2. **左/右边距**:横版一般 100~300px;竖版 150~200px
303
+ 3. **字号**:按下表估算
304
+ - 4 字 T1:400~600px(横版)/ 380~460px(竖版)
305
+ - 5~6 字 T1:280~400px
306
+ - 8 字对偶每字:240~320px
307
+ - 长句关键词重音:400~600px;副行 120~200px
308
+ 4. **T2 / T5**:每尺寸按画面气质选一个合理的位置(底部居中 / 右下 / 左上 等),字号参考 L1 的范围(T2 40~50,T5 30~40)
309
+
310
+ 补完 JSON 后用同样的"推算说明"格式追加到对应布局小节末尾,以便下次复用。
311
+
312
+ ---
313
+
314
+ ## 生成 DEFAULTS JSON 的通用脚手架
315
+
316
+ 不管什么布局,模板是:
317
+
318
+ ```js
319
+ const DEFAULTS = {
320
+ '16_9': {
321
+ canvas: { w: 2400, h: 1350 },
322
+ layers: {
323
+ /* T1 各字:按布局拆分 */
324
+ char1: { type: 't1', pos: '<位置标签>', left: <x>, top: <y>, size: <字号> },
325
+ // ... 更多 char
326
+ /* T2 副标 */
327
+ t2: { type: 't2', pos: '<位置标签>', text: '<默认副标>', left: <x>, top: <y>, size: <字号>, visible: true },
328
+ /* T5 装饰英文 */
329
+ t5: { type: 't5', pos: '<位置标签>', text: '<默认英文>', left: <x>, top: <y>, size: <字号>, visible: true },
330
+ },
331
+ },
332
+ '4_3': { canvas: { w: 2400, h: 1800 }, layers: { /* 同结构 */ } },
333
+ '3_4': { canvas: { w: 1500, h: 2000 }, layers: { /* 同结构 */ } },
334
+ };
335
+ ```
336
+
337
+ 用户在工作台里能拖 / 调 / 改,所以 DEFAULTS 给的是"**不难看的起点**"而不是"最终版"。求稳不求精。
@@ -0,0 +1,119 @@
1
+ # 文生图 Prompt 模板(框架版)
2
+
3
+ **铁律**:
4
+ - **不**在 Prompt 里要求生图模型渲染中文字。汉字由**阶段二的 H5 工作台**贴字(用户用浏览器交互完成),图里**只留"气息性的软留白"**——不必做硬留白约束。
5
+ - 总是输出**英文主版 + 中文辅版**两套。
6
+ - 三种尺寸(16:9 / 4:3 / 3:4)**各出一套**,构图差异显式化:
7
+ - **16:9**:横版,主体居中,两侧有气息的空间
8
+ - **4:3**:横版饱满,主体可以顶到三边,对角留气口
9
+ - **3:4**:竖版,主体在中段,上下舒展,便于"上下分飞"排字
10
+ - 每套 Prompt 各占一段,不要三尺寸塞一个段落。
11
+ - 每套都塞满"风格锚点 + 色板 + 材质"三件套,不要只写主体。
12
+
13
+ **风格注入槽位**:框架对审美零预设,风格三件套里的「风格」与「材质」是两个注入槽位,值由**栏目封面风格资产**供给;无资产时用中性默认值。
14
+
15
+ | 槽位 | 含义 | 中性默认值 | 栏目资产供值示例(示例、非默认) |
16
+ |---|---|---|---|
17
+ | 【风格锚点 A】 | 画风定调串 | cinematic illustration, clean composition | anime illustration style, 2D cel-shaded |
18
+ | 【材质串 T】 | 质感/印刷肌理串 | subtle film grain | film grain, paper texture, halftone dots |
19
+
20
+ ---
21
+
22
+ ## 英文主版骨架(Midjourney / SD / Flux / Nano Banana)
23
+
24
+ ```
25
+ [主体 S 描写], [容器意象 C 融合描写], [情绪氛围 M],
26
+ 【风格锚点 A】,
27
+ [光线 L], [镜头 Cam], [色板 P],
28
+ 【材质串 T】,
29
+ composition: [留字位描述 R],
30
+ negative: photorealistic face, 3D render, glossy skin, ugly anatomy, watermark, text, chinese characters, blurry
31
+ --ar [比例] --style raw --stylize 250
32
+ ```
33
+
34
+ (负面提示里与画风相斥的项目也随栏目资产调整,如写实系栏目不排除 photorealistic。)
35
+
36
+ ### 槽位填法
37
+
38
+ | 槽位 | 填法 | 范例 |
39
+ |---|---|---|
40
+ | S | 角色外形 + 表情 + 姿态;或抽象意象描写 | a solitary young woman with silver hair, downcast eyes, wearing a dark coat / a lone astronaut silhouette |
41
+ | C | 容器意象的视觉化,叠在主体身上/周围 | overlaid with translucent neural network patterns glitching / surrounded by colliding light particles forming a supernova |
42
+ | M | 情绪形容 | quiet despair yet faint hope, suffocating tenderness, cold clinical detachment |
43
+ | L | 光线 | rim light from behind, single hard light from upper left, god rays through dust |
44
+ | Cam | 镜头 | close-up portrait, medium shot, wide cinematic shot, dutch angle |
45
+ | P | 色板(由栏目风格资产的色板表供英译) | 见下「色板英译」 |
46
+ | R | 留字位 | 软建议而非硬约束。例如 "edges with softer visual weight for typography overlay" / "central subject with breathing room on sides" |
47
+ | 比例 | --ar 参数 | `--ar 16:9` / `--ar 4:3` / `--ar 3:4` |
48
+
49
+ ### 色板英译
50
+
51
+ 色板英译由**栏目风格资产的色板表自带**(每个色板代号配一条英文描述串);无资产时用中性描述(如 muted cool palette with a single warm accent)。格式示例:
52
+
53
+ ```
54
+ | 代号 | 英文描述 |
55
+ |---|---|
56
+ | P-x | steel blue and bone white, single warm amber accent |
57
+ ```
58
+
59
+ ### 完整范例(16:9,"过拟合"主题)——某栏目实例(风格锚点/色板为该栏目资产值)
60
+
61
+ ```
62
+ a lone young woman gazing away, her silhouette gradually dissolving into
63
+ translucent glitching neural network lines, looping patterns repeating
64
+ over her shoulders and hair, quiet despair with a distant trace of
65
+ awakening, anime illustration style, 2D cel-shaded with thick line
66
+ art, rim light from behind suggesting hidden warmth, medium close-up
67
+ slightly off-center, steel blue and bone white palette with a single
68
+ amber accent, film grain, paper texture, halftone noise on background,
69
+ composition: subject centered with breathing room on both sides,
70
+ edges with softer visual weight so typography can overlay later,
71
+ negative: photorealistic face, 3D render, glossy skin, ugly anatomy,
72
+ watermark, text, chinese characters, blurry, extra fingers, deformed hand
73
+ --ar 16:9 --style raw --stylize 250
74
+ ```
75
+
76
+ ---
77
+
78
+ ## 中文辅版骨架(即梦 / 可灵 / 通义万相 / 文心)
79
+
80
+ 中文模型对自然语言段落式 Prompt 响应更好,不要生搬英文结构。
81
+
82
+ ```
83
+ 【画面主体】一位/一件/一个……,[外形 + 神态 + 姿势]。
84
+ 【容器意象】画面中融合 [容器的视觉化描述],与主体叠压 / 环绕 / 映射在背景。
85
+ 【情绪氛围】整体气氛 [情绪形容]。
86
+ 【风格】[风格锚点 A 的中文表述],不要真人写真,不要 3D 渲染(排除项随栏目画风调整)。
87
+ 【光线】[光线描述]。
88
+ 【镜头】[镜头角度与景别]。
89
+ 【色彩】主色 [主色],辅色 [辅色],点缀 [强调色](取值由栏目色板表供给)。
90
+ 【质感】[材质串 T 的中文表述]。
91
+ 【构图】主体 [位置];[明确留白区域],该区域绝对不要出现任何元素。
92
+ 【排除】不要文字,不要中文字符,不要水印,不要 3D 光泽皮肤,不要多余手指。
93
+ 【比例】[16:9 / 4:3 / 3:4]。
94
+ ```
95
+
96
+ ---
97
+
98
+ ## 模型差异化调参
99
+
100
+ | 平台 | 独有参数 / 注意事项 |
101
+ |---|---|
102
+ | Midjourney v7 | 加 `--style raw --stylize 150~400`;需要一致风格时加 `--sref <URL>` 引用一张基准图 |
103
+ | Flux.1 (dev/pro) | 去掉 `--ar` 用 `aspect ratio: 16:9` 自然语言;风格锚点要更具体 |
104
+ | Stable Diffusion XL | 用 `(keyword:1.3)` 给权重;负面提示单独输入 |
105
+ | Nano Banana | 接受长段描述,可直接贴中文辅版;支持参考图输入 |
106
+ | 即梦 / 可灵 | 参考图 + 中文辅版效果最佳,英文 Prompt 表现弱 |
107
+ | 通义万相 | 对"不要 XX"这类排除描述响应很好,用中文辅版 |
108
+
109
+ ---
110
+
111
+ ## 常见 Prompt 失败与补救
112
+
113
+ | 症状 | 补救 |
114
+ |---|---|
115
+ | 模型硬要画中文字,全是乱码 | 负面提示加 `text, chinese characters, letters, signs`,主提示加 `no text, empty space for text overlay` |
116
+ | 脸的质感偏离栏目画风(如插画系被画成真人磨皮) | 主提示前置栏目的【风格锚点 A】并显式排除对立画风(如 `NOT photorealistic`);负面加对立项(如 `3D render, photograph, realistic skin`) |
117
+ | 主体被容器意象吞掉,看不清 | 调整描述比例:"subject clearly visible, container motif as translucent overlay at 30% opacity" |
118
+ | 太满没留字位 | 显式写 "composition: LEFT THIRD completely empty, solid color, no elements";可先用构图图参考(scribble / sketch)约束 |
119
+ | 色板没出效果 | 把色板 HEX 值写进 Prompt:`dominant colors #XXXXXX and #XXXXXX`;或附参考色板图。精确色 token 由栏目风格资产自带,写进 Prompt 用 HEX |
@@ -0,0 +1,99 @@
1
+ # 工作台实例化指南(workbench-guide)
2
+
3
+ `assets/workbench-template.html` 是**中性活范本**:一份完整可运行的排字工作台(拖拽 / 方向键 / 数值 / 滚轮微调、逐尺寸与一键导出),实例化 = 逐替换位换成当期值。本文是替换位总表 + 工程注意 + 合规检查。
4
+
5
+ ## 0. 分工提醒
6
+
7
+ 模板的 **JS 引擎层不要动**:拖拽 / 方向键 / 滚轮 / 图层选中 / 舞台缩放(负 margin 占位)/ 导出(html2canvas)都是通用基建。要动的只有**数据与样式**:占位符、常量、DEFAULTS、CSS 变量与字体、图层组。
8
+
9
+ ## 1. 替换位总表
10
+
11
+ | 替换位 | 位置 | 说明 |
12
+ |---|---|---|
13
+ | `__BG_16_9__` / `__BG_4_3__` / `__BG_3_4__` | 各 `.cover` 的 `<img class="bg">` | 唯一的显式占位符:换成 `data:image/jpeg;base64,<压缩后>` |
14
+ | `<title>` / `<h1>` / `.sub` / 3 个 `.pill` | 头部 | 当期 T1、英文副题、布局名 / 色板名 / 操作提示 |
15
+ | `T1_KEYS` 常量 | script 顶部 | **T1 字数驱动的总开关**,见 §2 |
16
+ | `#t1-text` 的 `value` 与 `maxlength`、`state.t1Text` | 右栏 + script | T1 初值**两处**必须一致 |
17
+ | 各 `.cover` 内的 `char*` div 组 | 三个 cover | 数量与 `T1_KEYS` 一致、initial 文本逐字填 |
18
+ | `t2 / t5 / t4` 初始文案 | cover 内 div **与** DEFAULTS `text` 双处 | 副标题(≤12 字钩子)/ 装饰英文 / 品牌戳(用户没给就 `visible:false` 且不编内容) |
19
+ | `DEFAULTS` 整块 | script | 三尺寸 × 全图层默认坐标:从 layout-recipes 选配方起步,再按实际画面气口微调 |
20
+ | `:root` 色板变量 | CSS | 见 §3 |
21
+ | `.t1` 字体 / 描边 / 发光 | CSS **与** `applyT1Style()` | 发光 rgba **两处**(CSS 初值 + JS 滑杆模板串)必须同色 |
22
+ | `#t1-color` 选项 / 发光滑杆 label 与默认值 | 右栏 | 按栏目色板给 2~3 档字色;发光名跟色板叫(银辉 / 琥珀 / …) |
23
+ | 装饰件默认开关 | 右栏 checkbox + `applyInner/applyCorner` | 当期装饰件决策的落点 |
24
+ | 尺寸 tab 的 `.desc` | 左栏 | 标注当期布局(如「左人右字」「上下分飞」) |
25
+
26
+ ## 2. T1 字数驱动(防「四字机器」回潮)
27
+
28
+ 模板 T1 图层数由 `T1_KEYS` 常量驱动。当期 T1 为 N 字时,改四处并保持一致:
29
+ 1. `T1_KEYS = ['char1', …, 'charN']`;
30
+ 2. 每个 `.cover` 内放 N 个 `char*` div(initial 逐字填);
31
+ 3. `#t1-text` 的 `maxlength="N"` 与 `value`;
32
+ 4. `DEFAULTS` 三尺寸各含 N 条 `char*` 坐标。
33
+
34
+ `applyT1Text / renderCharBlocks / applyT1SizeAll` 都吃 `T1_KEYS`,不用改。`#t1-size-all` 滑杆的 min/max 按字号量级调(4 字大字 280~800;5 字竖排 150~700)。
35
+
36
+ ## 3. 色板 CSS 变量(变量名固定、换值即换装)
37
+
38
+ | 变量 | 语义 | 用途 |
39
+ |---|---|---|
40
+ | `--midnight` | 最深底色 | 画布底、T1 描边、色块 |
41
+ | `--indigo` | 次深色 | 氛围渐变 |
42
+ | `--amber` | **强调色**(语义槽位,不必是琥珀) | UI 强调、选中框、导出钮、T5/装饰可用 |
43
+ | `--amber-soft` | 强调色柔化档 | hover、副文本 |
44
+ | `--bone` | 浅色字底 | T1 默认字色、浅 UI 文本 |
45
+
46
+ 值从**栏目封面风格资产的色板表**取;无资产用模板自带中性值。UI chrome 与画布共用这套变量——换值后整个工作台会跟着栏目气质走,这是特性不是 bug。
47
+
48
+ ## 4. 附加文字图层(品牌戳 / 拟声词 / 任意)
49
+
50
+ 图层机制对非 T1 图层是通用的(`applyLayers` 按 `ls.type !== 't1'` 走 text/visible 同步)。加一个图层四步:
51
+ 1. `DEFAULTS` 三尺寸各加条目 `{type:'<自定义>', pos, text, left, top, size, visible}`;
52
+ 2. 每个 `.cover` 加 `<div class="layer-text <类名>" data-layer-key="<key>">初值</div>`;
53
+ 3. `SUB_KEYS` / `SUB_LABELS` 登记(右栏出微调 block);
54
+ 4. CSS 加 `.<类名>` 样式(字体 / 颜色 / z-index;旋转等静态变换写在类里,不影响拖拽)。
55
+
56
+ 已验证先例:品牌戳(手写体、可拖)、拟声词(手写体 + 静态旋转 + 强调色,「全画面唯一与强调色同源的字」这类点睛用法)。
57
+
58
+ ## 5. 逐尺寸样式覆写(浅底反转墨色技法)
59
+
60
+ 某一尺寸的背景局部是浅色(如竖版下段渐变成纸面)时,可把该尺寸的文字整体反转为深色:
61
+
62
+ ```css
63
+ /* 覆写 .t1 必须 !important —— applyT1Style() 会写内联样式 */
64
+ .cover[data-size="3_4"] .t1 { color: #16233A !important; -webkit-text-stroke: 0 transparent !important; text-shadow: 0 2px 12px rgba(20,30,50,0.18) !important; }
65
+ /* t2/t5/t4 无内联色,普通级联即可 */
66
+ .cover[data-size="3_4"] .t2 { color: rgba(30,58,95,0.92); text-shadow: none; }
67
+ ```
68
+
69
+ 交付时必须告知用户:**该尺寸不受全局字色 / 发光滑杆影响**,是当期审美决策。
70
+
71
+ ## 6. 装饰件片段
72
+
73
+ - **薄内框**(装裱感):`.inner-frame { position:absolute; inset:50px; border:2px solid <色>; pointer-events:none; z-index:5; }` + 右栏开关 + `applyInner()`(模板已带,默认关)。浅底尺寸配 §5 覆写深色框。
74
+ - **四角断线框**:模板已带(`.corner` ×4 + 开关,默认关)。
75
+ - 胶带 / 撕痕 / REC 取景框等:按当期气质现写(绝对定位 + `pointer-events:none` + `z-index:5`,加进每个 `.cover`);**装饰件是显式决策**——用或不用都要说理由。
76
+
77
+ ## 7. 背景图归位与压缩
78
+
79
+ - **归位按宽高比**:`w/h ≥ 1.55 → 16:9`;`≥ 1.15 → 4:3`;否则 `3:4`。同档有多张时显式选择并告知备选(用户可用左栏「上传当前尺寸的背景图」随时换)。归不上任何档就问,别硬塞。
80
+ - **压缩参数**(JPEG、渐进式):16:9 长边 ≤1280 / q82;4:3 ≤1600 / q78;3:4 ≤1400 / q78。纹理极密的图压不动属正常,别为体积牺牲画质到 q70 以下。
81
+ - **体积红线**:整份 HTML **>1MB 必须回头降参**(浏览器打开明显变慢);>600KB 提示一句即可。
82
+ - **纪律**:从**原路径**读用户图,压缩产物直接 base64 进 HTML;压缩脚本落**系统 temp、用完即删**;不留任何中间图片副本。
83
+
84
+ ## 8. 工程注意(踩过的坑)
85
+
86
+ - **缩放占位**:画布用 `transform: scale` 只缩视觉不缩布局,模板已用「`transform-origin: top left` + 负 margin」把占位收缩到缩放后尺寸——**别改回直接设小宽高**(会让外框阴影只包住左上角)。
87
+ - **导出**:html2canvas 对发光 text-shadow 的还原略弱于屏显,用户觉得弱就把发光滑杆 +10~15% 再导;一键导出首次会触发浏览器「允许下载多个文件」授权,交付时提示。
88
+ - **布局状态在内存**:刷新页面回默认坐标——交付时提醒「调好就导出,导出前别刷新」。
89
+ - **字体**:模板经字体服务引入(含手写体),首次打开需联网;断网回退系统字体、不阻塞。
90
+
91
+ ## 9. 实例化后合规检查(交付前必过)
92
+
93
+ - [ ] 占位符零残留(全文检索 `__BG_` 无命中);
94
+ - [ ] `T1_KEYS` 长度 = 各 cover 的 char div 数 = `maxlength` = DEFAULTS char 条目数;
95
+ - [ ] T1 初值两处一致(`#t1-text` value 与 `state.t1Text`);
96
+ - [ ] DEFAULTS 三尺寸齐、每尺寸含全部图层条目;
97
+ - [ ] 发光 rgba 在 CSS 与 `applyT1Style()` 两处同色;
98
+ - [ ] 默认坐标避开用户分发平台的安全区(如 B 站横版底部 1/10 进度条灰化区、右上 1/8 角标区);
99
+ - [ ] 能验就在浏览器验一遍:控制台零报错、三尺寸切换正常、图层可拖。
@@ -55,6 +55,11 @@ description: B-roll 检索铺轨器——成片管线里第一个铺的车道(
55
55
 
56
56
  ## 执行(每次都带 `--json`)
57
57
 
58
+ > **产物落点纪律(MUST · 全文见随包 `AGENT.md` 同名一节)**:
59
+ > 一切产物(成片 / 预览 / 代理 / 素材 / 工程文件)只落**工程目录**或**用户显式指定的输出路径**;
60
+ > **MUST NOT** 把成片、预览或任何大媒体文件复制到 agent 自有工作目录(如用户文档目录下 agent 产品自建的目录、agent 家目录缓存、会话工作区)——需要引用媒体时**用原路径引用**,不做副本(B-roll 代理 / 原片由 CLI 落工程 `assets/` 下,别另拷);
61
+ > 临时文件一律放系统 temp 且**用完即删**(含中断 / 失败路径)。违者后果 = 用户系统盘被静默吃满(真机事故,非假设)。
62
+
58
63
  ```bash
59
64
  gtrk matrix --project "<split 产物目录>" [--lay N] [--score-floor F] [--top-k K] [--column <id>] --json
60
65
  ```