# Mv Generator

> MV Generator — 音乐视频生成管线

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

---


# MV Generator — 音乐视频生成管线

MediaClaw 内置的音乐视频端到端生成技能。

## 触发词
- 生成MV
- MV制作
- 音乐视频
- mv generator
- 虚拟歌手MV

## 管线流程

```
音频文件 + 歌词 + 角色卡
        │
        ▼
┌────────────────────────────┐
│  Step 1: 音频分析            │
│  scripts/audio-analyzer.py  │
│  → 时长、BPM、场景时间线     │
└────────────┬───────────────┘
             │
             ▼
┌────────────────────────────┐
│  Step 2: 歌词解析            │
│  scripts/lyrics-parser.py   │
│  → 段落结构、情绪曲线        │
└────────────┬───────────────┘
             │
             ▼
┌────────────────────────────┐
│  Step 3: 场景+帧设计         │
│  scripts/scene-design.py    │
│  → 场景类型、运镜、首尾帧prompt │
└────────────┬───────────────┘
             │
             ▼
┌────────────────────────────┐
│  Step 4: 帧图像生成          │
│  qingyun gpt-image-1 API    │
│  → 每场景 first+last frame  │
└────────────┬───────────────┘
             │
             ▼
┌────────────────────────────┐
│  Step 5: 视频片段生成        │
│  kling-2 / veo-3.1 / etc    │
│  → 首帧→尾帧 5s 视频片段    │
└────────────┬───────────────┘
             │
             ▼
┌────────────────────────────┐
│  Step 6: 最终合成            │
│  FFmpeg merge               │
│  → 音轨对齐+转场+字幕       │
└────────────────────────────┘
```

## 输入

| 参数 | 必填 | 说明 |
|------|------|------|
| `audio_file` | ✅ | 音频文件路径 (.mp3/.wav/.m4a) |
| `lyrics` | ✅ | 歌词文本 |
| `character_card` | ✅ | 角色卡 JSON（外貌、声音、风格） |
| `style` | ❌ | cinematic / realistic / anime / ethereal |
| `num_scenes` | ❌ | 分镜数（默认 9） |
| `output_dir` | ❌ | 输出目录（默认: `MediaClaw/output/<project>/`） |

## 输出目录结构

```
output/<project-name>/
├── README.md              ← 项目概要 + 时间轴
├── frames/                ← 首尾帧图像
│   ├── 01_first.png
│   ├── 01_last.png
│   └── ...
├── audio/                 ← 音频文件（多版本）
│   └── song_v1.mp3
├── script/                ← MV 剧本
│   ├── mv_final.json      ← 精准时间轴 JSON
│   ├── mv_final.md        ← 人类可读剧本
│   └── character.json     ← 角色卡
├── docs/                  ← 文档和参考素材
│   └── avatar.png
└── video/                 ← 生成的视频片段（Step 5 产出）
    ├── scene_01.mp4
    └── ...
```

## 经验总结（来自 Chloe《樱花落尽时》项目）

### 图像生成最佳实践
| 项目 | 推荐 | 备注 |
|------|------|------|
| 模型 | qingyun `gpt-image-1` | 成功率最高 |
| API | `/v1/images/generations` | 比 edits 更稳定 |
| 尺寸 | `1024x1536`（竖版） | 必须用规定尺寸 |
| 并发 | 2-3 并发 | 过多会 SSL EOF |
| 重试 | 失败单独重试 | 不整批重跑 |

### 角色一致性技巧
- **统一 prompt prefix**: 包含角色核心外貌特征
- **参考图**: 用 edits API 传入角色头像（但成功率低）
- **场景限定词**: 每帧 prompt 固定前缀 + 场景变量

### 音频同步
- 用 `mutagen` 读 MP3 时长（无需 ffprobe）
- 场景时间按歌曲结构比例分配
- BPM 检测需 `librosa`（可选）

### 视频模型选择
| 情绪 | 模型 | 场景类型 |
|------|------|---------|
| ≤ 6.0 | kling-1.6 | 静态/自然/国风 |
| 6.0-8.0 | kling-1.6 或 kling-2 | 过渡 |
| ≥ 8.0 | kling-2 | 爆发/力量 |
| 360°旋转 | veo-3.1 | 特殊运镜 |

## 依赖
- Python: mutagen, requests
- 外部 API: qingyun (图像), xingjiabi (视频), Google (veo-3.1)
- 可选: librosa (BPM), ffmpeg (合成)

## 参考
- [audio-analyzer.py](scripts/audio-analyzer.py) — 音频分析
- [Chloe 项目完整输出](../../output/chloe-sakura-mv/)
- [virtual-singer-mv-script](~/clawd/skills/virtual-singer-mv-script/) — 独立 MV 剧本 skill

