APIMaster.ai

Seedance 2.0 Fast 動画生成API

APIMasterにおけるSeedance 2.0 Fastのパラメータ、参照メディア、非同期タスク、認証済みダウンロード、および時間単位の課金について。

Seedance 2.0 Fast 動画生成

テキストから動画、画像から動画、最初/最後のフレーム生成、および動画またはオーディオ参照には seedance-2.0-fast を使用します。Fastは 480p と 720p をサポートし、出力時間は 4 秒から 15 秒です。

最初/最後のフレーム生成では、明示的に aspect_ratio: "adaptive" を設定してください。参照オーディオは画像または動画と一緒に指定する必要があります。APIMaster APIキーはサーバー上に保管してください。

エンドポイントと認証

ベースURL: https://apimaster.ai/v1。送信、クエリ、ダウンロード時には Authorization: Bearer YOUR_API_KEY を送信します。

操作 メソッドとパス
動画作成 POST /v1/videos/generations
互換性のある結果のクエリ GET /v1/video/generations/{task_id}
OpenAI形式の結果のクエリ GET /v1/videos/{task_id}
動画ダウンロード GET /v1/videos/{task_id}/content
リクエストされた最終フレームのダウンロード GET /v1/videos/{task_id}/last-frame

APIMasterから返される公開 task_id を使用してください。動画タスクとメディアレビュータスクは異なるリソースです:動画には上記の動画クエリエンドポイントを使用してください。リクエストが受理されると1つの非同期タスクが作成されます;HTTP成功は動画が完了したことを意味しません。

パラメータ

フィールド タイプ 必須 / デフォルト 説明
model string 必須 seedance-2.0-fast
prompt string 必須 4000 文字まで。被写体、動き、シーン、カメラ、希望するオーディオを記述します;簡潔なプロンプトは制御しやすいです。
duration integer 5 出力長、4–15 秒。-1 はサポートされていません。
resolution string 720p 480p または 720p;1080p と 4k はサポートされていません。
aspect_ratio string 16:9 16:9、9:16、1:1、4:3、3:4、21:9、または adaptive。
ratio string aspect_ratio と同じ APIMasterエイリアス。両方が存在する場合、値は一致する必要があります。
size string aspect_ratio と同じ 16:9 や adaptive などの比率。2つの寸法を別々に表現するには aspect_ratio と resolution を優先してください。矛盾する指定は 400 を返します。
seed integer 省略可 バリエーションを制御します;一致するシードでも同一の出力は保証されません。
generate_audio boolean true 付随するオーディオを生成します;無音出力には false を使用します。
image_urls string[] 省略可 9 個までの参照画像。公開画像URLまたは承認済みAPIMaster asset:// ID。
image_with_roles object[] 省略可 url と role を持つ画像オブジェクト;image_urls と同時に指定できません。以下の役割ルールを参照してください。
video_urls string[] 省略可 3 個までの参照動画、合計課金対象入力時間は最大 15 秒。素材要件を参照してください。
audio_urls string[] 省略可 3 個までの参照オーディオファイル、合計時間は最大 15 秒。画像または動画参照が必要です。
return_last_frame boolean false 成功完了時、結果に最終フレームが含まれる場合、認証済みAPIMaster最終フレームダウンロードURLを返します。
nsfw_check boolean false 生成前にテキスト/画像コンテンツのモデレーションをリクエストします。動画とオーディオはこのモデレーションパスには含まれません。
tools object[] 省略可 検索ツール宣言: [{"type":"web_search"}]。

下書き生成と下書きアップグレードはSeedance 2.5専用です。このモデルに draft: true または draft_task_id を渡さないでください。

参考資料

公開アクセス可能なHTTPS URL、またはAPIMasterメディアライブラリの承認済みIDを提供してください。ログインページの背後にあるファイルや、独自の認証ヘッダーを必要とするファイルは取得できません。画像のアップロードが成功しても、すべてのモデル要件に対するコンテンツの承認や準拠を意味するものではありません。

