@ninkch/dsh-artcraft 0.3.1 → 0.3.3

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 (36) hide show
  1. package/CHANGELOG.md +158 -0
  2. package/NOTICE.md +4 -69
  3. package/README.md +11 -29
  4. package/README.zh-CN.md +7 -19
  5. package/apps/catalog.json +14 -14
  6. package/artcraft.config.json.example +2 -2
  7. package/client.js +26 -0
  8. package/index.js +11 -6
  9. package/package.json +5 -1
  10. package/skills/README.md +2 -1
  11. package/skills/artcraft-color-light/SKILL.md +3 -1
  12. package/skills/artcraft-delivery-qc/references/platform-specs.md +5 -2
  13. package/skills/artcraft-director-lens/SKILL.md +79 -0
  14. package/skills/artcraft-director-lens/references/director-styles/01_spielberg.md +81 -0
  15. package/skills/artcraft-director-lens/references/director-styles/02_hitchcock.md +81 -0
  16. package/skills/artcraft-director-lens/references/director-styles/03_kubrick.md +81 -0
  17. package/skills/artcraft-director-lens/references/director-styles/04_kurosawa.md +81 -0
  18. package/skills/artcraft-director-lens/references/director-styles/05_scorsese.md +81 -0
  19. package/skills/artcraft-director-lens/references/director-styles/06_fellini.md +81 -0
  20. package/skills/artcraft-director-lens/references/director-styles/07_bergman.md +81 -0
  21. package/skills/artcraft-director-lens/references/director-styles/08_tarkovsky.md +81 -0
  22. package/skills/artcraft-director-lens/references/director-styles/09_wong_kar_wai.md +81 -0
  23. package/skills/artcraft-director-lens/references/director-styles/10_nolan.md +81 -0
  24. package/skills/artcraft-director-lens/references/director-styles/11_villeneuve.md +81 -0
  25. package/skills/artcraft-director-lens/references/director-styles/12_fincher.md +81 -0
  26. package/skills/artcraft-director-lens/references/director-styles/13_refn.md +81 -0
  27. package/skills/artcraft-director-lens/references/director-styles/14_bi_gan.md +81 -0
  28. package/skills/artcraft-director-lens/references/director-styles/15_zhang_yimou.md +81 -0
  29. package/skills/artcraft-director-lens/references/director-styles/16_hou_hsiao_hsien.md +81 -0
  30. package/skills/artcraft-director-lens/references/director-styles/17_park_chan_wook.md +81 -0
  31. package/skills/artcraft-director-lens/references/director-styles/18_malick.md +81 -0
  32. package/skills/artcraft-director-lens/references/director-styles/19_michael_mann.md +81 -0
  33. package/skills/artcraft-director-lens/references/director-styles/20_coen_brothers.md +81 -0
  34. package/skills/artcraft-motion-vfx/SKILL.md +1 -1
  35. package/skills/artcraft-motion-vfx/references/scene-to-effect.md +1 -1
  36. package/skills/artcraft-ops/references/command-families.md +25 -25
