ビデオと素材

動画を作成

動画生成タスクを作成します

POST
/v1/videos/generations

概要

動画生成は非同期です。リクエストを送信すると、task_id と poll_url が返り、その後はポーリングで最終結果を取得します。

ポーリング動作

最も安定したポーリングのため、作成レスポンスで返された poll_url をそのまま使用してください。

作成レスポンスで poll_url が返る場合は、その URL をそのまま使ってください。/v1/tasks/{id} を指す場合は、それを固定の正規ステータスエンドポイントとして扱ってください。

モデルとメディアの動作

音声の動作は選択したモデルと操作によって異なります。音声スイッチがなくても動画に音声が含まれる場合があります。省略と false の指定は異なります。

  • veo3.1 と veo3.1-fast は Gemini API の仕様に従い常に音声を生成します。wan-2.6 と wan-2.7 の動画生成でも音声は無効にできません。output_audio を省略するか、モデル詳細で許可されている場合に true を指定してください。
  • hailuo-h3 と Grok 動画モデルは音声をネイティブ生成します。モデル詳細に記載のない音声スイッチを追加しないでください。
  • Seedance 1.5/2.x と viduq3-pro / viduq3-turbo は音声が既定でオンで、無音出力も可能です。PixVerse C1/V5.6/V6 は既定でオフです。output_audio は対応操作でのみ使用してください。Vidu は仕様に記載された真偽値の audio も受け付けます。
  • audio_url / audio_urls は入力・参照音声であり、出力音声のスイッチではありません。動画編集、動作転送、スタイル変換は入力音声を保持する場合があります。元の音声を保持することは消音ではありません。

許可値と音声別料金はモデル詳細を確認してください。対応する別名 outputAudio、generate_audio、真偽値の audio を output_audio と併用する場合、値を一致させてください。同じ系列でもバージョンや操作によって制御は異なります。

本番環境では、画像・動画・音声入力には公開アクセス可能な https URL を優先してください。互換モデルでは data: URL も利用できますが、大きな base64 は retry・観測・デバッグを難しくします。

リクエストボディ

modelstringデフォルト: veo3.1

動画モデル ID。veo3.1、wan-2.7、happyhorse-1.0、viduq3、pixverse-v6、kling-3.0-video などの製品レベルの論理 ID を使い、text-to-video、image-to-video、reference-to-video などの違いは operation で選択してください。動画生成ガイド と Models API を参照してください。

PixVerse

  • モデル: pixverse-c1, pixverse-v6, pixverse-v5.6
  • 操作: text-to-video, image-to-video, start-end-to-video, reference-to-video
  • 音声セレクター: output_audio, デフォルトは false

TokenLab では、上記の PixVerse モデルは operation=video-extension を受け付けません。

HappyHorse

  • モデル: happyhorse-1.0
  • 操作: text-to-video, image-to-video, reference-to-video, video-to-video
  • 音声セレクター: output_audio を送信しないでください。
promptstring

生成したい動画のテキスト説明です。大半の公開動画モデルで必須です。

operationstring

実行する動画操作です。対応値として text-to-video、image-to-video、reference-to-video、start-end-to-video、video-to-video、video-extension、audio-to-video、motion-control を受け付けます。入力から自動推定もできますが、本番では明示指定を推奨します。

image_urlstring

画像から動画生成に使う開始画像 URL です。最も広い互換性を得るには image_url を優先してください。

imagestring

data:image/...;base64,... 形式のインライン画像です。互換モデルでは利用できますが、image_url の方が一般に扱いやすく安定します。

reference_imagesarray

reference-to-video フローで使う参照画像入力です。許容数はモデルごとに異なります。seedance-2.0 と seedance-2.0-fast では、TokenLab は現在最大 9 枚の参照画像に加えて、最大 3 本の参照動画と 3 本の参照音声をサポートします。モデル選択、4K の境界、Mini の注意点については Seedance 2.0 ビデオモデルガイドを参照してください。公開 https URL を推奨し、互換モデルでは data: URL も利用できます。 grok-imagine-video の reference-to-video は最大 7 件の画像参照を受け付け、duration は最大 10 秒です。grok-imagine-video-1.5-preview は image-to-video のみで、参照画像は受け付けません。

material_asset_idstring

素材を作成で返される TokenLab Seedance 素材 ID。素材が ACTIVE になった後、TokenLab 素材ライブラリを使用できる Seedance モデルで使用できます。

material_asset_idsarray

複数の TokenLab Seedance 素材 ID。reference_images と同じ Seedance 画像参照数の上限を共有します。選択したモデルは TokenLab 素材ライブラリを使用できる必要があります。

