cerevox 4.20.2 → 4.21.0

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,142 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.directorComicStoryboardTemplate = void 0;
4
+ const cinematicIntensityMap = {
5
+ balanced: `【镜头强度】稳健克制,优先清晰叙事与连续性。`,
6
+ strong: `【镜头强度】更强景别反差、视觉重音与导演感,但保持叙事清晰。`,
7
+ aggressive: `【镜头强度】更强钩子与冲击力,节奏对比明显,适合短视频风格。`,
8
+ };
9
+ const directorComicStoryboardTemplate = (params) => {
10
+ const { userPrompt, page_aspect_ratio = '1:1', minPanels, forVideoDuration, cinematicIntensity = 'strong', } = params;
11
+ const safeMinPanels = typeof minPanels === 'number' && Number.isFinite(minPanels)
12
+ ? Math.max(3, Math.min(12, Math.floor(minPanels)))
13
+ : undefined;
14
+ const intensityBlock = cinematicIntensityMap[cinematicIntensity] ?? cinematicIntensityMap.strong;
15
+ const panelCountRule = safeMinPanels
16
+ ? `
17
+ 【画格数量规则】
18
+ - 实际可识别的叙事画格数量 **不少于 ${safeMinPanels}**
19
+ - 可以多于 ${safeMinPanels},但不能少于 ${safeMinPanels}
20
+ - 需要根据剧情内容自然分配画格,不要机械平均切分
21
+ `.trim()
22
+ : `
23
+ 【画格数量规则】
24
+ - 未指定最小格子数,因此你必须根据剧情内容、视频长度、镜头节奏、信息密度、动作复杂度自动决定画格数量
25
+ - 如果提供了视频时长,请结合时长决定镜头密度与分格数量
26
+ - 最终画格数量应控制在适合单页阅读和清晰叙事的范围内,通常为 **3~12 格**
27
+ - 短时长、信息简单、动作少:使用更少但更有效的画格
28
+ - 时长更长、信息更多、动作更复杂:使用更多画格,但不要为了凑数而机械切分
29
+ `.trim();
30
+ const videoDurationRule = forVideoDuration !== undefined && forVideoDuration !== null
31
+ ? `
32
+ 【视频时长参考】
33
+ - 目标视频时长:**${forVideoDuration}秒**
34
+ - 若未指定最小格子数,请根据该视频长度自动决定使用几格,以及镜头节奏快慢
35
+ - 时长越短,镜头应更凝练,减少无效过渡
36
+ - 时长越长,允许增加镜头数量,但仍需保证每格都有明确叙事作用
37
+ `.trim()
38
+ : `
39
+ 【视频时长参考】
40
+ - 若未指定最小格子数,则根据剧情信息量与镜头节奏自行决定画格数量和节奏密度
41
+ `.trim();
42
+ const finalOutputRule = safeMinPanels
43
+ ? `
44
+ 【最终输出】
45
+ - 一张比例为 **${page_aspect_ratio}** 的专业漫画分镜页
46
+ - 画格数量 ≥ **${safeMinPanels}**
47
+ - 每格右下角标注景别和序号
48
+ - 镜头链条清晰、专业、吸引人,并适合后续生成视频
49
+ `.trim()
50
+ : `
51
+ 【最终输出】
52
+ - 一张比例为 **${page_aspect_ratio}** 的专业漫画分镜页
53
+ - 画格数量由你根据剧情内容、视频长度和镜头节奏自动决定
54
+ - 画格数量应合理,通常控制在 **3~12 格**
55
+ - 每格右下角标注景别和序号
56
+ - 镜头链条清晰、专业、吸引人,并适合后续生成视频
57
+ `.trim();
58
+ return `像一位经验丰富的电影导演在设计漫画分镜一样思考。
59
+ 你将生成:**一张导演级漫画分镜页 / 叙事插画页**。
60
+
61
+ 【核心目标】
62
+ - 使用专业漫画 + 电影分镜思路讲故事
63
+ - 每个画格都应像一个可拍摄的视频镜头
64
+ - 优先保证:镜头专业、节奏专业、吸引眼球、方便后续生成视频
65
+
66
+ 【画面规格】
67
+ - 输出为 **一张完整合成图**
68
+ - 整体比例:**${page_aspect_ratio}**
69
+ - 分格可以规则也可以自由,只要阅读顺序清晰
70
+
71
+ ${panelCountRule}
72
+
73
+ ${videoDurationRule}
74
+
75
+ 【画格角标规则】
76
+ - 每个画格右下角必须标注 **景别 + 序号**
77
+ - 景别只能使用:**远 / 中 / 近 / 特**
78
+ - 示例:**远 1、 中 2、 近 3、 特 4**
79
+ - 角标必须小而清晰,位于格子内部右下角
80
+ - 不得遮挡人物脸部、动作或关键道具
81
+ - 除角标外,默认不要其他文字
82
+
83
+ 【镜头设计要求】
84
+ - 每个画格都必须体现:
85
+ - 景别
86
+ - 机位
87
+ - 运镜倾向
88
+ - 主体动作
89
+ - 情绪目标
90
+ - 叙事功能
91
+ - 每个镜头必须推动至少一项:
92
+ - 信息推进
93
+ - 动作推进
94
+ - 情绪推进
95
+
96
+ 【专业镜头语言】
97
+ - 景别必须有变化:先建立空间与人物关系,再推进冲突,最后完成高潮 / 反应 / 余韵
98
+ - 景别遵循:遵循用户需求,不强制从远景开始;可从中近景 / 特写开场,但需在前几格完成空间建立;关键转折给特写或揭示镜头
99
+ - 运镜要有目的:
100
+ 固定 = 稳定叙事
101
+ 推近 = 强调或逼近情绪
102
+ 拉远 = 抽离或余韵
103
+ 跟拍 = 动作延续
104
+ 横移 = 展示空间关系
105
+ - 必须使用:
106
+ - reaction shot(反应镜头)
107
+ - 动作拆解
108
+ - 信息逐步揭示
109
+ - 高潮视觉重音
110
+
111
+ 【视频友好要求】
112
+ - 每个画格都应能被一句话描述为视频镜头
113
+ - 主体动作必须明确,例如:
114
+ 转头、抬眼、停下、伸手、后退、奔跑、闪避、回望、推门、靠近
115
+ - 角色站位、朝向、视线、动作延续必须前后可追踪
116
+ - 关键道具位置不能突然消失或漂移
117
+
118
+ 【叙事节奏】
119
+ - 整页应形成完整链条:
120
+ 建立 → 推进 → 转折 → 反应 → 结果 → 余韵
121
+ - 不允许整页只是重复同一状态
122
+
123
+ 【剧情类型识别】
124
+ - 根据用户输入的剧情自动识别故事类型
125
+ - 自动选择合适的镜头语言和叙事节奏
126
+ - 例如:对话、动作、悬疑、喜剧、情绪、温情等,但不要生硬套模板
127
+
128
+ 【排版原则】
129
+ - 可以是规则分格,也可以是自由漫画页
130
+ - 大小格、重点格、插入格、长条格都可以
131
+ - 排版服务叙事,镜头设计优先
132
+
133
+ ${intensityBlock}
134
+
135
+ 【用户输入】
136
+ ${userPrompt}
137
+
138
+ ${finalOutputRule}
139
+ `.trim();
140
+ };
141
+ exports.directorComicStoryboardTemplate = directorComicStoryboardTemplate;
142
+ //# sourceMappingURL=storyboard-tpl.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"storyboard-tpl.js","sourceRoot":"","sources":["../../src/utils/storyboard-tpl.ts"],"names":[],"mappings":";;;AAYA,MAAM,qBAAqB,GAAuC;IAChE,QAAQ,EAAE,wBAAwB;IAClC,MAAM,EAAE,gCAAgC;IACxC,UAAU,EAAE,gCAAgC;CAC7C,CAAC;AAEK,MAAM,+BAA+B,GAAG,CAC7C,MAAqC,EAC7B,EAAE;IACV,MAAM,EACJ,UAAU,EACV,iBAAiB,GAAG,KAAK,EACzB,SAAS,EACT,gBAAgB,EAChB,kBAAkB,GAAG,QAAQ,GAC9B,GAAG,MAAM,CAAC;IAEX,MAAM,aAAa,GACjB,OAAO,SAAS,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC;QACzD,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC;QAClD,CAAC,CAAC,SAAS,CAAC;IAEhB,MAAM,cAAc,GAClB,qBAAqB,CAAC,kBAAkB,CAAC,IAAI,qBAAqB,CAAC,MAAM,CAAC;IAE5E,MAAM,cAAc,GAAG,aAAa;QAClC,CAAC,CAAC;;uBAEiB,aAAa;SAC3B,aAAa,UAAU,aAAa;;CAE5C,CAAC,IAAI,EAAE;QACJ,CAAC,CAAC;;;;;;;CAOL,CAAC,IAAI,EAAE,CAAC;IAEP,MAAM,iBAAiB,GACrB,gBAAgB,KAAK,SAAS,IAAI,gBAAgB,KAAK,IAAI;QACzD,CAAC,CAAC;;aAEK,gBAAgB;;;;CAI5B,CAAC,IAAI,EAAE;QACF,CAAC,CAAC;;;CAGP,CAAC,IAAI,EAAE,CAAC;IAEP,MAAM,eAAe,GAAG,aAAa;QACnC,CAAC,CAAC;;YAEM,iBAAiB;aAChB,aAAa;;;CAGzB,CAAC,IAAI,EAAE;QACJ,CAAC,CAAC;;YAEM,iBAAiB;;;;;CAK5B,CAAC,IAAI,EAAE,CAAC;IAEP,OAAO;;;;;;;;;;WAUE,iBAAiB;;;EAG1B,cAAc;;EAEd,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA4DjB,cAAc;;;EAGd,UAAU;;EAEV,eAAe;CAChB,CAAC,IAAI,EAAE,CAAC;AACT,CAAC,CAAC;AApJW,QAAA,+BAA+B,mCAoJ1C"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "cerevox",
3
- "version": "4.20.2",
3
+ "version": "4.21.0",
4
4
  "description": "TypeScript SDK for browser automation and secure command execution in highly available and scalable micro computer environments",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -1,15 +0,0 @@
