关于 happy-video-gen
happy-video-gen 是一项视频生成技能,可通过单一命令行工具和 10 个服务商从文本或图像生成短片,并指导服务商选择、参数设置及异步任务处理。
主要功能
- 01文本生成视频和图像生成视频
- 02支持 10 个视频服务商
- 03按任务选择服务商及参数
- 04轮询任务并下载成片
- 05超时后的恢复指引
适用场景
- 01根据文本提示生成短片
- 02将静态图像制作成视频
- 03使用指定的视频模型系列生成内容
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ iamzhihuix/ happy-claude-skills --skill happy-video-gen安装后在 Claude Code 中输入/happy-video-gen确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
package.jsonassets/EXTEND.template.mdreferences/aspect_ratio_map.mdasync-protocol.mderror_codes.mdproviders.mdreferences/config/extend-schema.mdfirst-time-setup.mdscripts/main.tstypes.tsscripts/providers/ark.tsbailian.tsfal.tsgoogle.tsluma.tsminimax.tsopenai.tspika.tsrunway.tsvidu.tsscripts/utils/aspect_ratio.tsasync.tsoutput.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:预检(阻塞性)
-
查找 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中的步骤。 -
确认至少一个服务商已配置凭据。 按命令行工具的自动检测顺序检查环境变量(参见 providers.md)。没有可用服务商时,不要继续。
-
确认已安装 Bun。如果缺少,则改用
npx -y bun。 -
提示费用。 每次视频生成的费用是图像生成的 10–100 倍。如果用户要求生成 HD 1080P / 10 秒视频片段,则在提交任务前确认——向用户展示
references/providers.md中对应服务商的预估费用范围。
步骤 1:选择服务商
优先顺序:
- 明确传入
--provider <id>。 - EXTEND.md 中的
default_provider。 - 根据环境变量自动检测:
fal > ark > minimax > runway > luma > pika > vidu > google > bailian > openai。
根据实际任务的需求选择:
- 中文提示词 / 画面中的中文文本 →
ark(Seedance)或bailian(Wanx)。 - 写实人像 →
google(Veo 3)或runway(Gen-4)。 - 动漫 / 风格化内容 →
fal(Kling)或luma。 - 低成本草稿 →
arkSeedance Lite、falKling v2.5 turbo、viduQ1。 - 语音同步的对话视频(如适用)→
googleVeo 3、openaiSora 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— 配置模板。