LibTV 短剧分镜自动化 Skill
把一段剧本变成 LibTV 画布上建好的分镜节点:分析爽感 → 提修改意见 → 敲定 → 拆锚点 → 拆分镜 → 自动建节点。本文件是自包含的执行入口;配套知识库在 prompts/,详细流程在 AGENT_WORKFLOW.md。
⚠️ 本 skill 不含任何具体剧情。所有示例均为占位符(见
examples/template/),填入任意剧本即可复用。
何时使用
- 用户给了剧本/网文文本,要求做成竖屏短剧/漫剧的分镜节点
- 用户说"把这个脚本拆成 LibTV 节点""按这个 skill 流程跑""生成分镜"
- 用户要"改题材"(女频/知识口播/悬疑等)——本流程换任何题材都通用
核心约束(铁律)
- 绝不自动生成视频:脚本和本流程都绝不调用
libtv ... -r/--run。建完节点列清单交人类点生成。 - 一致性靠引用:分镜不重写人物长相,只引用锚点图(
--left连边 /{{Node <id>}}占位符)。人脸场景不跳变。 - 模型锁定:生图
Lib Image,生视频Seedance 2.0 VIP(音画同步)。无 VIP 时在 manifest 换可用模型。 - 先分析后建节点:必须先把分析摘要 + 修改意见给人看,等人敲定再建节点。
5 步流水线(详见 AGENT_WORKFLOW.md)
① 输入剧本 ──→ ② 分析引擎(提题材/冲突/弧线/角色/场景/道具 + 提修改意见)
↓ 等人敲定
③ 锚点清单(anchors) ──→ ④ 分镜表(storyboard) ──→ ⑤ 批量建节点(CLI)
工具:libtv CLI(关键命令)
libtv login web # 登录(首次)
libtv account info # 确认登录
libtv project list # 找目标画布 uuid
# 建锚点图节点:
libtv node create -p <project> -t image --name "<A1-角色:{{主角名}}>" --prompt "<描述+后缀>" -s model="Lib Image" -s ratio="9:16"
# 建分镜视频节点(连锚点确保一致性):
libtv node create -p <project> -t video --name "<分镜01-...>" --prompt "<{{Node <id>}}...>" -s model="Seedance 2.0 VIP" -s ratio="9:16" -s duration=10 --left <anchorNodeId1> --left <anchorNodeId2>
批量建节点请直接调用
python3 scripts/create_nodes.py --project <uuid> --manifest <nodes_manifest.json>,不要手敲每个命令。
知识库索引(必须读这些再动手)
| 文件 | 用途 |
|---|---|
prompts/analyzer.md |
分析引擎:从自由文本提取结构化信息的规则 A-E(题材/角色/场景/道具/弧线) |
prompts/anchor_template.md |
锚点清单模板 + 角色/场景/道具定妆描述写法 |
prompts/storyboard_template.md |
分镜表模板 + 6 元素镜头公式 |
prompts/node_prompts.md |
生图/生视频 prompt 组装规则 + 拍摄手法词库(景别/运镜/光影/情绪映射) |
examples/template/ |
占位符模板:剧本→分析→锚点→分镜→manifest 全齐,填空即用 |
manifest 规范(scripts/create_nodes.py 的输入)
{
"project_name": "{{项目名}}",
"visual_style_suffix": "9:16竖幅+电影级光影+写实风格+无字幕无水印",
"image_model": "Lib Image",
"video_model": "Seedance 2.0 VIP",
"anchors": [
{"id":"A1","type":"character","name":"A1-角色锚点:{{主角名}}(主角)","prompt":"{{年龄}}{{性别}},{{服装细节}},{{面部三要素}},{{反差感}}。强侧光,15-30°侧拍,中近景,浅景深。禁止文字水印。","ratio":"9:16"},
{"id":"B1","type":"scene","name":"B1-场景锚点:{{主场景}}","prompt":"{{具体环境描述}},{{色调}},空旷无人物。","ratio":"9:16"},
{"id":"C1","type":"prop","name":"C1-道具锚点:{{核心道具}}","prompt":"{{微距特写}},{{材质/色泽}},顶部强光,背景纯黑。","ratio":"9:16"}
],
"shots": [
{"id":"01","name":"分镜01-{{第一幕铺垫}}","prompt":"{{主场景}}{{Node B1}},{{主角名}}{{Node A1}}...","duration":10,"anchor_refs":["B1","A1"]}
]
}
脚本会:先建所有 anchor 拿到真实 node id → 把 shot.prompt 里的 {{Node <anchorId>}} 替换为真实 id → 建 shot 节点并用 --left 连对应锚点 → 输出节点清单。
防护:若 shot.prompt 里引用了某锚点但
anchor_refs漏写,脚本会自动补连,避免建节点被拒。
注意
- 本流程是用画布节点复现 LibTV skill 的能力;
libtvCLI 本身没有读取/创建「skill」的命令。 - 台词直接写进视频 prompt(
台词掷地有声:"..."),靠Seedance 2.0的enableSound合成,无独立配音节点。 - 仓库不含具体剧情,所有示例均为占位符;填入你的剧本即可复用整套分析技术与镜头语言。