虚拟歌手场景 MV 制作流水线。输入音乐音频、歌词、视频脚本、虚拟歌手三视图参考图,自动生成完整场景 MV。支持 AI 动态视频、风格化动画模板、3D 模型三种动画模式。不支对口型。
Virtual Singer MV Production Pipeline
功能概述
Virtual Singer MV Production Pipeline是一项面向实际任务的技能,主要用于给定四个输入(音乐音频、歌词文本、视频脚本/分镜、虚拟歌手三视图参考图);自动生成完整的场景化音乐视频(MV);
核心要点
- 流水线覆盖音频分析、场景生成、角色生成/;
- 动画、合成剪辑、最终输出全流程,无需任何外部第三方工具;
- 在开始前,验证所有依赖是否可用:;
使用与执行
如果缺少 FFmpeg:Windows 执行 winget。它将相关步骤、工具调用和结果整理方式集中到统一流程中,帮助使用者更快完成目标并减少重复操作。从功能定位来看,该技能强调把分散的操作要求整理成清晰、可复用的处理流程,使用户能够围绕既定目标快速准备输入、选择执行方式并获得结构化结果。
结果检查与注意事项
实际使用前应先确认任务范围、数据来源、运行环境、必要权限和关键参数,再依据技能说明逐步执行;若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;涉及批量任务时,还应保存进度,避免中断后重复操作。
Virtual Singer MV Production Pipeline
概述
给定四个输入(音乐音频、歌词文本、视频脚本/分镜、虚拟歌手三视图参考图), 自动生成完整的场景化音乐视频(MV)。流水线覆盖音频分析、场景生成、角色生成/ 动画、合成剪辑、最终输出全流程,无需任何外部第三方工具。
前置条件
在开始前,验证所有依赖是否可用:
# 检查 FFmpeg ffmpeg -version # 检查 Python librosa python -c "import librosa; print(librosa.__version__)"
如果缺少 FFmpeg:Windows 执行 winget install ffmpeg,macOS 执行 brew install ffmpeg。
如果缺少 librosa:在 Python venv 中执行 pip install librosa soundfile。
依赖技能
以下技能必须已安装(WorkBuddy 技能市场中可获取):
| 技能 | 作用 |
|---|---|
| remotion-video-toolkit | 程序化视频合成、字幕叠加、时间轴组装 |
| openai-whisper-api | 音频转写,用于歌词与音频时间对齐 |
| nano-banana-pro | 高质量角色图像生成与精修 |
| media-downloader | 素材视频下载,补充场景画面 |
内置工具
| 工具 | 作用 |
|---|---|
| ImageGen | 从三视图生成角色图像、场景概念图 |
| VideoGen | 文生视频、图生视频,用于场景背景和角色动态 |
| 3D 模型与视频特效 (buddy-cloud.py) | 从参考图生成 3D 模型、视频特效模板动画 |
流水线总览
输入 → 音频分析 → 场景生成 + 角色生成
→ 角色动画(3种模式)→ 合成剪辑 → 最终 MV
不要在未经用户确认的情况下执行所有步骤。每个阶段先展示计划,用户确认后再继续。
Step 1: 音频分析
目标:提取 BPM、节拍时间戳、歌词与音频时间对齐。
使用
openai-whisper-api技能转写提供的音频文件。- 如果音频以器乐为主,Whisper 可能无法产生有意义的歌词。 此时跳过 Whisper,仅使用用户提供的歌词文本。
运行
scripts/analyze_audio.py <音频文件路径> <输出JSON路径>提取:- BPM(每分钟节拍数)
- 节拍时间戳数组(秒)
- 总时长
将歌词对齐到节拍网格,创建歌词时间轴 JSON:
[ {"start": 0.0, "end": 5.2, "text": "第一行歌词"}, {"start": 5.2, "end": 10.5, "text": "第二行歌词"} ]解析用户的视频脚本/分镜,将每个场景映射到目标时间范围。
输出:lyrics_timeline.json 和 scene_timeline.json
Step 2: 场景视频生成
目标:为脚本中描述的每个场景生成视频片段。
对脚本中的每个场景:
- 如果用户提供了概念图,使用
VideoGen图生视频。 - 如果只有文本描述,使用
VideoGen文生视频。 - 默认参数:
seconds匹配场景时长,resolution: 1080P,aspect_ratio: 16:9。 - 保存为
scene_。_ .mp4
- 如果用户提供了概念图,使用
可选使用
media-downloader技能搜索补充素材视频 (如"城市夜景"、"海浪"等),作为备用或 B-roll。对于需要虚拟歌手出现的场景,生成纯背景视频(角色稍后合成)。
输出:一组场景视频文件。
Step 3: 虚拟角色生成
目标:从三视图参考图生成虚拟歌手角色的多角度/多表情图像。
使用
ImageGen以三视图为输入,生成角色不同表情和姿势:- 正面站立
- 侧身(3/4 视角)
- 手势(挥手、持麦克风等)
- 不同表情(严肃、微笑、感动)
使用
nano-banana-pro技能对选定的角色图像进行高质量精修和 4K 放大。对于角色需要在特定背景中的场景,使用
ImageGen图生图模式 将角色合成到该场景中。
输出:outputs/ 目录中的角色图像资源。
Step 4: 虚拟角色动画(选择模式)
目标:为虚拟歌手出现的视频片段制作角色动画。 根据创意需求选择一种或组合多种模式。
模式 A:AI 动态视频(VideoGen 图生视频)
使用角色图像通过 VideoGen 生成动态视频片段。 角色会有自然的微动作(呼吸、头发飘动、轻微转身),但不支持唇形同步。
- Prompt 示例:「虚拟歌手站在舞台上,微风轻拂,柔和灯光,轻微身体摇摆,电影质感,流畅运动」
- 设置
seconds匹配所需片段时长。
最适合:自然、写实的角色呈现。
模式 B:风格化动画(video-fx 模板)
使用 3D 模型与视频特效 技能的 video-fx 命令对角色图像应用动画模板:
echo -n "" | python3 /scripts/buddy-cloud.py video-fx --template animelive --image --token-stdin
可选模板:
animelive— 动漫风格角色动画cartoonlive— 卡通风格角色动画3dfigure— 3D 手办风格fuzzy— 毛绒角色风格
最适合:风格化、艺术感。
模式 C:3D 模型(图生 3D)
从三视图参考生成虚拟歌手的 3D 模型:
echo -n "" | python3 /scripts/buddy-cloud.py 3d --image-url --enable-pbr --token-stdin
多视角输入:
echo -n "" | python3 /scripts/buddy-cloud.py 3d --multi-view '[{"ViewType":"front","ViewImageUrl":"..."}, {"ViewType":"back","ViewImageUrl":"..."}, {"ViewType":"left","ViewImageUrl":"..."}]' --token-stdin
生成后创建 viewer.html 进行本地预览,然后在 MV 中使用旋转 3D 模型镜头。
最适合:高端、产品展示风格镜头。
Step 5: 视频合成
目标:将所有视频片段、角色动画、音频、字幕合成为最终 MV。
加载
remotion-video-toolkit技能,创建 Remotion 项目:- 按
scene_timeline.json将场景片段放置到时间轴 - 在指定时刻叠加角色动画片段
- 按
lyrics_timeline.json添加歌词字幕 - 使用原始音乐音频作为唯一音轨
- 按
Remotion 合成参数:
- 分辨率:1920x1080(或用户指定)
- 帧率:30 FPS
- 音频:原始音乐文件
渲染合成项目,生成最终 MV 文件。
Step 6: 输出
将最终渲染的 MV 保存为
virtual_singer_mv_, 存放在工作区 outputs 目录。.mp4 使用
present_files向用户展示结果。仅在用户明确要求时清理中间文件。
错误处理
如果 VideoGen 对某个场景失败,回退为该片段使用 ImageGen 生成的静态图片。
如果 3D 模型生成失败,回退为模式 A 或 B。
如果 Remotion 渲染失败,回退为 FFmpeg 拼接组装:
# 创建拼接列表 for f in scene_*.mp4; do echo "file '$f'" >> concat_list.txt; done ffmpeg -f concat -safe 0 -i concat_list.txt -i audio.mp3 -c:v libx264 -c:a aac -shortest final_mv.mp4
质量准则
- 最终输出始终使用 1080P 或更高,除非用户另有要求。
- 宽高比默认 16:9;如果需要竖屏/短视频格式则使用 9:16。
- 角色图像应在多次生成中保持一致性——使用描述角色关键视觉特征的相同 prompt 前缀。
- 字幕字体:使用清晰的无衬线字体,白色配深色描边以保证可读性。
热门AI工具
相关专题
Vite项目打包部署专题汇集生产构建、产物预览、输出目录、资源路径、Nginx与GitHub Pages部署及常见白屏和路由404问题的已审核文章,帮助读者完成上线流程。
0
2026.10.28
Vite搭配Vue.js专题汇集创建Vue 3项目、配置开发环境、路径别名、Vue插件、代理、多环境构建与调试的已审核文章,帮助读者完成从初始化到日常开发的配置。
0
2026.10.28
Vite项目目录专题汇集入口文件、src源码、public静态资源、路径别名、项目根目录和构建输出目录相关的已审核文章,帮助读者理解各文件夹的用途与引用方式。
0
2026.10.28
本专题介绍Gradle插件开发的基本流程,涵盖插件类编写、自定义任务注册、扩展参数设计和插件应用方法,帮助你理解插件如何组织构建逻辑,减少多个项目之间的重复配置。
0
2026.10.22
本专题介绍Gradle Wrapper的基本作用,涵盖文件组成、生成方法、版本配置和任务调用,帮助你理解项目如何使用指定的Gradle版本,减少不同开发环境带来的构建差异。
0
2026.10.22
本专题整理Golangci-lint常用Linters的用途与配置方法,覆盖错误处理、无效代码、安全、复杂度、命名和依赖检查,帮助项目合理选规则。
0
2026.10.22
本专题介绍Gradle Java项目构建方法,涵盖Java插件配置、依赖声明、源码编译、测试执行和打包检查,帮助你理解各阶段的任务关系,逐步完成项目构建。
0
2026.10.22
本专题汇总PHP常见时间戳漏洞,包括2038年溢出、时区漂移、时间戳伪造、重放攻击、时间盲注与日志审计失效等,并给出升级64位环境、使用 DateTimeImmutable、统一UTC、严格超时校验、预处理绑定、hash_equals 比对等修复方案,帮助开发者快速排查和加固时间相关代码。
0
2026.10.22
本专题聚焦Golangci-lint YAML配置文件,讲清运行参数、规则启停、目录排除、问题过滤及严重级别设置,便于团队统一检查标准。
0
2026.10.22
热门下载
相关下载
精品课程
共0课时 | 0人学习
共0课时 | 0人学习
共0课时 | 0人学习
最新文章