@ninkch/dsh-infinite-canvas 0.19.2 → 0.19.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 (88) hide show
  1. package/README.md +50 -0
  2. package/README.zh-CN.md +50 -0
  3. package/assets/canvas-director/SKILL.md +235 -0
  4. package/assets/canvas-director/forms/cinematic.md +56 -0
  5. package/assets/canvas-director/forms/commercial.md +63 -0
  6. package/assets/canvas-director/forms/documentary.md +57 -0
  7. package/assets/canvas-director/forms/explainer.md +57 -0
  8. package/assets/canvas-director/forms/interview.md +56 -0
  9. package/assets/canvas-director/forms/music-video.md +62 -0
  10. package/assets/canvas-director/forms/short-drama.md +60 -0
  11. package/assets/canvas-director/forms/trailer.md +58 -0
  12. package/assets/canvas-director/genres/action-mission.md +58 -0
  13. package/assets/canvas-director/genres/adventure.md +78 -0
  14. package/assets/canvas-director/genres/broken-mirror-reunion.md +112 -0
  15. package/assets/canvas-director/genres/counterattack.md +58 -0
  16. package/assets/canvas-director/genres/crime-police.md +78 -0
  17. package/assets/canvas-director/genres/family-relation.md +58 -0
  18. package/assets/canvas-director/genres/fantasy.md +82 -0
  19. package/assets/canvas-director/genres/hk-retro.md +80 -0
  20. package/assets/canvas-director/genres/identity-swap.md +58 -0
  21. package/assets/canvas-director/genres/modern-urban.md +78 -0
  22. package/assets/canvas-director/genres/parent-child-secret.md +113 -0
  23. package/assets/canvas-director/genres/period-power-struggle.md +58 -0
  24. package/assets/canvas-director/genres/rebirth-transmigration.md +58 -0
  25. package/assets/canvas-director/genres/revenge-face-slap.md +58 -0
  26. package/assets/canvas-director/genres/slice-of-life.md +58 -0
  27. package/assets/canvas-director/genres/suspense-rule.md +58 -0
  28. package/assets/canvas-director/genres/system-flow.md +58 -0
  29. package/assets/canvas-director/genres/wealthy-romance.md +58 -0
  30. package/assets/canvas-director/genres/workplace-comedy.md +58 -0
  31. package/assets/canvas-director/genres/wuxia.md +78 -0
  32. package/assets/canvas-director/genres/xianxia-cultivation.md +58 -0
  33. package/assets/canvas-director/industries/auto.md +44 -0
  34. package/assets/canvas-director/industries/education.md +44 -0
  35. package/assets/canvas-director/industries/fashion-beauty.md +45 -0
  36. package/assets/canvas-director/industries/finance.md +44 -0
  37. package/assets/canvas-director/industries/fmcg.md +44 -0
  38. package/assets/canvas-director/industries/food.md +45 -0
  39. package/assets/canvas-director/industries/medical.md +45 -0
  40. package/assets/canvas-director/industries/realestate.md +44 -0
  41. package/assets/canvas-director/industries/tech.md +44 -0
  42. package/assets/canvas-director/industries/travel.md +45 -0
  43. package/assets/canvas-director/lenses/bergman.md +207 -0
  44. package/assets/canvas-director/lenses/bi_gan.md +198 -0
  45. package/assets/canvas-director/lenses/coen_brothers.md +204 -0
  46. package/assets/canvas-director/lenses/fellini.md +207 -0
  47. package/assets/canvas-director/lenses/fincher.md +195 -0
  48. package/assets/canvas-director/lenses/hitchcock.md +203 -0
  49. package/assets/canvas-director/lenses/hou_hsiao_hsien.md +202 -0
  50. package/assets/canvas-director/lenses/kubrick.md +206 -0
  51. package/assets/canvas-director/lenses/kurosawa.md +206 -0
  52. package/assets/canvas-director/lenses/lu_yang.md +200 -0
  53. package/assets/canvas-director/lenses/malick.md +201 -0
  54. package/assets/canvas-director/lenses/michael_mann.md +202 -0
  55. package/assets/canvas-director/lenses/nolan.md +195 -0
  56. package/assets/canvas-director/lenses/park_chan_wook.md +202 -0
  57. package/assets/canvas-director/lenses/refn.md +196 -0
  58. package/assets/canvas-director/lenses/scorsese.md +205 -0
  59. package/assets/canvas-director/lenses/spielberg.md +202 -0
  60. package/assets/canvas-director/lenses/tarkovsky.md +194 -0
  61. package/assets/canvas-director/lenses/tsui_hark.md +201 -0
  62. package/assets/canvas-director/lenses/villeneuve.md +198 -0
  63. package/assets/canvas-director/lenses/wong_kar_wai.md +199 -0
  64. package/assets/canvas-director/lenses/wu_ershan.md +206 -0
  65. package/assets/canvas-director/lenses/yuen_woo_ping.md +200 -0
  66. package/assets/canvas-director/lenses/zhang_yimou.md +202 -0
  67. package/assets/canvas-director/looks/anime-thick-paint.md +81 -0
  68. package/assets/canvas-director/looks/dark-myth-cg.md +83 -0
  69. package/assets/canvas-director/looks/east-epic-3d.md +83 -0
  70. package/assets/canvas-director/looks/ghibli-watercolor.md +82 -0
  71. package/assets/canvas-director/looks/guoman-3d-ink.md +82 -0
  72. package/assets/canvas-director/looks/guoman-3d-xianxia.md +82 -0
  73. package/assets/canvas-director/looks/hk-retro-film.md +81 -0
  74. package/assets/canvas-director/looks/realistic-cinema.md +83 -0
  75. package/assets/canvas-director/looks/shinkai-light.md +82 -0
  76. package/assets/canvas-director/manifest.json +603 -0
  77. package/assets/canvas-director/moves/camera-moves.md +79 -0
  78. package/assets/canvas-director/moves/fight-rhythm.md +77 -0
  79. package/assets/canvas-director/pack.js +342 -0
  80. package/assets/canvas-studio/SKILL.md +34 -3
  81. package/client.js +19577 -18938
  82. package/docs/guide.en.md +66 -1
  83. package/docs/guide.zh-CN.md +64 -1
  84. package/index-core-skill-profile.js +39 -0
  85. package/index.js +127 -3
  86. package/package.json +65 -60
  87. package/skill-pack-loader.js +147 -0
  88. package/skill-pack.js +179 -0