@@ -0,0 +1,81 @@
1
+ ---
2
+ name: artcraft-lens-bergman
3
+ description: >-
4
+ 导演透镜(ArtCraft 适配版):英格玛·伯格曼导演风格 Skill。把该导演的工作方式翻译成 ArtCraft 可执行参数——FilmCraft 时间线与转场、LightCraft 影调分区、SoundCraft 声音规则、EffectCraft 机位。当用户点名该导演、要求该风格,或项目美学圣经引用该透镜时加载。
5
+ ---
6
+
7
+ # 英格玛·伯格曼导演风格 Skill(ArtCraft 适配版)
8
+
9
+ ## 风格参数 / Style parameters
10
+
11
+ ```yaml
12
+ style_id: bergman
13
+ lens_kit_mm: [75, 100, 150] # 75 中近景;100/150 拍大特写,长焦不给脸任何变形借口;单脸收到 f/11-f/16 让整张脸落在景深内,双脸构图开到 f/2.8-f/4 留给变焦点
14
+ camera:
15
+ prefer: ["locked frontal close-up on the eyeline axis", "two-face composition with one profile in foreground", "focus pull between two faces instead of a cut", "imperceptible push-in at 0.02-0.05 m/s", "hold past the emotional peak"]
16
+ avoid: ["handheld", "shot-reverse-shot on fixed A/B setups", "camera orbit", "wide establishing of the room", "any move the audience can notice"]
17
+ motion_budget: low # 实际接近 none:唯一允许的运动是观众察觉不到的推进
18
+ height: "眼平,精确对齐演员瞳孔高度;全场不变"
19
+ shot_size_bias: ["extreme close-up filling 60-80% of frame height", "two-face composition", "medium close-up at 75mm", "hands or object insert", "one wide only if the room must be established once"]
20
+ composition: ["camera on the eyeline axis, deviation under 10 degrees", "two faces overlapping at their edges, one frontal one profile", "near-black or near-white flat background", "negative space on the side the character is avoiding", "whole face inside depth of field"]
21
+ lighting:
22
+ key_quality: hard
23
+ key_ratio: "6:1,暗面不补光但保留轮廓"
24
+ motivation: practical
25
+ signature: "正侧方 90 度单光源,鼻影把脸分成两半;背景压成单色平面"
26
+ palette:
27
+ dominant: 灰蓝、灰绿、近黑、近白
28
+ accent: 皮肤的暖色是画面里唯一的暖
29
+ saturation: low
30
+ contrast: high
31
+ editing:
32
+ avg_shot_length_s: "20-90;一场 4 分钟的戏只用 5-8 个镜头"
33
+ transition_bias: ["hard cut", "fade"]
34
+ coverage_style: "不做标准正反打;用画内移动与变焦点代替切换,情绪高点之后再拍 3-5 秒"
35
+ sound:
36
+ music: 极少;只在场景之间的空白处,不与对白同时存在
37
+ ambience: 单一持续元素(钟摆、海浪、风穿窗缝),让沉默可被计量
38
+ dialogue: 干、近、无混响;呼吸与吞咽必须清晰可闻
39
+ silence_use: 每场指定 2-3 处 4-8 秒沉默,并写清沉默时镜头在拍谁的脸
40
+ performance:
41
+ register: 高度抑制;最高强度是"没有哭出来但脸正在塌",指令写成抑制目标
42
+ blocking: 人物在画内起身、转身、靠近窗;谁离镜头近谁在这一刻更有权力
43
+ aspect_bias: "1.37:1 / 4:3——接近方形的画幅让脸在竖向被填满;16:9 会在脸两侧留下无用空间"
44
+ ai_video:
45
+ clip_duration_s: "8-15(在工具能稳住身份的前提下取最长)"
46
+ prompt_bias: 一条 clip 只写一次微表情变化 + 一次呼吸事件,摄影机写成 locked 或 imperceptible push-in;显式写 the whole face stays in focus。唯一例外是双脸变焦点那一条——它要从 negative 里拿掉 shallow depth of field,改写成 focus shifts from the front face to the face behind over 1.5 seconds。20 秒以上的长镜头用同参数分段续接拼出来,接点选在动作完全静止的那一帧。
47
+ risk: 模型会给静止的脸补上多余动作(转头、眨眼过频、微笑)并把背景虚化成柔焦氛围,抑制感立刻消失。对策是写 no head turn, blinks only once, background flat and dark, no bokeh,并把 clip 控制在一次心理变化点之内。
48
+ negative_prompt_adds: ["shallow depth of field or bokeh", "soft glamour lighting", "head turning away", "smiling", "camera movement", "warm colour grade", "background detail or props", "text or watermark"]
49
+ ```
50
+
51
+ ## ArtCraft 落点(本插件适配)
52
+
53
+ ### 剪辑(FilmCraft)
54
+ - 单镜均长目标 **"20-90;一场 4 分钟的戏只用 5-8 个镜头"s**(observational / 长镜(8–15s 档))→ `timeline.place` 铺轨后按分配修长:`timeline.trim {mode:"ripple"}`、`timeline.rateStretch` 微调
55
+ - 转场偏好:**["hard cut", "fade"]** → `sequence.applyVideoTransition {effect}` / `sequence.setTransition {duration, align}`
56
+ - 覆盖方式:"不做标准正反打;用画内移动与变焦点代替切换,情绪高点之后再拍 3-5 秒"
57
+ - 音画切点:对白/音乐切点参考 SoundCraft `event.beat_detective` 的节拍位置
58
+
59
+ ### 影调(LightCraft / FilmCraft Lumetri)
60
+ - 光比目标 **"6:1,暗面不补光但保留轮廓"** → LightCraft `light.contrast` + `grading.shadows/highlights` 分离
61
+ - 主色:灰蓝、灰绿、近黑、近白 → `mixer.{}.*` 定点 + `grading.*` 方向
62
+ - 点缀:皮肤的暖色是画面里唯一的暖
63
+ - 饱和/对比:low / high
64
+ - 光线签名:"正侧方 90 度单光源,鼻影把脸分成两半;背景压成单色平面"
65
+ - 落点命令:`develop.set control=<id> value=<v>` 逐项;定稿 `preset.create` 固化,整批 `preset.apply`;FilmCraft 侧 `lumetri.setLook` + `presets.save`
66
+
67
+ ### 声音(SoundCraft / FilmCraft)
68
+ - 音乐:极少;只在场景之间的空白处,不与对白同时存在
69
+ - 环境:单一持续元素(钟摆、海浪、风穿窗缝),让沉默可被计量
70
+ - 对白:干、近、无混响;呼吸与吞咽必须清晰可闻
71
+ - 静默:每场指定 2-3 处 4-8 秒沉默,并写清沉默时镜头在拍谁的脸
72
+ - 落点命令:`essentialSound.setType` + `essentialSound.generateDucking`(避让对白)+ `essentialSound.autoMatch {target:-14}`;SoundCraft `mix.insert` 挂处理链
73
+
74
+ ### 机位与运动(EffectCraft)
75
+ - 优先:["locked frontal close-up on the eyeline axis", "two-face composition with one profile in foreground", "focus pull between two faces instead of a cut", "imperceptible push-in at 0.02-0.05 m/s", "hold past the emotional peak"]
76
+ - 避免:["handheld", "shot-reverse-shot on fixed A/B setups", "camera orbit", "wide establishing of the room", "any move the audience can notice"]
77
+ - 运动预算:low
78
+ - 落点命令:`camera.orbit/pan/dolly` + `view.3d.*` 机位;2D 素材用 `layer.*` + `keys.easyEase*` 缓动
79
+
80
+ ### 质检挂钩(artcraft_qc / 人工复核)
81
+ - 逐镜抽帧复核 + `scopes.read` 示波器核对影调是否落在本透镜的光比与色相档位
@@ -0,0 +1,81 @@
1
+ ---
2
+ name: artcraft-lens-tarkovsky
3
+ description: >-
4
+ 导演透镜(ArtCraft 适配版):安德烈·塔可夫斯基导演风格 Skill。把该导演的工作方式翻译成 ArtCraft 可执行参数——FilmCraft 时间线与转场、LightCraft 影调分区、SoundCraft 声音规则、EffectCraft 机位。当用户点名该导演、要求该风格,或项目美学圣经引用该透镜时加载。
5
+ ---
6
+
7
+ # 安德烈·塔可夫斯基导演风格 Skill(ArtCraft 适配版)
8
+
9
+ ## 风格参数 / Style parameters
10
+
11
+ ```yaml
12
+ style_id: tarkovsky
13
+ lens_kit_mm: [28, 35, 50] # 广角到标准,深焦分层;靠景深而非切镜建立层次
14
+ camera:
15
+ prefer: [locked hold, very slow lateral dolly, slow push-in on an object, slow tilt down to water, walking-pace follow from behind]
16
+ avoid: [handheld shake, whip pan, orbit, crash zoom, drone reveal]
17
+ motion_budget: low # 10 秒内位移 ≤ 1 米,恒速,无加减速
18
+ height: "waist to chest, level or slightly low, planted like a witness"
19
+ shot_size_bias: [wide, medium wide, insert or detail, over-shoulder from behind, close-up]
20
+ composition: [deep staging with three or more planes, reflective foreground, off-center or back-turned figure, vertical layering from ceiling to floor, threshold framing]
21
+ lighting:
22
+ key_quality: soft
23
+ key_ratio: "2:1 to 3:1"
24
+ motivation: naturalistic
25
+ signature: "阴天窗光加单一火光点;无硬边阴影,湿表面自己发光"
26
+ palette:
27
+ dominant: "mud brown, wet stone grey, moss green, sepia"
28
+ accent: "fire orange, milk white, rust"
29
+ saturation: low
30
+ contrast: low
31
+ editing:
32
+ avg_shot_length_s: "30-90"
33
+ transition_bias: [hard cut, slow dissolve, fade]
34
+ coverage_style: "单机位单角度,一个镜头解决一场戏,不拍反打"
35
+ sound:
36
+ music: "极少,出现时为宗教性合唱或单一持续音,不跟画面情绪走"
37
+ ambience: "可数的滴水、风穿空屋、火焰爆裂、远处狗叫;环境声即主音轨"
38
+ dialogue: "低音量慢速,常在画外或背对镜头说出,每场 40 字以内"
39
+ silence_use: "连续 5-15 秒静默,用来让观众听出空间尺寸"
40
+ performance:
41
+ register: "内敛疲惫,情绪落后事件 2-3 秒,反应幅度小于事实要求"
42
+ blocking: "长时间静止或缓慢走动,常背对镜头或被前景遮挡"
43
+ aspect_bias: "1.66:1 / 4:3" # 竖向余量留给天花板、树冠和垂落的水
44
+ ai_video:
45
+ clip_duration_s: "8-15" # 取所用工具允许的最长单条时长;宁可一个长镜头,不要三个短镜头
46
+ prompt_bias: "主体动作写到最小(呼吸、转头、放下一件东西),描述预算全部给环境运动和材质:水、火、雾、布料、光的缓慢变化。"
47
+ risk: "模型把'慢'理解成'静止',输出一张会呼吸的照片。缓解:显式命名两个持续的环境运动源,并给镜头一个恒速微移。"
48
+ negative_prompt_adds: [saturated colors, hard-edged shadows, lens flare, fast camera move, quick cuts, glossy clean surfaces, stage-symmetric framing, orchestral swell]
49
+ ```
50
+
51
+ ## ArtCraft 落点(本插件适配)
52
+
53
+ ### 剪辑(FilmCraft)
54
+ - 单镜均长目标 **"30-90"s**(observational / 长镜(8–15s 档))→ `timeline.place` 铺轨后按分配修长:`timeline.trim {mode:"ripple"}`、`timeline.rateStretch` 微调
55
+ - 转场偏好:**[hard cut, slow dissolve, fade]** → `sequence.applyVideoTransition {effect}` / `sequence.setTransition {duration, align}`
56
+ - 覆盖方式:"单机位单角度,一个镜头解决一场戏,不拍反打"
57
+ - 音画切点:对白/音乐切点参考 SoundCraft `event.beat_detective` 的节拍位置
58
+
59
+ ### 影调(LightCraft / FilmCraft Lumetri)
60
+ - 光比目标 **"2:1 to 3:1"** → LightCraft `light.contrast` + `grading.shadows/highlights` 分离
61
+ - 主色:"mud brown, wet stone grey, moss green, sepia" → `mixer.{green}.*` 定点 + `grading.*` 方向
62
+ - 点缀:"fire orange, milk white, rust"
63
+ - 饱和/对比:low / low
64
+ - 光线签名:"阴天窗光加单一火光点;无硬边阴影,湿表面自己发光"
65
+ - 落点命令:`develop.set control=<id> value=<v>` 逐项;定稿 `preset.create` 固化,整批 `preset.apply`;FilmCraft 侧 `lumetri.setLook` + `presets.save`
66
+
67
+ ### 声音(SoundCraft / FilmCraft)
68
+ - 音乐:"极少,出现时为宗教性合唱或单一持续音,不跟画面情绪走"
69
+ - 环境:"可数的滴水、风穿空屋、火焰爆裂、远处狗叫;环境声即主音轨"
70
+ - 对白:"低音量慢速,常在画外或背对镜头说出,每场 40 字以内"
71
+ - 静默:"连续 5-15 秒静默,用来让观众听出空间尺寸"
72
+ - 落点命令:`essentialSound.setType` + `essentialSound.generateDucking`(避让对白)+ `essentialSound.autoMatch {target:-14}`;SoundCraft `mix.insert` 挂处理链
73
+
74
+ ### 机位与运动(EffectCraft)
75
+ - 优先:[locked hold, very slow lateral dolly, slow push-in on an object, slow tilt down to water, walking-pace follow from behind]
76
+ - 避免:[handheld shake, whip pan, orbit, crash zoom, drone reveal]
77
+ - 运动预算:low
78
+ - 落点命令:`camera.orbit/pan/dolly` + `view.3d.*` 机位;2D 素材用 `layer.*` + `keys.easyEase*` 缓动
79
+
80
+ ### 质检挂钩(artcraft_qc / 人工复核)
81
+ - 逐镜抽帧复核 + `scopes.read` 示波器核对影调是否落在本透镜的光比与色相档位
@@ -0,0 +1,81 @@
1
+ ---
2
+ name: artcraft-lens-wong_kar_wai
3
+ description: >-
4
+ 导演透镜(ArtCraft 适配版):王家卫导演风格 Skill。把该导演的工作方式翻译成 ArtCraft 可执行参数——FilmCraft 时间线与转场、LightCraft 影调分区、SoundCraft 声音规则、EffectCraft 机位。当用户点名该导演、要求该风格,或项目美学圣经引用该透镜时加载。
5
+ ---
6
+
7
+ # 王家卫导演风格 Skill(ArtCraft 适配版)
8
+
9
+ ## 风格参数 / Style parameters
10
+
11
+ ```yaml
12
+ style_id: wong_kar_wai
13
+ lens_kit_mm: [18, 25, 85] # 广角贴身拍变形的亲密,85mm 隔街压缩人流;中焦段刻意回避
14
+ camera:
15
+ prefer: [small-amplitude handheld, step-print slow motion, reframe-in-shot, shoot through foreground obstruction, low-angle from a corner]
16
+ avoid: [locked tripod, symmetric center framing, smooth gimbal glide, drone, full clean wide]
17
+ motion_budget: medium # 频率高、幅度小:几乎每秒都在微调,但整镜位移 < 1 米。写提示词时给的是"重新构图",不是"运动"
18
+ height: "chest to shoulder, often from a corner or across an obstruction, rarely level with the eyes"
19
+ shot_size_bias: [medium close-up, close-up of hands and objects, obstructed medium, over-shoulder, extreme close-up]
20
+ composition: [foreground obstruction in every frame, subject pushed to frame edge, frame within frame via door or window, mirror or glass reflection, head cropped at top]
21
+ lighting:
22
+ key_quality: hard
23
+ key_ratio: "6:1 to 10:1"
24
+ motivation: practical
25
+ signature: "裸灯泡与招牌直射给硬边和高光比,霓虹管只负责染色勾边;空气里有烟和水汽,光柱可见"
26
+ palette:
27
+ dominant: "neon green, deep red, tungsten amber"
28
+ accent: "magenta, jade, gold"
29
+ saturation: high
30
+ contrast: high
31
+ editing:
32
+ avg_shot_length_s: "1.5-4" # 每段允许一个 6-12 秒的慢动作长挂
33
+ transition_bias: [hard cut, jump cut, whip pan, dissolve]
34
+ coverage_style: "同一动作跳接三次,位置微移;关键进展留在两个镜头之间"
35
+ sound:
36
+ music: "一首歌即一个主题,全片出现 2-3 次,每次对应关系的一次退步"
37
+ ambience: "雨、电话铃、收音机、餐馆碗碟、楼下摩托、隔壁电视"
38
+ dialogue: "短、跳跃、答非所问;被环境声盖掉一半是可接受的"
39
+ silence_use: "极少完全静默;用歌声顶替静默,让人物在音乐里失语"
40
+ performance:
41
+ register: "克制迷人,台词与意图错开一层,不说真正的需求"
42
+ blocking: "两人同框不得正对;一个背对或隔玻璃,距离以厘米计量"
43
+ aspect_bias: "1.85:1" # 窄边框加强前景遮挡的压迫;9:16 竖幅同样成立
44
+ ai_video:
45
+ clip_duration_s: "4-8" # 短,靠碎片累积;慢动作段落单独出一条
46
+ prompt_bias: "先写前景挡什么,再写霓虹的两种颜色,最后才写人做什么;动作只留一个,且必须是'收回'而不是'伸出'。"
47
+ risk: "模型把手持理解成整体抖动,把慢动作理解成平滑插帧的升格。缓解:写 'small handheld reframing, not shake';步进印片要同时点名两件事——'long-shutter trails behind the moving hand' 和 'repeated-frame stutter, not smooth slow motion',只写其一都拿不到;再锁死一个静止的前景遮挡物做位移参照。"
48
+ negative_prompt_adds: [locked tripod stillness, symmetric center framing, even soft fill, desaturated palette, clean empty space, smooth gimbal glide, full frontal face, clear unobstructed view]
49
+ ```
50
+
51
+ ## ArtCraft 落点(本插件适配)
52
+
53
+ ### 剪辑(FilmCraft)
54
+ - 单镜均长目标 **"1.5-4"s**(tightening / 紧凑对话(3–6s 档))→ `timeline.place` 铺轨后按分配修长:`timeline.trim {mode:"ripple"}`、`timeline.rateStretch` 微调
55
+ - 转场偏好:**[hard cut, jump cut, whip pan, dissolve]** → `sequence.applyVideoTransition {effect}` / `sequence.setTransition {duration, align}`
56
+ - 覆盖方式:"同一动作跳接三次,位置微移;关键进展留在两个镜头之间"
57
+ - 音画切点:对白/音乐切点参考 SoundCraft `event.beat_detective` 的节拍位置
58
+
59
+ ### 影调(LightCraft / FilmCraft Lumetri)
60
+ - 光比目标 **"6:1 to 10:1"** → LightCraft `light.contrast` + `grading.shadows/highlights` 分离
61
+ - 主色:"neon green, deep red, tungsten amber" → `mixer.{green,magenta,red,orange,aqua}.*` 定点 + `grading.*` 方向
62
+ - 点缀:"magenta, jade, gold"
63
+ - 饱和/对比:high / high
64
+ - 光线签名:"裸灯泡与招牌直射给硬边和高光比,霓虹管只负责染色勾边;空气里有烟和水汽,光柱可见"
65
+ - 落点命令:`develop.set control=<id> value=<v>` 逐项;定稿 `preset.create` 固化,整批 `preset.apply`;FilmCraft 侧 `lumetri.setLook` + `presets.save`
66
+
67
+ ### 声音(SoundCraft / FilmCraft)
68
+ - 音乐:"一首歌即一个主题,全片出现 2-3 次,每次对应关系的一次退步"
69
+ - 环境:"雨、电话铃、收音机、餐馆碗碟、楼下摩托、隔壁电视"
70
+ - 对白:"短、跳跃、答非所问;被环境声盖掉一半是可接受的"
71
+ - 静默:"极少完全静默;用歌声顶替静默,让人物在音乐里失语"
72
+ - 落点命令:`essentialSound.setType` + `essentialSound.generateDucking`(避让对白)+ `essentialSound.autoMatch {target:-14}`;SoundCraft `mix.insert` 挂处理链
73
+
74
+ ### 机位与运动(EffectCraft)
75
+ - 优先:[small-amplitude handheld, step-print slow motion, reframe-in-shot, shoot through foreground obstruction, low-angle from a corner]
76
+ - 避免:[locked tripod, symmetric center framing, smooth gimbal glide, drone, full clean wide]
77
+ - 运动预算:medium
78
+ - 落点命令:`camera.orbit/pan/dolly` + `view.3d.*` 机位;2D 素材用 `layer.*` + `keys.easyEase*` 缓动
79
+
80
+ ### 质检挂钩(artcraft_qc / 人工复核)
81
+ - 逐镜抽帧复核 + `scopes.read` 示波器核对影调是否落在本透镜的光比与色相档位
@@ -0,0 +1,81 @@
1
+ ---
2
+ name: artcraft-lens-nolan
3
+ description: >-
4
+ 导演透镜(ArtCraft 适配版):克里斯托弗·诺兰导演风格 Skill。把该导演的工作方式翻译成 ArtCraft 可执行参数——FilmCraft 时间线与转场、LightCraft 影调分区、SoundCraft 声音规则、EffectCraft 机位。当用户点名该导演、要求该风格,或项目美学圣经引用该透镜时加载。
5
+ ---
6
+
7
+ # 克里斯托弗·诺兰导演风格 Skill(ArtCraft 适配版)
8
+
9
+ ## 风格参数 / Style parameters
10
+
11
+ ```yaml
12
+ style_id: nolan
13
+ lens_kit_mm: [14, 21, 35, 50] # 广角为主:14-21 给尺度,21 贴到 60-90cm 给物理重量,50 是长焦上限
14
+ camera:
15
+ prefer: [controlled handheld follow, wide tracking alongside action, slow push-in on a mechanism, crane up to reveal scale, locked insert on an instrument]
16
+ avoid: [orbit for its own sake, whip pan, slow motion for beauty, dreamy diffusion, drone flythrough]
17
+ motion_budget: high # 镜头几乎总在移动,但移动是"跟上",不是表演
18
+ height: "eye level, camera close to the body, occasionally low to give machinery mass"
19
+ shot_size_bias: [medium close-up, wide tracking, extreme wide for scale, mechanism insert, over-shoulder]
20
+ composition: [figure against oversized real structure, horizon low to give sky weight, mechanism readable in frame, two timelines matched by shape, foreground hardware giving depth]
21
+ lighting:
22
+ key_quality: mixed
23
+ key_ratio: "3:1 to 4:1"
24
+ motivation: naturalistic
25
+ signature: "真实天光加可见的工作灯;夜景只有钠灯暖橙一个暖点"
26
+ palette:
27
+ dominant: "concrete grey, steel blue, black, canvas khaki"
28
+ accent: "sodium amber, warning red"
29
+ saturation: low
30
+ contrast: mid
31
+ editing:
32
+ avg_shot_length_s: "2-5"
33
+ transition_bias: [hard cut, match cut, cut on sound]
34
+ coverage_style: "交叉剪辑为结构;轮转周期从 12 秒收紧到 3 秒,每次切线带走一个新信息"
35
+ sound:
36
+ music: "持续低频脉冲与无解决的上升音型,功能是报时而非煽情"
37
+ ambience: "金属应力、气压、低频冲击、按空间尺寸变化的混响"
38
+ dialogue: "规则说明必须在动作压力下说出,禁止坐下来解释"
39
+ silence_use: "只在归零前一拍使用,长度 0.5-1.5 秒,用来放大下一次冲击"
40
+ performance:
41
+ register: "理性克制,情绪藏在选择里;崩溃上限是一次呼吸失控"
42
+ blocking: "人物永远在执行一件有时限的任务,走位由机制而非情绪决定"
43
+ aspect_bias: "1.90:1 / 2.20:1" # 比 2.39:1 高的画幅:同样的画面宽度下多出的纵向余量留给天空和头顶,尺度靠竖向撑起来
44
+ ai_video:
45
+ clip_duration_s: "3-6" # 每条线单独生成,交叉在剪辑台完成,不要求模型在一条 clip 里切线
46
+ prompt_bias: "一条 clip 只讲一个机制事实:一个动作、一个镜头运动、一个可见的计时器变化。把'尺度'翻译成具体材料与尺寸,不要写'宏大'。"
47
+ risk: "模型把'高概念'渲染成发光全息与赛博界面,并把交叉剪辑压成一镜。缓解:负面词里点名 holographic UI 与 neon;三条线各出一条 clip,用同一组材料词、同一色温、同一颗粒描述锁一致性。"
48
+ negative_prompt_adds: [glowing holographic interface, floating blue data, neon signage, obvious CGI sheen, slow motion, dreamy diffusion, saturated color grade, lens flare]
49
+ ```
50
+
51
+ ## ArtCraft 落点(本插件适配)
52
+
53
+ ### 剪辑(FilmCraft)
54
+ - 单镜均长目标 **"2-5"s**(tightening / 紧凑对话(3–6s 档))→ `timeline.place` 铺轨后按分配修长:`timeline.trim {mode:"ripple"}`、`timeline.rateStretch` 微调
55
+ - 转场偏好:**[hard cut, match cut, cut on sound]** → `sequence.applyVideoTransition {effect}` / `sequence.setTransition {duration, align}`
56
+ - 覆盖方式:"交叉剪辑为结构;轮转周期从 12 秒收紧到 3 秒,每次切线带走一个新信息"
57
+ - 音画切点:对白/音乐切点参考 SoundCraft `event.beat_detective` 的节拍位置
58
+
59
+ ### 影调(LightCraft / FilmCraft Lumetri)
60
+ - 光比目标 **"3:1 to 4:1"** → LightCraft `light.contrast` + `grading.shadows/highlights` 分离
61
+ - 主色:"concrete grey, steel blue, black, canvas khaki" → `mixer.{red,orange,blue}.*` 定点 + `grading.*` 方向
62
+ - 点缀:"sodium amber, warning red"
63
+ - 饱和/对比:low / mid
64
+ - 光线签名:"真实天光加可见的工作灯;夜景只有钠灯暖橙一个暖点"
65
+ - 落点命令:`develop.set control=<id> value=<v>` 逐项;定稿 `preset.create` 固化,整批 `preset.apply`;FilmCraft 侧 `lumetri.setLook` + `presets.save`
66
+
67
+ ### 声音(SoundCraft / FilmCraft)
68
+ - 音乐:"持续低频脉冲与无解决的上升音型,功能是报时而非煽情"
69
+ - 环境:"金属应力、气压、低频冲击、按空间尺寸变化的混响"
70
+ - 对白:"规则说明必须在动作压力下说出,禁止坐下来解释"
71
+ - 静默:"只在归零前一拍使用,长度 0.5-1.5 秒,用来放大下一次冲击"
72
+ - 落点命令:`essentialSound.setType` + `essentialSound.generateDucking`(避让对白)+ `essentialSound.autoMatch {target:-14}`;SoundCraft `mix.insert` 挂处理链
73
+
74
+ ### 机位与运动(EffectCraft)
75
+ - 优先:[controlled handheld follow, wide tracking alongside action, slow push-in on a mechanism, crane up to reveal scale, locked insert on an instrument]
76
+ - 避免:[orbit for its own sake, whip pan, slow motion for beauty, dreamy diffusion, drone flythrough]
77
+ - 运动预算:high
78
+ - 落点命令:`camera.orbit/pan/dolly` + `view.3d.*` 机位;2D 素材用 `layer.*` + `keys.easyEase*` 缓动
79
+
80
+ ### 质检挂钩(artcraft_qc / 人工复核)
81
+ - 逐镜抽帧复核 + `scopes.read` 示波器核对影调是否落在本透镜的光比与色相档位
@@ -0,0 +1,81 @@
1
+ ---
2
+ name: artcraft-lens-villeneuve
3
+ description: >-
4
+ 导演透镜(ArtCraft 适配版):丹尼斯·维伦纽瓦导演风格 Skill。把该导演的工作方式翻译成 ArtCraft 可执行参数——FilmCraft 时间线与转场、LightCraft 影调分区、SoundCraft 声音规则、EffectCraft 机位。当用户点名该导演、要求该风格,或项目美学圣经引用该透镜时加载。
5
+ ---
6
+
7
+ # 丹尼斯·维伦纽瓦导演风格 Skill(ArtCraft 适配版)
8
+
9
+ ## 风格参数 / Style parameters
10
+
11
+ ```yaml
12
+ style_id: villeneuve
13
+ lens_kit_mm: [21, 40, 75] # 21 给纪念碑尺度,40 给程序化中景,75 压缩疲惫的脸;不用超广也不用超长
14
+ camera:
15
+ prefer: [locked wide, constant-speed lateral track, constant-speed push toward vanishing point, high overhead, slow tilt up a structure]
16
+ avoid: [handheld, orbit, whip pan, speed ramp, crash zoom]
17
+ motion_budget: low # 有移动但恒速无表情,像在丈量空间
18
+ height: "eye level or extreme overhead; nothing in between"
19
+ shot_size_bias: [extreme wide, wide, overhead, medium close-up, close-up]
20
+ composition: [center symmetry, single strong horizon at one-eighth or seven-eighths height, human at 5-15 percent of frame height, silhouette against a lit plane, negative space as the subject]
21
+ lighting:
22
+ key_quality: soft
23
+ key_ratio: "5:1 to 8:1" # 逆光面对正面补光,不是常规主光对补光
24
+ motivation: naturalistic
25
+ signature: "整面墙或整片天当光源的逆光;人物半剪影,无硬边阴影"
26
+ palette:
27
+ dominant: "one hue per sequence: ochre sand, teal fog, copper interior, ink green, grey-white ice"
28
+ accent: "a single small warm point, usually a lamp or a fire"
29
+ saturation: low
30
+ contrast: mid
31
+ editing:
32
+ avg_shot_length_s: "8-18"
33
+ transition_bias: [hard cut, fade, dissolve]
34
+ coverage_style: "一场 3-9 个镜头;人物进画前留 2 秒,出画后留 3 秒;事件后必给余波镜头"
35
+ sound:
36
+ music: "40-80Hz 轰鸣、持续合成音、共振铜管;无旋律记忆点,只有质地与压强"
37
+ ambience: "分层的风、沙粒打在织物上、呼吸、远处金属应力"
38
+ dialogue: "被环境声压低,关键台词只说一次,'听不清'是主题的一部分"
39
+ silence_use: "全段 20-40% 的时长无音乐;低频比画面早进 2-4 秒"
40
+ performance:
41
+ register: "内敛专业疲惫,情绪靠呼吸与姿态的微小塌陷"
42
+ blocking: "人物穿过巨大空间,方向单一,速度恒定;停下来的那一次就是转折"
43
+ aspect_bias: "2.39:1" # 宽画幅强化水平线与横向丈量;9:16 交付时的构图改写见「镜头语言」末条
44
+ ai_video:
45
+ clip_duration_s: "8-15" # 越长越好;给模型时间把雾的层次渲染出来
46
+ prompt_bias: "先写几何体与材料,再写雾从第几米开始,最后才写人;人的描述不超过一句,且必须给出他占画面高度的比例。"
47
+ risk: "模型把'宏大'渲染成拥挤的赛博城市,或把雾渲染成整体模糊。缓解:负面词点名 neon 与 holographic;把雾写成 depth gradient(近处清晰、30 米外淡 2-3 档),并给一个已知尺寸的参照物。"
48
+ negative_prompt_adds: [holographic interface, neon signage, cluttered cyberpunk street, hard-edged shadows, handheld shake, split warm-cool grade, busy background detail, visible lens flare]
49
+ ```
50
+
51
+ ## ArtCraft 落点(本插件适配)
52
+
53
+ ### 剪辑(FilmCraft)
54
+ - 单镜均长目标 **"8-18"s**(observational / 长镜(8–15s 档))→ `timeline.place` 铺轨后按分配修长:`timeline.trim {mode:"ripple"}`、`timeline.rateStretch` 微调
55
+ - 转场偏好:**[hard cut, fade, dissolve]** → `sequence.applyVideoTransition {effect}` / `sequence.setTransition {duration, align}`
56
+ - 覆盖方式:"一场 3-9 个镜头;人物进画前留 2 秒,出画后留 3 秒;事件后必给余波镜头"
57
+ - 音画切点:对白/音乐切点参考 SoundCraft `event.beat_detective` 的节拍位置
58
+
59
+ ### 影调(LightCraft / FilmCraft Lumetri)
60
+ - 光比目标 **"5:1 to 8:1"** → LightCraft `light.contrast` + `grading.shadows/highlights` 分离
61
+ - 主色:"one hue per sequence: ochre sand, teal fog, copper interior, ink green, grey-white ice" → `mixer.{green,aqua}.*` 定点 + `grading.*` 方向
62
+ - 点缀:"a single small warm point, usually a lamp or a fire"
63
+ - 饱和/对比:low / mid
64
+ - 光线签名:"整面墙或整片天当光源的逆光;人物半剪影,无硬边阴影"
65
+ - 落点命令:`develop.set control=<id> value=<v>` 逐项;定稿 `preset.create` 固化,整批 `preset.apply`;FilmCraft 侧 `lumetri.setLook` + `presets.save`
66
+
67
+ ### 声音(SoundCraft / FilmCraft)
68
+ - 音乐:"40-80Hz 轰鸣、持续合成音、共振铜管;无旋律记忆点,只有质地与压强"
69
+ - 环境:"分层的风、沙粒打在织物上、呼吸、远处金属应力"
70
+ - 对白:"被环境声压低,关键台词只说一次,'听不清'是主题的一部分"
71
+ - 静默:"全段 20-40% 的时长无音乐;低频比画面早进 2-4 秒"
72
+ - 落点命令:`essentialSound.setType` + `essentialSound.generateDucking`(避让对白)+ `essentialSound.autoMatch {target:-14}`;SoundCraft `mix.insert` 挂处理链
73
+
74
+ ### 机位与运动(EffectCraft)
75
+ - 优先:[locked wide, constant-speed lateral track, constant-speed push toward vanishing point, high overhead, slow tilt up a structure]
76
+ - 避免:[handheld, orbit, whip pan, speed ramp, crash zoom]
77
+ - 运动预算:low
78
+ - 落点命令:`camera.orbit/pan/dolly` + `view.3d.*` 机位;2D 素材用 `layer.*` + `keys.easyEase*` 缓动
79
+
80
+ ### 质检挂钩(artcraft_qc / 人工复核)
81
+ - 逐镜抽帧复核 + `scopes.read` 示波器核对影调是否落在本透镜的光比与色相档位
@@ -0,0 +1,81 @@
1
+ ---
2
+ name: artcraft-lens-fincher
3
+ description: >-
4
+ 导演透镜(ArtCraft 适配版):大卫·芬奇导演风格 Skill。把该导演的工作方式翻译成 ArtCraft 可执行参数——FilmCraft 时间线与转场、LightCraft 影调分区、SoundCraft 声音规则、EffectCraft 机位。当用户点名该导演、要求该风格,或项目美学圣经引用该透镜时加载。
5
+ ---
6
+
7
+ # 大卫·芬奇导演风格 Skill(ArtCraft 适配版)
8
+
9
+ ## 风格参数 / Style parameters
10
+
11
+ ```yaml
12
+ style_id: fincher
13
+ lens_kit_mm: [35, 85, 135] # 85/135 为主力,长焦压缩把人物从背景抠出;35 只用于一次性交代几何
14
+ camera:
15
+ prefer: [locked precise frame, imperceptible 3-6 percent push-in, slow pull-back on a mechanical dolly, surveillance framing from behind glass, invisible complex oner]
16
+ avoid: [handheld, camera shake, orbit, whip pan, wide-angle distortion]
17
+ motion_budget: low # 有移动但幅度以百分比计量,观众不应察觉
18
+ height: "exact eye level or 10cm above, repeatable to the centimetre"
19
+ shot_size_bias: [medium close-up, close-up, medium from a surveillance position, insert on hands and documents, wide only to establish geometry once]
20
+ composition: [subject isolated by shallow depth at f/2-f/2.8, background compressed into unreadable color blocks, framing through glass or a door gap, exact horizontal and vertical alignment, subject placed on a third with dead space where the threat would be]
21
+ lighting:
22
+ key_quality: mixed
23
+ key_ratio: "4:1 to 6:1"
24
+ motivation: practical
25
+ signature: "青绿阴影对琥珀实用光;黑位抬起,阴影里始终有可读纹理"
26
+ palette:
27
+ dominant: "teal-green shadow, desaturated charcoal, cold grey"
28
+ accent: "amber practical, sodium yellow, a single skin tone"
29
+ saturation: low
30
+ contrast: low
31
+ editing:
32
+ avg_shot_length_s: "4-9" # 场景内的信息蒙太奇可降到 0.5-1.5 秒
33
+ transition_bias: [hard cut, cut to black]
34
+ coverage_style: "机位可精确复现;切点必须能说出理由;场景末尾用近乎静止的长挂收尾"
35
+ sound:
36
+ music: "电子与合成器持续音,制造生理不适;可在场景中途无交代地消失"
37
+ ambience: "键盘、复印机、荧光镇流器、硬盘、电流嗡鸣,可推到主导地位"
38
+ dialogue: "清晰干燥、混响少、语速偏快、信息密度高、情绪幅度小"
39
+ silence_use: "说谎者说完后停 2-3 秒不切,用静默暴露破绽"
40
+ performance:
41
+ register: "收敛精算,魅力来自能力;加害者造型平庸不加设计"
42
+ blocking: "走位由工作流程决定;人物很少正对镜头,常被摄影机从其不知情的位置观察"
43
+ aspect_bias: "2.39:1"
44
+ ai_video:
45
+ clip_duration_s: "4-8"
46
+ prompt_bias: "点名唯一实用光源实体,把推进写成百分比,把景深写成光圈值;主体动作限定为一个职业性小动作(对齐、擦拭、翻页、点击)。"
47
+ risk: "模型给出手持漂移、镜头光晕和压死的纯黑,或把'干净'渲染成塑料感 CG。缓解:负面词写 handheld drift / lens flare / crushed black;正面写 fine film grain、dust-free air、locked frame with zero breathing。"
48
+ negative_prompt_adds: [handheld drift, camera shake, lens flare, crushed pure black, warm romantic glow, atmospheric haze, visible bokeh balls, wide-angle distortion]
49
+ ```
50
+
51
+ ## ArtCraft 落点(本插件适配)
52
+
53
+ ### 剪辑(FilmCraft)
54
+ - 单镜均长目标 **"4-9"s**(conventional(5–12s 档))→ `timeline.place` 铺轨后按分配修长:`timeline.trim {mode:"ripple"}`、`timeline.rateStretch` 微调
55
+ - 转场偏好:**[hard cut, cut to black]** → `sequence.applyVideoTransition {effect}` / `sequence.setTransition {duration, align}`
56
+ - 覆盖方式:"机位可精确复现;切点必须能说出理由;场景末尾用近乎静止的长挂收尾"
57
+ - 音画切点:对白/音乐切点参考 SoundCraft `event.beat_detective` 的节拍位置
58
+
59
+ ### 影调(LightCraft / FilmCraft Lumetri)
60
+ - 光比目标 **"4:1 to 6:1"** → LightCraft `light.contrast` + `grading.shadows/highlights` 分离
61
+ - 主色:"teal-green shadow, desaturated charcoal, cold grey" → `mixer.{green,orange,aqua,yellow}.*` 定点 + `grading.*` 方向
62
+ - 点缀:"amber practical, sodium yellow, a single skin tone"
63
+ - 饱和/对比:low / low
64
+ - 光线签名:"青绿阴影对琥珀实用光;黑位抬起,阴影里始终有可读纹理"
65
+ - 落点命令:`develop.set control=<id> value=<v>` 逐项;定稿 `preset.create` 固化,整批 `preset.apply`;FilmCraft 侧 `lumetri.setLook` + `presets.save`
66
+
67
+ ### 声音(SoundCraft / FilmCraft)
68
+ - 音乐:"电子与合成器持续音,制造生理不适;可在场景中途无交代地消失"
69
+ - 环境:"键盘、复印机、荧光镇流器、硬盘、电流嗡鸣,可推到主导地位"
70
+ - 对白:"清晰干燥、混响少、语速偏快、信息密度高、情绪幅度小"
71
+ - 静默:"说谎者说完后停 2-3 秒不切,用静默暴露破绽"
72
+ - 落点命令:`essentialSound.setType` + `essentialSound.generateDucking`(避让对白)+ `essentialSound.autoMatch {target:-14}`;SoundCraft `mix.insert` 挂处理链
73
+
74
+ ### 机位与运动(EffectCraft)
75
+ - 优先:[locked precise frame, imperceptible 3-6 percent push-in, slow pull-back on a mechanical dolly, surveillance framing from behind glass, invisible complex oner]
76
+ - 避免:[handheld, camera shake, orbit, whip pan, wide-angle distortion]
77
+ - 运动预算:low
78
+ - 落点命令:`camera.orbit/pan/dolly` + `view.3d.*` 机位;2D 素材用 `layer.*` + `keys.easyEase*` 缓动
79
+
80
+ ### 质检挂钩(artcraft_qc / 人工复核)
81
+ - 逐镜抽帧复核 + `scopes.read` 示波器核对影调是否落在本透镜的光比与色相档位
@@ -0,0 +1,81 @@
1
+ ---
2
+ name: artcraft-lens-refn
3
+ description: >-
4
+ 导演透镜(ArtCraft 适配版):尼古拉斯·温丁·雷弗恩导演风格 Skill。把该导演的工作方式翻译成 ArtCraft 可执行参数——FilmCraft 时间线与转场、LightCraft 影调分区、SoundCraft 声音规则、EffectCraft 机位。当用户点名该导演、要求该风格,或项目美学圣经引用该透镜时加载。
5
+ ---
6
+
7
+ # 尼古拉斯·温丁·雷弗恩导演风格 Skill(ArtCraft 适配版)
8
+
9
+ ## 风格参数 / Style parameters
10
+
11
+ ```yaml
12
+ style_id: refn
13
+ lens_kit_mm: [25, 40, 75] # 25 把房间拍成舞台,40 拍仪式中景,75 拍锁死的脸;避免长焦压缩与广角变形
14
+ camera:
15
+ prefer: [locked frontal symmetric frame, single constant push under 5cm per second, locked face portrait held 12-25s, overhead centred on the ritual, hard cut between identical setups]
16
+ avoid: [handheld, orbit, pan, tilt, any move that breaks symmetry]
17
+ motion_budget: none
18
+ height: "chest height, perpendicular to the wall, subject's centre line exactly on frame centre"
19
+ shot_size_bias: [medium frontal, close-up frontal portrait, wide frontal of the room as a stage, overhead, extreme close-up on hands]
20
+ composition: [absolute bilateral symmetry, flat frontal plane with no depth cues, subject dead centre, colour split into two hard-edged halves, large areas of pure black as material]
21
+ lighting:
22
+ key_quality: hard
23
+ key_ratio: "8:1 to 12:1"
24
+ motivation: stylized
25
+ signature: "舞台灯式硬边色块;画面里能直接看见两种颜色的分界线"
26
+ palette:
27
+ dominant: "magenta, electric blue"
28
+ accent: "blood red, moonlight violet, pure black"
29
+ saturation: high
30
+ contrast: high
31
+ editing:
32
+ avg_shot_length_s: "10-25"
33
+ transition_bias: [hard cut]
34
+ coverage_style: "同机位同姿势重复 2-3 次;一场 2-5 个镜头;暴力单镜完成,前后各挂静止镜头"
35
+ sound:
36
+ music: "合成器音墙决定段落长度,低频持续音加琶音循环,几乎不变化"
37
+ ambience: "要么压到近乎消失,要么夸张到不自然(呼吸、织物、灯的嗡鸣),不共存"
38
+ dialogue: "短、宣告式、无信息量,一场不超过两句"
39
+ silence_use: "暴力前 1-2 秒完全静音,让声效独自炸开"
40
+ performance:
41
+ register: "雕塑式克制,姿态优先于表情;直视镜头每段只用一次"
42
+ blocking: "人物走到画面正中并停住;走位是直线,方向只有前后"
43
+ aspect_bias: "2.39:1"
44
+ ai_video:
45
+ clip_duration_s: "8-15"
46
+ prompt_bias: "先写颜色分界线在画面的哪个位置,再写人物姿势,最后只给一个微动作;运动预算给光,不给摄影机也不给人。"
47
+ risk: "锁死构图加静止人物容易被模型渲染成一张死图;'霓虹'又常被理解成拥挤的赛博街景加招牌文字。缓解:明确写 the camera does not move and the subject does not walk,把唯一的运动交给光(例如 the magenta wash slowly shifts to cyan over six seconds),并在负面词里点名 signage 与 text。"
48
+ negative_prompt_adds: [street signage, on-screen text, cyberpunk crowd, rain-slick busy street, handheld shake, soft diffused fill, pastel desaturation, foreground obstruction]
49
+ ```
50
+
51
+ ## ArtCraft 落点(本插件适配)
52
+
53
+ ### 剪辑(FilmCraft)
54
+ - 单镜均长目标 **"10-25"s**(observational / 长镜(8–15s 档))→ `timeline.place` 铺轨后按分配修长:`timeline.trim {mode:"ripple"}`、`timeline.rateStretch` 微调
55
+ - 转场偏好:**[hard cut]** → `sequence.applyVideoTransition {effect}` / `sequence.setTransition {duration, align}`
56
+ - 覆盖方式:"同机位同姿势重复 2-3 次;一场 2-5 个镜头;暴力单镜完成,前后各挂静止镜头"
57
+ - 音画切点:对白/音乐切点参考 SoundCraft `event.beat_detective` 的节拍位置
58
+
59
+ ### 影调(LightCraft / FilmCraft Lumetri)
60
+ - 光比目标 **"8:1 to 12:1"** → LightCraft `light.contrast` + `grading.shadows/highlights` 分离
61
+ - 主色:"magenta, electric blue" → `mixer.{magenta,red,blue}.*` 定点 + `grading.*` 方向
62
+ - 点缀:"blood red, moonlight violet, pure black"
63
+ - 饱和/对比:high / high
64
+ - 光线签名:"舞台灯式硬边色块;画面里能直接看见两种颜色的分界线"
65
+ - 落点命令:`develop.set control=<id> value=<v>` 逐项;定稿 `preset.create` 固化,整批 `preset.apply`;FilmCraft 侧 `lumetri.setLook` + `presets.save`
66
+
67
+ ### 声音(SoundCraft / FilmCraft)
68
+ - 音乐:"合成器音墙决定段落长度,低频持续音加琶音循环,几乎不变化"
69
+ - 环境:"要么压到近乎消失,要么夸张到不自然(呼吸、织物、灯的嗡鸣),不共存"
70
+ - 对白:"短、宣告式、无信息量,一场不超过两句"
71
+ - 静默:"暴力前 1-2 秒完全静音,让声效独自炸开"
72
+ - 落点命令:`essentialSound.setType` + `essentialSound.generateDucking`(避让对白)+ `essentialSound.autoMatch {target:-14}`;SoundCraft `mix.insert` 挂处理链
73
+
74
+ ### 机位与运动(EffectCraft)
75
+ - 优先:[locked frontal symmetric frame, single constant push under 5cm per second, locked face portrait held 12-25s, overhead centred on the ritual, hard cut between identical setups]
76
+ - 避免:[handheld, orbit, pan, tilt, any move that breaks symmetry]
77
+ - 运动预算:none
78
+ - 落点命令:`camera.orbit/pan/dolly` + `view.3d.*` 机位;2D 素材用 `layer.*` + `keys.easyEase*` 缓动
79
+
80
+ ### 质检挂钩(artcraft_qc / 人工复核)
81
+ - 逐镜抽帧复核 + `scopes.read` 示波器核对影调是否落在本透镜的光比与色相档位