# Music Mv Storyboard

> 为完整歌曲编写连续的 MV 分镜和 Seedance / 即梦视频提示词。适用于歌词分镜与整曲视频分段规划；每段上限由用户指定为 10–15 秒整数。仅输出脚本，不生成视频。

- Skill: `xiongxianzhu/music-mv-storyboard` (Agent Skill, multi-file: 5 files)
- Install (CLI): `npx skillmds@latest add xiongxianzhu/music-mv-storyboard`
- Raw SKILL.md: https://api.skillmd.com/api/skills/xiongxianzhu/music-mv-storyboard/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: xiongxianzhu (https://skillmd.com/u/xiongxianzhu)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/xiongxianzhu/music-mv-storyboard

---


# 音乐 MV 分镜生成器

## 任务

把完整歌曲规划为可分别生成、随后连续剪辑的 Seedance 2.0 / 即梦视频片段。歌词、情绪、人物和场景需要连续；时长约束是硬边界，不以创意为理由突破。

仅生成 Markdown 分镜与提示词，不调用视频生成 API。

## 确定片段上限

先从当前请求及上下文提取每段视频时长上限。已提供有效值时直接采用，不重复询问。

只接受 10、11、12、13、14、15；缺失或无效时，与下方其他必要缺口一次询问。不要擅自取整或采用默认上限。上限未确定前可分析已有歌词，但不定稿时间轴。

## 收集必填输入

同时检查已有输入，不重复索取：

1. 歌曲名称
2. 完整歌词
3. 歌曲风格
4. 歌曲总时长

缺少的必要项一次收集。总时长接受 M:SS 或整数秒，并换算为正整数秒；含小数秒时将取整确认合并到同一次询问，不自行估算。歌词疑似节选时，询问是否已提供完整版本。

画幅可选：16:9 或 9:16，未指定默认 16:9。

## 规划完整时间轴

### 分析歌曲

识别前奏、主歌、预副歌、副歌、间奏、桥段、尾奏，梳理歌词叙事、情绪弧线、重复副歌和无歌词的器乐时间。

### 分配时长

为每段分配正整数秒，并同时满足：

- duration_sec 不超过 max_clip_sec
- 第一段从 0 秒开始
- 下一段 start_sec 等于上一段 end_sec
- end_sec - start_sec 等于 duration_sec
- 最后一段 end_sec 等于 song_duration_sec
- 所有 duration_sec 之和等于 song_duration_sec

上限为 10 秒时，任何段落都不能出现 11 秒或更长；其他上限同理。

不要为了平均时长破坏歌词语义。若一个语义单元超过上限，在自然停顿、并列画面或动作转折处分段，并让后段继承前段的主体位置、动作方向、光线或转场元素。

前奏、间奏、尾奏没有歌词时，用“纯器乐”标记对应歌词并设计画面，确保整首歌曲没有时间空洞。

### 保持 MV 连续性

在逐段提示词之前建立统一视觉圣经：

- 主要角色：年龄段、面部特征、发型、服装、标志性物件
- 世界设定：时代、地点、季节、天气
- 色彩弧线：随歌曲情绪变化的主色和光比
- 视觉母题：贯穿全片的物件、动作或构图
- 空间与动作连续：上一段结束状态对应下一段开始状态
- 人物空间调度：移动角色必须写清起点、行进方向、目标位置、停止位置、最终朝向和视线对象

副歌复现同一视觉母题，但通过景别、动作进度、环境变化或光线强度表现升级，不机械复制画面。

## 编写每段分镜

每段包含：

1. 时间码与整数时长
2. 对应歌词；无歌词写“纯器乐”
3. 叙事作用与情绪
4. 画面主体、可见动作、表情外化
5. 场景、光影和色彩
6. 景别与一种主要运镜
7. 人物空间调度与最终站位关系
8. 与前后片段的转场及连续性
9. 可直接复制的 Seedance 2.0 / 即梦提示词

镜头描述使用可执行的视觉语言。用“低头、攥紧衣角、呼吸放缓”等动作表达情绪，不用“高级、唯美、电影感”等空泛词单独代替画面。