@@ -0,0 +1,44 @@
1
+ ---
2
+ industry_id: finance
3
+ title: 金融
4
+ kind: industry
5
+ ---
6
+ <!-- slice:story prompt -->
7
+ ## 视觉母题
8
+
9
+ 纸币的雕刻线在侧光下凸起,拇指压过时凹槽里积着一点黑。柜台玻璃上两层的反光:一层是天花灯管,一层是对面人的肩线。签名笔尖压下的墨还没有干,纸纤维被推出一圈浅坑。印章落下时,纸被压得微微下凹,抬起后回弹很慢。计算器的按键被磨出圆角,数字键的中心比边缘更亮。文件柜抽屉滑轨的滚珠在抽出一半时露出来,排在一条暗线上。
10
+
11
+ <!-- slice:story prompt -->
12
+ ## 证据点
13
+
14
+ 因为同一张表被两个人先后签过,墨色深浅不同,所以"流程走完了"成立。因为点钞时拇指每捻一次纸角会翘一下,纸堆的高度肉眼可见地少一层,所以"数清楚了"成立。因为计算机屏幕的角落时间戳在两次镜头之间变了,所以"他在这里坐了很久"成立。因为抽屉推回去到底时会有一声闷响、柜体轻震一下,所以"归档完成"成立。因为印章抬起后纸面留一圈压痕,逆光下那圈比周围低,所以"这一份是真的盖过章"成立。
15
+
16
+ <!-- slice:story prompt -->
17
+ ## 常见承诺
18
+
19
+ 1. 每一笔进出都能追到一张纸或一条记录,画面里要能看见那条记录被翻出来。
20
+ 2. 你随时可以停、可以取、可以问,且有人当场答你——这个"当场"必须被拍到一个真人抬头。
21
+ 3. 条款在你签之前被念给你听过,且你能拿到一份带走。
22
+
23
+ <!-- slice:prompt -->
24
+ ## 禁项
25
+
26
+ 1. 不许出现具体收益率、回报倍数、"稳赚""保本""零风险"字样。
27
+ 2. 不许出现可辨识的钞票面额、国徽、行徽与真实机构招牌。
28
+ 3. 不许让钱堆成山、让钞票在空中飘、让硬币落成瀑布。
29
+ 4. 不许用绿色上涨箭头、K 线冲刺、满屏红绿数字代替叙事。
30
+ 5. 不许出现"内部消息""带你上车""最后名额"这类话术字幕。
31
+ 6. 不许拍出无来源的现金手提箱交接,且不给任何后续解释。
32
+ 7. 不许用握手加微笑当作"信任已建立"的唯一证据。
33
+ 8. 不许出现可读的账户号、身份证号、手机号,即使是虚构的。
34
+ 9. 不许用俯拍大班台加雪茄加落地窗的组合暗示实力。
35
+ 10. 不许让亏损只以人物皱眉表达,必须有可核对的状态变化。
36
+
37
+ <!-- slice:prompt -->
38
+ ## 参考镜头
39
+
40
+ - 特写|拇指压过纸币的雕刻线,凹槽里积着黑|单侧硬光来自画面左上|拇指搓过纸角,纸堆矮下去一层
41
+ - 中景|柜台两侧,玻璃上叠着天花灯与对面肩线|顶光+后景窗光,两层反光错开|一只手把文件推过台面,另一只手接住
42
+ - 特写|印章垂直落下,纸面被压出浅坑|侧光来自右侧,压痕边缘起亮边|抬起后纸回弹很慢
43
+ - 近景|抽屉滑轨滚珠露出来,排成一条暗线|光从抽屉开口斜进去|抽屉推到底,柜体轻震一下
44
+ - 特写|签名笔尖压纸,墨未干发亮|顶光偏右|笔抬起,指尖在签名处按了一下
@@ -0,0 +1,44 @@
1
+ ---
2
+ industry_id: fmcg
3
+ title: 快消
4
+ kind: industry
5
+ ---
6
+ <!-- slice:story prompt -->
7
+ ## 视觉母题
8
+
9
+ 货架上同一排产品的正面朝向误差:有的标签高一点,有的低一点,边缘排成一条不齐的线。塑料袋在开口处被撕开,撕裂边缘是毛的,有一根细丝连着。瓶盖拧开时那一圈防盗环断开,环还挂在瓶颈上晃。铝罐壁上有压痕,压痕旁边凝着水珠,水珠在暗处是灰的、在亮处有一个白点。纸盒被捏过之后棱角软了,折痕处起毛。
10
+
11
+ <!-- slice:story prompt -->
12
+ ## 证据点
13
+
14
+ 因为防盗环已经断了但还挂在瓶颈上,所以"这瓶是刚开的"成立。因为罐壁上水珠不是均匀分布而是聚在凹处,所以"它是冷的、刚从冷柜出来"成立。因为同一排标签的高低差被拍得出来,所以"这是真货架而不是摆拍"成立。因为撕开的袋子边缘有一根丝连着、纤维方向一致,所以"它是被手撕的"成立。因为纸盒折痕处起毛、棱角发软,所以"它被拿起来看过"成立。
15
+
16
+ <!-- slice:story prompt -->
17
+ ## 常见承诺
18
+
19
+ 1. 一次就能拿起来、撕开、打开——不需要找剪刀。
20
+ 2. 放在手上是它该有的重量和硬度,捏一下会回弹。
21
+ 3. 开封后还能重新盖上,盖回去是紧的。
22
+
23
+ <!-- slice:prompt -->
24
+ ## 禁项
25
+
26
+ 1. 不许出现可辨识的真实品牌包装、标签排版、字体与配色组合。
27
+ 2. 不许出现"0 糖""零添加""纯天然""行业第一"等字样与营养数值。
28
+ 3. 不许让液体在空中炸开成完美形状,不许用高速摄影把浪费拍成美感。
29
+ 4. 不许出现可读的成分表、配料顺序与净含量。
30
+ 5. 不许把产品放在纯白无缝背景里只做旋转。
31
+ 6. 不许用挤爆、泼洒、踩碎作为爽点。
32
+ 7. 不许出现儿童手持产品并对着镜头笑。
33
+ 8. 不许用可读的价格牌与促销爆炸贴。
34
+ 9. 不许让包装在无外力情况下自己滑落、自己立住。
35
+ 10. 不许出现虚假的认证圆标与"专利"字样。
36
+
37
+ <!-- slice:prompt -->
38
+ ## 参考镜头
39
+
40
+ - 特写|防盗环断开,还挂在瓶颈上晃|侧逆光来自右后,环的断口有一道亮边|手腕一转,环转半圈停住
41
+ - 近景|罐壁凹处聚着水珠|硬光来自左上,水珠在亮处一个白点|罐子从冷柜里被拿出来,水珠往下走
42
+ - 中景|货架上一排标签,高低不齐|顶光偏前,标签边缘一条亮线|手伸进来,抽走中间那一件
43
+ - 特写|袋子撕开,边缘毛,一根丝连着|侧光来自右侧,丝被照成一条亮线|两手往两边拉开,丝最后断掉
44
+ - 近景|纸盒被捏过,棱角软了|顶光直下,折痕处起毛发白|手指把折痕压回去,盒角不回弹
@@ -0,0 +1,45 @@
1
+ ---
2
+ industry_id: food
3
+ title: 餐饮
4
+ kind: industry
5
+ ---
6
+ <!-- slice:story prompt -->
7
+ ## 视觉母题
8
+
9
+ 热油表面在斜光下有一层皱,皱里折出一道碎亮,油面下能看到葱段四周在翻。米饭粒表面是湿的,粒与粒之间有一层薄油光,压下去会贴在一起。汤面的油花聚成几片,片与片之间是暗的,热气从片边缘往上走。铁锅壁上的焦层有一圈一圈的痕,最底下一圈最黑。竹蒸笼的竹篾被蒸得发深,缝隙里凝着水,水往下流到蒸笼边再滴。
10
+
11
+ <!-- slice:story prompt -->
12
+ ## 证据点
13
+
14
+ 因为油面上皱折出的碎亮在动、且形状不重复,所以"它是热的、还在滚"成立。因为热气从油花片之间的暗处上升、把背景推得轻微抖动,所以"温度是真的"成立。因为米饭压下去会贴在一起、抬起时有细丝拉着,所以"它有水分"成立。因为铁锅焦层是一圈一圈的、越往下越黑,所以"这口锅被用很久"成立。因为竹篾缝隙里的水先停住再汇成一条往下流,所以"这笼刚下火"成立。
15
+
16
+ <!-- slice:story prompt -->
17
+ ## 常见承诺
18
+
19
+ 1. 出锅到上桌是一段很短的时间,画面里要能看见这段路。
20
+ 2. 材料是当天的、看得见原样,切之前先给一次完整的。
21
+ 3. 火候看得见:什么在滚、什么在收、什么该起锅。
22
+
23
+ <!-- slice:prompt -->
24
+ ## 禁项
25
+
26
+ 1. 不许出现可辨识的餐厅招牌、连锁标识与菜单上的可读菜名与价格。
27
+ 2. 不许出现"秘制""祖传""零添加""养胃"等字样与任何营养数值。
28
+ 3. 不许出现"拉丝"被拉成一米长、不符合物理的镜头。
29
+ 4. 不许让汤汁、酱料在空中炸开成完美形状。
30
+ 5. 不许用手指直接抓取食物送入口中。
31
+ 6. 不许出现可读的食材重量、份量与"足量"对比。
32
+ 7. 不许用后厨的脏乱作为卖点,也不许用一尘不染的假后厨。
33
+ 8. 不许让厨师在不洁状态下处理直接入口的食物。
34
+ 9. 不许用俯拍满桌菜的全景充当"丰盛"。
35
+ 10. 不许出现"排队三小时""一座难求"的字幕。
36
+ 11. 不许让食物在镜头里自己移动(无外力)。
37
+
38
+ <!-- slice:prompt -->
39
+ ## 参考镜头
40
+
41
+ - 特写|热油面起皱,皱里折出碎亮|侧逆光来自画面右后,油面一条亮带|葱段下锅,皱被推开又合上
42
+ - 近景|米饭粒之间的薄油光|顶光偏前,粒顶有小亮点|筷子压下去,米粒贴在一起,抬起时拉出细丝
43
+ - 特写|汤面油花聚成几片,片间是暗的|逆光,光源低,油花边缘起亮边|汤面晃一下,热气从片边缘往上走
44
+ - 近景|铁锅壁上焦层一圈一圈|侧光来自右上,最底一圈最黑|锅铲刮过一圈,焦层上留一道亮痕
45
+ - 特写|竹蒸笼篾缝里凝水|顶光直下,水在缝里反出小白点|蒸笼被端起,水汇成一条流向边缘
@@ -0,0 +1,45 @@
1
+ ---
2
+ industry_id: medical
3
+ title: 医疗
4
+ kind: industry
5
+ ---
6
+ <!-- slice:story prompt -->
7
+ ## 视觉母题
8
+
9
+ 无影灯在器械盘上打出两三个重叠的圆,圆与圆的交界有一条过渡带。不锈钢针尖反出一点亮,尖后面立刻暗下去。橡胶手套的腕口被胶带压住,胶带边缘起了一点毛。生理盐水袋挂在钩上,液面在袋里随呼吸微动,滴壶里一颗液滴把下面的水柱砸出一个凹。床单的折痕是硬折,被压过之后不会马上平。监护波形在暗屏上跑,光从屏幕溢到旁边的皮面上。
10
+
11
+ <!-- slice:story prompt -->
12
+ ## 证据点
13
+
14
+ 因为手套腕口的胶带被汗浸出一圈深色,所以"已经站了很久"成立。因为器械从盘里拿走时托盘上留下一个湿印,印子慢慢收干,所以"这件刚用过"成立。因为床单上的硬折被压平了一块,所以"有人在这里躺过"成立。因为滴壶滴速稳定、液面不抖,所以"这一路是通的"成立。因为手在触碰前停住、视线先落到一处,所以"他知道哪里不能碰"成立。
15
+
16
+ <!-- slice:story prompt -->
17
+ ## 常见承诺
18
+
19
+ 1. 有人在你开口前先报了自己的名字和要做什么。
20
+ 2. 每一步之前都有人说明下一步,且你能听懂。
21
+ 3. 疼痛被问、被记、被回应——画面里要出现一次记录动作。
22
+
23
+ <!-- slice:prompt -->
24
+ ## 禁项
25
+
26
+ 1. 不许出现可辨识的药品包装、瓶身标签与剂量文字。
27
+ 2. 不许出现具体的疗效、治愈率、存活期与"根治"字样。
28
+ 3. 不许让针头实际刺入皮肤,不许出现血液与创口特写。
29
+ 4. 不许出现真实医院名称、科室牌、院徽与工牌上的可读姓名。
30
+ 5. 不许用绿色手术服加蓝色冷光当作"专业"的唯一手段。
31
+ 6. 不许用除颤、抢救、家属哭喊当作情绪捷径。
32
+ 7. 不许让心电波形在画面上停在一条直线。
33
+ 8. 不许拍出可识别的病历内容与检查单数字。
34
+ 9. 不许让医护在无手套状态下接触创面区域。
35
+ 10. 不许用"我们尽力了"配合慢镜头收尾。
36
+ 11. 不许出现儿童病床与哭泣家属的组合。
37
+
38
+ <!-- slice:prompt -->
39
+ ## 参考镜头
40
+
41
+ - 特写|无影灯在器械盘上叠出两个圆,交界有过渡带|顶光,两个光源夹角很小|一把镊子从盘里拿走,盘上留下湿印
42
+ - 近景|手套腕口被胶带压住,边缘起毛|侧光来自画面左侧|手背绷一下,胶带下的皮肤被拉白
43
+ - 特写|盐水袋液面随呼吸微动|背光,光源在袋后|滴壶落下一颗液滴,水柱被砸出凹
44
+ - 中景|床单硬折被压平一块|窗光从右后斜进,折痕一侧亮一侧暗|一只手把床单角折回去,折线变钝
45
+ - 近景|手伸向器械前停住|顶光偏左,指背有一小片亮|视线先落到一处,手再落下
@@ -0,0 +1,44 @@
1
+ ---
2
+ industry_id: realestate
3
+ title: 地产
4
+ kind: industry
5
+ ---
6
+ <!-- slice:story prompt -->
7
+ ## 视觉母题
8
+
9
+ 墙面乳胶漆在斜光下有极细的滚筒纹,纹路走向一致。地砖的缝是一条等宽的黑线,四块砖拼在一起时形成一个十字。门框与墙的接缝处打了胶,胶条被压出指印。窗台外侧有落灰,落灰在窗框下沿积成一条。踢脚线上有一道擦痕,擦痕的方向是从下往上。空白墙面上有一块比周围白一点,是搬走家具留下的。
10
+
11
+ <!-- slice:story prompt -->
12
+ ## 证据点
13
+
14
+ 因为地砖缝的十字四边等宽,所以"这活是认真做的"成立。因为墙面斜光下有滚筒纹且方向一致,所以"这是滚涂不是喷涂"成立。因为踢脚线的擦痕方向是从下往上、起点集中在一处,所以"这里被反复搬进搬出"成立。因为窗台落灰在框下沿积成一条、上部薄下部厚,所以"这窗很久没开"成立。因为墙面有一块比周围白,边缘是家具轮廓,所以"这里刚空出来"成立。
15
+
16
+ <!-- slice:story prompt -->
17
+ ## 常见承诺
18
+
19
+ 1. 站在屋里能看见窗外的真实东西——要出现一次从室内看出去的动作。
20
+ 2. 关上门之后,外面的声音会变闷。
21
+ 3. 墙面、地面、门窗的接缝对得上,用手摸不出高差。
22
+
23
+ <!-- slice:prompt -->
24
+ ## 禁项
25
+
26
+ 1. 不许出现可辨识的真实项目名、售楼处招牌与户型图上的可读文字。
27
+ 2. 不许出现单价、总价、面积数字、"升值""保值""稀缺"字样。
28
+ 3. 不许用"格调""尊崇""世家"这类堆叠字幕。
29
+ 4. 不许让房间在没有光源逻辑的情况下通亮。
30
+ 5. 不许用广角把 60 平拍成 160 平。
31
+ 6. 不许让窗外是绿幕式的假天际线与假海景。
32
+ 7. 不许出现穿鞋踩在沙发与床上的画面。
33
+ 8. 不许让落地窗前的空镜反复出现以充当叙事。
34
+ 9. 不许出现"最后三套""错过不再"的口播。
35
+ 10. 不许用样板间的花艺、香薰、翻开的书当唯一细节。
36
+
37
+ <!-- slice:prompt -->
38
+ ## 参考镜头
39
+
40
+ - 特写|地砖四块拼在一起,缝成一个等宽十字|斜光贴着地面,缝里是一条黑线|脚横着蹭过去,缝线不动
41
+ - 近景|墙面滚筒纹方向一致|硬侧光几乎平行墙面|手从左往右擦一下,纹路仍看得见
42
+ - 特写|窗台外侧落灰积在下沿|窗光从外向内,灰面被照亮|手把窗推开一条缝,灰被风带起一点
43
+ - 中景|从室内看向窗外|室内光低,窗外亮,反差大|窗帘被拉开一半,窗框的影子落到地上
44
+ - 近景|踢脚线上一道擦痕,从下往上|侧光来自地面反射,低位|脚跟贴着踢脚线蹭了一下,擦痕变亮
@@ -0,0 +1,44 @@
1
+ ---
2
+ industry_id: tech
3
+ title: 科技
4
+ kind: industry
5
+ ---
6
+ <!-- slice:story prompt -->
7
+ ## 视觉母题
8
+
9
+ 冷白光贴着阳极氧化铝边框走,边缘只剩一条 0.5mm 高光,其余面把光吃掉。屏幕玻璃上的指纹被斜射光刮出来,一片油膜横过黑色区域。散热孔的阵列:光从背面穿进来,孔里是黑的,孔与孔之间亮;风一过,孔边的浮尘会偏一下。触控板上的指腹压出浅坑,抬起后回弹,留下弧形的汗痕。电路板的锡点每颗都是小山,各反一个针尖大的亮点。
10
+
11
+ <!-- slice:story prompt -->
12
+ ## 证据点
13
+
14
+ 因为同一片屏幕区域被手指划了三次,油痕叠成一道更亮的带,所以"这台设备一直在被用"成立。因为把屏幕倾到侧角,画面内容仍能读出,所以"亮度与可视角"成立。因为散热孔附近的热气让背景虚焦轻微抖动,所以"它在满负荷跑"成立。因为插头推进接口到底时手指会停住一秒,所以"连接到位"成立。因为边框倒角把一道光折到桌面,桌面出现一条细亮线,所以"这是整块金属而非贴皮"成立。
15
+
16
+ <!-- slice:story prompt -->
17
+ ## 常见承诺
18
+
19
+ 1. 交付时能开机、能连上、能读到你自己的文件——画面里必须出现一次从冷启动到内容出现的完整过程。
20
+ 2. 正常室内光下就能看清,不必把灯关掉、不必凑到十厘米。
21
+ 3. 拿在手上不烫手、不出异响、不晃;这三件事都能在同一颗镜头的同一段时间里被看见。
22
+
23
+ <!-- slice:prompt -->
24
+ ## 禁项
25
+
26
+ 1. 不许出现可辨识的真实品牌标识、机型轮廓与系统界面。
27
+ 2. 不许用紫色霓虹网格、悬浮全息面板、"赛博"配色冒充技术。
28
+ 3. 不许让进度条、加载环、扫描线代替真实操作。
29
+ 4. 不许出现可读的跑分数字、参数表与"提升多少倍"字样。
30
+ 5. 不许用镜面地板无限反射加烟雾制造高级感。
31
+ 6. 不许手部穿模:手指悬在键帽上方却不接触。
32
+ 7. 不许出现虚构的认证标志、安全封条、防伪镭射。
33
+ 8. 不许用文字标签去标注噪声、温度、延迟这类物理现象。
34
+ 9. 不许在没有外接电源的画面里暗示永不耗电。
35
+ 10. 不许用甩镜加故障闪白冒充节奏。
36
+
37
+ <!-- slice:prompt -->
38
+ ## 参考镜头
39
+
40
+ - 特写|指尖从触控板左上斜划到右下,皮肤压出浅坑后回弹|顶光偏左三十度|手指离开后光标停在原地
41
+ - 近景|散热孔阵列占满画面,孔内全黑|背光,光源藏在机身另一侧|风扇起转,背景虚焦抖一下
42
+ - 中景|设备平放木桌,屏幕黑着,桌面有一块方形反光|侧逆光来自画面右后|手把屏幕倾到侧角,内容仍读得出
43
+ - 特写|插头推进接口到底,手指停住一秒|侧光来自左侧,接口内壁一圈亮边|到位后侧面指示灯亮一次
44
+ - 近景|一条高光沿着铝边框的倒角跑|硬光,光源在上方偏右|手转动机身,高光滑动而不散开
@@ -0,0 +1,45 @@
1
+ ---
2
+ industry_id: travel
3
+ title: 文旅
4
+ kind: industry
5
+ ---
6
+ <!-- slice:story prompt -->
7
+ ## 视觉母题
8
+
9
+ 石阶被踩出的凹面在斜光下有一层油亮,凹面的边缘比中间旧。木门上的漆起皮,翘起的那一片投出一道细影。水面上的反光不是一片,是许多碎块,碎块之间是暗的。檐口滴下的水在石板上打出一个小坑,坑里存着水。褪色的布旗边缘被风撕成丝,丝在逆光里是透的。青苔只长在背光的那一面,交界线很直。
10
+
11
+ <!-- slice:story prompt -->
12
+ ## 证据点
13
+
14
+ 因为石阶凹面油亮、边缘磨损更深,所以"这里被走很多年"成立。因为漆皮翘起投出影子、影子随光移动,所以"这是真漆不是贴图"成立。因为水面反光碎成块、块与块之间是暗的,所以"有风"成立。因为青苔只出现在背光面且交界线直,所以"这个朝向常年不晒"成立。因为门轴转动时门板先沉一下再转,所以"这扇门很重、很旧"成立。
15
+
16
+ <!-- slice:story prompt -->
17
+ ## 常见承诺
18
+
19
+ 1. 走得到、走得进去,不需要预约也能站在那个位置。
20
+ 2. 有人在那里生活,不是只为你布置好的样子。
21
+ 3. 你到的时候光照就是这个样子——早、晚各一次,别的时间不对。
22
+
23
+ <!-- slice:prompt -->
24
+ ## 禁项
25
+
26
+ 1. 不许出现可辨识的真实景区名称、门票、导览牌与地标全貌。
27
+ 2. 不许用可读的距离、海拔、时长与"最佳打卡点"字样。
28
+ 3. 不许让街道空无一人,不许把居民赶出画面只留建筑。
29
+ 4. 不许用无人机一镜到底穿过门洞与水面上方。
30
+ 5. 不许出现穿着租来的民族服饰摆拍的人群。
31
+ 6. 不许用烟雾、花瓣、纸伞、油纸伞堆砌"中国风"。
32
+ 7. 不许给当地人以奇观化的特写(皱纹、手部、儿童)。
33
+ 8. 不许出现可读的价格、菜单与住宿评分。
34
+ 9. 不许让天气在同一段内突变以凑画面。
35
+ 10. 不许用"小众秘境""人少景美"这类字幕。
36
+ 11. 不许在文物表面出现触摸、攀爬、刻字。
37
+
38
+ <!-- slice:prompt -->
39
+ ## 参考镜头
40
+
41
+ - 特写|石阶凹面油亮,边缘更旧|低角度斜光来自画面左,凹面反出一片亮|一只脚踩上去,鞋底压住凹面
42
+ - 近景|木门漆皮翘起,投出一道细影|侧逆光来自右后|门被推开,漆皮影子跟着移动
43
+ - 中景|水面反光碎成块,块间是暗的|逆光,光源低,在水面拉出一片碎亮|风过,碎块形状变了一次
44
+ - 特写|檐口滴水打进石板小坑|顶光,坑里存的水反出一点白|水滴落下,坑面晃一下平静
45
+ - 近景|青苔与干石的交界线|背光面,光从侧上擦过|手把一片落叶从交界线上拿开,不碰苔
@@ -0,0 +1,207 @@
1
+ ---
2
+ lens_id: bergman
3
+ title: 英格玛·伯格曼
4
+ oneliner: 把摄影机放在视线正前方,用长焦让整张脸清晰,然后不切。
5
+ description: 用于学习并转化伯格曼式室内心理剧、信仰危机、亲密关系、脸部特写和存在主义对话。请用于原创创作,不要复制其具体镜头、台词、角色或受版权保护的表达。
6
+ ---
7
+ <!-- slice:story shot prompt -->
8
+ ## 一句话镜头 / Lens in one line
9
+
10
+ 把摄影机放在视线正前方,用长焦让整张脸清晰,然后不切。
11
+
12
+ Put the camera on the eyeline, keep the whole face sharp on a long lens, refuse to cut.
13
+
14
+ <!-- slice:story -->
15
+ ## 适用场景
16
+
17
+ - 室内剧、婚姻与亲密关系冲突、信仰危机、死亡焦虑、家庭创伤、忏悔与审问、心理崩溃。
18
+ - 两人对话场景;单人独白;需要在 3–5 分钟内不换景完成情绪全程的段落。
19
+ - 需要用最少资产(一个房间、两张脸、一扇窗)做出高强度戏剧的低成本项目。
20
+ - 不适用:动作、群像、需要空间奇观或类型快感的题材;需要观众跟随外部目标的叙事。
21
+
22
+ <!-- slice:story shot -->
23
+ ## 反例:这不是什么 / What this lens is NOT
24
+
25
+ - 不是通用文艺片特写:这里的特写不是"好看的脸"。机位在演员正前方,镜头轴线与其视线轴线夹角小于 10 度,演员近乎直视镜头,观众没有侧身回避的角度。
26
+ - 不是浅焦氛围:用 75–150mm,但光圈收到 f/11–f/16——100mm 在 1.3–1.4 米(脸占画幅高约 70%)时只有收到这一档,鼻尖到耳廓才全部落在景深里。不做"眼睛清晰、耳朵化开"的柔化,脸的每一块都要能被审视。
27
+ - 不是德莱叶式神性:脸不是被光升华的圣像。光是审讯性的——单侧硬光比 6:1,另一侧不补,半张脸留在黑里,观众必须自己去看那半张。
28
+ - 不是标准正反打对话片:不用固定的机位 A/B 交替。两张脸常在同一画面内并置(一张正面一张侧面,或一前一后错位),关系变化靠人物在画内移动完成,而不是靠切换机位。
29
+ - 不是慢电影:镜头长不是为了让时间流逝或让观众冥想。长是为了不让观众逃走;每个长镜头内部必须有可被指认的心理变化点(一次吞咽、一次呼吸中断、目光落下),没有变化点就该剪短。
30
+ - 不是需要哭戏:表演的最高强度是"没有哭出来但脸正在塌"。不要求外爆情绪,要求可见的抑制。
31
+
32
+ <!-- slice:story shot prompt -->
33
+ ## 核心风格关键词
34
+
35
+ 正面凝视、双脸并置、审讯式侧光、存在主义对白、沉默作为台词、室内即牢笼、剥皮式揭露、不治愈的结尾。
36
+
37
+ <!-- slice:story -->
38
+ ## 叙事方法
39
+
40
+ - 人物 2–3 个,空间 1–2 个,时间跨度不超过一夜。外部事件越简单越好。
41
+ - 真正的戏剧来自关系里的谎言、依赖、怨恨与羞耻,不来自情节推进。
42
+ - 对白像剥皮:每一轮交换都比上一轮更接近人物最不愿说的那句话。写对白时给每一轮标一个"被剥掉的第几层"。
43
+ - 全场设一次"权力翻转":谁在问、谁在答,必须在中段互换一次。
44
+ - 结尾不是和解,是更清楚地看见痛苦。允许两人回到起点,但观众已经看见了内部。
45
+
46
+ <!-- slice:story shot -->
47
+ ## 镜头语言
48
+
49
+ - 主力 75–150mm 拍脸。75mm 给中近景,100–150mm 给大特写;长焦不放大鼻子也不缩耳朵,脸被拍成它本来的比例,观众找不到一处变形可以拿来替他解释。
50
+ - 正面凝视是核心手段:摄影机在视线轴线上(偏差 <10 度),脸占画幅高度 60–80%。这是这个透镜最贵也最有效的一招,一场戏用 2–4 次就够。
51
+ - 双脸构图:一张脸正面在中景平面,另一张脸侧面在近景平面,两张脸的边缘接触或轻微重叠。谁离镜头近,谁在这一刻更有权力。
52
+ - 焦点转换代替剪辑:两人同框时用一次 1.5–2 秒的变焦点完成"注意力转移",不切镜头。这一条和"整张脸都在景深内"不冲突,但必须分开执行:单脸大特写收到 f/11–f/16,双脸构图开到 f/2.8–f/4 并让两张脸相差 0.5 米以上,变焦点才读得出来。
53
+ - 静止镜头为主;如有运动,只用极慢的推近(0.02–0.05 m/s,20 秒内推进 0.5–1 米),慢到观众意识不到。术语见 cinematic-language.md(景别/机位/运镜/轴线按电影语言通行口径写(景别:远景·全景·中景·近景·特写·大特写;运镜:固定·推·拉·摇·移·跟·升降·环绕;相邻镜守 180° 轴线与 30° 规则)。)。
54
+
55
+ <!-- slice:shot prompt assets -->
56
+ ## 灯光与色彩
57
+
58
+ - 单侧硬主光,比 6:1,暗面不补光但保留可辨认的轮廓。光源方向决定谁在审问谁。
59
+ - 光源常是窗、台灯、火;把光位设在演员正侧方(90 度)而不是 45 度,这样鼻影会把脸分成两半。
60
+ - 黑白思维:先确认画面在去色后靠脸的明暗雕塑成立。彩色时也保持低饱和、室内化、冷偏(灰蓝、灰绿),只留皮肤是暖的。
61
+ - 背景压到近乎全黑或全白的单色平面,让脸没有可依靠的环境信息。
62
+
63
+ <!-- slice:story -->
64
+ ## 剪辑节奏
65
+
66
+ - ASL 20–90 秒。一场 4 分钟的戏可以只有 5–8 个镜头。
67
+ - 不在情绪高点切走。让镜头继续拍到情绪之后的那 3–5 秒——观众要看的是余波。
68
+ - 用画内移动代替切换:人物起身、转身、走近窗户,都是"剪辑"。
69
+ - 梦境或回忆插入时不做视觉标记(不加滤镜、不加溶解),靠光位与声音的突然改变提示。
70
+
71
+ <!-- slice:story -->
72
+ ## 声音与音乐
73
+
74
+ - 音乐极少。若使用,只在场景之间的空白处,且不与对白同时存在。
75
+ - 沉默是台词的一部分:给每场戏指定 2–3 处 4–8 秒的沉默,并写清沉默期间镜头在拍谁的脸。
76
+ - 环境声取单一元素并让它持续:钟摆、海浪、风穿窗缝、时钟走秒。它负责让沉默可被计量。
77
+ - 对白录音干、近、无混响,呼吸与吞咽必须清晰可闻——它们是这个透镜的音效。
78
+
79
+ <!-- slice:story shot -->
80
+ ## 人物与表演
81
+
82
+ - 表演高度内在化:情绪不必爆发,但压力必须持续可见。给演员的指令是抑制的目标(不许眨眼超过一次、不许移开视线、把这句话说完再呼吸)。
83
+ - 人物在爱与恨、依赖与厌恶、信仰与虚无之间摇摆,且两端同时为真。
84
+ - 残酷来自亲密关系里的真实需求,不来自恶意;每一句伤人的话背后要有一个可说清的需求。
85
+ - 允许人物对镜头说话(近似告解),但一场戏只用一次。
86
+
87
+ <!-- slice:shot prompt assets -->
88
+ ## 风格参数 / Style parameters
89
+
90
+ ```yaml
91
+ style_id: bergman
92
+ lens_kit_mm: [75, 100, 150] # 75 中近景;100/150 拍大特写,长焦不给脸任何变形借口;单脸收到 f/11-f/16 让整张脸落在景深内,双脸构图开到 f/2.8-f/4 留给变焦点
93
+ camera:
94
+ 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"]
95
+ avoid: ["handheld", "shot-reverse-shot on fixed A/B setups", "camera orbit", "wide establishing of the room", "any move the audience can notice"]
96
+ motion_budget: low # 实际接近 none:唯一允许的运动是观众察觉不到的推进
97
+ height: "眼平,精确对齐演员瞳孔高度;全场不变"
98
+ 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"]
99
+ 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"]
100
+ lighting:
101
+ key_quality: hard
102
+ key_ratio: "6:1,暗面不补光但保留轮廓"
103
+ motivation: practical
104
+ signature: "正侧方 90 度单光源,鼻影把脸分成两半;背景压成单色平面"
105
+ palette:
106
+ dominant: 灰蓝、灰绿、近黑、近白
107
+ accent: 皮肤的暖色是画面里唯一的暖
108
+ saturation: low
109
+ contrast: high
110
+ editing:
111
+ avg_shot_length_s: "20-90;一场 4 分钟的戏只用 5-8 个镜头"
112
+ transition_bias: ["hard cut", "fade"]
113
+ coverage_style: "不做标准正反打;用画内移动与变焦点代替切换,情绪高点之后再拍 3-5 秒"
114
+ sound:
115
+ music: 极少;只在场景之间的空白处,不与对白同时存在
116
+ ambience: 单一持续元素(钟摆、海浪、风穿窗缝),让沉默可被计量
117
+ dialogue: 干、近、无混响;呼吸与吞咽必须清晰可闻
118
+ silence_use: 每场指定 2-3 处 4-8 秒沉默,并写清沉默时镜头在拍谁的脸
119
+ performance:
120
+ register: 高度抑制;最高强度是"没有哭出来但脸正在塌",指令写成抑制目标
121
+ blocking: 人物在画内起身、转身、靠近窗;谁离镜头近谁在这一刻更有权力
122
+ aspect_bias: "1.37:1 / 4:3——接近方形的画幅让脸在竖向被填满;16:9 会在脸两侧留下无用空间"
123
+ ai_video:
124
+ clip_duration_s: "8-15(在工具能稳住身份的前提下取最长)"
125
+ 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 秒以上的长镜头用同参数分段续接拼出来,接点选在动作完全静止的那一帧。
126
+ risk: 模型会给静止的脸补上多余动作(转头、眨眼过频、微笑)并把背景虚化成柔焦氛围,抑制感立刻消失。对策是写 no head turn, blinks only once, background flat and dark, no bokeh,并把 clip 控制在一次心理变化点之内。
127
+ 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"]
128
+ ```
129
+
130
+ <!-- slice:storyboard shot -->
131
+ ## 可迁移拍摄清单
132
+
133
+ 1. 把冲突压进一个房间、一夜之间、2–3 个人物;砍掉所有外部事件。
134
+ 2. 给对白每一轮标"被剥掉的第几层",确保层数单调递增。
135
+ 3. 全场安排一次权力翻转,标出翻转发生在第几分钟。
136
+ 4. 每场用 2–4 次正面凝视特写,机位偏离视线轴不超过 10 度。
137
+ 5. 把光位放在演员正侧方 90 度,比 6:1,暗面不补光。
138
+ 6. 指定 2–3 处 4–8 秒沉默,并写清镜头此刻在拍谁。
139
+ 7. 每个长镜头内部标出至少一个心理变化点(吞咽、呼吸中断、目光落下);没有就剪短。
140
+ 8. 结尾不给和解,给"看得更清楚";写出观众现在知道而开场时不知道的那一件事。
141
+
142
+ <!-- slice:prompt -->
143
+ ## 提示词模板 / Prompt templates
144
+
145
+ 镜头设计简报(中文,用于 Step 5 导演本与 Step 7 分镜):
146
+
147
+ ```text
148
+ 用伯格曼镜头设计以下场景:<一句话事件>
149
+ 硬性要求:
150
+ - 人物 2-3 人,空间 1 个,时间不超过一夜;外部事件写成一句话
151
+ - 对白剥层表:第 1 层 <> → 第 2 层 <> → 第 3 层 <>,层数只增不减
152
+ - 权力翻转发生在第 <> 分钟,翻转标志 <>
153
+ - 镜头:75mm 中近景 / 100-150mm 大特写;正面凝视 2-4 次,机位偏离视线轴 <10 度
154
+ - 双脸构图至少 1 次:谁在近景侧面、谁在中景正面,以及为什么是他
155
+ - 光圈:单脸大特写 f/11-f/16(整张脸落在景深内)/ 双脸构图 f/2.8-f/4 且两张脸相差 >0.5 米(留给变焦点)
156
+ - 光:正侧方 90 度单光源,比 6:1,暗面不补;背景压成单色平面
157
+ - 声:环境只留 <钟摆 / 海浪 / 风>;沉默 2-3 处,每处 4-8 秒,注明拍谁
158
+ - 节奏:ASL 20-90 秒;情绪高点后继续拍 3-5 秒
159
+ 输出:分镜表 + 剥层表 + 沉默表
160
+ ```
161
+
162
+ Image-to-video motion prompt(英文,用于 Step 10,接关键帧):
163
+
164
+ ```text
165
+ [100mm | 150mm], locked camera on the eyeline axis, face filling [60-80%] of frame height, whole face inside depth of field.
166
+ [Subject] begins [held expression, gaze direction]. Over the clip: [one single micro-change — a swallow, the breath stopping, the eyes lowering].
167
+ No head turn. Blinks once. The mouth does not open unless [named line]. Nothing in the background moves.
168
+ Hard single key from 90 degrees camera-[left/right], 6:1, unfilled shadow side, nose shadow dividing the face; background flat near-black.
169
+ End with [the face after the change, held]. Maintain [face, hair, collar, light direction, flat dark background].
170
+ Avoid: bokeh, shallow focus, camera movement, smiling, head turning away, warm grade, text, watermark.
171
+ ```
172
+
173
+ Keyframe / still prompt(英文,用于 Step 8,接图像模型):
174
+
175
+ ```text
176
+ [Extreme close-up | two-face composition], 100mm-equivalent, camera on the eyeline axis, eye level exactly at pupil height.
177
+ Framing: the face occupies 60-80% of frame height; whole face sharp front to back — no bokeh, no selective focus.
178
+ [If two faces: one profile in the foreground at frame left, one frontal behind at frame right, their edges touching; the front face sharp, the one behind slightly softer so a focus shift is possible in the video step.]
179
+ Lighting: single hard source at 90 degrees camera-left, 6:1, shadow side unfilled but with a readable contour; nose shadow splits the face.
180
+ Background: flat near-black wall, no props, no texture.
181
+ Palette: desaturated grey-blue; skin is the only warm value in the image.
182
+ Expression: [suppressed — the mouth held, the eyes wet but not spilling, the jaw working once].
183
+ 1.37:1. No warm grade, no glamour softening, no background detail, no text, no watermark.
184
+ ```
185
+
186
+ <!-- slice:story -->
187
+ ## 落地示例 / Worked example
188
+
189
+ 控制场景:一个人站在一扇关着的公寓门前,手里拿着打算送出去的东西,犹豫,最后没敲门就走了。
190
+
191
+ 这一拍的功能:不拍走廊,不拍他怎么来的。整场戏只有一张脸,和玻璃里回看着它的第二张。
192
+
193
+ 调度:他侧对镜头站在门前 0.3 米,四分之三侧面在画左的近景平面;门上那块玻璃在画右稍后的平面里,装着他自己的正面倒影,两张脸的边缘在画面中央相接。倒影的视线锁在他自己的实脸上——"被审视"这件事不需要第二个演员。注意方向:正面倒影只能来自他面对的那块玻璃,如果把门放在他背后,玻璃里出现的是后脑勺,这一镜就不成立。他抬手时倒影同时抬手;他停住,倒影停住。他看了倒影 6 秒(全场唯一的沉默段),目光落下,退出画左。摄影机不动,继续拍玻璃里空掉的那一格 5 秒。
194
+
195
+ 关键镜头 SH1 完整规格:双脸构图,100mm,机位距实脸 1.3 米、在他视线轴外侧约 25 度,眼平对齐瞳孔,全镜锁定 22 秒。这一镜的正面凝视由倒影承担,所以摄影机不必压在视线轴上——这是本透镜允许突破 10 度规则的唯一情况。景深是它的核心:镜像成在玻璃后等距处,倒影的光学距离是 1.3 + 0.3×2 = 1.9 米,实脸 1.3 米,开到 f/4 时两者不可能同时锐利,正好换来一次 1.5–2 秒的变焦点(实脸 → 倒影)。单光源来自画左正侧方 90 度(走廊尽头的窗),比 6:1,暗面不补光但保留下颌轮廓;鼻影把脸分成两半。背景压到近黑。声音只有他的呼吸和远处的钟走秒;没有音乐。22 秒在生成端拆成两条(变焦点之前 / 之后),接点放在他手停住的那一帧。
196
+
197
+ ```text
198
+ Two-face composition, 100mm, locked camera 1.3m from his face and about 25 degrees off his eyeline, eye level at pupil height.
199
+ Frame left, foreground: his real face in three-quarter profile, facing the door. Frame right, slightly further away:
200
+ his own frontal reflection in the small glass panel of that closed door, its edge touching his cheek; the reflection looks back at him.
201
+ He holds a wrapped parcel just below frame and raises his hand; the reflection raises with him. He stops. One swallow.
202
+ The breath catches and does not resume for a beat. Focus shifts once from the real face to the reflection over 1.5 seconds and stays there.
203
+ Then the eyes lower and he steps out of frame left, leaving the empty glass panel.
204
+ Hard single key from 90 degrees camera-left, 6:1, shadow side unfilled but with a readable jaw contour, nose shadow splitting the face; background near-black.
205
+ Sound: breathing and a distant clock only. Maintain both versions of the face, the collar, the light direction, the flat dark background.
206
+ Avoid: camera movement, head turning away, smiling, warm grade, background detail, text, watermark.
207
+ ```