@dsh-gis/dsh-video-studio-skill 0.9.1 → 1.0.2

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 (55) hide show
  1. package/CHANGELOG.md +424 -0
  2. package/README.md +287 -327
  3. package/THIRD_PARTY_NOTICES.md +1 -1
  4. package/package.json +9 -10
  5. package/schemas/design.schema.json +722 -0
  6. package/schemas/film.schema.json +4 -15
  7. package/schemas/proposal.schema.json +133 -0
  8. package/skills/video-studio/SKILL.md +1316 -1123
  9. package/skills/video-studio/assets/design_fixture.json +141 -0
  10. package/skills/video-studio/assets/film.json +1 -2
  11. package/skills/video-studio/assets/golden_frames.json +11 -8
  12. package/skills/video-studio/assets/scenes.py +67 -22
  13. package/skills/video-studio/assets/voice_loudness.json +16 -0
  14. package/skills/video-studio/references/audio-variation.md +15 -11
  15. package/skills/video-studio/references/audio.md +36 -34
  16. package/skills/video-studio/references/change-impact.md +3 -3
  17. package/skills/video-studio/references/frame-qa.md +2 -2
  18. package/skills/video-studio/references/proposal.md +177 -0
  19. package/skills/video-studio/references/quality-gates.md +1 -1
  20. package/skills/video-studio/references/scene-grammar.md +28 -23
  21. package/skills/video-studio/references/sfx-design.md +1 -1
  22. package/skills/video-studio/references/style-packs.md +95 -257
  23. package/skills/video-studio/references/v08-quality.md +8 -8
  24. package/skills/video-studio/references/web-engine.md +1 -1
  25. package/skills/video-studio/references/word-timeline.md +2 -2
  26. package/skills/video-studio/scripts/designkit.py +2120 -0
  27. package/skills/video-studio/scripts/filmcheck.py +7 -33
  28. package/skills/video-studio/scripts/filmkit.py +153 -78
  29. package/skills/video-studio/scripts/grammar.py +67 -7
  30. package/skills/video-studio/scripts/musicgen.py +2043 -0
  31. package/skills/video-studio/scripts/preflight.py +10 -3
  32. package/skills/video-studio/scripts/previewkit.py +849 -0
  33. package/skills/video-studio/scripts/propose.py +825 -0
  34. package/skills/video-studio/scripts/qa_frames.py +45 -10
  35. package/skills/video-studio/scripts/qavmaf.py +77 -11
  36. package/skills/video-studio/scripts/render.py +472 -154
  37. package/skills/video-studio/scripts/scorekit.py +50 -1748
  38. package/skills/video-studio/scripts/selfcheck.py +658 -131
  39. package/skills/video-studio/scripts/stagewatch.py +21 -5
  40. package/skills/video-studio/scripts/stylekit.py +265 -741
  41. package/skills/video-studio/scripts/voicekit.py +502 -380
  42. package/skills/video-studio/scripts/webengine.py +15 -14
  43. package/tools/audio_similarity.py +57 -30
  44. package/tools/ci_check.py +7 -1
  45. package/tools/estimate.py +14 -8
  46. package/tools/golden_frames.py +56 -11
  47. package/tools/silhouette_qa.py +521 -168
  48. package/docs/demo-pil-sheet.png +0 -0
  49. package/docs/styles/demo-results.json +0 -76
  50. package/docs/styles/sheet-8-styles.png +0 -0
  51. package/docs/styles/sheet-ai.png +0 -0
  52. package/docs/styles/sheet-before-after.png +0 -0
  53. package/docs/styles/sheet-craft.png +0 -0
  54. package/docs/styles/sheet-night.png +0 -0
  55. package/skills/video-studio/assets/score_demo.json +0 -307
@@ -23,18 +23,7 @@
23
23
  },
24
24
  "style": {
25
25
  "type": "string",
26
- "enum": [
27
- "auto",
28
- "tech-deep",
29
- "magazine",
30
- "paper",
31
- "vivid",
32
- "mono",
33
- "cinema",
34
- "lo-fi",
35
- "epic"
36
- ],
37
- "description": "风格包 id:一套决定画风+配乐+旁白+节奏。“auto”= 按内容自动选;不写这个键 = v0.4 legacy 行为(逐样本兼容)。枚举真值来自 stylekit.STYLES,新增风格时先改那边再改这里"
26
+ "description": "**已废弃(v1.0.1)**:不再有内置风格表,这个键不决定任何外观,写了也不生效(保留只为了让老剧本继续通过契约校验)。外观的唯一来源是 work/design.json(propose.py --confirm 冻结,渲染前由 designkit.design_to_plan 解析);没有设计就渲染会明确报错,而不是回落到某个默认风格。这里**故意不放 enum**:v1.0.1 起没有任何合法风格 id 可列,列一份清单只会误导 IDE 补全。"
38
27
  },