人物发生走近、离开、穿越、追随等位移时，不使用孤立的“走来”“走近”“走远”。按“从哪里出发 → 沿什么方向/路径移动 → 走向谁或哪里 → 在何处停下 → 最终面向谁、视线落在哪里”的顺序描述。多人镜头还要写清左右、前后、距离和面对关系，避免模型生成无目标移动、背对交流或站位跳变。

单个片段内部建议镜头数：

- 1–6 秒：1–3 镜
- 7–10 秒：3–4 镜
- 11–15 秒：4–6 镜

每个小镜头只指定一种主要运镜，避免同镜同时推、拉、摇、移。

## Seedance 2.0 / 即梦提示词

每段使用以下结构，控制在 2000 个中文字符以内：

    画面无任何字幕。

    【风格】{歌曲视觉风格}，{N}秒，{16:9|9:16}，{本段氛围}

    【镜头】
    镜头1：{单一运镜}+{主体与可见动作}+{场景与光影}+{必要音效}
    镜头2：...

    【声音】仅保留<环境音>与<动作音效>，无背景音乐，无人声演唱。
    【衔接】{承接上一段结束状态；为下一段保留的动作或构图}
    【约束】主体外观全程一致，动作连贯自然，画面干净无文字元素、无水印无标识

提示词开头只写一次“画面无任何字幕。”。约束使用正向表达。避免详细暴力过程、过度暴露、敏感政治符号和其他即梦高风险内容；必要时保留歌曲情绪，改用光影、声效与人物反应表达。

### 声音规则

- 分镜视频不生成 BGM、配乐、歌曲旋律、人声演唱或节拍伴奏。
- 【声音】仅写环境音和画面内动作产生的拟声音效，例如风雨、脚步、衣料、开门、鸟鸣、水声；每个片段都明确写“无背景音乐，无人声演唱”。
- 歌曲的节奏、段落和情绪只用于安排镜头、动作与后期剪辑点，不写入视频生成提示词的【声音】字段。
- 纯器乐段同样只设计画面与现场音，不复刻原歌曲乐器。

## 时长校验

生成时间轴后，先写临时 JSON，结构如下：

    {
      "song_duration_sec": 220,
      "max_clip_sec": 10,
      "segments": [
        {"id": 1, "start_sec": 0, "end_sec": 10, "duration_sec": 10},
        {"id": 2, "start_sec": 10, "end_sec": 19, "duration_sec": 9}
      ]
    }

运行：

    python "<Skill目录>/scripts/validate_timeline.py" "<timeline.json>"

`<Skill目录>` 为本次读取的 `SKILL.md` 所在目录，调用时替换为实际绝对路径，不依赖工作区目录结构。

校验失败时调整边界并重跑。只有校验通过才输出和保存最终分镜。不要修改脚本来迁就错误时间轴。

## 输出与保存

完整输出严格遵循 [references/output-template.md](references/output-template.md)。

保存到 storyboards/<歌曲名称>-MV分镜.md。若 storyboards/ 不存在则创建。文件名移除 Windows 不允许的字符。

## 完成前检查

- 是否采用已提供的有效上限，并仅询问缺失或无效的必要输入
- 是否获得歌名、完整歌词、风格和总时长
- 是否覆盖前奏、全部歌词、间奏和尾奏
- 每段是否为正整数秒且不超过用户上限
- 时间轴是否连续无重叠、无空隙
- 分段总和是否严格等于歌曲总时长
- 角色、服装、场景和动作是否前后连续
- 所有人物位移是否包含起点、路径、目标、终点站位、最终朝向和视线关系
- 重复副歌是否有视觉呼应与升级
- 每段提示词是否写明自身时长和画幅
- 每段【声音】是否只有环境音与动作音效，并明确声明“无背景音乐，无人声演唱”
- 每段提示词是否不超过 2000 个中文字符
- 校验脚本是否返回成功
- Markdown 文件是否已保存到正确路径