通常の画像 URL は画像入力として扱われ、再利用可能な素材を自動作成しません。再利用する素材は素材 API で作成し、TokenLab ID または asset://asset-YYYYMMDDHHMMSS-xxxxx URI を指定してください。明示した素材で 409 seedance_material_preparing が返る場合は、inactive_asset_ids の素材を確認し、ACTIVE になってから再試行してください。

reference_image_typestring

asset と style を区別するモデル向けの任意フィールドです。

kling_elementsarray

選択モデルの現在の公開詳細に kling_elements がある場合のみ使用してください。画像入力と 1〜3 個の要素を指定します。各要素に name、任意の description、2〜4 個の element_input_urls を含め、prompt で @name として参照します。output_audio=true とは併用できません。

video_urlstring

ソース動画の公開 URL。動画 URL ベースの video-to-video フローと motion-control で必要です。一部の派生フローでは代わりに task_id を使います。

video_urlsarray

マルチモーダル参照条件付けに対応したモデル向けの追加参照動画入力です。許容数はモデルごとに異なります。seedance-2.0 と seedance-2.0-fast では、TokenLab は現在最大 3 本の参照動画をサポートします。

audio_urlstring

選択したモデルが対応する音声駆動・参照音声操作用の公開音声 URL。

audio_urlsarray

マルチモーダル参照条件付けに対応したモデル向けの追加参照音声入力です。許容数はモデルごとに異なります。seedance-2.0 と seedance-2.0-fast では、TokenLab は現在最大 3 本の参照音声をサポートします。

task_idstring

一部の継続、延長、派生フローで使用するタスク識別子です。

extend_atinteger

一部の video-extension フローで使うモデル固有の延長開始オフセットです。

extend_timesstring

一部の video-extension フローで使うモデル固有の延長回数・倍率です。

durationinteger

生成される出力動画の長さ(秒)です。Seedance 1.5/2.0 モデルでは、このフィールドを省略すると 5 が使われます。-1 を送ると、モデルが対応範囲内で長さを選択し、タスク完了までは保守的に課金見積もりされます。

secondsinteger

duration の互換エイリアスです。seconds と duration を両方送る場合、値は同一である必要があります。Seedance では seconds=-1 は duration=-1 と同じ自動長の意味になります。

aspect_ratiostring

正規のアスペクト比です。例: adaptive、16:9、9:16、1:1、4:3、3:4、21:9。Seedance では省略時に adaptive が使われます。

resolutionstring

モデル依存の出力解像度です。Seedance は省略時に 720p を使用します。seedance-2.0 は 480p、720p、1080p、4k に対応し、seedance-2.0-fast と seedance-2.0-mini は 480p と 720p に限定されます。

output_audioboolean

このフィールドを宣言する操作の音声出力セレクターです。省略時はモデルの既定動作に従います。許可されている場合のみ false が無音出力を指定します。上記の説明とモデル詳細を確認してください。

draftboolean

Seedance 1.5 Pro の Draft ワークフロー用フラグです。Draft タスクに対応する Seedance モデルで draft=true を指定します。draft_task_id と同時に送信しないでください。

draft_task_idstring

Seedance 1.5 Pro のドラフト昇格タスク ID です。以前のドラフトタスク ID を送ると最終動画を作成します。汎用動画フィールドではありません。

ratiostring

aspect_ratio の互換エイリアスです。ratio と aspect_ratio を両方送る場合、値は同一である必要があります。

generate_audioboolean

output_audio の互換エイリアスです。generate_audio、output_audio、outputAudio が同時に現れる場合、すべての値が一致している必要があります。

execution_expires_afterinteger

対応する動画モデルの任意の実行期限(秒)です。Seedance は省略時に 172800 秒を使用します。

priorityinteger

対応する動画モデルの任意のタスク優先度で、範囲は 0 から 9 です。priority と service_tier=flex は組み合わせないでください。

safety_identifierstring

対応する動画モデル向けの任意のエンドユーザー安全識別子です。Seedance で省略された場合、TokenLab は user があればその値を使用します。

service_tierstring

default は Seedance 2.0 モデルで互換 no-op として受け付けます。flex は選択したモデルが対応している場合のみ使用できます。

framesinteger

対応する動画モデル向けの任意のフレーム数です。Seedance 2.0 モデルと Seedance 1.5 Pro はこのフィールドに対応していません。

camera_fixedboolean

対応する動画モデル向けの任意の固定カメラ指定です。Seedance 2.0 モデルはこのフィールドに対応していません。

fpsinteger

フレームレート(1〜120)。FPS を公開しているモデルのみ有効です。

negative_promptstring

生成で避けたい内容です。

seedinteger

再現可能な生成に使う乱数シードです。Seedance は省略時にランダムシードとして -1 を使用します。

cfg_scalenumber

プロンプト追従強度(0〜20)。対応モデルのみ有効です。

motion_strengthnumber

動きの強さ(0〜1)。対応モデルのみ有効です。