資料 要件
リファレンス画像 最大 9;読み取り可能なRGB JPEG/PNG画像を使用してください。APIMasterの画像アップロードエンドポイントには独自の 20 MiB 制限があり、JPEG、PNG、GIF、WebPを受け付けます。
リファレンス動画 最大 3;MP4/MOV、H.264/H.265ビデオ;音声がある場合はAAC/MP3。480p–720p のリファレンス動画を使用してください。リファレンスの合計時間は 15 請求秒数以内に収める必要があります。APIMasterは課金前にアクセス可能なMP4/MOVの時間を検証します。このチェックと課金のため、入力クリップの時間は秒単位で切り上げられます。
リファレンス音声 最大 3;WAVまたはMP3、ファイルあたり最大 20 MB、合計時間は最大 15 秒。必ず画像または動画のリファレンスと一緒に使用してください。

詳細が十分にある明確な画像を使用し、破損または不完全なファイルを避け、参考動画の動きがプロンプトと一致するようにしてください。提出が受理されても、メディアは非同期のフォーマットまたはコンテンツレビューで不合格になる可能性があります。

画像の役割

role 意味
first_frame 開始フレーム;最大1枚
last_frame 終了フレーム;最大1枚、かつ開始フレームが必要
reference_image 参考画像、承認済みキャラクターアセットを含む

開始/終了フレームタスクの場合、aspect_ratio を adaptive に設定し、video_urls と audio_urls を省略してください。明示的な役割には image_with_roles を使用します。image_urls も同時に渡さないでください。

{
  "model": "seedance-2.0-fast",
  "prompt": "A paper boat drifts gently from the starting composition to the ending composition",
  "duration": 5,
  "resolution": "720p",
  "aspect_ratio": "adaptive",
  "image_with_roles": [
    {"url": "https://your-storage.example/start.png", "role": "first_frame"},
    {"url": "https://your-storage.example/end.png", "role": "last_frame"}
  ],
  "generate_audio": false
}

アップロードとメディアライブラリ

ローカル画像を POST /v1/uploads/images でアップロードするには、マルチパートフィールド file とBearer認証を使用します。返されたトップレベルの url は、公開画像入力として使用できます。

curl "https://apimaster.ai/v1/uploads/images" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -F "file=@reference.png"

再利用可能またはキャラクター素材の場合は、POST /v1/seedance2/private-avatar/groups でグループを作成し、POST /v1/seedance2/private-avatar/assets で素材を提出し、GET /v1/tasks/{asset_task_id} でレビューを照会し、Active のアセットのみを asset://{asset_id} として使用してください。これらのリソースはあなたのアカウントに属します。model: "seedance-2.0-fast" を明示的に指定してください。他のプラットフォームやアカウントからのアセットIDはここでは使用できません。

作成、提出、レビュー、部分的な失敗、削除については、メディアライブラリのワークフローを参照してください。アップロードとアセット管理のエンドポイントは共有されています。このページの生成制限はFastに適用されます。レビュー失敗時には詳細な理由が返されない場合があります。サポートされているフォーマットで明確で準拠した素材を使用し、新しいレビューを提出してください。既存のレビューが処理中の間にタスクを繰り返し再作成しないでください。

動画を提出する

curl "https://apimaster.ai/v1/videos/generations" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model":"seedance-2.0-fast",
    "prompt":"A small paper boat on calm water at sunrise, gentle tracking shot",
    "duration":5,
    "resolution":"720p",
    "aspect_ratio":"16:9",
    "generate_audio":true,
    "return_last_frame":true
  }'

作成応答:

{"code":200,"data":[{"status":"submitted","task_id":"task_PUBLIC_VIDEO_ID"}]}

