mcpField

happy-video-gen

github.com/iamzhihuixクリエイティブ・メディア163 回インストール
リポジトリ

happy-video-gen について

happy-video-genは、単一のコマンドラインツールから10のプロバイダーを使い、テキストや画像で短い動画を生成するスキルです。プロバイダー選択、設定、非同期ジョブの処理も案内します。

主な機能

  1. 01テキストから動画・画像から動画を生成
  2. 0210の動画プロバイダーに対応
  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

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:事前確認(必須)

  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. いずれか 1 つのプロバイダーに認証情報があることを確認します。 CLI の自動検出順(providers.md を参照)に従って環境変数を確認してください。利用可能なプロバイダーが 1 つもない場合は、先に進まないでください。

  3. Bun を確認します。 見つからない場合は npx -y bun を使用してください。

  4. 費用について警告します。 動画生成の 1 回あたりの費用は、画像生成の 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>:ローカルパスを指定します。自動的にデータ 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 — 設定テンプレート。

コメント