start_imagestring

start-end-to-video で使う開始フレーム画像 URL または互換画像入力です。

end_imagestring

start-end-to-video で使う終了フレーム画像 URL または互換画像入力です。

sizestring

対応する動画モデル向けのモデル固有サイズ階層です。

watermarkboolean

対応モデルが公開している任意の透かしスイッチです。Seedance は省略時に false を使用します。

effect_typestring

一部の編集・エフェクト系フローで使うモデル固有のエフェクト指定です。

userstring

エンドユーザーの一意な識別子。Seedance で safety_identifier を省略した場合、TokenLab はこの値を使用します。

互換性メモ

  • 正規の公開フィールドは snake_case のままです: aspect_ratio、output_audio、reference_images、reference_image_type。
  • 互換性のため、TokenLab は ratio、generate_audio、outputAudio、seconds、referenceImages、referenceImageType も受け付けます。
  • 正規フィールドとエイリアスフィールドを両方送る場合、値は一致している必要があります。競合するエイリアスはタスク作成前に拒否されます。
  • operation を省略すると、TokenLab は指定された入力から推論します。本番トラフィックでは明示的な operation の指定を引き続き推奨します。

入力のベストプラクティス

  • image_url、reference_images、video_url、audio_url には、公開アクセス可能な https URL を優先してください。
  • 同一リクエスト内で base64 とリモート URL を混在させるのは避ける方が安全です。
  • リモートメディア URL は、再試行や非同期タスク生成をカバーできる有効期限にしてください。

Seedance パラメータ

Seedance 1.5/2.0 モデルでは、統一エンドポイントは TokenLab のフィールド名を主に使いつつ、互換エイリアス seconds、ratio、generate_audio も受け付けます。Seedance のセレクタを省略すると、duration=5、resolution=720p、aspect_ratio=adaptive、output_audio=true、watermark=false、return_last_frame=false、execution_expires_after=172800、priority=0、seed=-1 が使われます。

duration=-1 または seconds=-1 を指定すると、Seedance がモデル対応範囲内で出力長を選択します。TokenLab はタスク完了前に保守的にコストを見積もり、完了タスクの usage が取得できる場合は実績に基づいて精算します。service_tier=default は Seedance 2.0 で互換 no-op として受け付けます。service_tier=flex、frames、camera_fixed は選択モデルが対応していない場合に拒否されます。

Seedance の例

cURL
curl -X POST "https://api.tokenlab.sh/v1/videos/generations" \
  -H "Authorization: Bearer sk-your-api-key" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "seedance-2.5",
    "prompt": "A sleek product reveal with cinematic camera movement",
    "operation": "text-to-video",
    "duration": -1,
    "aspect_ratio": "adaptive",
    "resolution": "720p",
    "output_audio": true
  }'

レスポンス

結果、エラー、タイムスタンプ、モデルのフィールドはタスクで利用可能な場合に返されます。

idstring

正規の非同期タスク ID です。id と task_id の両方がある場合は、同じタスク識別子として扱ってください。

task_idstring

ポーリング用の一意なタスク ID です。

poll_urlstring

このタスクに推奨されるポーリング URL です。状態確認にはこのパスをそのまま使ってください。

billing_transaction_idstring

決済がすでに完了している場合に返される TokenLab の請求トランザクション ID です。dashboard / 照合で使う取引識別子であり、非同期 id / task_id とは別物です。

statusstring

タスクのステータス: pending, processing, completed, failed。

createdinteger

タスク作成時の Unix タイムスタンプです。

modelstring

使用されたモデルです。

videoobject

利用可能な場合に url、duration、width、height を含む単一ビデオペイロード。

videosarray

生成タスクが複数の出力を返す場合の複数ビデオペイロード。

errorstring | object

エラーメッセージ(失敗時)。

リクエスト

cURL
curl -X POST "https://api.tokenlab.sh/v1/videos/generations" \
  -H "Authorization: Bearer sk-your-api-key" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "veo3.1",
    "prompt": "A cat walking through a garden, cinematic lighting",
    "operation": "text-to-video",
    "duration": 4,
    "aspect_ratio": "16:9"
  }'

レスポンス

Response
{
  "id": "ldtask_aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
  "task_id": "ldtask_aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
  "poll_url": "/v1/tasks/ldtask_aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
  "status": "pending",
  "model": "veo3.1",
  "created": 1706000000
}

画像から動画

response = requests.post(
    "https://api.tokenlab.sh/v1/videos/generations",
    headers={"Authorization": "Bearer sk-your-api-key"},
    json={
        "model": "hailuo-2.3-standard",
        "prompt": "The scene begins from the provided image and adds gentle natural motion.",
        "operation": "image-to-video",
        "image_url": "https://example.com/image.jpg",
        "duration": 6,
        "resolution": "768p"
    }
)