提出タイムアウトは曖昧です:リクエストは受理された可能性があります。再提出する前にタスク履歴を確認してください。別の成功した提出は、別の請求可能なタスクを作成します。

動画および音声の参考資料

{
  "model": "seedance-2.0-fast",
  "prompt": "Follow the reference motion and keep the scene consistent with the image",
  "duration": 5,
  "resolution": "720p",
  "aspect_ratio": "adaptive",
  "image_urls": ["https://your-storage.example/reference.png"],
  "video_urls": ["https://your-storage.example/reference.mp4"],
  "audio_urls": ["https://your-storage.example/reference.mp3"],
  "generate_audio": true
}

照会とダウンロード

3–5 秒ごとにポーリングします。成功または失敗したら停止します。

curl "https://apimaster.ai/v1/video/generations/task_PUBLIC_VIDEO_ID" \
  -H "Authorization: Bearer YOUR_API_KEY"

互換性のある照会成功:

{
  "code":"success",
  "message":"",
  "data":{
    "error":null,
    "format":"mp4",
    "metadata":null,
    "status":"succeeded",
    "task_id":"task_PUBLIC_VIDEO_ID",
    "url":"https://apimaster.ai/v1/videos/task_PUBLIC_VIDEO_ID/content",
    "actual_time":118,
    "last_frame_url":"https://apimaster.ai/v1/videos/task_PUBLIC_VIDEO_ID/last-frame"
  }
}

この例にはオプションの完了フィールドが含まれています。actual_timeは、送信から完了までの経過時間(秒)であり、課金対象の動画時間ではありません。last_frame_urlは、最終フレームがリクエストされていない場合、または利用できない場合は省略されます。失敗したタスクには、成功時のみの経過時間や最終フレームのフィールドは含まれません。

OpenAIスタイルの照会:

curl "https://apimaster.ai/v1/videos/task_PUBLIC_VIDEO_ID" \
  -H "Authorization: Bearer YOUR_API_KEY"
意味 互換性 data.status OpenAIスタイル status
待機中 queued queued
生成中 processing in_progress
成功 succeeded completed
失敗 failed failed

OpenAIスタイルのオブジェクトでは、公開タスクIDにidを、動画ダウンロードURLにurlを使用します。オプションのactual_timeとlast_frame_urlはトップレベルに表示されます。失敗時は、対応する結果オブジェクト内のerror.messageを参照してください。レスポンスには金銭関連のフィールドは含まれません。

同じアカウントのAPIキーでダウンロードします。認証なしで結果URLを開くだけでは不十分です。出力は速やかに保存してください。

curl -L "https://apimaster.ai/v1/videos/task_PUBLIC_VIDEO_ID/content" \
  -H "Authorization: Bearer YOUR_API_KEY" -o output.mp4
curl -L "https://apimaster.ai/v1/videos/task_PUBLIC_VIDEO_ID/last-frame" \
  -H "Authorization: Bearer YOUR_API_KEY" -o last-frame.jpg

Python完全ワークフロー

import os
import time
import requests

base = "https://apimaster.ai/v1"
headers = {"Authorization": f"Bearer {os.environ['APIMASTER_API_KEY']}"}
response = requests.post(base + "/videos/generations", headers=headers, json={
    "model": "seedance-2.0-fast",
    "prompt": "A small paper boat on calm water at sunrise",
    "duration": 5,
    "resolution": "720p",
    "aspect_ratio": "16:9",
    "generate_audio": True,
    "return_last_frame": True,
}, timeout=90)
response.raise_for_status()
task_id = response.json()["data"][0]["task_id"]
for _ in range(240):
    response = requests.get(base + "/video/generations/" + task_id,
                            headers=headers, timeout=30)
    response.raise_for_status()
    task = response.json()["data"]
    if task["status"] == "failed":
        raise RuntimeError((task.get("error") or {}).get("message", "Video failed"))
    if task["status"] == "succeeded":
        print("Elapsed seconds:", task.get("actual_time"))
        for field, filename in [("url", "output.mp4"), ("last_frame_url", "last-frame.jpg")]:
            if task.get(field):
                with requests.get(task[field], headers=headers, stream=True, timeout=120) as result:
                    result.raise_for_status()
                    with open(filename, "wb") as out:
                        for chunk in result.iter_content(1024 * 1024):
                            out.write(chunk)
        break
    time.sleep(5)
