SeeGen AI API
SeeGen AI API へようこそ — 複数の主要モデルにまたがる、映画品質の動画と高精細な画像生成を1つのAPIで実現します。
概要
SeeGen AI は統合生成APIです。複数の主要なAI動画・画像モデルを、一貫したエンドポイント群で呼び出せます。model パラメータでモデルを選択します — 認証、タスク送信、ステータスのポーリング、Webhookはすべてのモデルで同じ方法で動作します。
現在利用可能なモデル:
- 動画 — Seedance 2.0 Pro(
sd2)、Seedance 2.0 Fast(sd2-fast)、Seedance 2.0 Mini(sd2-mini)、Seedance 2.5(sd2.5)、HappyHorse 1.1(happyhorse) - 画像 — GPT Image 2(
gpt-image-2)、Nano Banana 2(nano-banana-2)、Nano Banana Pro(nano-banana-pro)、Seedream 5.0 Lite(seedream-v5.0-lite)、Seedream 5.0 Pro(seedream-v5.0-pro)
ベースURL: https://seegen.ai/api/v1
モデル: 上記のいずれかのエイリアスを model フィールドに指定します(例:sd2、gpt-image-2)。
SeeGen AI を選ぶ理由
SeeGen AI を選ぶその他の理由:
- Seedance 2.0 だけじゃない:HappyHorse 1.1、Nano Banana、ChatGPT Image なども利用可能。
- サブスクリプション不要 — 使った分だけ支払う従量制
- 最新モデルにいち早くアクセス
- 24時間365日のカスタマーサポート
- 各モデル公式に関する問い合わせにも対応
- 開発者向けコンソールへのアクセス
- 法人・個人どちらでも利用可能
料金
API Pack
125,000 クレジット ($0.004/クレジット)
5s動画 ~781本
API-XL Pack
500,000 クレジット ($0.004/クレジット)
5s動画 ~3,125本
Seedance 2.0 / Fast / Mini / 2.5 — 料金の計算方法
out = 出力秒数、in = 各入力動画の ⌈duration⌉(切り上げ)の合計(out × 2/3 を下限とする)とします。Seedance 2.5 は Seedance 2.0 と同じ計算方法に従います。対応する各モデルの基本レートは、タスク計算式を適用する前に1.5倍して丸めます(1080P は sd2.5 のネイティブ出力で、720Pレートの2.5倍)。モデル非依存のアップスケール追加料金は、2K / 4K で出力1秒あたり +30 / +40クレジット(1080Pは sd2-fast / sd2-mini のみ +20)のままです。
| 動画入力なし | 動画入力あり | |
|---|---|---|
| sd2.5: 480P | 30 × out | 23 × (out + in) |
| sd2.5: 720P | 60 × out | 45 × (out + in) |
| sd2.5: 1080P (ネイティブ) | 150 × out | 113 × (out + in) |
| sd2.5: 2K | (60 + 30) × out | 45 × (out + in) + 30 × out |
| sd2.5: 4K | (60 + 40) × out | 45 × (out + in) + 40 × out |
| sd2-pro: 480P | 20 × out | 15 × (out + in) |
| sd2-pro: 720P | 40 × out | 30 × (out + in) |
| sd2-pro: 1080P (ネイティブ) | 100 × out | 75 × (out + in) |
| sd2-pro: 2K | (40 + 30) × out | 30 × (out + in) + 30 × out |
| sd2-pro: 4K (ネイティブ) | 200 × out | 150 × (out + in) |
| sd2-fast: 480P | 16 × out | 12 × (out + in) |
| sd2-fast: 720P | 32 × out | 24 × (out + in) |
| sd2-fast: 1080P | (32 + 20) × out | 24 × (out + in) + 20 × out |
| sd2-fast: 2K | (32 + 30) × out | 24 × (out + in) + 30 × out |
| sd2-fast: 4K | (32 + 40) × out | 24 × (out + in) + 40 × out |
| sd2-mini: 480P | 10 × out | 7.5 × (out + in) |
| sd2-mini: 720P | 20 × out | 15 × (out + in) |
| sd2-mini: 1080P | (20 + 20) × out | 15 × (out + in) + 20 × out |
| sd2-mini: 2K | (20 + 30) × out | 15 × (out + in) + 30 × out |
| sd2-mini: 4K | (20 + 40) × out | 15 × (out + in) + 40 × out |
注: sd2-pro の1080Pと4Kは公式のネイティブ出力です(4K = 720Pレートの5倍)。sd2-pro の2Kと sd2-fast / sd2-mini の1080P/2K/4Kはすべて SeeGen AI によるアップスケールです。sd2.5 は480P/720P/1080Pをネイティブ生成し(1080P = 720Pレートの2.5倍、アップスケール追加料金なし)、2K/4Kは自動アップスケールを使用します。任意の階層は outputResolution: "4k" のように指定できます(例:"2k" / "4k"。ゲートウェイがネイティブかアップスケールかを自動判定するため、異なるのは価格とNativeラベルのみです)。sd2-mini は sd2-pro の50%の価格で、最も低コストな階層です。Seedance 2.5 は Seedance 2.0 と同じ動画ごとの長さの切り上げ、最小入力長の下限、アップスケール計算を使用します。対応する各モデルの基本レートは、タスク計算前に1.5倍して丸めます(例:動画入力ありの1080P:75 × 1.5 → 113)。モデル非依存の2K / 4K アップスケール追加料金は、出力1秒あたり +30 / +40クレジットのままです。アップスケールに失敗した場合、完了したタスクは部分返金なしで720Pにフォールバックします。
- sd2.5 480P、4秒出力・動画入力なし:120クレジット
- sd2.5 720P、5秒出力・動画入力なし:300クレジット
- sd2.5 720P、5秒出力 + 3秒入力動画(最小入力は4秒):405クレジット
- sd2.5 1080Pネイティブ、5秒出力・動画入力なし:750クレジット
- sd2.5 1080Pネイティブ、5秒出力 + 5秒入力動画:1,130クレジット
happyhorse — 1秒あたりのクレジット
| 出力 | クレジット/秒 | 5s の例 |
|---|---|---|
| 720P | 32 | 160 |
| 1080P | 60 | 300 |
| 2K | 32 + 30 | 310 |
| 4K | 32 + 40 | 360 |
注: 2K / 4K アップスケールは720Pベースに加算されます(ネイティブ1080Pとは併用されません)。t2v / i2v / r2v は同じ秒単位レートを共有します — 参照画像には課金されません。
🎉 期間限定オファー:全ての画像生成が33%オフ — 以下の画像料金はすでに割引後の金額です。
gpt-image-2 — 1画像あたりのクレジット
| 解像度 | 標準品質 | 高品質 |
|---|---|---|
| 1k | 1015 | 4770 |
| 2k (デフォルト) | 2335 | 84125 |
| 4k | 4060 | 154230 |
各タスクは1枚の画像を生成します。N個のバリエーションを得るにはN個のタスクを送信してください。失敗したタスクは自動的にクレジットが返金されます。
nano-banana-2・nano-banana-pro — 1画像あたりのクレジット
| 解像度 | nano-banana-2 | nano-banana-pro |
|---|---|---|
| 1k | 2030 | 4060 |
| 2k (デフォルト) | 3045 | 4060 |
| 4k | 4770 | 74110 |
各タスクは1枚の画像を生成します。N個のバリエーションを得るにはN個のタスクを送信してください。失敗したタスクは自動的にクレジットが返金されます。
Seedream 5.0 — 1画像あたりのクレジット
| モデル / 階層 | クレジット |
|---|---|
| Lite 2k / 4k(定額) | 710 |
| Pro 1k (デフォルト) | 1015 |
| Pro 2k | 2030 |
各タスクは1枚の画像を生成します。N個のバリエーションを得るにはN個のタスクを送信してください。失敗したタスクは自動的にクレジットが返金されます。 参照画像は別途課金されません。
残高を確認:GET /api/v1/account/credits
認証
すべてのAPIリクエストには、Authorization ヘッダーに Bearer トークンが必要です。APIキーは アカウント設定 から作成・管理できます。
curl -H "Authorization: Bearer YOUR_API_KEY" \
https://seegen.ai/api/v1/account/credits重要: APIキーは作成時に一度だけ表示されます。安全に保管してください。1アカウントにつき最大10個までAPIキーを作成できます。
クイックスタート
2ステップで動画を生成:タスクを作成し、結果をポーリングします。
# 1. Create a text-to-video task
TASK_ID=$(curl -s -X POST \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "sd2",
"inputs": {
"prompt": "A golden retriever running on the beach at sunset",
"duration": "5s",
"resolution": "1280x720"
}
}' \
https://seegen.ai/api/v1/jobs/createTask | jq -r '.taskId')
echo "Task created: $TASK_ID"
# 2. Poll for result
while true; do
RESULT=$(curl -s -H "Authorization: Bearer $API_KEY" \
"https://seegen.ai/api/v1/jobs/queryTask?taskId=$TASK_ID")
STATUS=$(echo $RESULT | jq -r '.status')
echo "Status: $STATUS"
if [ "$STATUS" = "COMPLETED" ] || [ "$STATUS" = "FAILED" ]; then
echo $RESULT | jq .
break
fi
sleep 5
doneエンドポイント
/api/v1/jobs/createTask新しい動画生成タスクを作成
/api/v1/jobs/queryTaskタスクのステータスと結果を照会
/api/v1/account/creditsクレジット残高を確認
/api/v1/assets/upload審査用に素材(画像・動画・音声)をアップロード
/api/v1/assets/status素材の審査状況を照会
/api/v1/assets/listアップロード済みの素材を一覧表示
/api/v1/upscale/createスタンドアロンの動画アップスケールタスクを送信(720p / 1080p / 2K / 4K)
/api/v1/upscale/queryスタンドアロンのアップスケールタスクのステータスと結果をポーリング
モデルを選択(動画)
動画生成には2つのモデルファミリーがあります。モード+価格で選び、料金 セクションと組み合わせてコストを見積もってください。
| モデル | T2V | I2V | First–Last | Multi-Ref | R2V | ネイティブ1080p | ネイティブ4K | 音声 | 720p / 5s |
|---|---|---|---|---|---|---|---|---|---|
| sd2.5 | ✓ | ✓ | ✓ | ✓ | — | ✓ | アップスケール | ✓ | 300 クレジット |
| sd2 | ✓ | ✓ | ✓ | ✓ | — | ✓ | ✓ | ✓ | 200 クレジット |
| sd2-fast | ✓ | ✓ | ✓ | ✓ | — | アップスケール | アップスケール | ✓ | 160 クレジット |
| sd2-mini | ✓ | ✓ | ✓ | ✓ | — | アップスケール | アップスケール | ✓ | 100 クレジット |
| happyhorse | ✓ | ✓ | — | — | ✓ | ✓ | アップスケール | ✓ | 160 クレジット |
T2V = テキストから動画 · I2V = 画像から動画(最初のフレーム) · First–Last = 最初 + 最後のキーフレーム · Multi-Ref = 画像/動画/音声の参照を組み合わせ · R2V = キャラクターマーカー付きの参照画像1〜9枚
Seedance 2.0 / 2.0 Fast / 2.0 Mini / Seedance 2.5
テキストから動画
テキストプロンプトから動画を生成します。画像は不要です。
curl -X POST \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "sd2",
"inputs": {
"prompt": "A futuristic city with flying cars at night, neon lights reflecting on wet streets",
"duration": "5s",
"resolution": "1280x720"
}
}' \
https://seegen.ai/api/v1/jobs/createTask| パラメータ | 型 | 必須 | 説明 |
|---|---|---|---|
| prompt | string | はい | 生成する動画のテキスト説明。最大20000文字。 |
| duration | string | いいえ | 動画の長さ:"4s" 〜 "15s"(sd2.5 は最大 "30s" まで対応、デフォルト:"5s") |
| resolution | string | いいえ | resolution によるアスペクト比の指定。選択肢:auto(デフォルト)、720x720、720x960、960x720、1280x720、720x1280、1280x540 |
| outputResolution | string | いいえ | 出力解像度の階層:"480p"、"720p"(デフォルト)、"1080p"、"2k"、"4k" のいずれか。ネイティブ解像度はモデルごとに異なります:Seedance 2.0 Pro:480p/720p/1080p/4k;Seedance 2.0 Fast・Mini:480p/720p;Seedance 2.5:480p/720p/1080p。それより上位の階層は自動的にアップスケールされます。 |
| seed | int | いいえ | 再現性のためのシード値:ランダムにする場合は -1 を指定するか省略。固定する場合は 0–2147483647 を指定。 |
| generateAudio | boolean | いいえ | 同期した音声トラックを生成するかどうか。デフォルトは true。無音の動画にする場合は false を指定。 |
画像から動画
静止画像を動画にアニメーション化します。開始フレームとして画像URLを1つ指定します。
curl -X POST \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "sd2",
"inputs": {
"urls": ["https://example.com/photo.jpg"], // or "asset://asset-20260326-abc123"
"prompt": "The woman slowly turns her head and smiles",
"duration": "5s"
}
}' \
https://seegen.ai/api/v1/jobs/createTask| パラメータ | 型 | 必須 | 説明 |
|---|---|---|---|
| urls | string[] | はい | 画像URLを1つ含む配列(元となるフレーム)。HTTP URLと素材参照(例:"asset://asset-20260326-abc123")の両方に対応。 |
| prompt | string | いいえ | 求める動きのテキスト説明 |
| duration | string | いいえ | 動画の長さ:"4s" 〜 "15s"(sd2.5 は最大 "30s" まで対応、デフォルト:"5s") |
| outputResolution | string | いいえ | 出力解像度の階層:"480p"、"720p"(デフォルト)、"1080p"、"2k"、"4k" のいずれか。ネイティブ解像度はモデルごとに異なります:Seedance 2.0 Pro:480p/720p/1080p/4k;Seedance 2.0 Fast・Mini:480p/720p;Seedance 2.5:480p/720p/1080p。それより上位の階層は自動的にアップスケールされます。 |
| seed | int | いいえ | 再現性のためのシード値:ランダムにする場合は -1 を指定するか省略。固定する場合は 0–2147483647 を指定。 |
| generateAudio | boolean | いいえ | 同期した音声トラックを生成するかどうか。デフォルトは true。無音の動画にする場合は false を指定。 |
最初と最後のフレーム
開始フレームと終了フレームを指定すると、モデルがその間の遷移を生成します。videoInputMode: "keyframe" を使用します。
curl -X POST \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "sd2",
"inputs": {
"urls": [
"https://example.com/first-frame.jpg",
"https://example.com/last-frame.jpg"
],
"prompt": "Smooth camera transition from day to night",
"duration": "5s",
"videoInputMode": "keyframe"
}
}' \
https://seegen.ai/api/v1/jobs/createTask| パラメータ | 型 | 必須 | 説明 |
|---|---|---|---|
| urls | string[] | はい | 画像URLをちょうど2つ含む配列:[first_frame, last_frame]。HTTP URLと素材参照(例:"asset://asset-20260326-abc123")の両方に対応。 |
| videoInputMode | string | はい | "keyframe" を指定する必要があります |
| prompt | string | いいえ | 遷移の内容を指示するテキスト説明 |
| duration | string | いいえ | 動画の長さ:"4s" 〜 "15s"(sd2.5 は最大 "30s" まで対応、デフォルト:"5s") |
| outputResolution | string | いいえ | 出力解像度の階層:"480p"、"720p"(デフォルト)、"1080p"、"2k"、"4k" のいずれか。ネイティブ解像度はモデルごとに異なります:Seedance 2.0 Pro:480p/720p/1080p/4k;Seedance 2.0 Fast・Mini:480p/720p;Seedance 2.5:480p/720p/1080p。それより上位の階層は自動的にアップスケールされます。 |
| seed | int | いいえ | 再現性のためのシード値:ランダムにする場合は -1 を指定するか省略。固定する場合は 0–2147483647 を指定。 |
| generateAudio | boolean | いいえ | 同期した音声トラックを生成するかどうか。デフォルトは true。無音の動画にする場合は false を指定。 |
マルチリファレンス
複数の参照画像・動画・音声ファイルを使って生成を制御します。videoInputMode: "reference" を使用します。sd2.5 ではこれがデフォルトの参照サブタスクです。既存の動画を編集・延長する場合は、後述の「動画編集・延長」を参照してください。
curl -X POST \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "sd2",
"inputs": {
"urls": [
"https://example.com/ref1.jpg",
"https://example.com/ref2.jpg"
],
"videoUrls": ["asset://asset-motion-video"],
"audioUrls": ["https://example.com/audio.mp3"],
"prompt": "Character walks through a garden",
"duration": "5s",
"videoInputMode": "reference",
"resolution": "1280x720"
}
}' \
https://seegen.ai/api/v1/jobs/createTask| パラメータ | 型 | 必須 | 説明 |
|---|---|---|---|
| urls | string[] | いいえ | 参照画像URL(最大9枚)。HTTP URLと素材参照(例:"asset://asset-20260326-abc123")の両方に対応。 |
| videoUrls | string[] | いいえ | 参照動画の asset:// URI — 事前に /api/v1/assets/upload でアップロードが必要です。外部URLは拒否されます。sd2:最大3本、各動画は15s以下。sd2.5:最大10本、各動画は2–30sかつ200MB以下、参照動画の合計時間は30s以下、480p〜4Kの入力に対応。 |
| audioUrls | string[] | いいえ | 参照音声の入力。sd2 / sd2-fast / sd2-mini:最大3ファイル、各2–15s、合計15s以下 — これらのモデルでは音声のみを参照にすることはできません(画像または動画を少なくとも1つ追加してください)。sd2.5:最大10ファイル、各15MB以下かつ2–30s、合計30s以下。音声のみの入力にも対応。 |
| videoInputMode | string | はい | "reference" を指定する必要があります |
| prompt | string | いいえ | テキスト説明 |
| duration | string | いいえ | 動画の長さ:"4s" 〜 "15s"(sd2.5 は最大 "30s" まで対応、デフォルト:"5s") |
| resolution | string | はい | リファレンスモードでは必須。選択肢:720x720、720x960、960x720、1280x720、720x1280、1280x540 |
| outputResolution | string | いいえ | 出力解像度の階層:"480p"、"720p"(デフォルト)、"1080p"、"2k"、"4k" のいずれか。ネイティブ解像度はモデルごとに異なります:Seedance 2.0 Pro:480p/720p/1080p/4k;Seedance 2.0 Fast・Mini:480p/720p;Seedance 2.5:480p/720p/1080p。それより上位の階層は自動的にアップスケールされます。 |
| seed | int | いいえ | 再現性のためのシード値:ランダムにする場合は -1 を指定するか省略。固定する場合は 0–2147483647 を指定。 |
| generateAudio | boolean | いいえ | 同期した音声トラックを生成するかどうか。デフォルトは true。無音の動画にする場合は false を指定。 |
リファレンスの制約
- 画像は最大9枚、動画は最大3本、音声は最大3ファイル
- 全種類合計で最大12ファイル
- 動画・音声はそれぞれ15秒以下
- 画像は短辺が400px以上必要
- sd2.5:画像は最大30枚、動画は最大10本、音声は最大10ファイル、合計最大50ファイル。動画・音声はそれぞれ合計30秒以下。
動画編集・延長
sd2.5 は参照ベースの生成を3つのサブタスクに分けています。通常の参照生成では mode を省略し、既存動画を編集する場合は mode: "edit"、動画を延長する場合は mode: "extend" を指定します。どちらも videoUrls に少なくとも1本の動画が必要で、出力は常に元動画のアスペクト比になります。
操作したい動画は videoUrls の先頭に置き、プロンプト内では「Video 1」として参照してください。edit では出力の長さがその最初の(元となる)動画に強制的に一致します。この動画は4–30sである必要があり、送信した duration は無視されます。課金は元動画の長さを出力時間とし、すべての参照動画を入力として扱います。extend は1〜3本のクリップを順に連結でき、指定した duration はこの生成の出力時間になります(元の長さとは無関係)— 通常の参照生成と同じ方法で課金されます。
2.0系モデル(sd2 / sd2-fast / sd2-mini)も mode: "edit" と mode: "extend" に対応しています。これらはプロンプトから操作内容を推測するため(編集や延長の内容を明示的に記述してください)、アスペクト比は元動画に従い、duration は引き続き自分で指定でき、課金も通常どおりです。
curl -X POST \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "sd2.5",
"inputs": {
"mode": "edit",
"videoUrls": ["asset://asset-source-video"],
"urls": ["https://example.com/annotation-at-1.2s.png"],
"source_frame_timestamps_ms": [1200],
"prompt": "Replace the marked object with a red umbrella",
"outputResolution": "720p"
}
}' \
https://seegen.ai/api/v1/jobs/createTask| パラメータ | 型 | 必須 | 説明 |
|---|---|---|---|
| mode | string | いいえ | "edit" または "extend"。通常の参照生成では省略します。 |
| videoUrls | string[] | はい | 少なくとも1本の動画が必要です。最初の動画がソース(「Video 1」)となり、編集後の出力の長さと課金はこれに従います。それ以降の動画は追加の参照(edit)または順に連結される追加クリップ(extend、最大3本)です。 |
| urls | string[] | いいえ | 任意の注釈・参照画像。 |
| source_frame_timestamps_ms | number[] | いいえ | mode "edit" のみで使用。urls内の各画像に対し、元動画上のタイムスタンプ(ミリ秒、非負)を1つずつ指定します。 |
| outputResolution | string | いいえ | 出力解像度の階層:"480p"、"720p"(デフォルト)、"1080p"、"2k"、"4k" のいずれか。ネイティブ解像度はモデルごとに異なります:Seedance 2.0 Pro:480p/720p/1080p/4k;Seedance 2.0 Fast・Mini:480p/720p;Seedance 2.5:480p/720p/1080p。それより上位の階層は自動的にアップスケールされます。 |
Seedanceパラメータリファレンス
sd2 / sd2-fast / sd2-mini / sd2.5 モデルにおける、すべての inputs パラメータの完全なリファレンスです。
| パラメータ | 型 | 必須 | 説明 |
|---|---|---|---|
| prompt | string | いいえ | テキスト説明(テキストから動画では必須、それ以外のモードでは任意)。最大20000文字。 |
| urls | string[] | いいえ | 画像URL。HTTP URLと素材参照(例:"asset://asset-20260326-abc123")の両方に対応。内部的には uploadedUrls にマッピングされます。 |
| videoUrls | string[] | いいえ | 参照動画の asset:// URI(リファレンスモードのみ)。事前に /api/v1/assets/upload でアップロードが必要です — 外部URLは拒否されます。 |
| audioUrls | string[] | いいえ | 参照音声のURL(リファレンスモードのみ)。sd2.5 では音声のみの入力にも対応。sd2 / sd2-fast / sd2-mini では、音声に加えて画像または動画を少なくとも1つ指定する必要があります。 |
| duration | string | いいえ | 通常は "4s" 〜 "15s"。sd2.5 は最大 "30s" まで対応。デフォルト:"5s" |
| resolution | string | いいえ | アスペクト比:auto(デフォルト) | 720x720 | 720x960 | 960x720 | 1280x720 | 720x1280 | 1280x540 |
| outputResolution | string | いいえ | 出力解像度の階層:"480p"、"720p"(デフォルト)、"1080p"、"2k"、"4k" のいずれか。ネイティブ解像度はモデルごとに異なります:Seedance 2.0 Pro:480p/720p/1080p/4k;Seedance 2.0 Fast・Mini:480p/720p;Seedance 2.5:480p/720p/1080p。それより上位の階層は自動的にアップスケールされます。 |
| videoInputMode | string | いいえ | "keyframe"(デフォルト)または "reference" |
| mode | string | いいえ | リファレンスモードのサブタスク(全Seedanceモデル共通):通常の参照生成では省略、videoUrls内の最初の動画を編集する場合は "edit"、1〜3本のクリップを延長する場合は "extend"。詳細は「動画編集・延長」を参照。 |
| source_frame_timestamps_ms | number[] | いいえ | sd2.5 の動画編集のみ:注釈画像ごとに、非負のミリ秒単位のタイムスタンプを1つ指定します。 |
| seed | int | いいえ | 再現性のためのランダムシード。サーバー側でランダムにする場合は -1 を指定するか省略。同じシード+同じ入力ではほぼ一致する出力が得られます(GPUの非決定性のためビット単位で完全に同一にはなりません)。範囲:-1 〜 2147483647。 |
| generateAudio | boolean | いいえ | 動画に同期した音声トラック(音声、効果音、BGM)を生成するかどうか。デフォルトは true。無音の動画にする場合は false を指定します — 処理がやや速くなり、別途アフレコを予定している場合に便利です。 |
| bitrateMode | string | いいえ | 同じ解像度における出力ビットレートの階層:"standard"(デフォルト)または "high"。"high" はより多くのディテールを保持し、バンディングやブロックノイズを軽減しますが、ファイルサイズは約3〜5倍になります — 解像度や価格は変わりません。 |
| upscaleResolution | string | いいえ | (非推奨)後方互換性のために残されているレガシーな分割フィールドで、引き続き受け付けられます。新規に実装する場合は outputResolution を使用してください。こちらは "2k" / "4k" を直接指定できます。両方を送信した場合は upscaleResolution が優先されます — ただし、ネイティブ1080pに対応するモデル(Seedance2 Pro / Seedance 2.5)では、upscaleResolution:"1080p" はネイティブ1080pとして解決されます(ネイティブレートで課金)。 |
トップレベルのリクエストフィールド:model(必須)、inputs(必須)、callBackUrl(任意のWebhook URL)。
素材
素材とは、動画生成タスクで使用する前に審査プロセスを経る画像・動画・音声ファイルです。素材をアップロードし、ACTIVE になるのを待ってから、その asset:// URL をタスク内で使用してください。
注: 実在の人物が写る画像・動画素材は公式審査が必要で、通常は数秒で完了します。承認されると、そのまま参照として使用できます。審査を経ていない場合、生成に失敗することがあります。
素材のアップロード
アップロード方法は2通りです:ローカルファイルを直接送信する(multipart/form-data)か、公開アクセス可能なHTTPS URLを送信するかです。いずれの方法でも、素材は自動的に処理・審査されます。
方法A — ファイルを直接アップロード(multipart/form-data)
画像ホストを用意せずにローカルファイルを送信できます。メディアタイプはファイルのバイト列から判定されます(ファイル名の拡張子は信頼されません)。対応形式:画像(jpg/png/webp/gif/bmp/tiff/heic)、動画(mp4/mov)、音声(wav/mp3)。ファイルあたり最大50MB(画像は30MB以下、動画は50MB以下、音声は15MB以下)。
curl -X POST \
-H "Authorization: Bearer $API_KEY" \
-F "file=@/path/to/photo.jpg" \
-F "name=my-photo" \
https://seegen.ai/api/v1/assets/upload| パラメータ | 型 | 必須 | 説明 |
|---|---|---|---|
| file | file | はい | ローカルファイル(multipartフォームフィールド)。メディアタイプは内容から判定されます。 |
| name | string | いいえ | 素材名(最大64文字) |
方法B — URLで指定(application/json)
ファイルがすでに公開HTTPS URLでホストされている場合。
curl -X POST \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"url": "https://example.com/photo.jpg",
"type": "IMAGE",
"name": "my-photo"
}' \
https://seegen.ai/api/v1/assets/upload| パラメータ | 型 | 必須 | 説明 |
|---|---|---|---|
| url | string | はい | アップロードするファイルの公開アクセス可能なHTTPS URL |
| type | string | はい | "IMAGE"、"AUDIO"、または "VIDEO" |
| name | string | いいえ | 素材名(最大64文字) |
アップロードのレスポンス
{
"assetId": 123,
"volcAssetId": "asset-20260326-abc123",
"type": "IMAGE",
"status": "PROCESSING",
"failReason": null,
"url": "https://example.com/photo.jpg",
"name": "my-photo",
"createdAt": 1711234567890
}素材ステータスの照会
素材の審査状況をポーリングします。ステータスが PROCESSING の場合、このエンドポイントは審査システムからの更新を自動的に確認します。
# Query by asset ID (numeric)
curl -H "Authorization: Bearer $API_KEY" \
"https://seegen.ai/api/v1/assets/status?assetId=123"
# Query by volcAssetId (string)
curl -H "Authorization: Bearer $API_KEY" \
"https://seegen.ai/api/v1/assets/status?assetId=asset-20260326-abc123"素材ステータスの値
PROCESSING— 審査中、まだ使用不可ACTIVE— 審査に合格、タスクで使用可能FAILED— 審査に不合格、failReason を確認してください
素材の一覧取得
アップロード済みの素材を、タイプとステータスによる任意のフィルタ付きで一覧表示します。カーソルベースのページネーションに対応しています。
# List all assets
curl -H "Authorization: Bearer $API_KEY" \
"https://seegen.ai/api/v1/assets/list"
# Filter by type and status
curl -H "Authorization: Bearer $API_KEY" \
"https://seegen.ai/api/v1/assets/list?type=IMAGE&status=ACTIVE&limit=10"
# Paginate with cursor
curl -H "Authorization: Bearer $API_KEY" \
"https://seegen.ai/api/v1/assets/list?cursor=100&limit=20"| パラメータ | 型 | 必須 | 説明 |
|---|---|---|---|
| type | string | いいえ | タイプでフィルタ:"IMAGE"、"AUDIO"、または "VIDEO" |
| status | string | いいえ | ステータスでフィルタ:"NONE"、"PROCESSING"、"ACTIVE"、または "FAILED" |
| cursor | number | いいえ | ページネーション用カーソル(前回のレスポンスの nextCursor を使用) |
| limit | number | いいえ | 1ページあたりの件数、1〜50(デフォルト:20) |
一覧のレスポンス
{
"items": [
{
"assetId": 123,
"volcAssetId": "asset-20260326-abc123",
"type": "IMAGE",
"status": "ACTIVE",
"failReason": null,
"url": "https://example.com/photo.jpg",
"name": "my-photo",
"width": 1920,
"height": 1080,
"size": 245000,
"duration": null,
"createdAt": 1711234567890
}
],
"nextCursor": 122
}タスクでの素材の使用
素材が ACTIVE になったら、その volcAssetId を asset:// プロトコルとともにタスクのURLで使用します:
{
"model": "sd2",
"inputs": {
"urls": ["asset://asset-20260326-abc123"],
"prompt": "The person slowly looks up and smiles",
"duration": "5s"
}
}HappyHorse 1.1(Alibaba)
Alibaba DashScope 提供の代替動画生成モデルです。3つのモードに対応:テキストから動画、最初のフレームからの画像から動画、参照から動画(プロンプトごとに1〜9枚の参照画像を融合。プロンプト内で character1、character2、… として被写体を参照)。HappyHorse 1.1 は最後のフレーム、参照動画、参照音声には対応していません。モデル名:happyhorse。
素材審査は不要です — 公開HTTPS画像URLを直接使用するか、素材ライブラリの asset:// 参照を渡すことができます(自動的に元のR2 URLに解決されます)。
テキストから動画
curl -X POST \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "happyhorse",
"inputs": {
"prompt": "A panda DJ at a beach party, smoky sunset",
"duration": "5s",
"outputResolution": "720p",
"ratio": "16:9"
}
}' \
https://seegen.ai/api/v1/jobs/createTask画像から動画(最初のフレーム)
curl -X POST \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "happyhorse",
"inputs": {
"urls": ["https://example.com/panda.jpg"],
"prompt": "The panda blinks and smiles",
"duration": "5s",
"outputResolution": "1080p"
}
}' \
https://seegen.ai/api/v1/jobs/createTask参照から動画(参照画像1〜9枚)
videoWorkflowTab: "multi-reference" と1〜9枚の参照画像URLを指定すると、複数の被写体を1つの出力に融合できます。プロンプト内で各画像を character1、character2、…(urls の順序に対応)として参照してください。アスペクト比は ratio フィールドで制御します(起点となる最初のフレームがないため)。
curl -X POST \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "happyhorse",
"inputs": {
"videoWorkflowTab": "multi-reference",
"urls": [
"https://example.com/character.jpg",
"https://example.com/folding-fan.jpg",
"https://example.com/earrings.jpg"
],
"prompt": "A woman in red character1 opening folding fan character2, with tassel earrings character3 swinging",
"duration": "5s",
"outputResolution": "720p",
"ratio": "16:9"
}
}' \
https://seegen.ai/api/v1/jobs/createTaskHappyHorseパラメータリファレンス
happyhorse モデルにおける、すべての inputs パラメータの完全なリファレンスです。
| パラメータ | 型 | 必須 | 説明 |
|---|---|---|---|
| prompt | string | いいえ | テキスト説明。テキストから動画と参照から動画では必須、画像から動画では任意。非CJK文字は最大5000文字、CJK文字は最大2500文字(それを超えると上流で自動的に切り詰められます)。r2v では character1/character2/… でN番目の参照画像を指定します。 |
| urls | string[] | いいえ | t2v:省略。i2v:ちょうど1つのURL(最初のフレームとして使用)。r2v:1〜9個のURL。公開HTTPS URLと素材参照(例:"asset://asset-20260326-abc123")に対応。 |
| videoWorkflowTab | string | いいえ | 参照から動画モードを有効にするには "multi-reference" を指定します(urlsを1つ以上と組み合わせる必要があります)。テキストから動画/画像から動画では省略。 |
| duration | string | いいえ | "3s" 〜 "15s"(デフォルト "5s")。 |
| outputResolution | string | いいえ | "720p"(デフォルト)または "1080p"。 |
| ratio | string | いいえ | "16:9" / "9:16" / "1:1" / "4:3" / "3:4"。テキストから動画と参照から動画で使用 — 画像から動画のアスペクト比は最初のフレームから推測されます。 |
| seed | int | いいえ | 0 〜 2147483647。ランダムなシードにする場合は空欄のままにしてください。 |
画像の要件(i2v / r2v)
- 短辺が300px以上
- アスペクト比が1:2.5〜2.5:1の範囲
- 形式:JPEG、JPG、PNG、BMP、WEBP
- 画像1枚あたり最大ファイルサイズ10MB(r2v:1〜9個の各入力に適用)
モデルを選択(画像)
画像モデルはプロンプト(および任意で参照画像)を受け取り、タスクごとに1枚の画像を返します。各リクエストは、選択したモデルのティアに基づいて画像単位で課金されます(Seedream Liteは定額)。失敗したタスクは自動的に返金されます。バッチパラメータはありません — 複数のバリエーションを生成するには、画像ごとに createTask を1回ずつ呼び出してください。
| モデル | T2I | I2I(編集) | Multi-Ref | 最大解像度 | 2k / medium |
|---|---|---|---|---|---|
| gpt-image-2 | ✓ | ✓ | 最大10枚 | 4k | 料金を見る |
| nano-banana-2 | ✓ | ✓ | 最大10枚 | 4k | 料金を見る |
| nano-banana-pro | ✓ | ✓ | 最大10枚 | 4k | 料金を見る |
| seedream-v5.0-lite | ✓ | ✓ | 最大10枚 | 4k | 定額 |
| seedream-v5.0-pro | ✓ | ✓ | 最大10枚 | 2k | 料金を見る |
GPT Image 2
OpenAI の GPT Image 2 モデルによる、高品質なテキストから画像生成と画像から画像編集。1つのワークフローで両方のモードに対応 — urls を渡すと自動的に編集モードに切り替わります。出力はリクエストした形式(PNG / JPEG / WEBP)でR2経由で配信されます。モデル名:gpt-image-2。
テキストから画像
curl -X POST \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-image-2",
"inputs": {
"prompt": "A neon-lit cyberpunk alley at midnight, photoreal",
"quality": "medium",
"resolution": "2k",
"aspectRatio": "16:9"
}
}' \
https://seegen.ai/api/v1/jobs/createTask画像から画像(編集)
urls で1〜10枚の参照画像を渡します。モデルはそれらを、prompt に記述された編集内容の視覚的コンテキストとして使用します。
curl -X POST \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-image-2",
"inputs": {
"urls": ["https://example.com/portrait.jpg"],
"prompt": "Restyle as oil painting",
"quality": "medium",
"resolution": "1k",
"aspectRatio": "1:1"
}
}' \
https://seegen.ai/api/v1/jobs/createTaskGPT Image 2 パラメータリファレンス
gpt-image-2 モデルにおける、すべての inputs パラメータの完全なリファレンスです。
| パラメータ | 型 | 必須 | 説明 |
|---|---|---|---|
| prompt | string | はい | 生成する画像のテキスト説明、または urls が指定されている場合は適用する編集内容。 |
| urls | string[] | いいえ | 画像から画像(編集)モード用の参照画像URL(1〜10枚)。テキストから画像では省略。公開HTTPS URLに対応。 |
| quality | string | いいえ | "medium" / "high"。デフォルト:"medium"。クレジットは階層に応じて変動します(料金を参照)。 |
| resolution | string | いいえ | "1k" / "2k" / "4k"。デフォルト:"2k"。クレジットは階層に応じて変動します(料金を参照)。 |
| aspectRatio | string | いいえ | "1:1" / "16:9" / "9:16" / "4:3" / "3:4"。デフォルト:"1:1"。 |
| outputFormat | string | いいえ | "png" / "jpeg" / "webp"。デフォルト:"png"。 |
入力画像の要件(画像から画像モード)
- 1タスクあたり参照画像は最大10枚
- 画像1枚あたり最大ファイルサイズ50MB
- 短辺が256px以上
- アスペクト比が1:3〜3:1の範囲
- 形式:JPEG、JPG、PNG、WEBP
画像あたりのクレジットは解像度と品質に応じて変動します — 完全な表は料金セクションを参照してください。
Nano Banana 2
Nano Banana 2 は gpt-image-2 よりも幅広いアスペクト比に対応する高精細画像モデルです — 縦長/横長プリセット(3:2、2:3、4:5、5:4)とシネマティックな21:9が追加されています。1つのワークフローで両方のモードに対応 — urls を渡すと自動的に編集モードに切り替わります。モデル名:nano-banana-2。
テキストから画像
curl -X POST \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "nano-banana-2",
"inputs": {
"prompt": "A neon-lit cyberpunk alley at midnight, photoreal",
"resolution": "2k",
"aspectRatio": "16:9"
}
}' \
https://seegen.ai/api/v1/jobs/createTask画像から画像(編集)
urls で1〜10枚の参照画像を渡します。モデルはそれらを、prompt に記述された編集内容の視覚的コンテキストとして使用します。
curl -X POST \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "nano-banana-2",
"inputs": {
"urls": ["https://example.com/portrait.jpg"],
"prompt": "Restyle as oil painting",
"resolution": "2k",
"aspectRatio": "1:1"
}
}' \
https://seegen.ai/api/v1/jobs/createTaskNano Banana 2 パラメータリファレンス
nano-banana-2 モデルにおける、すべての inputs パラメータの完全なリファレンスです。
| パラメータ | 型 | 必須 | 説明 |
|---|---|---|---|
| prompt | string | はい | 生成する画像のテキスト説明、または urls が指定されている場合は適用する編集内容。 |
| urls | string[] | いいえ | 画像から画像(編集)モード用の参照画像URL(1〜10枚)。テキストから画像では省略。公開HTTPS URLに対応。 |
| resolution | string | いいえ | "1k" / "2k" / "4k"。デフォルト:"2k"。クレジットは階層に応じて変動します(料金を参照)。 |
| aspectRatio | string | いいえ | "1:1" / "16:9" / "9:16" / "4:3" / "3:4" / "3:2" / "2:3" / "4:5" / "5:4" / "21:9"。デフォルト:"1:1"。 |
入力画像の要件(画像から画像モード)
- 1タスクあたり参照画像は最大10枚
- 画像1枚あたり最大ファイルサイズ50MB
- 短辺が256px以上
- アスペクト比が1:3〜3:1の範囲
- 形式:JPEG、JPG、PNG、WEBP
画像あたりのクレジットは解像度に応じて変動します — 完全な表は料金セクションを参照してください。
Nano Banana Pro
Nano Banana Pro は gpt-image-2 よりも幅広いアスペクト比に対応する高精細画像モデルです — 縦長/横長プリセット(3:2、2:3、4:5、5:4)とシネマティックな21:9が追加されています。1つのワークフローで両方のモードに対応 — urls を渡すと自動的に編集モードに切り替わります。モデル名:nano-banana-pro。
テキストから画像
curl -X POST \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "nano-banana-pro",
"inputs": {
"prompt": "A neon-lit cyberpunk alley at midnight, photoreal",
"resolution": "2k",
"aspectRatio": "16:9"
}
}' \
https://seegen.ai/api/v1/jobs/createTask画像から画像(編集)
urls で1〜10枚の参照画像を渡します。モデルはそれらを、prompt に記述された編集内容の視覚的コンテキストとして使用します。
curl -X POST \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "nano-banana-pro",
"inputs": {
"urls": ["https://example.com/portrait.jpg"],
"prompt": "Restyle as oil painting",
"resolution": "2k",
"aspectRatio": "1:1"
}
}' \
https://seegen.ai/api/v1/jobs/createTaskNano Banana Pro パラメータリファレンス
nano-banana-pro モデルにおける、すべての inputs パラメータの完全なリファレンスです。
| パラメータ | 型 | 必須 | 説明 |
|---|---|---|---|
| prompt | string | はい | 生成する画像のテキスト説明、または urls が指定されている場合は適用する編集内容。 |
| urls | string[] | いいえ | 画像から画像(編集)モード用の参照画像URL(1〜10枚)。テキストから画像では省略。公開HTTPS URLに対応。 |
| resolution | string | いいえ | "1k" / "2k" / "4k"。デフォルト:"2k"。クレジットは階層に応じて変動します(料金を参照)。 |
| aspectRatio | string | いいえ | "1:1" / "16:9" / "9:16" / "4:3" / "3:4" / "3:2" / "2:3" / "4:5" / "5:4" / "21:9"。デフォルト:"1:1"。 |
入力画像の要件(画像から画像モード)
- 1タスクあたり参照画像は最大10枚
- 画像1枚あたり最大ファイルサイズ50MB
- 短辺が256px以上
- アスペクト比が1:3〜3:1の範囲
- 形式:JPEG、JPG、PNG、WEBP
画像あたりのクレジットは解像度に応じて変動します — 完全な表は料金セクションを参照してください。
Seedream 5.0 Lite
2Kまたは4K、15種類のアスペクト比に対応した高速なテキストから画像生成と画像から画像編集。モデル名:seedream-v5.0-lite。
テキストから画像
curl -X POST \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "seedream-v5.0-lite",
"inputs": {
"prompt": "A cinematic product photograph, soft studio light",
"resolution": "2k",
"aspectRatio": "1:1"
}
}' \
https://seegen.ai/api/v1/jobs/createTask画像から画像(編集)
curl -X POST \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "seedream-v5.0-lite",
"inputs": {
"prompt": "Restyle the references as a premium fashion campaign",
"urls": ["https://example.com/reference.png"],
"resolution": "4k",
"aspectRatio": "3:4"
}
}' \
https://seegen.ai/api/v1/jobs/createTaskSeedream 5.0 Lite パラメータ
| パラメータ | 型 | 必須 | 説明 |
|---|---|---|---|
| prompt | string | はい | 画像の説明、または編集内容。 |
| urls | string[] | いいえ | 公開HTTPSの参照画像URL(1〜10枚)。テキストから画像では省略。 |
| resolution | string | いいえ | "2k" または "4k"。デフォルト:"2k"。 |
| aspectRatio | string | いいえ | "1:1", "1:2", "2:1", "1:3", "3:1", "2:3", "3:2", "3:4", "4:3", "4:5", "5:4", "9:16", "16:9", "9:21", または "21:9". |
Seedream 5.0 Pro
1Kまたは2Kでの高忠実度な生成・編集。モデル名:seedream-v5.0-pro。
テキストから画像
curl -X POST \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "seedream-v5.0-pro",
"inputs": {
"prompt": "Editorial portrait with dramatic rim lighting",
"resolution": "2k",
"aspectRatio": "3:4"
}
}' \
https://seegen.ai/api/v1/jobs/createTask画像から画像(編集)
curl -X POST \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "seedream-v5.0-pro",
"inputs": {
"prompt": "Turn the reference into a cinematic poster",
"urls": ["https://example.com/reference.png"],
"resolution": "2k",
"aspectRatio": "1:2"
}
}' \
https://seegen.ai/api/v1/jobs/createTaskSeedream 5.0 Pro パラメータ
| パラメータ | 型 | 必須 | 説明 |
|---|---|---|---|
| prompt | string | はい | 画像の説明、または編集内容。 |
| urls | string[] | いいえ | 公開HTTPSの参照画像URL(1〜10枚)。テキストから画像では省略。 |
| resolution | string | いいえ | "1k" または "2k"。デフォルト:"1k"。4kには対応していません。 |
| aspectRatio | string | いいえ | "1:1", "1:2", "2:1", "1:3", "3:1", "2:3", "3:2", "3:4", "4:3", "4:5", "5:4", "9:16", "16:9", "9:21", または "21:9". |
動画アップスケーラー
タスクの作成
POST /api/v1/upscale/create
# source.url accepts ANY https video URL — your own CDN, OR a file you first
# uploaded to us via /api/v1/assets/upload (pass the r2Url it returns). No need
# to declare which: we detect it. External URLs are validated; our own are trusted.
curl -X POST \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"source": { "type": "url", "url": "https://your-cdn.com/video.mp4" },
"targetResolution": "2k",
"callBackUrl": "https://your-server.com/webhook"
}' \
https://seegen.ai/api/v1/upscale/create| パラメータ | 型 | 必須 | 説明 |
|---|---|---|---|
| source.type | string | はい | 任意のソースには "url" を使用します("uploadId" は後方互換性のために残されているレガシーなエイリアスです)。 |
| source.url | string | いいえ | type="url" の場合。任意のhttps動画URL — 自前のCDN、または /api/v1/assets/upload が返す r2Url。外部URLの場合、httpおよびプライベート/内部IPは拒否されます(SSRF対策)。自社の素材ホスト上のURLはこのチェックをスキップします。 |
| source.r2Url | string | いいえ | レガシー — type="uploadId" の場合のみ使用(後方互換)。新規実装では type="url" を使用してください。 |
| targetResolution | string | はい | "720p"、"1080p"、"2k"、または "4k"。元の解像度より高い値である必要があります。 |
| callBackUrl | string | いいえ | 終端状態(完了または失敗)に達した際に一度だけ呼び出されるWebhook URL。 |
作成のレスポンス
{
"taskId": "n770mo4sh6rpi690ff3gwymx",
"orderId": "ord_2026...",
"status": "validating"
}ステータスの照会
GET /api/v1/upscale/query?taskId=...
ステータスは validating → processing → completed / failed の順に進行します。
curl -H "Authorization: Bearer $API_KEY" \
"https://seegen.ai/api/v1/upscale/query?taskId=n770mo4sh6rpi690ff3gwymx"完了時のレスポンス
{
"taskId": "n770mo4sh6rpi690ff3gwymx",
"status": "completed",
"targetResolution": "2k",
"creditsConsumed": 900,
"result": {
"url": "https://static.seegen.ai/standalone-upscale/results/...mp4",
"probedDurationSeconds": 30,
"probedSourceResolution": "1280x720"
},
"error": null,
"createdAt": "2026-04-29T01:23:45.000Z",
"finishedAt": "2026-04-29T01:35:01.000Z"
}失敗時のレスポンス
{
"taskId": "n770mo4sh6rpi690ff3gwymx",
"status": "failed",
"creditsConsumed": null,
"result": null,
"error": {
"code": "SOURCE_RESOLUTION_TOO_HIGH",
"message": "Source 3840x2160 is not below target 4k"
}
}制限
- ソース:https URL、または以前にアップロードしたR2 URL
- 長さは最大600秒(5秒未満のクリップは5秒として課金)
- ファイルサイズ:200MB以下
- 形式:MP4 / MOV / WebM
- ソースの解像度はターゲットより低い必要があります
料金
- 720P:17クレジット/秒(5s = 85、30s = 510)
- 1080P:25クレジット/秒(5s = 125、30s = 750)
- 2K:38クレジット/秒(5s = 190、30s = 1140)
- 4K:50クレジット/秒(5s = 250、30s = 1500)
- 5秒が最小単位。失敗した場合はクレジットが自動的に返金されます
エラーコード
対処可能な一般的なエラーです。それ以外の失敗は、内容が自明な message フィールドを返します — コードがこれらのいずれかだと決めつける前に、まずそちらを確認してください。
| コード | 意味 |
|---|---|
| INVALID_URL | URLの形式が不正、またはhttpsではありません |
| URL_NOT_REACHABLE | URLを取得できませんでした — 公開されていてアクセス可能か確認してください |
| UNSUPPORTED_MEDIA_TYPE | ファイルが動画でない、またはMP4 / MOV / WebM形式ではありません |
| FILE_TOO_LARGE | ソースが200MBを超えています |
| DURATION_EXCEEDS_LIMIT | ソースが600秒を超えています |
| SOURCE_RESOLUTION_TOO_HIGH | ソースがすでにターゲット以上の解像度です — より高いターゲットを選択してください |
| INSUFFICIENT_CREDITS | クレジットが不足しています — チャージしてから再試行してください |
Webhookコールバック
ポーリングの代わりに、callBackUrl を指定することで、タスクが完了または失敗した際に結果を自動的に受け取ることができます。
curl -X POST \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "sd2",
"callBackUrl": "https://your-server.com/webhook/callback",
"inputs": {
"prompt": "A cat playing piano",
"duration": "5s"
}
}' \
https://seegen.ai/api/v1/jobs/createTaskコールバックのペイロード
タスクが終了すると、queryTaskのレスポンスと同じ形式でお客様のURLにPOSTリクエストを送信します:
// POST to your callBackUrl
{
"taskId": "task_abc123",
"model": "sd2",
"status": "COMPLETED",
"creditsUsed": 200,
"output": [
{
"url": "https://static.seegen.ai/videos/result.mp4",
"width": 1280,
"height": 720
}
],
"error": null,
"createTime": 1711234567890,
"completeTime": 1711234612345
}再試行ポリシー: エンドポイントが2xx以外のステータスを返した場合、遅延を増やしながら最大3回再試行します(1s、5s、30s)。
レスポンス形式
createTaskのレスポンス
// 200 OK
{ "taskId": "task_abc123" }queryTaskのレスポンス
{
"taskId": "task_abc123",
"model": "sd2",
"status": "COMPLETED", // "PENDING" | "PROCESSING" | "COMPLETED" | "FAILED"
"creditsUsed": 200,
"output": [ // null when status is not "COMPLETED"
{
"url": "https://static.seegen.ai/videos/result.mp4",
"width": 1280,
"height": 720
}
],
"error": null, // error message when status is "FAILED"
"createTime": 1711234567890,
"completeTime": 1711234612345
}creditsのレスポンス
{
"credits": 5000,
"availableCredits": 4800
}エラー処理
| ステータスコード | 意味 | 対処方法 |
|---|---|---|
| 400 | 不正なパラメータ | エラーメッセージを確認し、リクエストを修正してください |
| 401 | APIキーが無効または未指定 | Authorization ヘッダーの形式を確認してください |
| 402 | クレジット不足 | seegen.ai でクレジットを追加購入してください |
| 403 | アクセス拒否 | 自分自身のタスクのみ照会できます |
| 404 | タスクが見つかりません | taskId が正しいか確認してください |
| 429 | 同時実行数の上限(3タスク) | 既存のタスクが完了するまでお待ちください |
| 500 | 内部サーバーエラー | 数秒後に再試行してください |
送信前バリデーション(コード付きの400)
Seedanceへのリクエストは、クレジットが課金される前に上流の契約に照らしてチェックされます。チェックに失敗すると、createTask はHTTP 400とともに { "message": "...", "code": "..." } を返し、タスクは作成されません。メッセージには、どの制限に抵触したか、およびその修正方法が正確に記載されています。
| パラメータ | 型 | 必須 | 説明 |
|---|---|---|---|
| EMPTY_CONTENT | code | いいえ | プロンプトも参照画像/動画/音声もありません。 |
| AUDIO_ONLY_NOT_SUPPORTED | code | いいえ | sd2 / sd2-fast / sd2-mini で音声のみが参照になっています。画像または動画を追加するか、sd2.5(音声のみ対応)を使用してください。 |
| DURATION_OUT_OF_RANGE | code | いいえ | duration がモデルの範囲内の整数ではありません(sd2系:"4s"–"15s"、sd2.5:"4s"–"30s")。 |
| EDIT_SOURCE_VIDEO_REQUIRED / EXTEND_SOURCE_VIDEO_REQUIRED | code | いいえ | videoUrls に動画がない状態で mode "edit" / "extend" がリクエストされました。 |
| EDIT_SOURCE_DURATION_INVALID | code | いいえ | sd2.5の動画編集:リクエスト内の動画が4s未満または30sを超えています(ARKは編集タスクのすべての動画に4–30sを適用します)。 |
| TOO_MANY_REFERENCES | code | いいえ | モデルが受け付ける数を超える参照画像/動画/音声クリップが指定されています(sd2系:9 / 3 / 3、sd2.5:30 / 10 / 10;extendは動画3本以下)。 |
| REFERENCE_VIDEO_DURATION_INVALID | code | いいえ | 参照動画がクリップあたりの上限(sd2系:15s、sd2.5:30s)を超えているか、参照動画の合計時間が上限(15s / 30s)を超えています。 |
| ASSET_NOT_FOUND / EXTERNAL_URL / READ_TIMEOUT / READ_FAILED | code | いいえ | videoUrls のエントリが、アップロード済みの素材のいずれにも解決できなかった、またはその長さを読み取れませんでした。 |
実装例
完全なワークフロー:素材をアップロードし、審査を待ってから、承認された素材でタスクを作成し、結果をポーリングします。
const API_KEY = process.env.API_KEY;
const BASE = "https://seegen.ai/api/v1";
const headers = {
"Authorization": `Bearer ${API_KEY}`,
"Content-Type": "application/json",
};
// 1. Upload asset and wait for review
// (To upload a LOCAL file instead of a URL, POST multipart/form-data with a "file"
// field — no Content-Type header, no "type" — see the Upload Asset section above.)
async function uploadAndWaitForAsset(url, type = "IMAGE") {
const res = await fetch(`${BASE}/assets/upload`, {
method: "POST",
headers,
body: JSON.stringify({ url, type }),
});
if (!res.ok) throw new Error(`Upload failed: ${(await res.json()).message}`);
const asset = await res.json();
console.log(`Asset uploaded: ${asset.assetId}, status: ${asset.status}`);
// Poll until review completes
while (true) {
const statusRes = await fetch(
`${BASE}/assets/status?assetId=${asset.assetId}`,
{ headers }
);
const status = await statusRes.json();
if (status.status === "ACTIVE") {
console.log(`Asset approved: asset://${status.volcAssetId}`);
return status.volcAssetId;
}
if (status.status === "FAILED") {
throw new Error(`Asset review failed: ${status.failReason}`);
}
await new Promise((r) => setTimeout(r, 3000));
}
}
// 2. Create a task
async function createTask(inputs, callBackUrl) {
const res = await fetch(`${BASE}/jobs/createTask`, {
method: "POST",
headers,
body: JSON.stringify({
model: "sd2",
inputs,
...(callBackUrl && { callBackUrl }),
}),
});
if (!res.ok) throw new Error(`[${res.status}] ${(await res.json()).message}`);
return res.json();
}
// 3. Poll until done
async function waitForResult(taskId, timeoutMs = 300000) {
const start = Date.now();
while (Date.now() - start < timeoutMs) {
const res = await fetch(
`${BASE}/jobs/queryTask?taskId=${taskId}`,
{ headers }
);
const result = await res.json();
if (result.status === "COMPLETED") return result;
if (result.status === "FAILED") throw new Error(result.error);
await new Promise((r) => setTimeout(r, 5000));
}
throw new Error("Timeout waiting for task");
}
// Full workflow: upload → review → generate → result
async function main() {
// Upload image and wait for review
const volcAssetId = await uploadAndWaitForAsset(
"https://example.com/photo.jpg", "IMAGE"
);
// Create task with approved asset
const { taskId } = await createTask({
urls: [`asset://${volcAssetId}`],
prompt: "The person slowly looks up and smiles",
duration: "5s",
});
console.log(`Task: ${taskId}`);
// Wait for video
const result = await waitForResult(taskId);
console.log(`Video: ${result.output[0].url}`);
}
main().catch(console.error);