mcpField
B
byted-seedance-video-generate

byted-seedance-video-generate

github.com/bytedanceクリエイティブ・メディア477181 回インストール今日更新
リポジトリ

byted-seedance-video-generate について

byted-seedance-video-generateは、Doubao Seedanceモデルで動画を生成するスキルです。テキストや参照メディアを使う制作者向けで、フレーム指定、複数形式の参照素材、出力設定に対応します。

主な機能

  1. 01テキストから動画を生成
  2. 02最初・最後のフレーム指定
  3. 03画像・動画・音声の参照
  4. 04比率・長さ・解像度の設定
  5. 05Seedance 1.5の音声生成
  6. 06一括リクエストとタスク照会

活用シーン

  1. 01プロンプトから短い動画を作成
  2. 02始点と終点のフレームで遷移動画を生成
  3. 03参照メディアを使った動画制作
  4. 04複数の動画生成リクエストを送信

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/bytedance/agentkit-samples --skill byted-seedance-video-generate

インストール後、Claude Code で/byted-seedance-video-generateを入力して読み込まれたか確認します。

同梱ファイルLICENSE.txtscripts/video_generate.py

詳細

動画生成スキル

このスキルでは、Doubao Seedance 1.0/1.5 モデルを使用して動画を生成します。

トリガー条件

  1. テキストの説明から動画を生成したい場合
  2. 画像(最初/最後のフレーム)に基づいて動画を作成したい場合
  3. 参照素材(画像、動画、音声)を使用して動画を作成したい場合
  4. 動画生成機能について尋ねられた場合

使用方法

環境変数

このスキルを使用する前に、次の環境変数が設定されていることを確認してください。

  • ARK_API_KEY または MODEL_VIDEO_API_KEY または MODEL_AGENT_API_KEY:動画生成サービスの API キー
  • MODEL_VIDEO_API_BASE:API のベース URL(任意、デフォルト値あり)
  • MODEL_VIDEO_NAME:モデル名(任意、デフォルト値あり)
関数シグネチャ
async def video_generate(
    params: list,
    batch_size: int = 10,
    max_wait_seconds: int = 1200,
    model_name: str = None,
) -> Dict:
パラメーター
params (list[dict])

動画生成リクエストのリストです。各項目は、次のフィールドを持つ dict です。

各項目で必須:

  • video_name (str):出力動画ファイルの名前/識別子
  • prompt (str):生成する動画を説明するテキストです。中国語と英語に対応しています。

各項目で任意 — 入力素材:

  • first_frame (str):最初のフレーム画像の URL
  • last_frame (str):最後のフレーム画像の URL
  • reference_images (list[str]):スタイルや内容の参考にする画像 URL(1〜4 件)
  • reference_videos (list[str]):参照動画の URL(0〜3 件、mp4/mov、各2〜15秒、合計15秒以下)
  • reference_audios (list[str]):参照音声の URL(0〜3 件、mp3/wav、各2〜15秒、合計15秒以下)

各項目で任意 — 動画出力パラメーター:

  • ratio (str):アスペクト比。選択肢:"16:9"(デフォルト)、"9:16"、"4:3"、"3:4"、"1:1"、"2:1"、"21:9"、"adaptive"
  • duration (int):動画の長さ(秒)。モデルに応じて2〜12秒
  • resolution (str):動画の解像度。選択肢:"480p"、"720p"、"1080p"
  • frames (int):フレームの合計数。[29, 289] の範囲内で、25 + 4n の形式にする必要があります
  • camera_fixed (bool):カメラの動きを固定するかどうか。デフォルト:false
  • seed (int):再現性のためのランダムシード。範囲:[-1, 2^32-1]
  • watermark (bool):ウォーターマークを追加するかどうか。デフォルト:false
  • generate_audio (bool):音声を生成するかどうか。Seedance 1.5 のみ対応しています
  • tools (list[dict]):ツール設定の例:[{"type": "web_search"}]
入力モード
  1. テキストから動画を生成:prompt のみを指定し、画像や動画は指定しません
  2. 最初のフレームを指定:開始画像として first_frame を指定します
  3. 最初と最後のフレームを指定:遷移動画を作成するため、両方を指定します
  4. 参照画像:スタイルや内容の参考として reference_images を指定します
  5. マルチモーダル参照:reference_images、reference_videos、reference_audios を組み合わせます
戻り値

スクリプトの戻り値情報

video_generate.py スクリプトは、次の情報を返します。

{
    "status": "success" | "partial_success" | "error",
    "success_list": [{"video_name": "video_url"}],
    "error_list": ["video_name"],
    "error_details": [{"video_name": "...", "error": {...}}],
    "pending_list": [{"video_name": "...", "task_id": "cgt-xxx", ...}]
}

スクリプトの戻り値情報に基づき、ユーザーへの最終応答には、動画生成タスクの説明と動画 URL が含まれます。URL から動画をダウンロードしてもかまいませんが、ユーザーが動画を視聴・ダウンロードできるよう、動画 URL も必ず提供してください。

注:URL は、スクリプトの戻り値情報にある success_list の 'url' です。 URL は次の2通りで返す必要があります。

最終戻り値情報