else:
    raise TimeoutError("Task still processing; query the same task_id later")

時間課金

4つの階層があります: 480P、720P、480P-input、720P-input。「アップロード動画」とラベル付けされた階層は、リクエストにリファレンス動画入力が含まれることを意味します。画像/音声リファレンスも存在する場合でも、要求された出力解像度に対応する入力階層を選択してください。

  • リファレンス動画なし: 生成動画秒数 × 対応する解像度の単価。
  • リファレンス動画あり: (リファレンス動画の合計秒数 + 生成動画秒数) × 対応する入力階層の単価。
  • 設定された基本単価に、適用可能なチャネルおよびアカウント/グループ係数を乗じて最終単価を算出します。適用される価格については、モデルカードとウォレットの消費記録を確認してください。

例えば、4秒のリファレンス動画と5秒の出力では、入力階層で9秒の課金対象秒数を使用します。入力階層の単価は通常の階層と異なる場合があります。出力時間のみを計算したり、動画リファレンスに通常の階層を適用したりしないでください。画像と音声はリファレンス動画秒数を追加しません。生成された音声は、これら4つの設定価格に対して別個の音声/無音階層を導入しません。

送信時には、要求された出力時間に加え、存在する場合は検証済みの入力動画時間が予約されます。出力時間が省略された場合、5秒の出力秒数が予約されます。タスクは送信時の料金体系を保持します。完了時に実際の時間に応じて調整されます。生成に失敗した場合、動画タスクの料金は返金されます。

エラーとトラブルシューティング

無効なリクエストはHTTPエラーを返します。ステータスコードと同様にJSONエラーメッセージも読んでください。パラメータ検証にはAPIMasterのエラーラッパーが使用されます。例:

{"code":"invalid_request","message":"First/last-frame tasks require adaptive aspect_ratio","data":null}
問題 対応
サポートされていない解像度 / 時間 480p または 720p、および 4 から 15 までの整数の時間を選択してください。
矛盾するアスペクト比またはサイズ aspect_ratio、ratio、size、resolution を一貫して使用してください。できれば明示的なアスペクト比/解像度のペアのみを保持することをお勧めします。
最初/最後のフレーム制約 adaptive を使用し、各役割は最大1つとし、動画/音声リファレンスは省略してください。
リファレンス動画を検査できない アクセス可能で完全な、有効な時間を持つMP4/MOVファイルを提供してください。
画像/動画なしのリファレンス音声 画像/動画リファレンスを追加するか、音声リファレンスを削除してください。
コンテンツモデレーション拒否 テキストや画像を修正し、新しいリクエストを送信してください。モデレーションサービスの障害により生成が継続される場合がありますが、これは絶対的な安全性の保証ではありません。
FormatUnsupported / 非同期形式/コンテンツ拒否 失敗したタスクのerror.messageを読み、形式と素材要件を確認し、ソースを置き換えてください。
401 有効なBearer APIキーを提供してください。
残高不足 チャージするか、十分なクォータを持つキーを使用してください。
429 / 一時的なサービスエラー 待機し、バックオフ付きで再試行してください。曖昧なタイムアウト後の重複送信は避けてください。

同期の無効パラメータリクエストでは、動画タスクは作成されず、生成課金も発生しません。受理されたタスクでも非同期で失敗する可能性があります。結果を使用する前に最終的なタスクステータスを確認してください。

関連項目: 動画生成概要、Seedance 2.0、Seedance 2.0 Mini、Seedance 2.5。