Skip to main content

timeless-wedding

AI 跨时空婚礼电影生成器(免费 API 版)。基于 Agnes 免费图片/视频 API,上传男女照片穿越 2-4 个中国历史朝代生成电影级婚礼短片。当用户想要免费制作 AI 婚礼视频、跨朝代爱情电影、或 dynasty-themed couple video with face-swap enhancement 时调用此 Skill。

Informações da origem

Repositório
smart-open/skills
Última atividade na origem
19 de setembro de 2026 às 06:53
Idioma detectado do SKILL.md
chinês
Estrelas
12
Forks
1

Opções de instalação

Por padrão, está selecionado o prompt que primeiro revisa a origem. Você pode mudar para um comando direto ou baixar uma cópia local.

Revise os arquivos de origem

Leia o SKILL.md e os arquivos complementares exibidos pelo SkillsMP antes de decidir se vai instalar.

Explorador de arquivos
6 arquivos

Exibindo SKILL.md

SKILL.md
Instruções da origem · Visualização somente leitura
name
timeless-wedding
description
AI 跨时空婚礼电影生成器(免费 API 版)。基于 Agnes 免费图片/视频 API,上传男女照片穿越 2-4 个中国历史朝代生成电影级婚礼短片。当用户想要免费制作 AI 婚礼视频、跨朝代爱情电影、或 dynasty-themed couple video with face-swap enhancement 时调用此 Skill。
# Timeless Wedding - AI 跨时空婚礼电影生成器(免费 API 版) > **核心优势**:基于 **Agnes 免费图片/视频 API**,零成本生成跨时空婚礼电影。上传两张个人照片,穿越 2–4 个中国历史朝代,生成一段"几生几世跨时空相爱"的电影级婚礼短片。 ## 功能概述 1. **首帧生成**:为每个选中的朝代生成电影级双人婚礼场景首帧(Agnes Image t2i,**免费**) 2. **AI 肖像**(可选):为每个朝代生成保留面部特征的古装单人肖像(Agnes Image i2i,**免费**) 3. **换脸增强**(可选但强烈推荐):通过 FaceFusion 将用户真实面部替换到场景中,实现 80%+ 面部复刻 4. **视频生成**:以首帧驱动生成每朝代约 5–8 秒电影级视频(Agnes Video image2video,**免费**),含时间分段分镜剧本 5. **合并输出**:通过 FFmpeg 将所有片段合并为完整 MP4,含**朝代标题卡片**(朝代名 + 核心故事概述)、片头片尾 ## API 费用说明 | 服务 | 提供商 | 费用 | |------|--------|------| | 图片生成(t2i / i2i) | Agnes Image Gen 2 | **免费** | | 视频生成(image2video) | Agnes Video Gen 2 | **免费** | | 视频合并 | FFmpeg(本地) | **免费** | | 换脸增强 | FaceFusion(本地开源) | **免费** | > 本 Skill 全程使用 Agnes 免费 API,无需付费即可生成完整婚礼电影。仅当 API 限流或内容审核失败时需要重试。 ## 支持的朝代 每个朝代均配有:年代范围、核心故事概述、电影级时间分段分镜剧本(0-2s / 2-5s / 5-8s)。 | ID | 朝代 | 主题 | 年代 | 核心故事概述 | |---|---|---|---|---| | xia | 夏 | 上古盟誓 | c.2070–1600 BCE | 黄河岸边的远古盟誓 | | xizhou | 西周 | 礼乐婚典 | 1046–771 BCE | 青铜礼器前的神圣盟约 | | warring | 战国 | 剑客侠侣 | 475–221 BCE | 烽火连天下的重逢之誓 | | han | 汉 | 汉风红妆 | 202 BCE–220 CE | 未央宫中结发同心的誓言 | | jin | 晋 | 魏晋风骨 | 265–420 | 竹林曲水间的琴瑟和鸣 | | nanbeichao | 南北朝 | 丝路情缘 | 420–589 | 石窟佛像前的千年祈愿 | | tang | 唐 | 大唐盛世 | 618–907 | 长安灯火下的千年之约 | | song | 宋 | 宋韵清雅 | 960–1279 | 汴河虹桥上的柔情蜜意 | | yuan | 元 | 草原盟约 | 1271–1368 | 草原落日中的敖包相会 | | ming | 明 | 凤冠霞帔 | 1368–1644 | 紫禁城中的凤冠之约 | | qing | 清 | 满汉合璧 | 1644–1912 | 红墙喜堂里的跨族之缘 | | minguo | 民国 | 十里洋场 | 1912–1949 | 外滩钟声里的西洋誓约 | | modern | 现代 | 永恒誓言 | 1949–Present | 山海之间的永恒承诺 | ## 依赖要求 ### 必需 - **Node.js 12+**(仅使用内置模块,无需 npm install) - **Agnes API Key**(环境变量 `agnes-api-key` 或 `--api-key`) - **FFmpeg 4.4+**(用于视频合并与转场,旧版自动降级为无转场拼接) ### 强烈推荐(实现 80%+ 面部复刻) - **Python 3.10+** - **FaceFusion**(开源换脸工具,支持 CPU 运行) ### FaceFusion 安装(Windows) ```powershell # 方式1:手动安装 git clone https://github.com/facefusion/facefusion.git cd facefusion python install.py --onnxruntime cpu # 方式2:使用附带脚本(如果存在) .\.trae\skills\timeless-wedding\scripts\install_facefusion.bat ``` 安装后设置环境变量: ```powershell $env:FACEFUSION_PATH="C:\facefusion\run.py" ``` ## 使用方法 ### 基本用法(2–4 个朝代) ```bash node .trae/skills/timeless-wedding/scripts/timeless_wedding.js \ --male-photo "D:\photos\groom.jpg" \ --female-photo "D:\photos\bride.jpg" \ --dynasties tang,song,ming,modern \ --output "D:\output\wedding.mp4" ``` ### 完整参数示例 ```bash node .trae/skills/timeless-wedding/scripts/timeless_wedding.js \ --male-photo "D:\photos\groom.jpg" \ --female-photo "D:\photos\bride.jpg" \ --dynasties tang,song,ming,modern \ --transition-duration 1.0 \ --add-title \ --add-ending \ --num-frames 121 \ --frame-rate 24 \ --output "D:\output\wedding.mp4" ``` ### 断点续跑 如果中途中断,使用 `--resume` 从上次状态继续: ```bash node .trae/skills/timeless-wedding/scripts/timeless_wedding.js \ --resume \ --work-dir "D:\...\work\20250101-120000-xxxx" ``` ### 重生成单个朝代 ```bash node .trae/skills/timeless-wedding/scripts/timeless_wedding.js \ --resume \ --work-dir "D:\...\work\20250101-120000-xxxx" \ --regenerate tang ``` ### 禁用换脸(纯 Agnes 模式) 如果不安装 FaceFusion,使用 `--no-face-swap` 运行。面部相似度约 50–60%,流程仍然完整: ```bash node .trae/skills/timeless-wedding/scripts/timeless_wedding.js \ --male-photo "D:\photos\groom.jpg" \ --female-photo "D:\photos\bride.jpg" \ --dynasties tang,song,ming,modern \ --no-face-swap \ --output "D:\output\wedding.mp4" ``` ## 参数速查 | 参数 | 说明 | 必填 | 默认 | |---|---|---|---| | `--male-photo <path>` | 男方照片路径 | 是 | — | | `--female-photo <path>` | 女方照片路径 | 是 | — | | `--dynasties <ids>` | 逗号分隔的朝代 ID(2–4 个) | 是 | — | | `--transition-duration <s>` | 转场时长(秒) | 否 | `1.0` | | `--add-title` | 添加片头 | 否 | 关闭 | | `--add-ending` | 添加片尾 | 否 | 关闭 | | `--output <path>` | 最终输出 MP4 路径 | 否 | `work/{session}/final/wedding_movie_{id}.mp4` | | `--resume` | 从 state.json 断点续跑 | 否 | 关闭 | | `--regenerate <id>` | 重生成指定朝代 | 否 | — | | `--no-face-swap` | 禁用 FaceFusion 换脸 | 否 | 关闭 | | `--bgm <path\|auto>` | 为成片混入背景音乐。`auto`(默认)= 按朝代 mood 情绪弧分段;`<path>` = 自备曲目。音量 0.28、淡入 1.5s/淡出 2.5s、loudnorm −14 LUFS;失败保持原片 | 否 | auto | | `--no-bgm` | 关闭 BGM 声音层 | 否 | 关闭 | | `--dry-run` | 只打印全部 ffmpeg 命令(合并/情绪弧/混音),不执行、不消耗额度 | 否 | 关闭 | | `--facefusion-path <path>` | FaceFusion run.py 路径 | 否 | 自动检测 | | `--api-key <key>` | Agnes API Key | 否 | 环境变量 `agnes-api-key` | | `--work-dir <dir>` | 工作目录 | 否 | `work/{sessionId}/` | | `--num-frames <n>` | 每朝代视频帧数 | 否 | `121`(约 5 秒) | | `--frame-rate <n>` | 视频帧率 | 否 | `24` | ## 帧数与时长对照 | 帧数 | 时长(@24fps) | 备注 | |---|---|---| | 121 | ~5.0 秒 | 默认,最稳妥 | | 169 | ~7.0 秒 | 推荐 | | 193 | ~8.0 秒 | 推荐 | | 241 | ~10.0 秒 | 较长 | **注意**:`num-frames` 必须满足 `8n+1` 规则且 `<= 441`。 ## 工作流程详解 ``` 用户照片(男) ──┐ 用户照片(女) ──┤ │ 步骤1: Agnes t2i 生成朝代双人场景首帧(免费) ↓ 步骤2(可选): Agnes i2i 生成朝代 AI 肖像(保留五官,免费) ↓ 步骤3(可选): FaceFusion 换脸增强(男→女顺序替换,本地免费) ↓ 步骤4: Agnes i2i 上传首帧获取公开 URL(免费) ↓ 步骤5: Agnes image2video 生成每朝代视频(免费) ↓ 步骤6: FFmpeg concat demuxer 合并 + 朝代标题卡 + 片头片尾 ↓ 最终婚礼电影 MP4 ``` ## 文件结构 ``` work/ └── {YYYYMMDD-HHMMSS-sessionId}/ ├── state.json # 断点状态 ├── frames/ │ └── {dynasty}_scene.jpg # 原始首帧 ├── portraits/ │ ├── {dynasty}_male.jpg # AI 肖像(男) │ └── {dynasty}_female.jpg # AI 肖像(女) ├── swapped/ │ ├── {dynasty}_male_swapped.jpg │ └── {dynasty}_final.jpg # 换脸后最终首帧 ├── videos/ │ └── {dynasty}.mp4 # 单朝代视频 ├── temp/ │ ├── {dynasty}_uploaded.jpg # 上传用中间文件 │ ├── {dynasty}_card.mp4 # 朝代标题卡(朝代名+故事概述) │ ├── title.mp4 # 片头("几生几世 跨时空相爱") │ ├── ending.mp4 # 片尾("今生今世 永不分离") │ ├── simhei.ttf # 中文字体(自动复制) │ └── concat_list.txt # FFmpeg 合并列表 └── final/ └── wedding_movie_{id}.mp4 # 最终输出 ``` ## 环境变量 | 变量 | 说明 | |---|---| | `agnes-api-key` | Agnes Image/Video API Key | | `AGNES_API_KEY` | Agnes API Key(备用) | | `FACEFUSION_PATH` | FaceFusion run.py 的绝对路径 | ## 注意事项 1. **API 完全免费**:本 Skill 全程使用 Agnes 免费 API(图片生成 + 视频生成),无需任何付费 2. **API Key 优先级**:`--api-key` > 环境变量 `agnes-api-key` > `AGNES_API_KEY` 3. **FFmpeg 路径检测**:脚本自动检测完整版 FFmpeg(winget 安装路径),避免使用 TRAE 内置轻量版(缺少 drawtext/concat) 4. **中文字体处理**:Windows 下自动将 `simhei.ttf` 复制到工作目录,使用相对路径避免 FFmpeg filter 冒号解析错误 5. **FaceFusion 检测**:脚本自动检测 FaceFusion,未安装时提示安装指引并降级运行 6. **视频下载**:每段视频下载后立即设为只读,防止工作区清空为 0 字节 7. **并发控制**:视频生成任务并发数为 2,避免 API 限流 8. **合并策略**:默认使用 `concat demuxer + re-encode`(更可靠),避免 xfade 导致的视频流截断问题 9. **照片建议**:使用正面清晰照片,光线均匀,面部无遮挡,换脸效果最佳 10. **生成耗时**:2 个朝代约 10–15 分钟,4 个朝代约 20–30 分钟(取决于 API 排队情况) 11. **Prompt 长度**:Agnes API 对长 prompt 敏感,所有 image/video prompt 均保持简洁(~200 字符),避免 content_policy_violation ## 完善记录(2026-09 借鉴 short-drama-studio 一致性方法论) - **定妆照先行 + 参考基准统一**:`timeless_wedding.js` 的场景帧 i2i 参考优先使用**本朝代男方定妆照**(已穿朝代服装、身份已锁定,`--generate-portraits` 生成),而非原始现代照片——参考图与目标场景语义差距越小,人脸漂移越少;缺定妆照时回退原始照片(老行为)。 - **identity-lock 身份锚点**:场景帧 prompt 追加身份锁定段——男方面容必须与参考照完全一致(禁止美颜/漂移),男女双方在整幅画面中保持同一张脸,禁止多余人物。 - **重拍版本归档(archive_old_file)**:`--regenerate <id>` 时旧朝代视频先归档到 `videos/versions/` 再重建,覆盖不再等于销毁。 - **已知局限**:Agnes 图像 CLI 仅支持单参考图(i2i 单图输入),女方图像锚点依赖 FaceFusion 换脸兜底(步骤 2 已有);如需双人双参考锁定,改用 `timeless-wedding-volc`(Seedream multi-i2i 支持男女双肖像参考)。 ## 完善记录(2026-09-19 统一方法论 P0 落地) - **BGM 声音层(P0-3,借鉴 ManjuForge 声音四层设计)**:新增 `--bgm <path>`。成片拼接后混入 背景音乐(`mixBgm()`):循环铺满全片、音量 0.28、淡入 1.5s/淡出 2.5s、loudnorm −14 LUFS; 本版成片为无声拼接(`-an`),BGM 直接成为音轨;混音失败仅告警、不影响原片。 这是"音乐层"最小实现;环境/生理/细节层留待后续。 - **预算防线(P0-2)**:`run()` 启动时打印生成预估——场景图/定妆照/视频调用次数与 每段时长、整片耗时量级,让成本先于账单出现(免费期仍提示限流风险)。 ## 完善记录(2026-09-19 补课轮:BGM 情绪弧) - **BGM 情绪弧(P0-3 补全,与 -volc 版同源 bgm_arc.js)**:`--bgm` 默认 `auto`——dynasties.js 13 朝代各配 `mood` 字段,按 mood 分段选曲拼接情绪弧;成片无声(Agnes 输出 -an)时 BGM 直接成为音轨 + loudnorm −14 LUFS。 - **内置曲库**:`bgm/manifest.json`(mood→曲目映射 + ffmpeg 合成参数);缺文件自动合成 环境垫乐占位。 - **`--dry-run` / `--no-bgm`**:dry-run 只打印 ffmpeg 命令不执行。
Ver no GitHub