|
|
1 час назад | |
|---|---|---|
| assets | 1 час назад | |
| bin | 1 час назад | |
| kb-raw | 1 час назад | |
| lib | 1 час назад | |
| out | 1 час назад | |
| references | 1 час назад | |
| scripts | 1 час назад | |
| templates | 1 час назад | |
| .gitignore | 1 час назад | |
| LICENSE | 5 часов назад | |
| README.md | 1 час назад | |
| SKILL.md | 1 час назад | |
| package.json | 1 час назад |
纯 AI 视频全流程技能 —— 从一句主题到成片,全程零实拍。 两条产线:AI 单曲 MV 与 AI 口播 / 商业短视频,共用同一套底层模块。 v0.2.0 起接入即梦(火山引擎)真实通道:文生图 / 图生图 / 图生视频 / 动作模仿 / 数字人全部实测可用。
把「文案 → 分镜 → 人物资产 → 场景 → 关键帧 → 图生视频 → 成片」整条链路 固化成一个可复用、可照跑的技能仓库。任意数字生命克隆本仓即可开工:
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
# 端到端:作曲填词 → 人物资产 → 场景图 → 关键帧 → 图生视频 → 剪辑
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 兜底
# 端到端:口播稿 → 分镜 → 人物资产 → 场景 → 图生视频 → 剪辑
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 接口), 只是编排不同。
歌曲主题 → 作曲填词 → AI 音乐 → 人声/伴奏分离
→ ④ 人物资产多视图(定妆照→上半身→全身→多视图)
→ ⑤ 场景图(无人)→ 关键帧(有人,多图参考)
→ ⑥ 图生视频(第一镜首尾帧,其余首帧)
→ 剪辑合成(卡点 + 字幕)→ out/mv.mp4
④⑤⑥ 均为即梦通道,实测可用
口播需求 → 口播稿 → 分镜 → 人物资产 → 场景/关键帧 → 图生视频 → 数字人口播(可选)
→ 剪辑合成 → 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,打印可操作方案。.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,不可直接运行 |
lib/providers.mjs 是唯一通道注册表,模型名与端点全部可被
环境变量或身份文件覆盖,换通道不用改代码。appearanceAnchor 逐镜头复述进每张关键帧 prompt;
② character-sheet 产出的人物多视图作为图生图参考(更硬)。
这是纯 AI 出片最容易翻车的地方。usage.cost)。.fallback 后缀或 status: fallback / degraded: true,
用户永远能分清哪些是真 AI 生成、哪些是兜底替代。fetch,零 npm 依赖)apt-get install -y ffmpeg / brew install ffmpeg)FMODE_SESSION_TOKEN 环境变量 或 /opt/data/fmode-identity.json 的 session_tokenFEME_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