happy-video-gen について
happy-video-genは、単一のコマンドラインツールから10のプロバイダーを使い、テキストや画像で短い動画を生成するスキルです。プロバイダー選択、設定、非同期ジョブの処理も案内します。
主な機能
- 01テキストから動画・画像から動画を生成
- 0210の動画プロバイダーに対応
- 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
1 つの CLI bun scripts/main.ts ... から、10 個のプロバイダーを使って短い動画を生成します(テキストから動画、または画像から動画)。すべてのプロバイダーは非同期です。CLI はジョブを送信し、プロバイダーの処理が完了するまでポーリングした後、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に沿ってユーザーを案内してください。 -
いずれか 1 つのプロバイダーに認証情報があることを確認します。 CLI の自動検出順(providers.md を参照)に従って環境変数を確認してください。利用可能なプロバイダーが 1 つもない場合は、先に進まないでください。
-
Bun を確認します。 見つからない場合は
npx -y bunを使用してください。 -
費用について警告します。 動画生成の 1 回あたりの費用は、画像生成の 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>:ローカルパスを指定します。自動的にデータ URI として Base64 エンコードされます。--last-frameを受け付けるのは Luma と一部の FAL エンドポイントのみです。--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:デフォルトは 600 秒(10 分)です。1080P または 5 秒を超えるクリップの場合は延長してください。
ステップ 3:送信して待機
bun scripts/main.ts \
--prompt "..." \
--video ./out.mp4 \
--provider ark \
--duration 5 \
--ar 16:9 \
--resolution 720p
待機中は、同じプロバイダーに別のジョブを送信しないでください。低価格プランでは同時実行数の上限が厳しく(多くの場合 1 件)、制限されています。成功すると、CLI は 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 を超えると、CLI はプロバイダー固有の外部 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— 設定テンプレート。