30秒動画、50以上の参照素材に対応。 今すぐ試す

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 フィールドに指定します(例:sd2gpt-image-2)。

SeeGen AI を選ぶ理由

SeeGen AI を選ぶその他の理由:

  • Seedance 2.0 だけじゃない:HappyHorse 1.1、Nano Banana、ChatGPT Image なども利用可能。
  • サブスクリプション不要 — 使った分だけ支払う従量制
  • 最新モデルにいち早くアクセス
  • 24時間365日のカスタマーサポート
  • 各モデル公式に関する問い合わせにも対応
  • 開発者向けコンソールへのアクセス
  • 法人・個人どちらでも利用可能

料金

40% OFF

API Pack

$500$833

125,000 クレジット ($0.004/クレジット)

5s動画 ~781本

40% OFF

API-XL Pack

$2,000$3,332

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: 480P30 × out23 × (out + in)
sd2.5: 720P60 × out45 × (out + in)
sd2.5: 1080P (ネイティブ)150 × out113 × (out + in)
sd2.5: 2K(60 + 30) × out45 × (out + in) + 30 × out
sd2.5: 4K(60 + 40) × out45 × (out + in) + 40 × out
sd2-pro: 480P20 × out15 × (out + in)
sd2-pro: 720P40 × out30 × (out + in)
sd2-pro: 1080P (ネイティブ)100 × out75 × (out + in)
sd2-pro: 2K(40 + 30) × out30 × (out + in) + 30 × out
sd2-pro: 4K (ネイティブ)200 × out150 × (out + in)
sd2-fast: 480P16 × out12 × (out + in)
sd2-fast: 720P32 × out24 × (out + in)
sd2-fast: 1080P(32 + 20) × out24 × (out + in) + 20 × out
sd2-fast: 2K(32 + 30) × out24 × (out + in) + 30 × out
sd2-fast: 4K(32 + 40) × out24 × (out + in) + 40 × out
sd2-mini: 480P10 × out7.5 × (out + in)
sd2-mini: 720P20 × out15 × (out + in)
sd2-mini: 1080P(20 + 20) × out15 × (out + in) + 20 × out
sd2-mini: 2K(20 + 30) × out15 × (out + in) + 30 × out
sd2-mini: 4K(20 + 40) × out15 × (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-minisd2-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 の例
720P32160
1080P60300
2K32 + 30310
4K32 + 40360

注: 2K / 4K アップスケールは720Pベースに加算されます(ネイティブ1080Pとは併用されません)。t2v / i2v / r2v は同じ秒単位レートを共有します — 参照画像には課金されません。

🎉 期間限定オファー:全ての画像生成が33%オフ — 以下の画像料金はすでに割引後の金額です。

gpt-image-2 — 1画像あたりのクレジット

解像度標準品質高品質
1k10154770
2k (デフォルト)233584125
4k4060154230

各タスクは1枚の画像を生成します。N個のバリエーションを得るにはN個のタスクを送信してください。失敗したタスクは自動的にクレジットが返金されます。

nano-banana-2・nano-banana-pro — 1画像あたりのクレジット

解像度nano-banana-2nano-banana-pro
1k20304060
2k (デフォルト)30454060
4k477074110

各タスクは1枚の画像を生成します。N個のバリエーションを得るにはN個のタスクを送信してください。失敗したタスクは自動的にクレジットが返金されます。

Seedream 5.0 — 1画像あたりのクレジット

モデル / 階層クレジット
Lite 2k / 4k(定額)710
Pro 1k (デフォルト)1015
Pro 2k2030

各タスクは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

エンドポイント

POST/api/v1/jobs/createTask

新しい動画生成タスクを作成

GET/api/v1/jobs/queryTask

タスクのステータスと結果を照会

GET/api/v1/account/credits

クレジット残高を確認

POST/api/v1/assets/upload

審査用に素材(画像・動画・音声)をアップロード

GET/api/v1/assets/status

素材の審査状況を照会

GET/api/v1/assets/list

アップロード済みの素材を一覧表示

POST/api/v1/upscale/create

スタンドアロンの動画アップスケールタスクを送信(720p / 1080p / 2K / 4K)

GET/api/v1/upscale/query

スタンドアロンのアップスケールタスクのステータスと結果をポーリング

モデルを選択(動画)

動画生成には2つのモデルファミリーがあります。モード+価格で選び、料金 セクションと組み合わせてコストを見積もってください。

モデルT2VI2VFirst–LastMulti-RefR2Vネイティブ1080pネイティブ4K音声720p / 5s
sd2.5アップスケール300 クレジット
sd2200 クレジット
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
パラメータ必須説明
promptstringはい生成する動画のテキスト説明。最大20000文字。
durationstringいいえ動画の長さ:"4s" 〜 "15s"(sd2.5 は最大 "30s" まで対応、デフォルト:"5s")
resolutionstringいいえresolution によるアスペクト比の指定。選択肢:auto(デフォルト)、720x720、720x960、960x720、1280x720、720x1280、1280x540
outputResolutionstringいいえ出力解像度の階層:"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。それより上位の階層は自動的にアップスケールされます。
seedintいいえ再現性のためのシード値:ランダムにする場合は -1 を指定するか省略。固定する場合は 0–2147483647 を指定。
generateAudiobooleanいいえ同期した音声トラックを生成するかどうか。デフォルトは 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
パラメータ必須説明
urlsstring[]はい画像URLを1つ含む配列(元となるフレーム)。HTTP URLと素材参照(例:"asset://asset-20260326-abc123")の両方に対応。
promptstringいいえ求める動きのテキスト説明
durationstringいいえ動画の長さ:"4s" 〜 "15s"(sd2.5 は最大 "30s" まで対応、デフォルト:"5s")
outputResolutionstringいいえ出力解像度の階層:"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。それより上位の階層は自動的にアップスケールされます。
seedintいいえ再現性のためのシード値:ランダムにする場合は -1 を指定するか省略。固定する場合は 0–2147483647 を指定。
generateAudiobooleanいいえ同期した音声トラックを生成するかどうか。デフォルトは 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
パラメータ必須説明
urlsstring[]はい画像URLをちょうど2つ含む配列:[first_frame, last_frame]。HTTP URLと素材参照(例:"asset://asset-20260326-abc123")の両方に対応。
videoInputModestringはい"keyframe" を指定する必要があります
promptstringいいえ遷移の内容を指示するテキスト説明
durationstringいいえ動画の長さ:"4s" 〜 "15s"(sd2.5 は最大 "30s" まで対応、デフォルト:"5s")
outputResolutionstringいいえ出力解像度の階層:"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。それより上位の階層は自動的にアップスケールされます。
seedintいいえ再現性のためのシード値:ランダムにする場合は -1 を指定するか省略。固定する場合は 0–2147483647 を指定。
generateAudiobooleanいいえ同期した音声トラックを生成するかどうか。デフォルトは 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
パラメータ必須説明
urlsstring[]いいえ参照画像URL(最大9枚)。HTTP URLと素材参照(例:"asset://asset-20260326-abc123")の両方に対応。
videoUrlsstring[]いいえ参照動画の asset:// URI — 事前に /api/v1/assets/upload でアップロードが必要です。外部URLは拒否されます。sd2:最大3本、各動画は15s以下。sd2.5:最大10本、各動画は2–30sかつ200MB以下、参照動画の合計時間は30s以下、480p〜4Kの入力に対応。
audioUrlsstring[]いいえ参照音声の入力。sd2 / sd2-fast / sd2-mini:最大3ファイル、各2–15s、合計15s以下 — これらのモデルでは音声のみを参照にすることはできません(画像または動画を少なくとも1つ追加してください)。sd2.5:最大10ファイル、各15MB以下かつ2–30s、合計30s以下。音声のみの入力にも対応。
videoInputModestringはい"reference" を指定する必要があります
promptstringいいえテキスト説明
durationstringいいえ動画の長さ:"4s" 〜 "15s"(sd2.5 は最大 "30s" まで対応、デフォルト:"5s")
resolutionstringはいリファレンスモードでは必須。選択肢:720x720、720x960、960x720、1280x720、720x1280、1280x540
outputResolutionstringいいえ出力解像度の階層:"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。それより上位の階層は自動的にアップスケールされます。
seedintいいえ再現性のためのシード値:ランダムにする場合は -1 を指定するか省略。固定する場合は 0–2147483647 を指定。
generateAudiobooleanいいえ同期した音声トラックを生成するかどうか。デフォルトは 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
パラメータ必須説明
modestringいいえ"edit" または "extend"。通常の参照生成では省略します。
videoUrlsstring[]はい少なくとも1本の動画が必要です。最初の動画がソース(「Video 1」)となり、編集後の出力の長さと課金はこれに従います。それ以降の動画は追加の参照(edit)または順に連結される追加クリップ(extend、最大3本)です。
urlsstring[]いいえ任意の注釈・参照画像。
source_frame_timestamps_msnumber[]いいえmode "edit" のみで使用。urls内の各画像に対し、元動画上のタイムスタンプ(ミリ秒、非負)を1つずつ指定します。
outputResolutionstringいいえ出力解像度の階層:"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 パラメータの完全なリファレンスです。

パラメータ必須説明
promptstringいいえテキスト説明(テキストから動画では必須、それ以外のモードでは任意)。最大20000文字。
urlsstring[]いいえ画像URL。HTTP URLと素材参照(例:"asset://asset-20260326-abc123")の両方に対応。内部的には uploadedUrls にマッピングされます。
videoUrlsstring[]いいえ参照動画の asset:// URI(リファレンスモードのみ)。事前に /api/v1/assets/upload でアップロードが必要です — 外部URLは拒否されます。
audioUrlsstring[]いいえ参照音声のURL(リファレンスモードのみ)。sd2.5 では音声のみの入力にも対応。sd2 / sd2-fast / sd2-mini では、音声に加えて画像または動画を少なくとも1つ指定する必要があります。
durationstringいいえ通常は "4s" 〜 "15s"。sd2.5 は最大 "30s" まで対応。デフォルト:"5s"
resolutionstringいいえアスペクト比:auto(デフォルト) | 720x720 | 720x960 | 960x720 | 1280x720 | 720x1280 | 1280x540
outputResolutionstringいいえ出力解像度の階層:"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。それより上位の階層は自動的にアップスケールされます。
videoInputModestringいいえ"keyframe"(デフォルト)または "reference"
modestringいいえリファレンスモードのサブタスク(全Seedanceモデル共通):通常の参照生成では省略、videoUrls内の最初の動画を編集する場合は "edit"、1〜3本のクリップを延長する場合は "extend"。詳細は「動画編集・延長」を参照。
source_frame_timestamps_msnumber[]いいえsd2.5 の動画編集のみ:注釈画像ごとに、非負のミリ秒単位のタイムスタンプを1つ指定します。
seedintいいえ再現性のためのランダムシード。サーバー側でランダムにする場合は -1 を指定するか省略。同じシード+同じ入力ではほぼ一致する出力が得られます(GPUの非決定性のためビット単位で完全に同一にはなりません)。範囲:-1 〜 2147483647。
generateAudiobooleanいいえ動画に同期した音声トラック(音声、効果音、BGM)を生成するかどうか。デフォルトは true。無音の動画にする場合は false を指定します — 処理がやや速くなり、別途アフレコを予定している場合に便利です。
bitrateModestringいいえ同じ解像度における出力ビットレートの階層:"standard"(デフォルト)または "high"。"high" はより多くのディテールを保持し、バンディングやブロックノイズを軽減しますが、ファイルサイズは約3〜5倍になります — 解像度や価格は変わりません。
upscaleResolutionstringいいえ(非推奨)後方互換性のために残されているレガシーな分割フィールドで、引き続き受け付けられます。新規に実装する場合は 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
パラメータ必須説明
filefileはいローカルファイル(multipartフォームフィールド)。メディアタイプは内容から判定されます。
namestringいいえ素材名(最大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
パラメータ必須説明
urlstringはいアップロードするファイルの公開アクセス可能なHTTPS URL
typestringはい"IMAGE"、"AUDIO"、または "VIDEO"
namestringいいえ素材名(最大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"
パラメータ必須説明
typestringいいえタイプでフィルタ:"IMAGE"、"AUDIO"、または "VIDEO"
statusstringいいえステータスでフィルタ:"NONE"、"PROCESSING"、"ACTIVE"、または "FAILED"
cursornumberいいえページネーション用カーソル(前回のレスポンスの nextCursor を使用)
limitnumberいいえ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 になったら、その volcAssetIdasset:// プロトコルとともにタスクの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枚の参照画像を融合。プロンプト内で character1character2、… として被写体を参照)。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つの出力に融合できます。プロンプト内で各画像を character1character2、…(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/createTask

HappyHorseパラメータリファレンス

happyhorse モデルにおける、すべての inputs パラメータの完全なリファレンスです。

パラメータ必須説明
promptstringいいえテキスト説明。テキストから動画と参照から動画では必須、画像から動画では任意。非CJK文字は最大5000文字、CJK文字は最大2500文字(それを超えると上流で自動的に切り詰められます)。r2v では character1/character2/… でN番目の参照画像を指定します。
urlsstring[]いいえt2v:省略。i2v:ちょうど1つのURL(最初のフレームとして使用)。r2v:1〜9個のURL。公開HTTPS URLと素材参照(例:"asset://asset-20260326-abc123")に対応。
videoWorkflowTabstringいいえ参照から動画モードを有効にするには "multi-reference" を指定します(urlsを1つ以上と組み合わせる必要があります)。テキストから動画/画像から動画では省略。
durationstringいいえ"3s" 〜 "15s"(デフォルト "5s")。
outputResolutionstringいいえ"720p"(デフォルト)または "1080p"。
ratiostringいいえ"16:9" / "9:16" / "1:1" / "4:3" / "3:4"。テキストから動画と参照から動画で使用 — 画像から動画のアスペクト比は最初のフレームから推測されます。
seedintいいえ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回ずつ呼び出してください。

モデルT2II2I(編集)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/createTask

GPT Image 2 パラメータリファレンス

gpt-image-2 モデルにおける、すべての inputs パラメータの完全なリファレンスです。

パラメータ必須説明
promptstringはい生成する画像のテキスト説明、または urls が指定されている場合は適用する編集内容。
urlsstring[]いいえ画像から画像(編集)モード用の参照画像URL(1〜10枚)。テキストから画像では省略。公開HTTPS URLに対応。
qualitystringいいえ"medium" / "high"。デフォルト:"medium"。クレジットは階層に応じて変動します(料金を参照)。
resolutionstringいいえ"1k" / "2k" / "4k"。デフォルト:"2k"。クレジットは階層に応じて変動します(料金を参照)。
aspectRatiostringいいえ"1:1" / "16:9" / "9:16" / "4:3" / "3:4"。デフォルト:"1:1"。
outputFormatstringいいえ"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/createTask

Nano Banana 2 パラメータリファレンス

nano-banana-2 モデルにおける、すべての inputs パラメータの完全なリファレンスです。

パラメータ必須説明
promptstringはい生成する画像のテキスト説明、または urls が指定されている場合は適用する編集内容。
urlsstring[]いいえ画像から画像(編集)モード用の参照画像URL(1〜10枚)。テキストから画像では省略。公開HTTPS URLに対応。
resolutionstringいいえ"1k" / "2k" / "4k"。デフォルト:"2k"。クレジットは階層に応じて変動します(料金を参照)。
aspectRatiostringいいえ"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/createTask

Nano Banana Pro パラメータリファレンス

nano-banana-pro モデルにおける、すべての inputs パラメータの完全なリファレンスです。

パラメータ必須説明
promptstringはい生成する画像のテキスト説明、または urls が指定されている場合は適用する編集内容。
urlsstring[]いいえ画像から画像(編集)モード用の参照画像URL(1〜10枚)。テキストから画像では省略。公開HTTPS URLに対応。
resolutionstringいいえ"1k" / "2k" / "4k"。デフォルト:"2k"。クレジットは階層に応じて変動します(料金を参照)。
aspectRatiostringいいえ"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/createTask

Seedream 5.0 Lite パラメータ

パラメータ必須説明
promptstringはい画像の説明、または編集内容。
urlsstring[]いいえ公開HTTPSの参照画像URL(1〜10枚)。テキストから画像では省略。
resolutionstringいいえ"2k" または "4k"。デフォルト:"2k"。
aspectRatiostringいいえ"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/createTask

Seedream 5.0 Pro パラメータ

パラメータ必須説明
promptstringはい画像の説明、または編集内容。
urlsstring[]いいえ公開HTTPSの参照画像URL(1〜10枚)。テキストから画像では省略。
resolutionstringいいえ"1k" または "2k"。デフォルト:"1k"。4kには対応していません。
aspectRatiostringいいえ"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.typestringはい任意のソースには "url" を使用します("uploadId" は後方互換性のために残されているレガシーなエイリアスです)。
source.urlstringいいえtype="url" の場合。任意のhttps動画URL — 自前のCDN、または /api/v1/assets/upload が返す r2Url。外部URLの場合、httpおよびプライベート/内部IPは拒否されます(SSRF対策)。自社の素材ホスト上のURLはこのチェックをスキップします。
source.r2Urlstringいいえレガシー — type="uploadId" の場合のみ使用(後方互換)。新規実装では type="url" を使用してください。
targetResolutionstringはい"720p"、"1080p"、"2k"、または "4k"。元の解像度より高い値である必要があります。
callBackUrlstringいいえ終端状態(完了または失敗)に達した際に一度だけ呼び出されるWebhook URL。

作成のレスポンス

{
  "taskId": "n770mo4sh6rpi690ff3gwymx",
  "orderId": "ord_2026...",
  "status": "validating"
}

ステータスの照会

GET /api/v1/upscale/query?taskId=...

ステータスは validatingprocessingcompleted / 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_URLURLの形式が不正、またはhttpsではありません
URL_NOT_REACHABLEURLを取得できませんでした — 公開されていてアクセス可能か確認してください
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不正なパラメータエラーメッセージを確認し、リクエストを修正してください
401APIキーが無効または未指定Authorization ヘッダーの形式を確認してください
402クレジット不足seegen.ai でクレジットを追加購入してください
403アクセス拒否自分自身のタスクのみ照会できます
404タスクが見つかりませんtaskId が正しいか確認してください
429同時実行数の上限(3タスク)既存のタスクが完了するまでお待ちください
500内部サーバーエラー数秒後に再試行してください

送信前バリデーション(コード付きの400)

Seedanceへのリクエストは、クレジットが課金される前に上流の契約に照らしてチェックされます。チェックに失敗すると、createTask はHTTP 400とともに { "message": "...", "code": "..." } を返し、タスクは作成されません。メッセージには、どの制限に抵触したか、およびその修正方法が正確に記載されています。

パラメータ必須説明
EMPTY_CONTENTcodeいいえプロンプトも参照画像/動画/音声もありません。
AUDIO_ONLY_NOT_SUPPORTEDcodeいいえsd2 / sd2-fast / sd2-mini で音声のみが参照になっています。画像または動画を追加するか、sd2.5(音声のみ対応)を使用してください。
DURATION_OUT_OF_RANGEcodeいいえduration がモデルの範囲内の整数ではありません(sd2系:"4s"–"15s"、sd2.5:"4s"–"30s")。
EDIT_SOURCE_VIDEO_REQUIRED / EXTEND_SOURCE_VIDEO_REQUIREDcodeいいえvideoUrls に動画がない状態で mode "edit" / "extend" がリクエストされました。
EDIT_SOURCE_DURATION_INVALIDcodeいいえsd2.5の動画編集:リクエスト内の動画が4s未満または30sを超えています(ARKは編集タスクのすべての動画に4–30sを適用します)。
TOO_MANY_REFERENCEScodeいいえモデルが受け付ける数を超える参照画像/動画/音声クリップが指定されています(sd2系:9 / 3 / 3、sd2.5:30 / 10 / 10;extendは動画3本以下)。
REFERENCE_VIDEO_DURATION_INVALIDcodeいいえ参照動画がクリップあたりの上限(sd2系:15s、sd2.5:30s)を超えているか、参照動画の合計時間が上限(15s / 30s)を超えています。
ASSET_NOT_FOUND / EXTERNAL_URL / READ_TIMEOUT / READ_FAILEDcodeいいえ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);

サポートが必要ですか? Discord に参加するか、お問い合わせ ください