1
- export type StoryGenre = 'dialogue' | 'action' | 'suspense' | 'thriller' | 'comedy' | 'warm' | 'emotional' | 'auto';
2
- export type Orientation = 'landscape' | 'portrait';
3
- export type StoryboardGridSpec = '3x3' | '2x2' | '2x3' | '3x2';
4
- export type AspectRatio = '16:9' | '9:16' | '1:1';
5
- export interface StoryboardGridParams {
6
- /** 用户输入:剧情+对白(合并)、风格(如动漫/写实/国风等)、氛围、调色、镜头感、参考图、限制条件等都写这里 */
7
- userPrompt: string;
8
- /** 每个格子的规格(宽高比),如 16:9 / 9:16 */
9
- aspect_ratio: AspectRatio;
10
- /** 戏剧类型:只影响镜头语言/节奏,不限定视觉风格 */
11
- genre?: StoryGenre;
12
- grid?: StoryboardGridSpec;
13
- }
14
- export declare const storyboardGridTemplate: (params: StoryboardGridParams) => string;
15
- //# sourceMappingURL=storyboard-grid-tpl.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"storyboard-grid-tpl.d.ts","sourceRoot":"","sources":["../../src/utils/storyboard-grid-tpl.ts"],"names":[],"mappings":"AAQA,MAAM,MAAM,UAAU,GAClB,UAAU,GACV,QAAQ,GACR,UAAU,GACV,UAAU,GACV,QAAQ,GACR,MAAM,GACN,WAAW,GACX,MAAM,CAAC;AAEX,MAAM,MAAM,WAAW,GAAG,WAAW,GAAG,UAAU,CAAC;AAEnD,MAAM,MAAM,kBAAkB,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,CAAC;AAE/D,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,MAAM,GAAG,KAAK,CAAC;AAElD,MAAM,WAAW,oBAAoB;IACnC,4DAA4D;IAC5D,UAAU,EAAE,MAAM,CAAC;IAEnB,iCAAiC;IACjC,YAAY,EAAE,WAAW,CAAC;IAE1B,8BAA8B;IAC9B,KAAK,CAAC,EAAE,UAAU,CAAC;IAEnB,IAAI,CAAC,EAAE,kBAAkB,CAAC;CAC3B;AA+DD,eAAO,MAAM,sBAAsB,GACjC,QAAQ,oBAAoB,KAC3B,MAqHF,CAAC"}
@@ -1,171 +0,0 @@
1
- "use strict";
2
- // 叙事九宫格分镜(单张合成图)通用提示词模板 - TypeScript
3
- // 设计目标:
4
- // - 单张合成图 3x3 九宫格;合成图比例 = 单格比例(同一个参数统一控制)
5
- // - render 固定为单张合成图,不参数化
6
- // - resolution 不参数化
7
- // - mood / palette / lens 不单独参数化:统一放进 userPrompt(用户可自由指定风格:写实/动漫/水彩/像素/赛博等)
8
- // - userPrompt 更笼统:包含剧情+对白+风格要求+任何限制都可
9
- Object.defineProperty(exports, "__esModule", { value: true });
10
- exports.storyboardGridTemplate = void 0;
11
- // 仅做“镜头语言/节奏”的策略,不写死写实/动漫等视觉风格
12
- const genreDirectingMap = {
13
- dialogue: `
14
- 【类型策略:文戏/对话(仅镜头语言,不限制画风)】
15
- - 运镜:稳定为主(固定机位/小幅推拉/轻微环绕),避免无意义晃动
16
- - 节奏:情绪递进;多用过肩与反打,强调眼神与微表情
17
- - 景别:开场不强制远景;可从中景/近景/特写“钩子镜头”开场,但必须在前几格内补足空间与人物关系信息
18
- - 构图:对称/三分法/框中框;前景遮挡增强层次;保持轴线一致
19
- `.trim(),
20
- action: `
21
- 【类型策略:动作戏(仅镜头语言,不限制画风)】
22
- - 运镜:跟拍/环绕/低机位仰拍增强力量感;必要时短促推进或甩镜
23
- - 节奏:切换更快,动作节点清晰;关键击打/闪避用局部特写强化冲击
24
- - 景别:开场不强制大全景;可从中景/近景直接进入动作,但必须在前几格内交代地形/距离关系,避免观众迷失方向
25
- - 构图:动线明确,主体可读性优先,不跳轴
26
- `.trim(),
27
- suspense: `
28
- 【类型策略:悬疑/惊悚(仅镜头语言,不限制画风)】
29
- - 运镜:慢推、停顿、留白;通过遮挡与负空间制造不安
30
- - 节奏:细节提示 → 主角察觉 → 反应 → 线索揭示 → 反转
31
- - 景别:空镜/背影/局部特写/细节特写占比更高
32
- - 构图:门框/走廊等框中框;信息控制(只给一部分)
33
- `.trim(),
34
- emotional: `
35
- 【类型策略:情绪爆发(仅镜头语言,不限制画风)】
36
- - 运镜:前期克制稳定,后期突然靠近/快速推近/轻微手持强化爆发
37
- - 节奏:压抑铺垫 → 临界点 → 爆发 → 余波停留
38
- - 景别:前段更稳,后段景别显著拉近,特写占比提升
39
- `.trim(),
40
- comedy: `
41
- 【类型策略:喜剧(仅镜头语言,不限制画风)】
42
- - 运镜:节奏轻快;“反应镜头(reaction shot)”更关键
43
- - 构图:对称+反差;必要时用夸张透视/突然特写制造笑点
44
- - 节奏:铺垫梗 → 误会/反差 → 爆梗点 → 余韵收尾
45
- `.trim(),
46
- warm: `
47
- 【类型策略:温情/治愈(仅镜头语言,不限制画风)】
48
- - 运镜:平稳、温柔的推近与跟随
49
- - 节奏:空间建立 → 互动细节 → 表情特写 → 余韵收束
50
- - 构图:干净、留呼吸感;细节道具强化情感
51
- `.trim(),
52
- thriller: `
53
- 【类型策略:紧张/惊悚动作混合(仅镜头语言,不限制画风)】
54
- - 运镜:慢推制造紧张 + 突然切换制造惊吓点/揭示点
55
- - 节奏:长铺垫短爆发;中后段适合作为“惊吓/揭示”节点
56
- - 构图:遮挡、背光剪影、局部信息,强调未知
57
- `.trim(),
58
- auto: `
59
- 【类型策略:自动适配(仅镜头语言,不限制画风)】
60
- - 先建立空间与人物关系,再推进冲突,最后完成高潮/反应/余韵
61
- - 景别遵循:不强制从远景开始;可从中近景/特写开场,但需在前几格完成空间建立;关键转折给特写或揭示镜头
62
- `.trim(),
63
- };
64
- const storyboardGridTemplate = (params) => {
65
- const { userPrompt, aspect_ratio, genre = 'auto', grid = '3x3' } = params;
66
- const [rows, cols] = grid.split('x').map(n => Number(n));
67
- const panelCount = rows * cols;
68
- const gridName = grid === '2x2' ? '四宫格' : grid === '3x3' ? '九宫格' : '六宫格';
69
- const establishRangeText = panelCount >= 9 ? '第1-3格' : '第1-2格';
70
- const minChainText = panelCount === 4 ? '2格以上' : '4格以上';
71
- const directingBlock = (genreDirectingMap[genre] ?? genreDirectingMap.auto)
72
- .split('前几格')
73
- .join(establishRangeText);
74
- const narrativeBlock = panelCount === 4
75
- ? `【${grid}${gridName}叙事结构(必须严格执行)】
76
- - 第1-2格:建立空间与人物关系 + 情绪铺垫(第1格不强制全景;可先用中近景/特写制造钩子,但需在第1-2格内交代清楚谁在何处、关系、气氛)
77
- - 第3格:冲突升级 + 关键动作/转折发生
78
- - 第4格:反应镜头 + 信息揭示/结尾余韵收束`
79
- : panelCount === 6
80
- ? `【${grid}${gridName}叙事结构(必须严格执行)】
81
- - 第1-2格:建立空间与人物关系 + 情绪铺垫(第1格不强制全景;可先用中近景/特写制造钩子,但需在第1-2格内交代清楚谁在何处、关系、气氛)
82
- - 第3-4格:冲突升级 + 关键动作/转折发生(触发点必须落在其中一格)
83
- - 第5-6格:反应镜头 + 信息揭示/反转 + 余韵收束(最后一格适合定格式结尾)`
84
- : `【${grid}${gridName}叙事结构(必须严格执行)】
85
- - 第1-3格:建立空间与人物关系 + 情绪铺垫(第1格不强制全景;可先用中近景/特写制造钩子,但需在第1-3格内交代清楚谁在何处、关系、气氛)
86
- - 第4-6格:冲突升级 + 关键动作/转折发生(触发点必须落在其中一格)
87
- - 第7-9格:反应镜头 + 信息揭示/反转 + 余韵收束(最后一格适合定格式结尾)`;
88
- const portraitGridLock = aspect_ratio === '9:16'
89
- ? `
90
- 【9:16竖屏单格专用锁定(必须严格执行)】
91
- - 每一格都是独立的 9:16 竖屏小画面。
92
- - “9:16”只约束每一个小格子,不约束整张合成图。
93
- - 整张图仍然必须保持固定的 ${rows}×${cols} 宫格布局,不得因为竖屏小格而改成更适合横向排布的 5x2、6x2、2x5、2x6 或其他布局。
94
- - 必须理解为:**${panelCount} 个竖屏小格子,整齐排列成一张 ${rows}×${cols} 的分镜合成图。**
95
- - English hard rule: **${panelCount} portrait panels arranged in one fixed ${rows}x${cols} storyboard sheet.**
96
- - English hard rule: **NOT a wide contact sheet. NOT 5x2. NOT 6x2. NOT any non-${rows}x${cols} layout.**
97
- `.trim()
98
- : '';
99
- const gridSpecificLine = grid === '3x3'
100
- ? `- 这是标准九宫格:第一行3格,第二行3格,第三行3格;三行都必须完整。`
101
- : grid === '2x2'
102
- ? `- 这是标准四宫格:2行2列;不得改成单行或竖排。`
103
- : `- 这是标准${grid}布局:必须严格保持 ${rows} 行 ${cols} 列。`;
104
- return `
105
- 你将生成:叙事${grid}${gridName}分镜的【单张合成图】。
106
-
107
- 【画面规格参数|布局是最高优先级,必须严格执行】
108
- - 输出形式:只能是【一张完整的合成图】;不是多张单图,不是拼贴草稿,不是自由漫画页,不是海报式排版。
109
- - 唯一合法布局:**${rows}行 × ${cols}列**,总共 **${panelCount} 格**,每格大小完全一致,必须整齐对齐。
110
- - ${gridSpecificLine}
111
- - English hard rule: **ONE single composite image, EXACTLY ${rows} rows by ${cols} columns, EXACTLY ${panelCount} panels total, no more and no less.**
112
- - English hard rule: **Do NOT change the grid layout.**
113
- - English hard rule: **Do NOT use 5x2, 6x2, 2x5, 2x6, irregular collage, contact sheet, comic page layout, scattered panels, merged panels, or any non-${rows}x${cols} arrangement.**
114
- - 格子边框:thin borders, equal-sized panels, perfectly aligned, evenly spaced.
115
- - 单格宽高比:**${aspect_ratio}**
116
- - English hard rule: **${aspect_ratio} applies to EACH PANEL ONLY, NOT to the whole canvas.**
117
- - English hard rule: **The full image is a fixed ${rows}x${cols} storyboard sheet, while every individual panel is ${aspect_ratio}.**
118
- - panels must be tightly arranged into a clean fixed grid
119
- - no floating panels, no scattered collage, no extra blank poster-like canvas, no irregular panel sizes
120
- - 每格画面的**右下角**标记景别(用**中文**“远/中/近/特”之一)和编号(从1开始到${panelCount}),如“近 1”、“中 2”、“远 3”等;角标要小且清晰,不遮挡主体与关键道具;除了角标,画面中禁止出现字幕和其他文字、数字、符号等。
121
-
122
- ${portraitGridLock ? `${portraitGridLock}\n` : ''}
123
-
124
- 【布局否决条款(比风格、剧情、镜头更高优先级)】
125
- - 如果布局不是 **${rows}×${cols}**,则该结果视为错误。
126
- - 宁可简化单格内容,也必须保住固定宫格布局。
127
- - 不允许为了迁就构图而擅自增加列数、减少行数、合并格子、拆分格子或改变整张合成图的排布方向。
128
- - 禁止输出:5x2、6x2、2x5、2x6、单行长条、双行横排、漫画页式自由分镜、瀑布流拼贴、错位拼贴。
129
- - Layout priority over style and composition: keep the fixed ${rows}x${cols} grid at all costs.
130
-
131
- 【风格与一致性(不锁死画风,完全服从用户要求)】
132
- - 画风 / 风格 / 材质 / 渲染方式严格遵循用户输入(可写实 / 动漫 / 插画 / 国风 / 像素 / 水彩 / 赛博等)
133
- - 场景空间必须一致(同一空间结构、主道具位置关系一致),不跳轴
134
- - 角色外观、服装、发型、年龄、气质严格一致
135
- - 光源方向一致,色温一致,阴影逻辑一致(除非用户明确要求变化)
136
- - 全${grid}${gridName}画面:风格一致、构图统一、色彩体系统一(由用户输入决定)
137
-
138
- 【专业电影分镜总要求】
139
- - 镜头连贯:镜头之间动作 / 视线 / 走位有承接,不出现“瞬移式”跳变
140
- - 景别切换合理:景别按叙事需要递进与呼吸(避免每格都特写或每格都远景);第1格不强制远景 / 全景
141
- - 机位变化可用:俯拍、仰拍、过肩、POV、跟拍、环绕(按剧情需要选择,不要乱用)
142
- - 主体突出:每格只有一个明确“叙事重点”(人物表情 / 动作 / 关键道具 / 揭示对象)
143
- - 构图遵循视觉美学:三分法、对称、引导线、前景遮挡增强层次;避免杂乱
144
- - 轴线清晰:同场对话不乱跳轴;反打要遵循镜头方向一致性
145
-
146
- 【质量约束(必须严格执行)】
147
- - 人物 / 主体数量:严格按用户输入,不得凭空增加 / 减少;同一角色不得出现“分身”
148
- - 道具数量与位置:关键道具必须出现且位置合理(手持 / 桌面 / 地面 / 背包等),不能漂浮、穿模、消失;不要新增无关道具
149
- - 连续性:人物与道具相对位置、朝向、左右关系必须前后一致(除非镜头明确展示移动 / 交换的过程)
150
- - 构图可读性:主体脸部与关键动作清晰;关键道具不可被遮挡或裁切到不可辨认;避免边缘截断手脚 / 头顶
151
- - 画面干净:禁止字幕、logo、水印、UI;仅允许按“角标标记”要求在每格角落放置景别与编号,不要在格外另写说明文字
152
- - 物理与解剖:肢体数量正常、手指不过度畸形;透视正确;接触关系合理;光影方向与投影逻辑自洽
153
-
154
- ${narrativeBlock}
155
-
156
- ${directingBlock}
157
-
158
- 【用户输入】
159
- ${userPrompt}
160
-
161
- 【${grid}${gridName}输出细则(逐格明确)】
162
- - 必须按“镜头1 ~ 镜头${panelCount}”顺序推进剧情,保证因果与动作连续
163
- - 每格请明确体现:景别(远 / 中 / 近 / 特) + 机位(平 / 俯 / 仰 / 过肩 / POV 等) + 运镜方式(固定 / 推近 / 拉远 / 跟拍 / 环绕等) + 画面重点
164
- - 同一场景连续性:人物相对位置、道具摆放、门口 / 窗 / 沙发 / 茶几等空间关系前后一致
165
- - 关键转折必须形成链条:铺垫 → 触发 → 反应 → 揭示(至少覆盖${minChainText}的连续镜头逻辑)
166
- - 画面风格一致,叙事清晰,主体突出,专业视觉美学
167
- - 再次确认:最终结果必须是一张固定 ${rows}×${cols} 的合成分镜图,不得变形为任何其他排版
168
- `.trim();
169
- };
170
- exports.storyboardGridTemplate = storyboardGridTemplate;
171
- //# sourceMappingURL=storyboard-grid-tpl.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"storyboard-grid-tpl.js","sourceRoot":"","sources":["../../src/utils/storyboard-grid-tpl.ts"],"names":[],"mappings":";AAAA,qCAAqC;AACrC,QAAQ;AACR,0CAA0C;AAC1C,yBAAyB;AACzB,oBAAoB;AACpB,4EAA4E;AAC5E,uCAAuC;;;AA+BvC,+BAA+B;AAC/B,MAAM,iBAAiB,GAA+B;IACpD,QAAQ,EAAE;;;;;;CAMX,CAAC,IAAI,EAAE;IAEN,MAAM,EAAE;;;;;;CAMT,CAAC,IAAI,EAAE;IAEN,QAAQ,EAAE;;;;;;CAMX,CAAC,IAAI,EAAE;IAEN,SAAS,EAAE;;;;;CAKZ,CAAC,IAAI,EAAE;IAEN,MAAM,EAAE;;;;;CAKT,CAAC,IAAI,EAAE;IAEN,IAAI,EAAE;;;;;CAKP,CAAC,IAAI,EAAE;IAEN,QAAQ,EAAE;;;;;CAKX,CAAC,IAAI,EAAE;IAEN,IAAI,EAAE;;;;CAIP,CAAC,IAAI,EAAE;CACP,CAAC;AAEK,MAAM,sBAAsB,GAAG,CACpC,MAA4B,EACpB,EAAE;IACV,MAAM,EAAE,UAAU,EAAE,YAAY,EAAE,KAAK,GAAG,MAAM,EAAE,IAAI,GAAG,KAAK,EAAE,GAAG,MAAM,CAAC;IAE1E,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;IACzD,MAAM,UAAU,GAAG,IAAI,GAAG,IAAI,CAAC;IAE/B,MAAM,QAAQ,GACZ,IAAI,KAAK,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC;IAE1D,MAAM,kBAAkB,GAAG,UAAU,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC;IAC/D,MAAM,YAAY,GAAG,UAAU,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC;IAExD,MAAM,cAAc,GAAG,CAAC,iBAAiB,CAAC,KAAK,CAAC,IAAI,iBAAiB,CAAC,IAAI,CAAC;SACxE,KAAK,CAAC,KAAK,CAAC;SACZ,IAAI,CAAC,kBAAkB,CAAC,CAAC;IAE5B,MAAM,cAAc,GAClB,UAAU,KAAK,CAAC;QACd,CAAC,CAAC,IAAI,IAAI,GAAG,QAAQ;;;yBAGF;QACnB,CAAC,CAAC,UAAU,KAAK,CAAC;YAChB,CAAC,CAAC,IAAI,IAAI,GAAG,QAAQ;;;2CAGc;YACnC,CAAC,CAAC,IAAI,IAAI,GAAG,QAAQ;;;2CAGc,CAAC;IAE1C,MAAM,gBAAgB,GACpB,YAAY,KAAK,MAAM;QACrB,CAAC,CAAC;;;;iBAIS,IAAI,IAAI,IAAI;YACjB,UAAU,mBAAmB,IAAI,IAAI,IAAI;yBAC5B,UAAU,0CAA0C,IAAI,IAAI,IAAI;iFACR,IAAI,IAAI,IAAI;CAC5F,CAAC,IAAI,EAAE;QACF,CAAC,CAAC,EAAE,CAAC;IAET,MAAM,gBAAgB,GACpB,IAAI,KAAK,KAAK;QACZ,CAAC,CAAC,sCAAsC;QACxC,CAAC,CAAC,IAAI,KAAK,KAAK;YACd,CAAC,CAAC,2BAA2B;YAC7B,CAAC,CAAC,SAAS,IAAI,aAAa,IAAI,MAAM,IAAI,KAAK,CAAC;IAEtD,OAAO;SACA,IAAI,GAAG,QAAQ;;;;aAIX,IAAI,OAAO,IAAI,YAAY,UAAU;IAC9C,gBAAgB;6DACyC,IAAI,YAAY,IAAI,qBAAqB,UAAU;;yJAEyC,IAAI,IAAI,IAAI;;YAEzJ,YAAY;yBACC,YAAY;mDACc,IAAI,IAAI,IAAI,sDAAsD,YAAY;;;iDAGhF,UAAU;;EAEzD,gBAAgB,CAAC,CAAC,CAAC,GAAG,gBAAgB,IAAI,CAAC,CAAC,CAAC,EAAE;;;aAGpC,IAAI,IAAI,IAAI;;;;+DAIsC,IAAI,IAAI,IAAI;;;;;;;KAOtE,IAAI,GAAG,QAAQ;;;;;;;;;;;;;;;;;;EAkBlB,cAAc;;EAEd,cAAc;;;EAGd,UAAU;;GAET,IAAI,GAAG,QAAQ;gBACF,UAAU;;;qCAGW,YAAY;;qBAE5B,IAAI,IAAI,IAAI;CAChC,CAAC,IAAI,EAAE,CAAC;AACT,CAAC,CAAC;AAvHW,QAAA,sBAAsB,0BAuHjC"}