Нет описания

FmodeAgent 4929359c97 assets: 入库 v0.2 真跑样例资产(人物四视图/场景/关键帧/即梦视频/成片)+ 说明 1 час назад
assets 4929359c97 assets: 入库 v0.2 真跑样例资产(人物四视图/场景/关键帧/即梦视频/成片)+ 说明 1 час назад
bin 118f387459 feat(v0.2.0): 接入即梦真实通道 + 并入 VOC-SOP 知识库 1 час назад
kb-raw f8e9415e50 chore: 交付报告与真跑验证日志入库(out/ 只放大文件,报告与 log 可复核) 1 час назад
lib 118f387459 feat(v0.2.0): 接入即梦真实通道 + 并入 VOC-SOP 知识库 1 час назад
out f8e9415e50 chore: 交付报告与真跑验证日志入库(out/ 只放大文件,报告与 log 可复核) 1 час назад
references a8158c40c4 docs: 产线A/B 能力矩阵更新(即梦通道实态)+ 新增人物资产章节 1 час назад
scripts 118f387459 feat(v0.2.0): 接入即梦真实通道 + 并入 VOC-SOP 知识库 1 час назад
templates 118f387459 feat(v0.2.0): 接入即梦真实通道 + 并入 VOC-SOP 知识库 1 час назад
.gitignore 4929359c97 assets: 入库 v0.2 真跑样例资产(人物四视图/场景/关键帧/即梦视频/成片)+ 说明 1 час назад
LICENSE 1e053c0a5d feat: skill-mv 纯AI音乐MV全流程技能 v0.1.0 5 часов назад
README.md 118f387459 feat(v0.2.0): 接入即梦真实通道 + 并入 VOC-SOP 知识库 1 час назад
SKILL.md 118f387459 feat(v0.2.0): 接入即梦真实通道 + 并入 VOC-SOP 知识库 1 час назад
package.json 118f387459 feat(v0.2.0): 接入即梦真实通道 + 并入 VOC-SOP 知识库 1 час назад

README.md

fmode-mv

纯 AI 视频全流程技能 —— 从一句主题到成片,全程零实拍。 两条产线:AI 单曲 MV 与 AI 口播 / 商业短视频,共用同一套底层模块。 v0.2.0 起接入即梦(火山引擎)真实通道:文生图 / 图生图 / 图生视频 / 动作模仿 / 数字人全部实测可用。

Node deps


这是什么

把「文案 → 分镜 → 人物资产 → 场景 → 关键帧 → 图生视频 → 成片」整条链路 固化成一个可复用、可照跑的技能仓库。任意数字生命克隆本仓即可开工:

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

纯 AI 生成,不依赖实拍 —— 现实拍摄素材最多作参考图 / 参考音。


快速开始

# 1. 依赖:Node ≥ 18 + ffmpeg(零 npm 依赖)
node -v && ffmpeg -version | head -1

# 2. 凭据(运行时读取,绝不硬编码)
export FMODE_SESSION_TOKEN=<你的 sessionToken>     # 即梦通道(必需)
export FEME_API_TOKEN=<你的 token>                  # 旧网关 chat/image(可选)
# 或写入 /opt/data/fmode-identity.json 的 session_token / newapi_token 字段

# 3. 自检
node bin/fmode-mv.js doctor

一条命令跑通产线 A(AI 单曲 MV)

# 端到端:作曲填词 → 人物资产 → 场景图 → 关键帧 → 图生视频 → 剪辑
node bin/fmode-mv.js song "深夜末班地铁上的城市白领" --genre "city pop" --mood "孤独但温暖" --shots 8
# → out/mv.mp4

分步跑(省钱、可控):

# ① 作曲填词
node bin/fmode-mv.js lyrics "深夜末班地铁上的城市白领" --genre "city pop"

# ② 人物资产(锁定主角,跨镜头不换脸)—— 先跑 1 步试水 ¥0.60
node bin/fmode-mv.js character-sheet \
  --desc "25岁东亚女性,栗棕色森长直发,身穿米色针织开衫与白色长裙,清冷安静" --limit 1
# 满意后跑完整四步(9 张候选 + 择优)≈¥1.98
node bin/fmode-mv.js character-sheet --desc "..." --limit 4

# ③ 场景图 + 关键帧(≈¥0.42/镜)
node bin/fmode-mv.js scene --from work/storyboard.json \
  --character out/character/4-多视图.png --limit 1

# ④ 图生视频(1 镜 5 秒 ≈¥1.41)—— 先试 1 镜
node bin/fmode-mv.js video --from work/storyboard.json --limit 1 --resolution 720p
# 满意后全量
node bin/fmode-mv.js video --from work/storyboard.json

