mcpField

happy-video-gen

github.com/iamzhihuix创意与媒体163 次安装
代码仓库

关于 happy-video-gen

happy-video-gen 是一项视频生成技能,可通过单一命令行工具和 10 个服务商从文本或图像生成短片,并指导服务商选择、参数设置及异步任务处理。

主要功能

  1. 01文本生成视频和图像生成视频
  2. 02支持 10 个视频服务商
  3. 03按任务选择服务商及参数
  4. 04轮询任务并下载成片
  5. 05超时后的恢复指引

适用场景

  1. 01根据文本提示生成短片
  2. 02将静态图像制作成视频
  3. 03使用指定的视频模型系列生成内容

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/iamzhihuix/happy-claude-skills --skill happy-video-gen

安装后在 Claude Code 中输入/happy-video-gen确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

package.json
assets/
EXTEND.template.md
references/
aspect_ratio_map.md
async-protocol.md
error_codes.md
providers.md
references/config/
extend-schema.md
first-time-setup.md
scripts/
main.ts
types.ts
scripts/providers/
ark.ts
bailian.ts
fal.ts
google.ts
luma.ts
minimax.ts
openai.ts
pika.ts
runway.ts
vidu.ts
scripts/utils/
aspect_ratio.ts
async.ts
output.ts

详细介绍

happy-video-gen

通过一个命令行工具,调用 10 个服务商生成短视频(文本生成视频或图像生成视频):bun scripts/main.ts ...。所有服务商均为异步模式——命令行工具会提交任务、轮询直至服务商完成,然后下载 MP4 / WebM。

快速使用

# Text-to-video
bun scripts/main.ts --prompt "camera slowly pushes into a calico cat on grass" --ar 16:9 --duration 5 --video ./out.mp4

# Image-to-video (first frame)
bun scripts/main.ts --prompt "subtle zoom, leaves swaying" --image ./keyframe.png --duration 5 --video ./out.mp4

# Image-to-video with last-frame control (provider-dependent)
bun scripts/main.ts --prompt "seamless morph" --image ./a.png --last-frame ./b.png --video ./out.mp4

何时调用此技能

  • 用户要求根据文本生成 / 创建 / 制作 / 合成视频。
  • 用户要求让静态图像动起来,或提供了首帧路径。
  • 用户提到任何视频模型系列(Sora、Veo、Runway、Kling、Wan、Seedance、Hailuo、Pika、Dream Machine、Vidu)。

如果用户明确提到即梦 / Jimeng / dreamina CLI,则转到 happy-dreamina。如果用户实际需要的是静态图像,则转到 happy-image-gen。

步骤 0:预检(阻塞性)

  1. 查找 EXTEND.md(解析顺序与 happy-image-gen 相同):

    • ./.happy-skills/happy-video-gen/EXTEND.md
    • $XDG_CONFIG_HOME/happy-skills/happy-video-gen/EXTEND.md
    • ~/.happy-skills/happy-video-gen/EXTEND.md

    如果都找不到,则运行 bun scripts/main.ts --setup,并引导用户完成 references/config/first-time-setup.md 中的步骤。

  2. 确认至少一个服务商已配置凭据。 按命令行工具的自动检测顺序检查环境变量(参见 providers.md)。没有可用服务商时,不要继续。

  3. 确认已安装 Bun。如果缺少,则改用 npx -y bun。

  4. 提示费用。 每次视频生成的费用是图像生成的 10–100 倍。如果用户要求生成 HD 1080P / 10 秒视频片段,则在提交任务前确认——向用户展示 references/providers.md 中对应服务商的预估费用范围。

步骤 1:选择服务商

优先顺序:

  1. 明确传入 --provider <id>。
  2. EXTEND.md 中的 default_provider。
  3. 根据环境变量自动检测:fal > ark > minimax > runway > luma > pika > vidu > google > bailian > openai。

根据实际任务的需求选择:

  • 中文提示词 / 画面中的中文文本 → ark(Seedance)或 bailian(Wanx)。
  • 写实人像 → google(Veo 3)或 runway(Gen-4)。
  • 动漫 / 风格化内容 → fal(Kling)或 luma。
  • 低成本草稿 → ark Seedance Lite、fal Kling v2.5 turbo、vidu Q1。
  • 语音同步的对话视频(如适用)→ google Veo 3、openai Sora 2。

步骤 2:填写参数

  • --prompt:始终用双引号括起来。
  • --image <path> / --last-frame <path>:本地路径会自动编码为 base64 数据 URI。只有 Luma 和少数 FAL 端点接受 --last-frame。
  • --duration <seconds>:默认值为 5,适用于所有服务商。上限:Sora-2 / Kling 最长 10 秒;Seedance 最长 10 秒;Luma 最长 9 秒。
  • --ar <ratio>:16:9 / 9:16 / 1:1 / 4:3 / 3:4。服务商特有的限制请参见 references/aspect_ratio_map.md。
  • --resolution:480p / 720p / 1080p。并非所有服务商都支持此参数;大多数服务商在低价套餐中最高仅支持 720p。
  • --poll-timeout:默认值为 600s(10 分钟)。生成 1080P 或时长超过 5 秒的视频片段时,请调大此值。

步骤 3:提交并等待

bun scripts/main.ts \
  --prompt "..." \
  --video ./out.mp4 \
  --provider ark \
  --duration 5 \
  --ar 16:9 \
  --resolution 720p

等待期间,不要在同一服务商上再提交其他任务——低价套餐的并发限制很严格(通常为 1)。成功后,命令行工具会写入 MP4 文件,并报告文件大小和路径。JSON 输出:

{ "success": true, "provider": "ark", "model": "doubao-seedance-1-0-lite-t2v-250408", "video": "/abs/out.mp4", "size_bytes": 4823456, "format": "mp4" }

步骤 4:超时与恢复

如果轮询时间超过 --poll-timeout,命令行工具会抛出错误,并附带服务商特有的外部 ID(任务 ID / 作业 ID / 操作名称 / 请求 ID)。从 stderr 中获取该 ID,稍后使用对应服务商的工具恢复任务。各服务商的 ID 格式和手动恢复命令请参见 references/async-protocol.md。

参考资料

  • references/providers.md — 全部 10 个服务商的环境变量、默认值、费用说明和功能矩阵。
  • references/async-protocol.md — 各服务商的外部 ID 格式,以及如何恢复卡住的任务。
  • references/aspect_ratio_map.md — 各服务商的 --ar 映射。
  • references/error_codes.md — 常见错误及修复方法。
  • references/config/first-time-setup.md — 设置指南。
  • references/config/extend-schema.md — EXTEND.md 架构。
  • assets/EXTEND.template.md — 配置模板。

评论

支持 Markdown