--- name: fmode-mv description: "触发词:做MV/做音乐视频/写歌并出片/口播讲解视频/AI音乐/AI视频/人物参考图/角色多视图。两条产线:AI单曲MV(作曲填词→音乐→人物资产→场景图→关键帧→图生视频→成片)与AI口播/商业短视频(对标→仿写→分镜→人物资产→场景→图生视频→数字人口播→成片)。纯ESM零依赖,即梦通道实测可用。" version: 0.2.0 author: Fmode (FmodeAgent) license: MIT platforms: [linux, macos] tags: [mv, music, video, ai, ffmpeg, lyrics, storyboard, jimeng, volcengine, character-sheet, img2video, digital-human] --- # fmode-mv · SKILL > 纯 AI 视频全流程技能。从一句主题到成片,**全程零实拍**。 > v0.2.0 起接入**即梦(火山引擎)真实通道**,图生视频从「兜底运镜」升级为真 AI 生成。 ## 一、这是什么 把「文案 → 分镜 → 人物 → 场景 → 关键帧 → 图生视频 → 成片」整条链路固化成**可复用的技能仓库**。 任何数字生命克隆本仓即可照跑: ```bash git clone https://git.fmode.cn/fmode-13177980648/skill-mv.git cd skill-mv node bin/fmode-mv.js doctor # 环境自检 node bin/fmode-mv.js providers # 看通道现状(jimeng ✅) node bin/fmode-mv.js song "主题" # 端到端跑一条 MV node bin/fmode-mv.js talk "口播主题" # 端到端跑一条口播视频 ``` ### 硬约束:纯 AI 生成,不靠实拍 - **所有画面由 AI 生成**(即梦文生图 / 图生图 / 图生视频 / 数字人)。 - **现实拍摄素材最多作参考图 / 参考音**,不得作为成片画面直接使用。 - **绝不静默失败,绝不伪造产物**:通道不可用就如实报错并降级,降级产物一律带 `.fallback` 标记。 ## 二、两条产线 两条产线**共用同一套底层模块**(图像 / 视频 / 音频 / 剪辑 / provider 接口),只是编排不同。 ### 产线 A · AI 单曲 MV ``` 歌曲主题 → 作曲填词 [chat ✅] → AI 生成音乐 [music ⚠️ 未开通,可自备音频] → 人声/伴奏分离 [local ◐] → ④ 人物资产多视图 [即梦 ✅] ← 定妆照→上半身→全身→多视图 → ⑤ 场景图 → 关键帧 [即梦 ✅] ← 无人环境 + 多图参考合成 → ⑥ 图生视频 [即梦 ✅] ← 首尾帧/首帧,含降级 → 剪辑合成(卡点+字幕+混音) [local ffmpeg ✅] → out/mv.mp4 ``` ```bash fmode-mv song "深夜末班地铁上的城市白领" --genre "city pop" --mood "孤独但温暖" --shots 8 ``` ### 产线 B · AI 口播 / 商业短视频(VOC-SOP 五阶段) ``` 对标文案 → 仿写(10版) → 分镜 → 人物资产 → 场景图/关键帧 → 图生视频 → 数字人口播 → 成片 [阶段1] [阶段2] [阶段3] [即梦] [即梦] [即梦] [即梦 ¥1/秒] [ffmpeg] ``` ```bash fmode-mv talk "三分钟讲清楚什么是多租户数据隔离" --duration 90 --shots 8 fmode-mv talk --script work/script.md # 用现成口播稿 ``` > 完整 SOP(含各阶段检测清单、合规/脱敏边界)见 `references/voc-sop-pipeline.md`。 ## 三、★ 工序清单(v0.2.0 全部工序) | # | 工序 | 命令 | 通道 | 状态 | |---|---|---|---|---| | ① | 作曲填词 | `lyrics` | chat | ✅ | | ② | 分镜脚本 | `storyboard` | chat | ✅ | | ③ | 口播稿 | `talk`(内置) | chat | ✅ | | **④** | **人物资产多视图** | **`character-sheet`** | **即梦** | **✅ 本版新增** | | **⑤** | **场景图(无人)→ 关键帧(有人)** | **`scene`** | **即梦** | **✅ 本版新增** | | **⑥** | **图生视频** | **`video`** | **即梦** | **✅ 本版新增(真通道,非兜底)** | | ⑦ | 剪辑成片 | `assemble` | local ffmpeg | ✅ | | ⑧ | 数字人口播 | `jimeng digital-human` | 即梦 | ✅ **替代唇形驱动** | | ⑨ | 动作模仿 | `jimeng actor` | 即梦 | ✅ | | ⑩ | 智能超清 | `jimeng upscale` | 即梦 | ✅ | | — | AI 音乐 | `music` | music | ⚠️ 未开通 → 自备音频 | | — | TTS 配音 | `tts` | tts | ⚠️ 未开通 → 见下方替代 | | — | 唇形驱动 | `lipsync` | lipsync | ⚠️ 未开通 → **已改用即梦数字人** | ### 产线 B 的工序映射(VOC-SOP 五阶段 → 命令) | SOP 阶段 | 命令 | |---|---| | 0 准备 / 1 文案获取 | 仓外(需 yt-dlp / Whisper 等);或用 `talk "主题"` 从零写 | | 2 脚本仿写 | `templates/copywriting-prompt.md` + `talk` | | 3 分镜生成 | `storyboard` + `templates/storyboard-prompt.md` | | 4a 照片生成 | `character-sheet`(人物)+ `scene --scene-only`(场景) | | 4b 视频生成 | `video` + `templates/video-prompt.md` | | 4.5 素材修正 | 重跑对应工序加 `--shot --force` | ## 四、★ 能力现状(实测,务必据此预期) | 环节 | 通道 | 现状 | 说明 | |---|---|---|---| | 作曲填词 / 分镜 / 口播稿 | `POST /v1/chat/completions` | ✅ **可用** | `deepseek-v4-flash`、`doubao-seed-2-1-pro` 等 | | **文生图 / 图生图** | 即梦 `/getText2ImgV3` `/getImgV4` `/getImg2ImgV3` | ✅ **可用** | 实测 ¥0.20/张,1728×2304 PNG 约 200KB | | **图生视频 720p/1080p/Pro** | 即梦 `/getVideoV3_720p` 等 | ✅ **可用** | 实测 121 帧 5 秒,实扣 **¥1.41**,返回 h264 mp4 | | **人物动作模仿** | 即梦 `/getActorV2` | ✅ **可用** | ¥0.4/秒(单条最低 ¥3.2) | | **数字人口播** | 即梦 `/getOhIdentifyMain`→`/getOmniHuman` | ✅ **可用** | ¥1/秒,替代唇形驱动 | | **智能超清** | 即梦 `/getSuperResolution` | ✅ **可用** | ¥0.4/张 | | 关键帧(旧 image 通道) | `POST /v1/images/generations` | ✅ 可用 | `gpt-image-2.5-sunburst`;即梦已可替代 | | AI 音乐 | `POST /suno/submit/music` | ❌ **未开通** | 实测 503 `Task request failed`;请自备音频 `--music your-song.mp3` | | 图生视频(旧网关) | `POST /v1/video/generations` | ❌ **未开通** | 实测 503 `No available channel`;**已改用即梦图生视频** | | 唇形驱动 | — | ❌ **未开通** | 网关无该路由;**已改用即梦数字人**替代 | | TTS 口播配音 | `/v1/audio/speech` | ❌ **未开通** | 网关无该路由;本地 edge-tts 在部分云环境被 403 拦截 | | 音轨分离 | 本地 | ◐ ffmpeg 相位兜底 / demucs 可选 | 需要真·分离请装 demucs | | 剪辑 / 合成 | 本地 ffmpeg | ✅ **可用** | 拼接 / 混音 / 字幕 / 卡点 / 响度归一化 | 随时用 `fmode-mv providers`(加 `--deep`)查看最新状态;明细见 `references/capability-matrix.md`。 ### 未开通通道怎么处理 —— 本技能的承诺 **绝不静默失败,绝不编造产物。** - 调用未开通通道 → 抛 `ProviderUnavailableError`,打印**可操作方案**。 - 产线编排里遇到未开通步骤 → **如实标记 `unavailable`**,能兜底的才兜底,并在报告中标出。 - 图生视频整体不可用时 → 自动降级为「关键帧 + Ken Burns 运镜」,产物**文件名带 `.fallback`**。 - `method=3`(首尾帧)失败 → 自动降级 `method=2`(首帧),并在返回值与日志里**留痕 `degraded: true`**。 替代路线: | 缺失能力 | 立即可用的替代 | |---|---| | AI 音乐 | 自备音频 `--music your-song.mp3`;等渠道开通后原样重跑 | | TTS | 本地 `edge-tts`(`pip install edge-tts`,自动探测);或 `FEME_TTS_ENDPOINT` 对接外部服务;或 `--voice` 指定现成音频 | | 唇形驱动 | **即梦数字人**:`fmode-mv jimeng digital-human --ref 人脸图 --audio 配音.mp3`(¥1/秒) | | 图生视频(旧) | **即梦图生视频**:`fmode-mv video --mode jimeng`(720p ¥0.28/秒) | ## 五、安装与凭据 ```bash git clone https://git.fmode.cn/fmode-13177980648/skill-mv.git cd skill-mv npm link # 可选:全局获得 fmode-mv 命令 fmode-mv doctor ``` **依赖**: - Node ≥ 18(用内置 `fetch`,**零 npm 依赖**) - `ffmpeg` / `ffprobe`(`apt-get install -y ffmpeg`) - 凭据(见下) - 可选:`demucs`(高质量音轨分离)、`edge-tts`(免费 TTS)、`python3` + `PIL` + `numpy`(人物资产择优,缺失时自动用 ffmpeg 兜底) ### 凭据(零硬编码,运行时读取) 即梦通道需要 **sessionToken**(不是 newapi_token)。按优先级读取: 1. 环境变量 `FMODE_SESSION_TOKEN` 2. `/opt/data/fmode-identity.json` 的 `session_token` 字段 ```bash export FMODE_SESSION_TOKEN=<你的sessionToken> ``` 其它可选覆盖项: | 环境变量 | 作用 | 默认 | |---|---|---| | `FMODE_JIMENG_BASE` | 即梦代理基址 | `https://server.fmode.cn/api/volcengine/jimeng` | | `FMODE_PARSE_BASE` | Parse 基址(读 ImagineWork) | `https://server.fmode.cn/parse` | | `FMODE_PARSE_APPID` | Parse App ID | `ncloudmaster` | | `FMODE_CDN_COMPANY` | 七牛上传用的 company ID | `XlTE6uWQEQ` | | `FMODE_VIDEO_RESOLUTION` | 视频分辨率 | `720p` | | `FEME_API_TOKEN` | 旧网关(chat / image)凭据 | `/opt/data/fmode-identity.json` 的 `newapi_token` | > 本技能**不会**把 token 写入任何文件、日志、产物或提交。 > 错误信息里也只出现脱敏后的 token。 ## 六、命令速查 | 命令 | 作用 | 通道 | |---|---|---| | `fmode-mv song "主题"` | 产线A 端到端 | 全链路 | | `fmode-mv talk "主题"` | 产线B 端到端 | 全链路 | | `fmode-mv lyrics "主题"` | 作曲填词 | chat | | `fmode-mv storyboard --from work/song.json` | 分镜脚本 | chat | | **`fmode-mv character-sheet --desc "..."`** | **④ 人物资产多视图** | **即梦** | | **`fmode-mv scene --from work/storyboard.json --character <多视图>`** | **⑤ 场景图 + 关键帧** | **即梦** | | **`fmode-mv video --from work/storyboard.json`** | **⑥ 图生视频** | **即梦** | | `fmode-mv keyframe --from work/storyboard.json` | 关键帧单跑(旧 image 通道) | image | | `fmode-mv jimeng --status/--endpoints/--test` | 即梦通道诊断 | 即梦 | | `fmode-mv jimeng text2img/img2img/img2video/upscale/actor/digital-human` | 即梦能力直调 | 即梦 | | `fmode-mv music --from work/song.json` | AI 音乐 | music ⚠️ | | `fmode-mv separate