@dsh-gis/dsh-video-studio-skill 0.9.1 → 1.0.4
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.
- package/CHANGELOG.md +473 -0
- package/README.md +263 -327
- package/THIRD_PARTY_NOTICES.md +2 -2
- package/package.json +9 -10
- package/schemas/design.schema.json +722 -0
- package/schemas/film.schema.json +31 -42
- package/schemas/proposal.schema.json +133 -0
- package/skills/video-studio/SKILL.md +1216 -1123
- package/skills/video-studio/assets/design_fixture.json +141 -0
- package/skills/video-studio/assets/film.json +2 -4
- package/skills/video-studio/assets/golden_frames.json +13 -10
- package/skills/video-studio/assets/scenes.py +153 -65
- package/skills/video-studio/assets/voice_loudness.json +16 -0
- package/skills/video-studio/references/appearance.md +123 -0
- package/skills/video-studio/references/audio-variation.md +74 -93
- package/skills/video-studio/references/audio.md +64 -66
- package/skills/video-studio/references/change-impact.md +5 -5
- package/skills/video-studio/references/{v08-quality.md → delivery-gates.md} +16 -18
- package/skills/video-studio/references/frame-qa.md +48 -16
- package/skills/video-studio/references/pipeline.md +4 -4
- package/skills/video-studio/references/pitfalls.md +22 -3
- package/skills/video-studio/references/proposal.md +160 -0
- package/skills/video-studio/references/quality-gates.md +11 -11
- package/skills/video-studio/references/scene-authoring.md +2 -2
- package/skills/video-studio/references/scene-grammar.md +40 -42
- package/skills/video-studio/references/sfx-design.md +8 -6
- package/skills/video-studio/references/web-engine.md +8 -8
- package/skills/video-studio/references/word-timeline.md +9 -9
- package/skills/video-studio/requirements.txt +9 -13
- package/skills/video-studio/scripts/designkit.py +2115 -0
- package/skills/video-studio/scripts/filmcheck.py +22 -48
- package/skills/video-studio/scripts/filmkit.py +2980 -2904
- package/skills/video-studio/scripts/gates.py +4 -4
- package/skills/video-studio/scripts/grammar.py +73 -13
- package/skills/video-studio/scripts/musicgen.py +2042 -0
- package/skills/video-studio/scripts/preflight.py +14 -7
- package/skills/video-studio/scripts/previewkit.py +848 -0
- package/skills/video-studio/scripts/propose.py +825 -0
- package/skills/video-studio/scripts/qa_frames.py +73 -39
- package/skills/video-studio/scripts/qaasr.py +26 -7
- package/skills/video-studio/scripts/qavmaf.py +89 -23
- package/skills/video-studio/scripts/render.py +545 -231
- package/skills/video-studio/scripts/scorekit.py +55 -1755
- package/skills/video-studio/scripts/selfcheck.py +815 -215
- package/skills/video-studio/scripts/sfxkit.py +27 -26
- package/skills/video-studio/scripts/stagewatch.py +24 -8
- package/skills/video-studio/scripts/stylekit.py +207 -888
- package/skills/video-studio/scripts/voicekit.py +508 -387
- package/skills/video-studio/scripts/webengine.py +71 -72
- package/tools/audio_similarity.py +64 -37
- package/tools/ci_check.py +20 -14
- package/tools/estimate.py +34 -29
- package/tools/golden_frames.py +72 -28
- package/tools/silhouette_qa.py +520 -168
- package/docs/demo-pil-sheet.png +0 -0
- package/docs/styles/demo-results.json +0 -76
- package/docs/styles/sheet-8-styles.png +0 -0
- package/docs/styles/sheet-ai.png +0 -0
- package/docs/styles/sheet-before-after.png +0 -0
- package/docs/styles/sheet-craft.png +0 -0
- package/docs/styles/sheet-night.png +0 -0
- package/skills/video-studio/assets/score_demo.json +0 -307
- package/skills/video-studio/references/style-packs.md +0 -283
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
# -*- coding: utf-8 -*-
|
|
2
|
-
"""preflight.py —
|
|
2
|
+
"""preflight.py — 渲染前资源闸门。
|
|
3
3
|
|
|
4
4
|
为什么要有它:缺字形(✓ / emoji / 生僻字)和坏 TTS 音频都是「渲染完才报」的问题——
|
|
5
5
|
filmkit.glyph_missing_chars() 检测本身是准的(正常中文 [],✓/↵/emoji 检出),
|
|
@@ -12,7 +12,7 @@ preflight 不新写检测器,只把现成检测前移,并把结论整理成
|
|
|
12
12
|
2 glyphs 所有上屏文本逐字过 filmkit.glyph_missing_chars;
|
|
13
13
|
字段:text / sub / big / kicker / lead / note / title / end_text /
|
|
14
14
|
chapter / items[].text(含 timeline.scenes 里的同名字段)
|
|
15
|
-
|
|
15
|
+
按夹具实际绘制权重检测:big/kicker=bold、lead=light、sub=reg+light、
|
|
16
16
|
items=reg、title/chapter=reg、text=bold+reg
|
|
17
17
|
3 tts work/tts/*.mp3 若存在,必须能被 ffprobe 解析出音频流;
|
|
18
18
|
文件名要能对上行 id,时长要与台词长度相符(过短=截断/坏缓存)
|
|
@@ -40,7 +40,7 @@ ffmpeg/ffprobe 探测口径与 filmkit 一致:FILMKIT_FFMPEG 优先,找不
|
|
|
40
40
|
"""
|
|
41
41
|
from __future__ import annotations
|
|
42
42
|
|
|
43
|
-
__version__ = "0.
|
|
43
|
+
__version__ = "1.0.4"
|
|
44
44
|
|
|
45
45
|
import argparse
|
|
46
46
|
import json
|
|
@@ -70,7 +70,7 @@ FIELD_WEIGHTS = {
|
|
|
70
70
|
"big": ("bold",),
|
|
71
71
|
"kicker": ("bold",),
|
|
72
72
|
"lead": ("light",),
|
|
73
|
-
"note": ("bold",), #
|
|
73
|
+
"note": ("bold",), # 夹具未用;按 QA 的 check_glyphs 口径(bold)兜底
|
|
74
74
|
"title": ("reg", "bold"), # 右下角 brand 画 reg;hook 缺 big 时画 bold
|
|
75
75
|
"end_text": ("bold",),
|
|
76
76
|
"chapter": ("reg",),
|
|
@@ -635,9 +635,16 @@ def _check_web_page(script, engine, errors, warnings, checks):
|
|
|
635
635
|
entry = _web_entry(script)
|
|
636
636
|
if not os.path.isfile(entry):
|
|
637
637
|
tpl = _skill_web_template()
|
|
638
|
-
|
|
639
|
-
|
|
640
|
-
|
|
638
|
+
# assets/web is a demo page for smoke-testing the web path, not a template.
|
|
639
|
+
# This skill ships no templates: web-path films need the user own page (PIL path is zero-copy).
|
|
640
|
+
if tpl:
|
|
641
|
+
hint = ("(web 引擎需要**你自己的页面**:把技能自带的**示例页**拷到 %s 只能跑通链路,"
|
|
642
|
+
"它只有 3 段占位场景、不是给你改字就出片的模板;正片请写自己的页面,"
|
|
643
|
+
"或在 film.json 写 web.entry 指向它。示例页:%s)"
|
|
644
|
+
% (os.path.dirname(entry), tpl))
|
|
645
|
+
else:
|
|
646
|
+
hint = ("写 film.json 的 web.entry 指向你自己的页面;或改用 PIL 路线"
|
|
647
|
+
"(--engine pil,不需要任何页面,零拷贝即可出片)")
|
|
641
648
|
_err(errors, "web_page_missing", "engine=web 但入口页不存在:%s(%s)"
|
|
642
649
|
% (entry, hint), "web_page")
|
|
643
650
|
_check(checks, "web_page", "fail", entry)
|