# ⑤ 剪辑成片(本地 ffmpeg,零 API 费用)
node bin/fmode-mv.js assemble --from work/storyboard.json --music work/audio/song.mp3

# 零费用预览:只看 prompt,不调 API
node bin/fmode-mv.js character-sheet --desc "..." --dry-run
node bin/fmode-mv.js video --mode still --from work/storyboard.json   # Ken Burns 兜底

一条命令跑通产线 B(AI 口播 / 商业短视频)

# 端到端:口播稿 → 分镜 → 人物资产 → 场景 → 图生视频 → 剪辑
node bin/fmode-mv.js talk "三分钟讲清楚什么是多租户数据隔离" --duration 90 --shots 8
# → out/talk.mp4

# 用现成口播稿(跳过文案撰写)
node bin/fmode-mv.js talk --script work/script.md --duration 60

# 需要「真人对口型」的口播镜头 → 用即梦数字人(¥1/秒,替代未开通的唇形驱动通道)
node bin/fmode-mv.js jimeng digital-human \
  --ref out/character/3-全身.png \
  --audio work/audio/voiceover.mp3 \
  --prompt "固定机位,手臂自然轻微挥动,神情专注自信,眼神直视镜头"

装成全局命令(可选):

npm link
fmode-mv song "主题"

通道自检

fmode-mv jimeng --status        # 通道与凭据状态(不花钱)
fmode-mv jimeng --endpoints     # 全部端点 + 费用表
fmode-mv jimeng --test          # 真跑一张最小文生图(¥0.20)
fmode-mv providers              # 全部通道能力矩阵

两条产线

两条产线共用同一套底层模块(图像生成 / 视频生成 / 音频处理 / 剪辑 / provider 接口), 只是编排不同。

产线 A · AI 单曲 MV

歌曲主题 → 作曲填词 → AI 音乐 → 人声/伴奏分离
        → ④ 人物资产多视图(定妆照→上半身→全身→多视图)
        → ⑤ 场景图(无人)→ 关键帧(有人,多图参考)
        → ⑥ 图生视频(第一镜首尾帧,其余首帧)
        → 剪辑合成(卡点 + 字幕)→ out/mv.mp4

        ④⑤⑥ 均为即梦通道,实测可用

产线 B · AI 口播讲解视频

口播需求 → 口播稿 → 分镜 → 人物资产 → 场景/关键帧 → 图生视频 → 数字人口播(可选)
        → 剪辑合成 → out/talk.mp4

★能力现状(实测,务必先看)

环节 现状 说明
作曲填词 / 分镜 / 口播稿 ✅ 可用 POST /v1/chat/completions
文生图 / 图生图 ✅ 可用 即梦 /getText2ImgV3 /getImgV4 /getImg2ImgV3(¥0.20~0.22/张)
图生视频 720p/1080p/Pro ✅ 可用 即梦 /getVideoV3_720p 等(实测 5 秒镜实扣 ¥1.41)
人物动作模仿 ✅ 可用 即梦 /getActorV2(¥0.4/秒)
数字人口播 ✅ 可用 即梦 /getOhIdentifyMain→/getOmniHuman(¥1/秒)
智能超清 ✅ 可用 即梦 /getSuperResolution(¥0.4/张)
关键帧(旧 image 通道) ✅ 可用 POST /v1/images/generations(gpt-image-2.5-sunburst)
剪辑 / 合成 ✅ 可用 本地 ffmpeg:拼接/混音/字幕/卡点/响度归一化
AI 音乐 ❌ 未开通 /suno/submit/music 实测 503 Task request failed
图生视频(旧网关) ❌ 未开通 /v1/video/generations 实测 503 No available channel;已改用即梦
唇形驱动 ❌ 未开通 网关无该路由;已改用即梦数字人替代
TTS 口播配音 ❌ 未开通 网关无该路由;本地 edge-tts 在部分云环境被 403 拦截(本容器实测)
音轨分离 ◐ ffmpeg 近似 / demucs 可选 需要真·分离请装 demucs
fmode-mv providers          # 随时查看最新状态
fmode-mv providers --deep   # 深度探活(可能计费)
fmode-mv jimeng --status    # 即梦通道与凭据状态(不花钱)

未开通通道怎么处理

绝不静默失败,绝不编造产物。

  • 调用未开通通道 → 抛出 ProviderUnavailableError,打印可操作方案。
  • 端到端编排遇到未开通步骤 → 如实标记,能兜底的才兜底,最终报告里逐条列出。
  • 图生视频整体不可用 → 自动降级为「关键帧 + Ken Burns 运镜」, 产物文件名带 .fallback,报告里明说「N 段为兜底运镜(非真 AI 图生视频)」。
  • method=3 首尾帧失败 → 自动降级 method=2 首帧,返回值带 degraded: true,日志明写。