OpenClaw の場合
  1. まず、生成した動画を許可されたディレクトリに保存/ダウンロードします:

    • 推奨:~/.openclaw/workspace/
  2. message tool を使用して、次のパラメーターで動画を送信します:

    {
      "action": "send",
      "message": "Optional text description",
      "media": "/root/.openclaw/workspace/generated-video.mp4"
    }
    
    • このツールは、ローカルファイルを読み込み、チャンネルサーバーにウェブ URL としてアップロードし、動画メッセージとして送信します
  3. 送信の成功を確認します:ツールが {"ok": true} を返すことを確認してください。これにより、動画が正常に送信されたことを確認できます

  4. message tool ではなく通常のテキストの場合:生成後、次のように動画の一覧を Markdown 形式で表示します。

    <video src="https://example.com/video1.mp4" width="640" controls>video-1</video>
    

    非常に重要: 動画 URL は https:// で始まる元のオンラインリソースへのリンクである必要があります。ダウンロードしたローカル動画のアドレスは使用しないでください。

通常の場合

次の3種類の情報を返してください。

  1. ファイル形式、動画ファイルを送信できるほかの方法がある場合は動画ファイル、動画のローカルパス。例: local_path: /root/.openclaw/workspace/skills/video-generate/xxx.mp4
  2. 生成後、動画の一覧を Markdown 形式で表示します。例:
<video src="https://example.com/video1.mp4" width="640" controls>video-1</video>
<video src="https://example.com/video2.mp4" width="640" controls>video-2</video>

コードの実装

完全な実装については、scripts/video_generate.py を参照してください。

使用例

# Text-to-Video
python scripts/video_generate.py -p "小猫骑着滑板穿过公园" -n cat_park -r 16:9 -d 5 --resolution 720p

# First Frame Guidance
python scripts/video_generate.py -p "小猫跳起来" -n cat_jump -f "https://example.com/cat.png" -r adaptive -d 5

# First + Last Frame Guidance
python scripts/video_generate.py -p "平滑过渡动画" -n transition \
    -f "https://example.com/start.png" \
    -l "https://example.com/end.png" \
    -d 6

# Reference Images (style/content guidance)
python scripts/video_generate.py -p "[图1]戴着眼镜的男生和[图2]柯基小狗坐在草坪上" -n styled \
    --ref-images "https://example.com/boy.png" "https://example.com/dog.png" \
    -r 16:9 -d 5

# Multimodal Reference (video + audio)
python scripts/video_generate.py -p "将视频中的人物换成[图1]中的男孩" -n multimodal \
    --ref-images "https://example.com/boy.png" \
    --ref-videos "https://example.com/source.mp4" \
    --ref-audios "https://example.com/voice.wav" \
    -d 5

# With Audio Generation (Seedance 1.5 only)
python scripts/video_generate.py -p "女孩抱着狐狸,可以听到风声和树叶沙沙声" -n with_audio \
    -f "https://example.com/girl_fox.png" \
    --generate-audio \
    -m doubao-seedance-1-5-pro-251215 \
    -d 6 --resolution 1080p

# Query task status
python scripts/video_generate.py -q "cgt-20260222165751-wsnw8"

# Use specific model
python scripts/video_generate.py -p "A futuristic city" -m doubao-seedance-2-5-260628

# No watermark
python scripts/video_generate.py -p "A beautiful landscape" --no-watermark
コマンドラインオプション
オプション短縮形説明
--prompt-p動画のテキスト説明(必須)
--name-n動画名の識別子(デフォルト:video)
--model-mモデル名(デフォルト:doubao-seedance-2-5-260628)
--ratio-rアスペクト比(デフォルト:16:9)
--duration-d動画の長さ(秒)(2~12)
--resolution動画の解像度:480p、720p、1080p
--first-frame-f最初のフレームの画像 URL
--last-frame-l最後のフレームの画像 URL
--ref-images参照画像の URL(スペース区切り、1~4枚)
--ref-videos参照動画の URL(スペース区切り、0~3本)
--ref-audios参照音声の URL(スペース区切り、0~3件)
--generate-audio音声を生成します(Seedance 1.5 のみ)
--seed再現性を確保するための乱数シード
--no-watermarkウォーターマークを無効にします
--timeout-t最大待機時間(秒)(デフォルト:1200)
--query-task-qtask_id でタスクのステータスを照会します

モデルのフォールバック

モデル関連のエラー(ModelNotOpen など)が発生した場合は、次のモデルにダウングレードできます。

  • doubao-seedance-1-5-pro-251215
  • doubao-seedance-1-0-pro-250528

エラー処理

  • スクリプトがエラー「PermissionError: ARK_API_KEY or MODEL_VIDEO_API_KEY or MODEL_AGENT_API_KEY not found in environment variables」を返した場合は、ARK_API_KEY、MODEL_VIDEO_API_KEY、または MODEL_AGENT_API_KEY 環境変数を設定する必要があることをユーザーに伝えてください。ワークスペース内の環境変数ファイルに書き込んでください。ファイルがすでに存在する場合は、末尾に追記してください。環境変数の形式が正しいことを確認し、環境変数を有効にしたうえで、直前に失敗した動画生成タスクを再試行してください。

注意事項

  • プロンプトは簡潔にしてください(推奨:500文字以下)
  • 最初と最後のフレームは、選択したアスペクト比に合わせてください
  • 参照画像:1~4枚、形式:jpeg/png/webp/bmp/tiff/gif
  • 参照動画:0~3本、形式:mp4/mov、合計時間:15秒以下
  • 参照音声:0~3件、形式:mp3/wav、合計時間:15秒以下
  • マルチモーダルには画像または動画が少なくとも1つ必要です(音声のみはサポートされていません)
  • 音声生成は Seedance 1.5 pro のみサポートされています
  • ポーリングがタイムアウトした場合は、返された task_id を指定して --query-task を使用してください

コメント