39
28
  "engine": {
40
29
  "type": "string",
@@ -540,7 +529,7 @@
540
529
  "music": {
541
530
  "type": "object",
542
531
  "additionalProperties": true,
543
- "description": "配乐:scorekit 程序化生成 / v0.2 和弦床 / 外部 wav / 关掉。不写 mode 时走 v0.2 兼容链(有 bpm 就生成,没有就沿用)",
532
+ "description": "配乐:musicgen 按参数现场编排 / v0.2 和弦床 / 外部 wav / 关掉。不写 mode 时走兼容链(有 bpm 就生成,没有就沿用)。v1.0.1 起没有配乐风格表,不要指望选一个 id 得到一种现成配乐",
544
533
  "properties": {
545
534
  "enabled": {
546
535
  "type": "boolean",
@@ -554,11 +543,11 @@
554
543
  "file",
555
544
  "off"
556
545
  ],
557
- "description": "score = scorekit 程序化配乐;bed = v0.2 和弦床;file = 用外部 work/music.wav;off = 不要配乐(不读也不删 music.wav)"
546
+ "description": "score = musicgen 参数化编排(bpm/key/scale/mood/sections 全可写);bed = v0.2 和弦床;file = 用外部 work/music.wav;off = 不要配乐(不读也不删 music.wav)"
558
547
  },
559
548
  "style": {
560
549
  "type": "string",
561
- "description": "\"auto\" 或风格 id:配乐风格(缺省跟随全片 style)"
550
+ "description": "已废弃:v1.0.1 删除了配乐风格表,写风格 id 没有意义(保留字段只为老剧本校验不失败)"
562
551
  },
563
552
  "mood": {
564
553
  "type": "string",
@@ -0,0 +1,133 @@
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema#",
3
+ "$id": "https://github.com/znlgis/dsh-video-studio-skill/schemas/proposal.schema.json",
4
+ "title": "video-studio proposal(v1.0 提案)",
5
+ "description": "work/proposal.json:一次提案的 N 个候选 + 用户确认状态。status=confirmed 才允许出片。",
6
+ "type": "object",
7
+ "required": [
8
+ "schema",
9
+ "rev",
10
+ "status",
11
+ "candidates"
12
+ ],
13
+ "additionalProperties": true,
14
+ "properties": {
15
+ "schema": {
16
+ "type": "integer",
17
+ "const": 1
18
+ },
19
+ "rev": {
20
+ "type": "integer",
21
+ "minimum": 1
22
+ },
23
+ "parentRev": {
24
+ "type": [
25
+ "integer",
26
+ "null"
27
+ ]
28
+ },
29
+ "at": {
30
+ "type": "string"
31
+ },
32
+ "status": {
33
+ "type": "string",
34
+ "enum": [
35
+ "draft",
36
+ "confirmed",
37
+ "rejected"
38
+ ]
39
+ },
40
+ "chosen": {
41
+ "type": [
42
+ "string",
43
+ "null"
44
+ ],
45
+ "description": "confirmed 时必填的候选 id"
46
+ },
47
+ "confirmedAt": {
48
+ "type": "string"
49
+ },
50
+ "confirmedBy": {
51
+ "type": "string"
52
+ },
53
+ "confirmNote": {
54
+ "type": "string"
55
+ },
56
+ "designHash": {
57
+ "type": "string",
58
+ "description": "确认时 design.json 的指纹(用于判 stale)"
59
+ },
60
+ "brief": {
61
+ "type": "object"
62
+ },
63
+ "feedback": {
64
+ "type": "string"
65
+ },
66
+ "seed": {},
67
+ "wall_s": {
68
+ "type": "number"
69
+ },
70
+ "candidates": {
71
+ "type": "array",
72
+ "minItems": 2,
73
+ "items": {
74
+ "type": "object",
75
+ "required": [
76
+ "id",
77
+ "design",
78
+ "design_fp"
79
+ ],
80
+ "properties": {
81
+ "id": {
82
+ "type": "string",
83
+ "pattern": "^[A-H][0-9]*$"
84
+ },
85
+ "label": {
86
+ "type": "string"
87
+ },
88
+ "pitch": {
89
+ "type": "string"
90
+ },
91
+ "design": {
92
+ "type": "object"
93
+ },
94
+ "design_fp": {
95
+ "type": "string"
96
+ },
97
+ "preview": {
98
+ "type": "object"
99
+ },
100
+ "cost": {
101
+ "type": "object"
102
+ },
103
+ "diversity": {
104
+ "type": [
105
+ "object",
106
+ "null"
107
+ ]
108
+ }
109
+ }
110
+ }
111
+ }
112
+ },
113
+ "allOf": [
114
+ {
115
+ "if": {
116
+ "properties": {
117
+ "status": {
118
+ "const": "confirmed"
119
+ }
120
+ },
121
+ "required": [
122
+ "status"
123
+ ]
124
+ },
125
+ "then": {
126
+ "required": [
127
+ "chosen",
128
+ "designHash"
129
+ ]
130
+ }
131
+ }
132
+ ]
133
+ }