公式 SDK クイックスタート
公式 SDK は一連の流れ(作成 → ポーリング → ダウンロード)をまとめ、冪等キーの自動生成と型付きエラーを提供します。Node SDK は依存パッケージがなく、Python SDK は httpx のみに依存します。現在は GitHub リポジトリで提供しており、npm / PyPI での公開は別途お知らせします。
Node
npm install github:openaiav/sdk-node # npm release to be announced
import { OpenAiav } from '@openaiav/sdk'
const client = new OpenAiav({ apiKey: process.env.OPENAIAV_API_KEY })
const task = await client.generations.createAndWait({
model: 'seedance-2.5-oa', prompt: 'She walks into the sunlight.',
resolution: '480p', aspectRatio: 'adaptive', durationSeconds: 4,
generateAudio: false
})
await client.generations.downloadToFile(task.id, './out.mp4')Python
pip install git+https://github.com/openaiav/sdk-python # PyPI release to be announced
from openaiav import OpenAiav
client = OpenAiav(os.environ["OPENAIAV_API_KEY"])
task = client.generations.create_and_wait({
"model": "seedance-2.5-oa", "prompt": "She walks into the sunlight.",
"resolution": "480p", "aspectRatio": "adaptive", "durationSeconds": 4,
"generateAudio": False,
})
client.generations.download_to_file(task["id"], "./out.mp4")4 ステップで統合
- サーバー側の環境変数
OPENAIAV_API_KEYを使って https://api.openaiav.com/v1/models を呼び出し、現在のモデルキー、料金、reference_modes を取得します。 - POST /v1/generations に prompt、referenceMode、referenceImages を送信します。参照画像は公開 HTTPS URL で、事前登録は不要です。作成成功は HTTP 201 です。
- 返された id を保存し、poll_after_ms の後に同じ GET /v1/generations/{id} をポーリングします。processing、result_pending、submission_unknown はいずれも待機を続け、作成をやり直さないでください。
- 状態が succeeded になったら GET /v1/generations/{id}/content でダウンロードします。全体取得は HTTP 200、単一のバイト範囲は 206 です。
認証と冪等性
export OPENAIAV_API_KEY='oav_...'
# One Idempotency-Key per create intent: every run of this script makes a new one.
# Reuse it only when retrying this same create. No uuidgen? IDEMPOTENCY_KEY=$(python3 -c 'import uuid;print(uuid.uuid4())')
IDEMPOTENCY_KEY=$(uuidgen | tr 'A-Z' 'a-z')
echo "Idempotency-Key: $IDEMPOTENCY_KEY (reuse this value only when retrying this same create)"すべてのリクエストで Authorization: Bearer oav_... を送信し、キーはサーバー側に保管してください。作成には generation:create、ポーリングとダウンロードには generation:read が必要です。作成の意図ごとに新しい Idempotency-Key(UUID)を生成するため、サンプルは実行のたびに新しいキーを使います。再利用するのは、ネットワークの結果が不明で同じ作成を再試行する場合だけです。同じキーを異なるボディで使わないでください。
リクエストヘッダー
| パラメータ | 型 | 必須 | 説明 |
|---|---|---|---|
| Authorization | string | 必須 | すべての /v1 リクエストで Bearer oav_... を使用します。キーはサーバー側に保管してください。 |
| Idempotency-Key | string | タスク作成時は必須 | 作成の意図ごとに新しい値(UUID など)を生成し、同じ作成を再試行する場合にのみ再利用してください。同じ値と同じボディなら二重に作成・課金されることはありません。 |
| Content-Type | string | POST では必須 | 生成の作成は application/json を使用します。 |
エンドポイント一覧
| メソッド | パス | 成功時 | スコープ | 説明 |
|---|---|---|---|---|
| GET | /v1/models | 200 | 有効な API キーならどれでも可 | 現在販売中のモデル、料金、解像度、長さ、reference_modes を取得します。送信前にカタログと照らして対応状況を確認してください。 |
| POST | /v1/generation-quotes | 201 | generation:create | 現在の価格をプレビューしますが、価格は固定されません。作成時に再計算し、作成レスポンスの reserved_usd をそのまま固定額として請求します。失敗したタスクは全額返金されます。quoteId は引き続き使用でき、expires_at は更新の目安です。 |
| POST | /v1/generations | 201 | generation:create | 非同期タスクを作成します。参照画像と referenceMode は同じ JSON リクエストで送信します。 |
| GET | /v1/generations/{id} | 200 | generation:read | 終了状態になるまで、poll_after_ms に従って同じタスクをポーリングします。 |
| GET | /v1/generations/{id}/content | 200 / 206 | generation:read | 成功後に出力をダウンロードします。単一のバイト範囲リクエストには 206 が返ります。 |
ステップ 1:モデルの対応状況を取得
モデルの対応状況をハードコードしないでください。reference_modes に記載されたモードのみを送信し、非対応の組み合わせは送信前に非表示または無効化してください。最小構成のサンプルは seedance-2.5-oa で 4 秒・480p・音声なしのリクエストを示しています。
curl --fail-with-body 'https://api.openaiav.com/v1/models' \
--header "Authorization: Bearer $OPENAIAV_API_KEY"最小構成の公開動画サンプル
サンプルには一連の流れがすべて含まれます:作成 → 同じタスクをポーリング → ダウンロード。 first_frame は参照画像 1 枚と adaptive を使用し、generateAudio=false で音声を要求しません。成功時のコードは 201、200、200/206 です。失敗時はまず HTTP を確認し、次に error.code をご確認ください。
# Keep OPENAIAV_API_KEY in an environment variable; do not paste secrets into shell history.
# One Idempotency-Key per create intent: every run of this script makes a new one.
# Reuse it only when retrying this same create. No uuidgen? IDEMPOTENCY_KEY=$(python3 -c 'import uuid;print(uuid.uuid4())')
IDEMPOTENCY_KEY=$(uuidgen | tr 'A-Z' 'a-z')
echo "Idempotency-Key: $IDEMPOTENCY_KEY (reuse this value only when retrying this same create)"
# 1. Create — success: HTTP 201. On failure, the response body contains error.code.
# Lost response (timeout or dropped connection)? Re-run this same command in this shell:
# the unchanged $IDEMPOTENCY_KEY returns the original task instead of creating a second one.
curl --fail-with-body --request POST 'https://api.openaiav.com/v1/generations' \
--header "Authorization: Bearer $OPENAIAV_API_KEY" \
--header "Idempotency-Key: $IDEMPOTENCY_KEY" \
--header 'Content-Type: application/json' \
--data '{
"model": "seedance-2.5-oa",
"prompt": "A young woman finishes a letter and walks from a stone cottage into the morning sunlight",
"resolution": "480p",
"aspectRatio": "adaptive",
"durationSeconds": 4,
"referenceMode": "first_frame",
"referenceImages": [
"https://developers.openaiav.com/samples/seedance-letter-reference.webp"
],
"generateAudio": false,
"outputFormat": "mp4"
}'
# 2. Save the returned id as TASK_ID. Poll the same id — success: HTTP 200.
curl --fail-with-body 'https://api.openaiav.com/v1/generations/TASK_ID' \
--header "Authorization: Bearer $OPENAIAV_API_KEY"
# Repeat step 2 after poll_after_ms until status is succeeded or failed.
# Never recreate a task whose status is submission_unknown.
# 3. After succeeded, download — success: HTTP 200 (or 206 with Range).
curl --fail-with-body --location 'https://api.openaiav.com/v1/generations/TASK_ID/content' \
--header "Authorization: Bearer $OPENAIAV_API_KEY" \
--output 'result.mp4'リクエストパラメータ
| パラメータ | 型 | 必須 | 説明 |
|---|---|---|---|
| model | string | 必須 | GET /v1/models が返す model の値を使用します。最小構成の動画サンプルでは seedance-2.5-oa を使います。 |
| prompt | string | 必須 | 1〜4000 文字。オムニ参照では配列の順に @Image1、@Image2 のように画像を指定できます。 |
| resolution | string | 任意 | 選択したモデルの resolutions に含まれている必要があります。最小構成の動画サンプルでは 480p を使います。 |
| aspectRatio | string | 任意 | 選択したモデルの aspect_ratios に含まれている必要があります。モデルが先頭フレームのリクエストで要求する場合は adaptive を使用します。image_size_options を持つ画像モデルでは、resolution と aspectRatio をその一覧から組み合わせで選んでください。すべての解像度ですべてのアスペクト比が使えるわけではありません。 |
| durationSeconds | integer | 任意 | 動画の durationSeconds はカタログの duration_seconds 範囲内の整数秒で指定してください。省略時はモデルの最短時間を使用します。最小構成のサンプルは 4 秒です。 |
| referenceMode | first_frame | omni_reference | 参照画像を使う動画では必須 | reference_modes にそのモードが明示されている Seedance 動画モデルでのみ使用します。1 リクエストにつき 1 モードのみ選択できます。 |
| referenceImages | string[] | referenceMode と一緒に指定 | 公開された HTTPS 画像 URL。first_frame はちょうど 1 枚が必要です。omni_reference の上限は reference_images_max で確認してください。 |
| inputImages | string[] | 任意 | 画像モデル専用の、画像から画像への入力画像(参照画像)です。各項目は公開 HTTPS 画像 URL、または data:image/png;base64,…、data:image/jpeg;base64,…、data:image/webp;base64,… 形式の data URL です。モデルごとの上限は GET /v1/models の input_images_max、input_image_max_bytes(1 枚あたり。URL と data URL の両方に適用)、input_image_mime_types で確認してください。参照画像を付けると請求額が上がる場合があります。動画の参照モードと併用しないでください。 |
| generateAudio | boolean | 任意 | 音声に対応する動画モデルでは既定で true です。最小コストのサンプルでは明示的に false を送信します。現在のカタログに音声の追加料金はありません。料金は常に GET /v1/models の内容が正となります。 |
| outputFormat | mp4 | mov | 任意 | カタログの output_formats からのみ選択します。最小構成のサンプルでは mp4 を使います。 |
参照モード
first_frame
first_frame:参照画像が開始フレームとなり、構図を決定します。referenceImages はちょうど 1 件を送信します。aspectRatio はモデルの aspect_ratios から選び、カタログに adaptive がある場合はそれに固定されます(出力は参照画像に追従します)。
first_last_frame:referenceImages をちょうど 2 件送信します。配列の順序が先頭フレーム、次に末尾フレームとなり、その間はモデルが補完します。2 枚の画像は同じ寸法である必要はありません。フレームモードは omni_reference と併用できません。
{
"model": "seedance-2.5-oa",
"prompt": "A young woman finishes a letter and walks from a stone cottage into the morning sunlight",
"resolution": "480p",
"aspectRatio": "adaptive",
"durationSeconds": 4,
"referenceMode": "first_frame",
"referenceImages": [
"https://developers.openaiav.com/samples/seedance-letter-reference.webp"
],
"generateAudio": false,
"outputFormat": "mp4"
}omni_reference
omni_reference:参照アセットは開始フレームにはならず、被写体・スタイル・シーンの一貫性を保ちます。referenceImages に加えて、対応モデルでは referenceVideos と referenceAudios も受け付けます。種類ごとの上限は下表のとおりで、カタログが宣言していない種類は送信時に 400 となります。プロンプトでは種類ごとの順序で @Image1、@Video1、@Audio1 のように指定します。
{
"model": "seedance-2.5-oa",
"prompt": "Keep the identity and outfit from @Image1; a young woman walks from a stone cottage into the morning sunlight",
"resolution": "480p",
"aspectRatio": "16:9",
"durationSeconds": 4,
"referenceMode": "omni_reference",
"referenceImages": [
"https://developers.openaiav.com/samples/seedance-letter-reference.webp"
],
"generateAudio": false,
"outputFormat": "mp4"
}現在の対応状況
すべての動画モデルで統合方法は同一です:同じエンドポイント、同じフィールドで、モデルを変えるときは model を変更するだけです。差異はすべてカタログが宣言します。下表がそのカタログそのもので、モデルごとに対応する参照モードと各素材の受け入れ数を示します。カタログが宣言していない機能は送信時に明示的に拒否され、黙って無視されることはありません。
先頭フレームの詳細と末尾フレームの受け渡し
先頭フレームの詳細:first_frame と omni_reference は排他で、1 リクエストにつきどちらか一方のみを選択します。オムニ参照でもプロンプトで参照画像を開始画面に寄せることはできますが、先頭フレームの厳密な一致が必要な場合は、その画像を first_frame モードで送信してください。Seedance 2.5 では先頭フレームのタスクはアスペクト比が adaptive に固定されます(出力は先頭フレームに追従)。末尾フレームの受け渡し:作成時に returnLastFrame: true を指定すると、成功したタスクは last_frame_url も返します(動画と同じサイズのウォーターマークなし PNG、24 時間保持)。その URL をそのまま次のリクエストの first_frame の referenceImages に渡せば、事前登録なしで複数カットを連結できます。
参照動画の料金
- 長さを測定できる参照動画は固定価格で課金され、その金額を事前にプレビューできます。測定できない場合はプレビューを拒否し、請求はしません。
POST /v1/generation-quotesで現在の価格をプレビューできます。URL 動画はタスク作成時に再測定・再計算され、作成レスポンスのreserved_usdが実際の金額です。quoteIdは引き続き送信できますが、価格は固定されません。expires_atはプレビュー更新の目安です。- モデルカタログが動画ごと・合計の時間、本数、最低課金秒数を定めます。参照動画 1 本あたりの長さは、Seedance 2.0 シリーズが 2〜15 秒、その他の対応モデルが 2〜30 秒です。実測時間がモデルの範囲外なら 422
REFERENCE_DURATION_OUT_OF_RANGEを返し、課金されません。 - MP4/MOV の公開 HTTPS 直リンクを使用してください。判明したファイルサイズが 200 MiB を超える場合は
REFERENCE_VIDEO_TOO_LARGEを返します。サイズが不明でも見積もれます。非公開 URL はREFERENCE_URL_NOT_PUBLIC、測定枠が満杯なら 429REFERENCE_PROBE_BUSYです。コンソールへのアップロード上限は 32 MiB です。 - すべてのタスクは作成時に見積額の
reserved_usdが請求され、成功時はその金額どおり、失敗時は全額返金されます。プレビューのprice_usdは、その時点で作成した場合の請求額と同じです。出力時間は明示し、-1 は使えません。 - 公開動画 URL はプレビュー時と作成時に測定し、その後プラットフォームへの保存やアセット登録なしで生成サービスに直接渡します。URL の内容を変更しないでください。アップロードは別の登録経路を使います。実在人物の顔に関するモデルの制限は引き続き適用されます。
画像モデルの料金
- 画像モデルは 1 枚ごとの料金で、
resolutionとaspectRatioによって変わります(image_pricing.rates)。gpt-image-*とnano-banana-*のモデルの表示価格は、短いプロンプトで参照画像なしの場合の料金です。 - これらのモデルでは、参照画像を付けたりプロンプトが長かったりすると請求額が高くなります。タスクを作成する前に同じボディで
POST /v1/generation-quotesを呼び出してください。返されるprice_usdが、現在の価格でのそのリクエストの請求額です。失敗したタスクは全額返金されます。
ポーリングとダウンロード
終了状態は succeeded と failed のみです。submission_unknown は受理状況の確認中、result_pending は結果の確定中です。元のタスク ID を保持してポーリングを続け、作成を再実行しないでください。成功後は、Open AIav 以外の場所に依存せず、認証付きの /content パスをご利用ください。結果は 24 時間保持されます(詳細レスポンスに output_expires_at が含まれます。期限切れのダウンロードは 410 OUTPUT_EXPIRED を返すため、早めに保存してください)。
| ステータス | 終了状態 | 対処 |
|---|---|---|
| processing | いいえ | 受理されました。poll_after_ms の後に再度ポーリングしてください。 |
| result_pending | いいえ | 結果を確定中です。タスク ID を保持して同じタスクをポーリングし、再作成しないでください。 |
| submission_unknown | いいえ | 受理状況を確認中です。作成を再実行しないでください。元のタスク ID を保持してポーリングしてください。 |
| succeeded | はい | 成功しました。/content で出力をダウンロードしてください。 |
| failed | はい | 確定的に失敗し、全額返金されました。error_code をご確認ください。 |
廃止エンドポイントからの移行
/v1/assets、/v1/assets/content、/v1/assets/{id}、/v1/asset-groups、/v1/asset-groups/{id} は廃止されました。対応する旧スコープを持つ有効なキーで呼び出すと HTTP 410 / ENDPOINT_RETIRED が返ります。新しい統合ではこれらのパスを呼び出さず、referenceMode と referenceImages を同じ生成リクエストに含めてください。エラーコード一覧
完全な一覧:HTTP ステータス、エラーコード、意味、推奨される対処、SDK のエラークラス。この表は SDK のエラーマッピングと同じデータを使用しています。未知の新しいコードは、SDK が HTTP ステータスに基づいて処理します。
| HTTP | コード | 意味 | 推奨される対処 | SDK |
|---|---|---|---|---|
| 401 | UNAUTHENTICATED | API キーがないか、認識できません。 | Authorization: Bearer oav_… ヘッダーを送信してください。キーはサーバー側に保管します。 | AuthenticationError |
| 401 | INVALID_API_KEY | API キーが無効か、失効しています。 | コンソールでキーの状態を確認してください。必要に応じてローテーションして新しいキーを取得します。 | AuthenticationError |
| 403 | INSUFFICIENT_SCOPE | キーにこの操作に必要なスコープがありません。 | 作成には generation:create、ポーリングとダウンロードには generation:read が必要です。 | PermissionError |
| 429 | RATE_LIMITED | リクエストがキーのレート制限を超えました。 | Retry-After / retryAfterSeconds に従ってバックオフしてください。SDK は自動で処理します。 | RateLimitError |
| 400 | IDEMPOTENCY_KEY_REQUIRED | 作成には Idempotency-Key ヘッダーが必要です。 | 新しいリクエストごとに一意のキーを生成し、再試行では同じキーを使ってください。SDK は自動で生成します。 | InvalidRequestError |
| 409 | IDEMPOTENCY_KEY_CONFLICT | 同じ冪等キーが異なるボディで使われました。 | パラメータが異なる場合は新しいキーを使い、再試行ではキーとボディを完全に一致させてください。 | InvalidRequestError |
| 400 | MODEL_NOT_FOUND | 不明なモデル ID です。 | GET /v1/models が返す ID を使用してください(例:seedance-2.5-oa)。 | InvalidRequestError |
| 503 | MODEL_NOT_AVAILABLE | このモデルは現在呼び出せません。 | 課金されていません。GET /v1/models でモデルの status を確認し、後ほど再試行してください。 | ServerError |
| 400 | INVALID_PROMPT | プロンプトが空か、長すぎます。 | プロンプトは 1〜4000 文字にしてください。 | InvalidRequestError |
| 400 | INVALID_DURATION | durationSeconds がモデルの範囲外です。 | 動画の長さをカタログ範囲内の整数秒として durationSeconds に指定してください。 | InvalidRequestError |
| 400 | INVALID_RESOLUTION | その解像度はモデルでサポートされていません。 | カタログの resolutions から選択してください。 | InvalidRequestError |
| 400 | INVALID_ASPECT_RATIO | そのアスペクト比はモデルでサポートされていません。 | カタログの aspect_ratios から選択してください。first_frame では adaptive に固定されることがあります。 | InvalidRequestError |
| 400 | INVALID_REFERENCE_IMAGES | referenceImages は公開 HTTPS URL の配列である必要があります。 | タスクの実行中に読み取れる https:// の画像 URL を指定してください。 | InvalidRequestError |
| 400 | INVALID_REFERENCE_IMAGE | 参照画像の一部が有効な URL ではありません。 | メッセージにインデックス(referenceImages[i])が含まれます。該当する項目を修正してください。 | InvalidRequestError |
| 400 | REFERENCE_IMAGE_URL_NOT_HTTPS | 参照画像の URL が公開 HTTPS ではありません。 | http、プライベートネットワーク、data URL は使用できません。画像は HTTPS で公開してください。 | InvalidRequestError |
| 400 | REFERENCE_MODE_REQUIRES_IMAGES | referenceMode が指定されていますが、参照画像がありません。 | referenceMode と referenceImages は一緒に指定してください。 | InvalidRequestError |
| 400 | REFERENCE_MODE_NOT_SUPPORTED | モデルは指定された参照モードに対応していません。 | カタログの reference_modes に従って first_frame / omni_reference を選択してください。 | InvalidRequestError |
| 400 | FIRST_FRAME_REQUIRES_ONE_IMAGE | first_frame には参照画像がちょうど 1 枚必要です。 | 画像は 1 枚だけ送信してください。複数枚の場合は omni_reference を使用します。 | InvalidRequestError |
| 400 | TOO_MANY_REFERENCES | 参照画像の枚数がカタログの上限を超えています。 | 上限はカタログの reference_images_max をご確認ください。 | InvalidRequestError |
| 400 | INVALID_INPUT_IMAGES | inputImages は配列である必要があります。 | 各項目は HTTPS URL または data:image/* の base64 です。 | InvalidRequestError |
| 400 | INVALID_INPUT_IMAGE | 入力画像の一部の形式が正しくありません。 | 各項目は HTTPS URL または data:image/* の base64 である必要があります。メッセージにインデックスが含まれます。 | InvalidRequestError |
| 400 | INPUT_IMAGE_URL_NOT_HTTPS | 入力画像の URL が HTTPS ではありません。 | https:// の URL、または data:image/png;base64,… のような data URL を使用してください。 | InvalidRequestError |
| 400 | INPUT_IMAGE_TOO_LARGE | 埋め込み画像が 10 MiB を超えています。 | 10 MiB 未満に圧縮してから送信してください。input_image_max_bytes を持つモデルでは HTTPS URL にも同じ上限が適用され、超えた場合はタスクが REFERENCE_INPUT_INVALID で失敗し、全額返金されます。 | InvalidRequestError |
| 400 | IMAGE_INPUT_NOT_SUPPORTED | このモデルは画像入力に対応していません。 | inputImages を使用できるのは input_images_max>0 の画像モデルのみです。 | InvalidRequestError |
| 400 | TOO_MANY_INPUT_IMAGES | 入力画像が多すぎます。 | 上限はカタログの input_images_max をご確認ください。 | InvalidRequestError |
| 422 | REFERENCE_DURATION_OUT_OF_RANGE | 実測した参照動画の長さがモデルの制限を超えています。 | カタログの動画ごと・合計時間・本数の制限を確認して価格を再確認してください。今回は課金されていません。 | InvalidRequestError |
| 422 | REFERENCE_DURATION_UNVERIFIED | 参照動画の長さを測定できませんでした。 | 通常の MP4/MOV を使用し、faststart を推奨します。URL のホストは Range に対応する必要があります。 | InvalidRequestError |
| 422 | REFERENCE_URL_NOT_PUBLIC | 参照動画の URL が公開 HTTPS ではありません。 | ログイン不要の公開 HTTPS ファイル URL(ポート 443)を使用してください。 | InvalidRequestError |
| 422 | CONTENT_TYPE_MISMATCH | 参照動画の URL が必要な動画形式を返していません。 | URL が Web ページや画像ではなく MP4/MOV のバイト列を返すことを確認してください。 | InvalidRequestError |
| 422 | REFERENCE_VIDEO_TOO_LARGE | 参照動画がファイルサイズの上限を超えています。 | 公開 URL は 200 MiB、コンソールへのアップロードは 32 MiB までです。圧縮またはトリミングして価格を再確認してください。 | InvalidRequestError |
| 429 | REFERENCE_PROBE_BUSY | 同時に測定している参照動画が多すぎます。 | retry_after_seconds の後に再試行してください。今回は課金されていません。 | RateLimitError |
| 400 | INSUFFICIENT_BALANCE | 残高がこのタスクの料金に足りません。 | ウォレットでチャージまたはコードを引き換えてから、再試行してください。 | InvalidRequestError |
| 400 | LEGACY_ASSET_REFERENCE_RETIRED | アセット ID による参照は廃止されました。 | 同じリクエストで referenceMode + referenceImages(公開 HTTPS)を送信してください。 | InvalidRequestError |
| 404 | NOT_FOUND | タスクが存在しないか、別のアカウントのものです。 | タスク ID とキーが同じアカウントのものか確認してください。 | InvalidRequestError |
| 409 | OUTPUT_NOT_READY | 出力はまだ準備できていません。 | 終了状態になるまで poll_after_ms に従ってポーリングを続けてください。 | InvalidRequestError |
| 410 | OUTPUT_EXPIRED | ダウンロード期限(成功後 24 時間)が過ぎました。 | 出力は早めに保存してください。期限切れ後は再生成が必要です。カウントダウンには output_expires_at を使用できます。 | OutputExpiredError |
画像タスクの失敗コード
画像タスクが status=failed で終了した場合は、error_code を読み取って下表と照合してください。失敗したタスクは全額返金されます。SDK は同じコードを持つ GenerationFailedError を送出します。
| コード | 意味 |
|---|---|
| CONTENT_POLICY_REJECTED | コンテンツが審査を通過しませんでした。修正してから再送信してください。 |
| REFERENCE_INPUT_INVALID | 参照アセットの形式、サイズ、モデルの要件をご確認ください。 |
| REFERENCE_SOURCE_UNREACHABLE | 参照アセットの URL を読み取れません。有効期限を確認するか、もう一度アップロードしてください。 |
| REFERENCE_SERVICE_UNAVAILABLE | 参照アセットの処理サービスを利用できません。タスク ID を添えてサポートにご連絡ください。画像を差し替える必要はありません。 |
| GENERATION_INPUT_INVALID | 生成パラメータがこのモデルの要件を満たしていません。 |
| GENERATION_RATE_LIMITED | 生成サービスが一時的にレート制限中です。しばらくしてからお試しください。 |
| GENERATION_REJECTED | 生成リクエストが拒否されました。理由の確認はタスク ID を添えてサポートにご連絡ください。 |
| GENERATION_SERVICE_UNAVAILABLE | 生成サービスを一時的に利用できません。 |
| GENERATION_FAILED | タスクを完了できませんでした。タスク ID を添えてサポートにご連絡ください。 |
コンソールでのみ返されるコード
| HTTP | コード | 意味 | 推奨される対処 |
|---|---|---|---|
| 400 | REFERENCE_UPLOAD_NOT_FOUND | アップロードの参照が存在しないか、期限切れか、別のアカウントのものです。 | プレイグラウンドで再アップロードしてから実行してください(アップロードの有効期間は短時間です)。 |
| 429 | UPLOAD_QUOTA_EXCEEDED | 未使用のアップロードが多すぎます。 | アップロードを使うタスクを実行するか、期限切れになるまでお待ちください。 |
| 429 | WEBHOOK_ENDPOINT_LIMIT | Webhook エンドポイント数の上限に達しました。 | 使用していないエンドポイントを削除または無効にしてください。 |
| 400 | INVALID_WEBHOOK_URL | コールバック URL が公開アクセス可能な HTTPS ではありません。 | 公開 HTTPS アドレスを使用してください。プライベート/ループバックのホストは拒否されます。 |