音乐人(虚拟歌手MV制作)

Polar Sponsor
爱发电 赞助
.NET 9.0

虚拟歌手场景 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、节拍时间戳、歌词与音频时间对齐。

  1. 使用 openai-whisper-api 技能转写提供的音频文件。

    • 如果音频以器乐为主,Whisper 可能无法产生有意义的歌词。 此时跳过 Whisper,仅使用用户提供的歌词文本。
  2. 运行 scripts/analyze_audio.py <音频文件路径> <输出JSON路径> 提取:

    • BPM(每分钟节拍数)
    • 节拍时间戳数组(秒)
    • 总时长
  3. 将歌词对齐到节拍网格,创建歌词时间轴 JSON:

    [
      {"start": 0.0, "end": 5.2, "text": "第一行歌词"},
      {"start": 5.2, "end": 10.5, "text": "第二行歌词"}
    ]
    
  4. 解析用户的视频脚本/分镜,将每个场景映射到目标时间范围。

输出:lyrics_timeline.json 和 scene_timeline.json

Step 2: 场景视频生成

目标:为脚本中描述的每个场景生成视频片段。

  1. 对脚本中的每个场景:

    • 如果用户提供了概念图,使用 VideoGen 图生视频。
    • 如果只有文本描述,使用 VideoGen 文生视频。
    • 默认参数:seconds 匹配场景时长,resolution: 1080P,aspect_ratio: 16:9。
    • 保存为 scene__.mp4。
  2. 可选使用 media-downloader 技能搜索补充素材视频 (如"城市夜景"、"海浪"等),作为备用或 B-roll。

  3. 对于需要虚拟歌手出现的场景,生成纯背景视频(角色稍后合成)。

输出:一组场景视频文件。

Step 3: 虚拟角色生成

目标:从三视图参考图生成虚拟歌手角色的多角度/多表情图像。

  1. 使用 ImageGen 以三视图为输入,生成角色不同表情和姿势:

    • 正面站立
    • 侧身(3/4 视角)
    • 手势(挥手、持麦克风等)
    • 不同表情(严肃、微笑、感动)
  2. 使用 nano-banana-pro 技能对选定的角色图像进行高质量精修和 4K 放大。

  3. 对于角色需要在特定背景中的场景,使用 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。

  1. 加载 remotion-video-toolkit 技能,创建 Remotion 项目:

    • 按 scene_timeline.json 将场景片段放置到时间轴
    • 在指定时刻叠加角色动画片段
    • 按 lyrics_timeline.json 添加歌词字幕
    • 使用原始音乐音频作为唯一音轨
  2. Remotion 合成参数:

    • 分辨率:1920x1080(或用户指定)
    • 帧率:30 FPS
    • 音频:原始音乐文件
  3. 渲染合成项目,生成最终 MV 文件。

Step 6: 输出

  1. 将最终渲染的 MV 保存为 virtual_singer_mv_.mp4, 存放在工作区 outputs 目录。

  2. 使用 present_files 向用户展示结果。

  3. 仅在用户明确要求时清理中间文件。

错误处理

  • 如果 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 前缀。
  • 字幕字体:使用清晰的无衬线字体,白色配深色描边以保证可读性。

相关专题

更多
Vite 项目如何打包和部署
Vite 项目如何打包和部署

Vite项目打包部署专题汇集生产构建、产物预览、输出目录、资源路径、Nginx与GitHub Pages部署及常见白屏和路由404问题的已审核文章,帮助读者完成上线流程。

2026.10.28

0

16

Vite 如何搭配 Vue.js
Vite 如何搭配 Vue.js

Vite搭配Vue.js专题汇集创建Vue 3项目、配置开发环境、路径别名、Vue插件、代理、多环境构建与调试的已审核文章,帮助读者完成从初始化到日常开发的配置。

2026.10.28

0

15

Vite 项目目录怎么看
Vite 项目目录怎么看

Vite项目目录专题汇集入口文件、src源码、public静态资源、路径别名、项目根目录和构建输出目录相关的已审核文章,帮助读者理解各文件夹的用途与引用方式。

2026.10.28

0

10

Gradle插件开发入门教程
Gradle插件开发入门教程

本专题介绍Gradle插件开发的基本流程,涵盖插件类编写、自定义任务注册、扩展参数设计和插件应用方法,帮助你理解插件如何组织构建逻辑,减少多个项目之间的重复配置。

2026.10.22

0

11

Gradle Wrapper配置教程
Gradle Wrapper配置教程

本专题介绍Gradle Wrapper的基本作用,涵盖文件组成、生成方法、版本配置和任务调用,帮助你理解项目如何使用指定的Gradle版本,减少不同开发环境带来的构建差异。

2026.10.22

0

10

Golangci-lint检查器使用教程
Golangci-lint检查器使用教程

本专题整理Golangci-lint常用Linters的用途与配置方法,覆盖错误处理、无效代码、安全、复杂度、命名和依赖检查,帮助项目合理选规则。

2026.10.22

0

15

Gradle怎么构建Java项目
Gradle怎么构建Java项目

本专题介绍Gradle Java项目构建方法,涵盖Java插件配置、依赖声明、源码编译、测试执行和打包检查,帮助你理解各阶段的任务关系,逐步完成项目构建。

2026.10.22

0

10

PHP时间戳漏洞修复教程
PHP时间戳漏洞修复教程

本专题汇总PHP常见时间戳漏洞,包括2038年溢出、时区漂移、时间戳伪造、重放攻击、时间盲注与日志审计失效等,并给出升级64位环境、使用 DateTimeImmutable、统一UTC、严格超时校验、预处理绑定、hash_equals 比对等修复方案,帮助开发者快速排查和加固时间相关代码。

2026.10.22

0

25

Golangci-lint配置文件与规则设置
Golangci-lint配置文件与规则设置

本专题聚焦Golangci-lint YAML配置文件,讲清运行参数、规则启停、目录排除、问题过滤及严重级别设置,便于团队统一检查标准。

2026.10.22

0

15

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程