Kling 3.0 の要素

選択モデルの現在の公開詳細に kling_elements がある場合のみ使用してください。画像入力と 1〜3 個の要素を指定します。各要素に name、任意の description、2〜4 個の element_input_urls を含め、prompt で @name として参照します。output_audio=true とは併用できません。

参照画像から動画

モデルが専用の参照条件付けに対応している場合は operation=reference-to-video を使います。TokenLab の対応値として、画像参照は reference_images、マルチモーダル参照動画と参照音声は video_urls と audio_urls を使います。seedance-2.0 と seedance-2.0-fast では、TokenLab は現在最大 9 枚の参照画像に加えて、最大 3 本の参照動画と 3 本の参照音声をサポートします。モデル選択、4K の境界、Mini の注意点については Seedance 2.0 ビデオモデルガイドを参照してください。duration は生成される出力長のみを制御し、参照動画入力の長さ上限を個別に設定するものではありません。 grok-imagine-video の reference-to-video は最大 7 件の画像参照(reference_images または image_urls)を受け付け、duration は最大 10 秒です。参照画像を image_url / image の先頭フレーム入力と組み合わせないでください。grok-imagine-video-1.5-preview は image-to-video のみです。

response = requests.post(
    "https://api.tokenlab.sh/v1/videos/generations",
    headers={"Authorization": "Bearer sk-your-api-key"},
    json={
        "model": "veo3.1",
        "prompt": "Keep the same subject identity and palette while adding subtle motion.",
        "operation": "reference-to-video",
        "reference_images": [
            "https://example.com/ref-a.jpg",
            "https://example.com/ref-b.jpg"
        ],
        "reference_image_type": "asset",
        "duration": 8,
        "resolution": "720p",
        "aspect_ratio": "9:16"
    }
)

開始・終了フレーム制御

start_image と end_image を使って最初と最後のフレームを制御します。

response = requests.post(
    "https://api.tokenlab.sh/v1/videos/generations",
    headers={"Authorization": "Bearer sk-your-api-key"},
    json={
        "model": "viduq2-pro",
        "operation": "start-end-to-video",
        "start_image": "https://example.com/day.jpg",
        "end_image": "https://example.com/night.jpg",
        "duration": 5,
        "resolution": "720p",
        "aspect_ratio": "16:9"
    }
)

動画から動画

grok-imagine-video の video-to-video では、公開 HTTPS の .mp4 URL を video_url に、編集指示を prompt に指定します。この操作では resolution、duration、aspect_ratio を省略してください。

既存の動画を主入力として使う場合は operation=video-to-video を使用します。

response = requests.post(
    "https://api.tokenlab.sh/v1/videos/generations",
    headers={"Authorization": "Bearer sk-your-api-key"},
    json={
        "model": "grok-imagine-video",
        "operation": "video-to-video",
        "video_url": "https://example.com/source.mp4",
        "prompt": "Enhance the clip while preserving the original motion."
    }
)

モーション制御

主体画像とモーション参照動画の両方を必要とするモデルでは operation=motion-control を使用します。TokenLab は公開リクエスト形の image_url と video_url をモデルが必要とするリクエスト形式に正規化します。

response = requests.post(
    "https://api.tokenlab.sh/v1/videos/generations",
    headers={"Authorization": "Bearer sk-your-api-key"},
    json={
        "model": "kling-3.0-motion-control",
        "operation": "motion-control",
        "prompt": "Keep the subject stable while following the motion reference.",
        "image_url": "https://example.com/subject.png",
        "video_url": "https://example.com/motion.mp4",
        "resolution": "720p"
    }
)

モデル検出

公開動画モデルの一覧と対応操作は時間とともに変わります。モデル固有のフローを実装する前に、Models API を真値として確認してください:

curl "https://api.tokenlab.sh/v1/models?recommended_for=video"

curl "https://api.tokenlab.sh/v1/models/veo3.1"

モデル固有の操作やフィールドに依存する前に、モデル詳細レスポンスを確認してください。audio-to-video や video-extension などの操作はモデル固有です。本ページの静的な例ではなく、そこで現在の可用性を確認してください。

認証

BearerAuth
AuthorizationBearer <token>

APIキー認証。Dashboard > API > API KeysでAPIキーを作成または管理します。

場所: header

ヘッダー

X-TokenLab-Delivery-Policy?string

リクエストごとの配信ポリシー。APIキーおよびWorkspaceのデフォルト設定を上書きします。自動的にまず TokenLab Verified を試行し、出力、リクエストの受け入れ、または永続的なリソース作成の前に、一度だけ Official に切り替える場合があります。

指定できる値

  • "auto"
  • "verified"
  • "official"

リクエストボディ

application/json

レスポンス

application/json

application/json

application/json

application/json

application/json

application/json

application/json

application/json