ビデオと素材
動画を作成
動画生成タスクを作成します
概要
動画生成は非同期です。リクエストを送信すると、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・観測・デバッグを難しくします。
リクエストボディ
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を送信しないでください。
生成したい動画のテキスト説明です。大半の公開動画モデルで必須です。
実行する動画操作です。対応値として text-to-video、image-to-video、reference-to-video、start-end-to-video、video-to-video、video-extension、audio-to-video、motion-control を受け付けます。入力から自動推定もできますが、本番では明示指定を推奨します。
画像から動画生成に使う開始画像 URL です。最も広い互換性を得るには image_url を優先してください。
data:image/...;base64,... 形式のインライン画像です。互換モデルでは利用できますが、image_url の方が一般に扱いやすく安定します。
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 のみで、参照画像は受け付けません。
素材を作成で返される TokenLab Seedance 素材 ID。素材が ACTIVE になった後、TokenLab 素材ライブラリを使用できる Seedance モデルで使用できます。
複数の TokenLab Seedance 素材 ID。reference_images と同じ Seedance 画像参照数の上限を共有します。選択したモデルは TokenLab 素材ライブラリを使用できる必要があります。
通常の画像 URL は画像入力として扱われ、再利用可能な素材を自動作成しません。再利用する素材は素材 API で作成し、TokenLab ID または asset://asset-YYYYMMDDHHMMSS-xxxxx URI を指定してください。明示した素材で 409 seedance_material_preparing が返る場合は、inactive_asset_ids の素材を確認し、ACTIVE になってから再試行してください。
asset と style を区別するモデル向けの任意フィールドです。
選択モデルの現在の公開詳細に kling_elements がある場合のみ使用してください。画像入力と 1〜3 個の要素を指定します。各要素に name、任意の description、2〜4 個の element_input_urls を含め、prompt で @name として参照します。output_audio=true とは併用できません。
ソース動画の公開 URL。動画 URL ベースの video-to-video フローと motion-control で必要です。一部の派生フローでは代わりに task_id を使います。
マルチモーダル参照条件付けに対応したモデル向けの追加参照動画入力です。許容数はモデルごとに異なります。seedance-2.0 と seedance-2.0-fast では、TokenLab は現在最大 3 本の参照動画をサポートします。
選択したモデルが対応する音声駆動・参照音声操作用の公開音声 URL。
マルチモーダル参照条件付けに対応したモデル向けの追加参照音声入力です。許容数はモデルごとに異なります。seedance-2.0 と seedance-2.0-fast では、TokenLab は現在最大 3 本の参照音声をサポートします。
一部の継続、延長、派生フローで使用するタスク識別子です。
一部の video-extension フローで使うモデル固有の延長開始オフセットです。
一部の video-extension フローで使うモデル固有の延長回数・倍率です。
生成される出力動画の長さ(秒)です。Seedance 1.5/2.0 モデルでは、このフィールドを省略すると 5 が使われます。-1 を送ると、モデルが対応範囲内で長さを選択し、タスク完了までは保守的に課金見積もりされます。
duration の互換エイリアスです。seconds と duration を両方送る場合、値は同一である必要があります。Seedance では seconds=-1 は duration=-1 と同じ自動長の意味になります。
正規のアスペクト比です。例: adaptive、16:9、9:16、1:1、4:3、3:4、21:9。Seedance では省略時に adaptive が使われます。
モデル依存の出力解像度です。Seedance は省略時に 720p を使用します。seedance-2.0 は 480p、720p、1080p、4k に対応し、seedance-2.0-fast と seedance-2.0-mini は 480p と 720p に限定されます。
このフィールドを宣言する操作の音声出力セレクターです。省略時はモデルの既定動作に従います。許可されている場合のみ false が無音出力を指定します。上記の説明とモデル詳細を確認してください。
Seedance 1.5 Pro の Draft ワークフロー用フラグです。Draft タスクに対応する Seedance モデルで draft=true を指定します。draft_task_id と同時に送信しないでください。
Seedance 1.5 Pro のドラフト昇格タスク ID です。以前のドラフトタスク ID を送ると最終動画を作成します。汎用動画フィールドではありません。
aspect_ratio の互換エイリアスです。ratio と aspect_ratio を両方送る場合、値は同一である必要があります。
output_audio の互換エイリアスです。generate_audio、output_audio、outputAudio が同時に現れる場合、すべての値が一致している必要があります。
対応する動画モデルの任意の実行期限(秒)です。Seedance は省略時に 172800 秒を使用します。
対応する動画モデルの任意のタスク優先度で、範囲は 0 から 9 です。priority と service_tier=flex は組み合わせないでください。
対応する動画モデル向けの任意のエンドユーザー安全識別子です。Seedance で省略された場合、TokenLab は user があればその値を使用します。
default は Seedance 2.0 モデルで互換 no-op として受け付けます。flex は選択したモデルが対応している場合のみ使用できます。
対応する動画モデル向けの任意のフレーム数です。Seedance 2.0 モデルと Seedance 1.5 Pro はこのフィールドに対応していません。
対応する動画モデル向けの任意の固定カメラ指定です。Seedance 2.0 モデルはこのフィールドに対応していません。
フレームレート(1〜120)。FPS を公開しているモデルのみ有効です。
生成で避けたい内容です。
再現可能な生成に使う乱数シードです。Seedance は省略時にランダムシードとして -1 を使用します。
プロンプト追従強度(0〜20)。対応モデルのみ有効です。
動きの強さ(0〜1)。対応モデルのみ有効です。
start-end-to-video で使う開始フレーム画像 URL または互換画像入力です。
start-end-to-video で使う終了フレーム画像 URL または互換画像入力です。
対応する動画モデル向けのモデル固有サイズ階層です。
対応モデルが公開している任意の透かしスイッチです。Seedance は省略時に false を使用します。
一部の編集・エフェクト系フローで使うモデル固有のエフェクト指定です。
エンドユーザーの一意な識別子。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には、公開アクセス可能なhttpsURL を優先してください。- 同一リクエスト内で 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 -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
}'レスポンス
結果、エラー、タイムスタンプ、モデルのフィールドはタスクで利用可能な場合に返されます。
正規の非同期タスク ID です。id と task_id の両方がある場合は、同じタスク識別子として扱ってください。
ポーリング用の一意なタスク ID です。
このタスクに推奨されるポーリング URL です。状態確認にはこのパスをそのまま使ってください。
決済がすでに完了している場合に返される TokenLab の請求トランザクション ID です。dashboard / 照合で使う取引識別子であり、非同期 id / task_id とは別物です。
タスクのステータス: pending, processing, completed, failed。
タスク作成時の Unix タイムスタンプです。
使用されたモデルです。
利用可能な場合に url、duration、width、height を含む単一ビデオペイロード。
生成タスクが複数の出力を返す場合の複数ビデオペイロード。
エラーメッセージ(失敗時)。
リクエスト
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"
}'レスポンス
{
"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 APIキー認証。Dashboard > API > API KeysでAPIキーを作成または管理します。
場所: header
ヘッダー
リクエストごとの配信ポリシー。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