替代路线速查:

缺失能力 立即可用的替代
AI 音乐 --music your-song.mp3 自备音频
TTS pip install edge-tts(免费本地,自动探测);或 FEME_TTS_ENDPOINT;或 --voice 指定音频
唇形驱动 即梦数字人:fmode-mv jimeng digital-human --ref 人脸图 --audio 配音.mp3
图生视频(旧) 即梦:fmode-mv video --mode jimeng

详见 references/capability-matrix.md。


命令速查

命令 作用 通道
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 <action> 即梦能力直调 即梦
fmode-mv music --from work/song.json AI 音乐 music ❌
fmode-mv separate <audio> 人声/伴奏分离 本地
fmode-mv lipsync --probe 唇形驱动 lipsync ❌
fmode-mv tts --from work/script.md 口播配音 tts ❌
fmode-mv assemble --from work/storyboard.json --music a.mp3 剪辑成片 本地
fmode-mv providers [--deep] 能力现状表 —
fmode-mv doctor 环境自检 —

每个命令都支持 --help。

省钱三招:--dry-run 先看 prompt(零费用)、--limit 1 先跑通单镜、产物在 work/ 只重跑不满意的单步。


文档索引

文件 内容
SKILL.md 技能主文档(工序清单、设计要点、工作流、产物结构、知识库位置)
references/capability-matrix.md ★能力现状表、实测硬约束、降级链、费用表
references/jimeng-api.md ★即梦全部端点 + 三段式调用 + 上传 + 参数细节
references/narrative-playbook.md 救猫咪15节拍 / 嘴替式开场 / 10种爆款类型 / 弧光 / 分镜 / 首尾帧
references/voc-sop-pipeline.md VOC-SOP 五阶段 + 检测清单 + 合规脱敏边界
references/production-evolution.md 版本1~6 演进 + 23 条踩坑清单 + 成本测算
references/pipeline-a-song-mv.md 产线A 完整 SOP
references/pipeline-b-talking.md 产线B 完整 SOP
references/prompt-templates.md 提示词模板库(人读版)
templates/copywriting-prompt.md 文案仿写模板
templates/storyboard-prompt.md 分镜生成模板
templates/video-prompt.md 视频生成模板
templates/storyboard.schema.json 分镜数据结构
kb-raw/ 原始知识库(6.8MB / 284 文件),供查阅原始脚本与长文档;内含历史硬编码 token,不可直接运行

设计要点

  1. provider 可插拔 —— lib/providers.mjs 是唯一通道注册表,模型名与端点全部可被 环境变量或身份文件覆盖,换通道不用改代码。
  2. 人物一致性靠两层锚点 —— ① appearanceAnchor 逐镜头复述进每张关键帧 prompt; ② character-sheet 产出的人物多视图作为图生图参考(更硬)。 这是纯 AI 出片最容易翻车的地方。
  3. 场景连续性靠两步法 —— 先生成「场景图(无人)」,再以「场景图 + 人物多视图」为参考 合成关键帧。背景每镜一致、人物与背景光照不打架。
  4. 参数本地预检 —— 即梦对参数错误是「先收下、后拒绝」(提交返回 200 + workId,轮询才报错), 所以尺寸/帧数全部在本地卡住,避免白等一轮。
  5. 卡点纯 Node 实现 —— 解码 PCM → 短时能量 → 局部阈值峰值 → 中位间隔估 BPM, 不依赖 aubio,零 npm 依赖。
  6. 费用全程可视化 —— 每次调用前打印预估、调用后打印实扣(优先采信接口返回的 usage.cost)。
  7. 兜底必须留痕 —— 所有降级产物带 .fallback 后缀或 status: fallback / degraded: true, 用户永远能分清哪些是真 AI 生成、哪些是兜底替代。
  8. 零凭据落盘 —— token 只从环境变量/身份文件读,绝不写入任何文件、日志、产物或提交; 对外只输出脱敏形式。

环境要求

  • Node ≥ 18(使用内置 fetch,零 npm 依赖)
  • ffmpeg / ffprobe(apt-get install -y ffmpeg / brew install ffmpeg)
  • 凭据:
    • 即梦通道 → FMODE_SESSION_TOKEN 环境变量 或 /opt/data/fmode-identity.json 的 session_token
    • 旧网关 chat/image → FEME_API_TOKEN 或身份文件的 newapi_token
  • 可选:demucs(高质量音轨分离)、edge-tts(免费 TTS)、 python3 + PIL + numpy(人物资产择优,缺失时自动用 ffmpeg 兜底)、 fonts-noto-cjk(中文字幕字体)

    fmode-mv doctor    # 一次查完全部依赖
    

许可

MIT © Fmode


FmodeCode / FmodeAgent · v0.2.0