動画生成
Seedance 2.5 で動画生成 — テキスト/画像/動画からの動画生成 (video-to-video)
Portrait を入力に使う
仮想または実在人物のポートレートを asset://<asset-id> としてマルチモーダル入力に渡すことで、動画生成で参照できます。asset:// は seedance-2.0 / seedance-2.0-fast でのみサポートされます — seedance-2.5 では対応していません。エンドツーエンドのオンボーディングフローは Portrait ガイド を参照してください。
概要
Seedance モデルを使って、テキストプロンプト・参照画像・参照動画から短いシネマティックな動画クリップを生成します。seedance-2.5 が現在のフラッグシップで、テキストから動画、画像から動画、動画から動画に対応します(reference_video を通じて参照動画から新しいクリップを駆動)。
動画を作成
Submit a video generation task using the Videos API:
| 1 | curl https://api.alltoken.ai/v1/videos/generations -H "Authorization: Bearer $ALLTOKEN_API_KEY" -H "Content-Type: application/json" -d '{ |
| 2 | "model": "seedance-2.5", |
| 3 | "prompt": "A serene mountain lake at sunrise, cinematic 4K", |
| 4 | "ratio": "16:9", |
| 5 | "duration": 5, |
| 6 | "resolution": "720p" |
| 7 | }' |
参照素材
テキストプロンプトに加えて、Seedance は content[] 配列を通じて参照画像・参照動画・参照音声を受け取ることができます。各項目は type と role を持ちます:
| 素材 | type | 利用可能な role |
|---|---|---|
| 画像 | image_url | reference_image、first_frame、last_frame |
| 動画 | video_url | reference_video |
| 音声 | audio_url | reference_audio |
各素材には 2 通りの渡し方があり、1 回のリクエスト内で混在させることもできます:
- すでに公開ホスト上にある場合 —
http(s)URL を type オブジェクト内に渡します。例:{ "type": "image_url", "image_url": { "url": "https://..." }, "role": "reference_image" }。上流から公開アクセス可能である必要があります(プライベートリンクや署名付き限定リンクは不可)。 - ローカルファイルの場合 — presign してアップロードし、返された
upload_idを参照します:{ "type": "image_url", "upload_id": "upl_...", "role": "reference_image" }。
警告
data: base64 インラインパスは 2026-08-06 に削除されました。data: 素材を含む動画リクエストは 400 inline_media_removed を返すようになりました。インライン URL を upload_id に置き換えるだけで移行でき、その他のフィールドはすべて同じままです。http(s) URL と upload_id は影響を受けません。
| 1 | - { "type": "image_url", "image_url": { "url": "data:image/png;base64,iVBOR..." }, "role": "reference_image" } |
| 2 | + { "type": "image_url", "upload_id": "upl_9f3c...", "role": "reference_image" } |
role のデフォルト値とフレームのルール
type は短縮形 image / video / audio でも記述できます(ゲートウェイが正規化します)が、role を省略するとデフォルト値が適用されます — そして画像のデフォルト値は予想とは異なる可能性があります:
短縮 type | 正規化後 | 省略時のデフォルト role |
|---|---|---|
image | image_url | first_frame — reference_image ではありません! |
video | video_url | reference_video |
audio | audio_url | reference_audio |
つまり { "type": "image", "upload_id": "upl_..." } は参照画像ではなく先頭フレームとして扱われます。デフォルト値に頼らず、明示的な role を伴う長い形式を使うことをおすすめします。GET タスクレスポンスは検出された input_type をそのまま返すため、ゲートウェイが content[] をどう解釈したかを確認できます。
警告
フレームと視覚的リファレンスは混在させられません。上流はこれらを排他的なパラダイムとして扱います:first_frame / last_frame(成果物の開始/終了画面を指定)と reference_image / reference_video(スタイルや被写体のリファレンスを提供)です。同一リクエスト内に両方の視覚素材を含めると 400 invalid_request を返します。reference_audio は対象外です — 「画像を先頭フレーム + 音声をリファレンス」は対応している組み合わせです。
入力の制約
| 制約 | 値 | どこの制限か |
|---|---|---|
| 参照動画のピクセル数 | ≥ 409,600(すなわち 640×640 以上) | 上流モデル — そのまま透過 |
| 1 ファイルあたりのアップロードサイズ | メディアアップロード の purpose ごとの上限を参照 | AllToken |
| 参照画像の枚数 | 上流ドキュメントでは 9 枚、当社では上限を設けません | 上流 |
参照動画のピクセルが小さすぎる場合、上流のエラーがそのまま透過されます(例:InvalidParameter: ... video pixel count ... must be greater than or equal to 409600 ...)。なお frames と camera_fixed は 2.0 系ではサポートされておらず、拒否されるのではなく静かに無視されます。
対応モデル
最新の一覧は GET /videos/models を呼び出してください。seedance-2.5 が現在のフラッグシップです(テキストから動画、画像から動画、動画から動画)。asset:// のポートレート参照は 2.0 系にとどまります。
| Model | 最適な用途 | asset:// ポートレート参照 |
|---|---|---|
seedance-2.5 | フラッグシップ — テキスト / 画像 / 動画から動画 | ❌ 非対応(ポートレートは 2.0 専用) |
seedance-2.0 / seedance-2.0-fast | ポートレート(asset://)ワークフロー | ✅ 対応 |
seedance-1.5-pro | 旧世代 | ❌ 非対応(通常の画像 URL を使用) |
asset_id の取得方法は Portrait ガイド を参照してください。
パラメータ
model—"seedance-2.5"(flagship),"seedance-2.0","seedance-2.0-fast", or"seedance-1.5-pro"prompt— text description of the desired videoratio—"16:9","9:16","4:3","3:4","21:9","1:1", or"adaptive"duration— length in seconds;-1lets the model choose automaticallyresolution—"480p","720p", or"1080p"content— multimodal input array for image-to-video or references, for example{ "type": "image_url", "image_url": { "url": "..." }, "role": "first_frame" }. Images containing real human faces must go through Portrait first — passasset://<asset_id>after onboarding (see Portrait guide); public URLs of real-person images may be rejected upstream for deepfake / consent compliance.
タスク状態を確認
Video generation is asynchronous. Poll for status:
$curl https://api.alltoken.ai/v1/videos/generations/{task_id} -H "Authorization: Bearer $ALLTOKEN_API_KEY"The response includes status (queued, processing, completed, failed, expired, or cancelled) and a download URL when complete.
タスクをキャンセル
Cancel a queued or processing task:
$curl -X POST https://api.alltoken.ai/v1/videos/generations/{task_id}/cancel -H "Authorization: Bearer $ALLTOKEN_API_KEY"Tasks already completed, failed, or cancelled cannot be cancelled.