Seedance 2.0
Seedance 2.0 モデルは統一された非同期ジョブ API で呼び出します。POST /api/generate でタスクを開始し、完了するまで GET /api/generate/{taskId} をポーリングします。このファミリーは 3 個のエンドポイントを提供します。
概要
すべてのエンドポイントは同じ外枠を共有し、変わるのは model と input フィールドだけです。モデルマーケットの playground から任意に実行できます。
bytedance/seedance-2, -fast, and -mini share one input schema — pick a mode by which fields you send (mutually exclusive groups):
- Text-to-video: prompt only (optional reference_*)
- Single-frame I2V:
first_frame_url+ prompt withaspect_ratioadaptive - First/last:
first_frame_url+last_frame_url+ prompt, alsoadaptive; noreference_* - Omni reference:
reference_image_urls+ optional video/audio; use@image1,@video1,@audio1in prompt
On direct routes: mark portraits virtual (real is equivalent) for ingest; scenes/backgrounds/products default to skip (direct URL). On success, resultUrls are /api/media/{taskId}/0.mp4 proxy links playable in CN.
reference_image_urls with reference_portrait_kinds per slot:virtual (portrait library — real or AI; real is equivalent), skip (background/scene — default when omitted). Use first_frame_portrait_kind / last_frame_portrait_kind for single-frame and first/last modes.Seedance 2 参照メディア制限
参照画像
- 形式
- JPEG, PNG, WEBP, BMP, TIFF, GIF
- 幅 / 高さ
- 300-6000 px
- アスペクト比
- 0.4-2.5
- ファイルサイズ
- < 30 MB
参照動画
- 形式
- MP4, MOV
- 解像度
- 480p, 720p
- ファイルごとの長さ
- 2-15 s
- 数 / 合計時間
- 最大 3 個 / 合計 15 秒以内
- 幅 / 高さ
- 300-6000 px
- 総ピクセル数
- 409600-927408
- アスペクト比
- 0.4-2.5
- ファイルサイズ
- <= 50 MB
- フレームレート
- 24-60 FPS
参照音声
- 形式
- WAV, MP3
- ファイルごとの長さ
- 2-15 s
- 数 / 合計時間
- 最大 3 個 / 合計 15 秒以内
- ファイルサイズ
- <= 15 MB
- サンプルレート / チャンネル
- 未公開
- 音声コーデック
- 未公開
出力動画
- resolution
- 480p, 720p, 1080p, 4k
- aspect_ratio
- 1:1, 4:3, 3:4, 16:9, 9:16, 21:9, adaptive
- 正確なピクセル寸法
- 未公開。固定の幅と高さは保証されません
認証
/api-keys で API キーを作成し、Bearer トークンとして送信します。ログイン中のブラウザからのリクエストはセッション cookie 経由でも動作します。
Authorization: Bearer <YOUR_API_KEY>タスクの作成
POST https://97ai.97claude.com/api/generateボディ:{ "model": "<slug>", "input": { … } }
レスポンス:{ "taskId": "<id>", "state": "waiting" }
結果の照会
GET https://97ai.97claude.com/api/generate/<taskId>レスポンス:{ "taskId", "state": "waiting" | "success" | "fail", "resultUrls": [ … ], "creditsConsumed", "failMsg", "balance" }
{
"state": "success",
"resultUrls": [
"https://97ai.97claude.com/api/media/task_97ai_example/0.mp4"
],
"creditsConsumed": 161,
"balance": 9958,
"_comment": "resultUrls are first-party /api/media proxy links playable in CN; the server refreshes upstream signatures on demand."
}state が success または fail になるまでこのエンドポイントをポーリングしてください。失敗したタスクは課金されません。エンドポイント
| モデル | タスク | model slug |
|---|---|---|
| Seedance 2 | Image to Video | bytedance/seedance-2 |
| Seedance 2 Fast | Image to Video | bytedance/seedance-2-fast |
| Seedance 2 Mini | Image to Video | bytedance/seedance-2-mini |
Seedance 2 · Image to Video
bytedance/seedance-2promptstring必須Text prompt (max 30000 characters). Use @image1, @video1, @audio1 when reference_* fields are set.
first_frame_urlstring任意First-frame image URL or asset://{assetId}. Mutually exclusive with reference_* fields.
last_frame_urlstring任意Last-frame image URL or asset://{assetId}. Requires first_frame_url.
first_frame_portrait_kindenum<string>任意Portrait-library route: ingest hint for first_frame_url. Default skip (direct URL). Use virtual/real to upload portraits to the asset library.
last_frame_portrait_kindenum<string>任意Portrait-library route: ingest hint for last_frame_url. Default skip (direct URL). Use virtual/real to upload portraits to the asset library.
reference_image_urlsarray<string>任意Reference image URLs (max 9). Mutually exclusive with strict first/last frame mode.
reference_portrait_kindsarray<string>任意Per-image ingest hint aligned with reference_image_urls: virtual (portrait library), real (alias), skip (direct URL; default when omitted).
reference_imagesarray<object>任意Structured reference images: [{ url, portrait: "virtual"|"real"|"skip" }]. Alternative to reference_image_urls + reference_portrait_kinds.
virtual_portraitsarray<string>任意Portrait URLs always uploaded to the virtual portrait library before generation.
real_portraitsarray<string>任意Portrait URLs (including real-person photos) uploaded to the virtual portrait library before generation.
reference_video_urlsarray<string>任意Reference video URLs (max 3). Never uploaded to the asset library.
reference_audio_urlsarray<string>任意Reference audio URLs (max 3). Never uploaded to the asset library.
generate_audioboolean任意Generate synchronized audio with the video.
return_last_frameboolean任意Return the generated video's last frame.
resolutionenum<string>任意Output video resolution (480p–4K).
aspect_ratioenum<string>任意Output aspect ratio. Use adaptive for single-frame or first/last-frame I2V.
durationinteger任意Video duration from 4 to 15 seconds.
output_formatenum<string>任意Video output format.
web_searchboolean任意Enable online search for the generation.
nsfw_checkerboolean任意Enable content safety checking (97AI relay; not forwarded to upstream output moderation).
curl -X POST https://97ai.97claude.com/api/generate \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "bytedance/seedance-2",
"input": {
"duration": 5,
"generate_audio": true,
"output_format": "mp4",
"resolution": "720p",
"return_last_frame": false,
"web_search": false,
"nsfw_checker": false,
"prompt": "镜头缓慢推近,电影感自然光,人物回头微笑",
"aspect_ratio": "16:9"
}
}'Seedance 2 Fast · Image to Video
bytedance/seedance-2-fastpromptstring必須Text prompt (max 30000 characters). Use @image1, @video1, @audio1 when reference_* fields are set.
first_frame_urlstring任意First-frame image URL or asset://{assetId}. Mutually exclusive with reference_* fields.
last_frame_urlstring任意Last-frame image URL or asset://{assetId}. Requires first_frame_url.
first_frame_portrait_kindenum<string>任意Portrait-library route: ingest hint for first_frame_url. Default skip (direct URL). Use virtual/real to upload portraits to the asset library.
last_frame_portrait_kindenum<string>任意Portrait-library route: ingest hint for last_frame_url. Default skip (direct URL). Use virtual/real to upload portraits to the asset library.
reference_image_urlsarray<string>任意Reference image URLs (max 9). Mutually exclusive with strict first/last frame mode.
reference_portrait_kindsarray<string>任意Per-image ingest hint aligned with reference_image_urls: virtual (portrait library), real (alias), skip (direct URL; default when omitted).
reference_imagesarray<object>任意Structured reference images: [{ url, portrait: "virtual"|"real"|"skip" }]. Alternative to reference_image_urls + reference_portrait_kinds.
virtual_portraitsarray<string>任意Portrait URLs always uploaded to the virtual portrait library before generation.
real_portraitsarray<string>任意Portrait URLs (including real-person photos) uploaded to the virtual portrait library before generation.
reference_video_urlsarray<string>任意Reference video URLs (max 3). Never uploaded to the asset library.
reference_audio_urlsarray<string>任意Reference audio URLs (max 3). Never uploaded to the asset library.
generate_audioboolean任意Generate synchronized audio with the video.
return_last_frameboolean任意Return the generated video's last frame.
resolutionenum<string>任意Output video resolution (480p or 720p).
aspect_ratioenum<string>任意Output aspect ratio. Use adaptive for single-frame or first/last-frame I2V.
durationinteger任意Video duration from 4 to 15 seconds.
output_formatenum<string>任意Video output format.
web_searchboolean任意Enable online search for the generation.
nsfw_checkerboolean任意Enable content safety checking (97AI relay; not forwarded to upstream output moderation).
curl -X POST https://97ai.97claude.com/api/generate \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "bytedance/seedance-2-fast",
"input": {
"duration": 5,
"generate_audio": true,
"output_format": "mp4",
"resolution": "720p",
"return_last_frame": false,
"web_search": false,
"nsfw_checker": false,
"prompt": "镜头缓慢推近,电影感自然光,人物回头微笑",
"aspect_ratio": "16:9"
}
}'Seedance 2 Mini · Image to Video
bytedance/seedance-2-minipromptstring必須Text prompt (max 30000 characters). Use @image1, @video1, @audio1 when reference_* fields are set.
first_frame_urlstring任意First-frame image URL or asset://{assetId}. Mutually exclusive with reference_* fields.
last_frame_urlstring任意Last-frame image URL or asset://{assetId}. Requires first_frame_url.
first_frame_portrait_kindenum<string>任意Portrait-library route: ingest hint for first_frame_url. Default skip (direct URL). Use virtual/real to upload portraits to the asset library.
last_frame_portrait_kindenum<string>任意Portrait-library route: ingest hint for last_frame_url. Default skip (direct URL). Use virtual/real to upload portraits to the asset library.
reference_image_urlsarray<string>任意Reference image URLs (max 9). Mutually exclusive with strict first/last frame mode.
reference_portrait_kindsarray<string>任意Per-image ingest hint aligned with reference_image_urls: virtual (portrait library), real (alias), skip (direct URL; default when omitted).
reference_imagesarray<object>任意Structured reference images: [{ url, portrait: "virtual"|"real"|"skip" }]. Alternative to reference_image_urls + reference_portrait_kinds.
virtual_portraitsarray<string>任意Portrait URLs always uploaded to the virtual portrait library before generation.
real_portraitsarray<string>任意Portrait URLs (including real-person photos) uploaded to the virtual portrait library before generation.
reference_video_urlsarray<string>任意Reference video URLs (max 3). Never uploaded to the asset library.
reference_audio_urlsarray<string>任意Reference audio URLs (max 3). Never uploaded to the asset library.
generate_audioboolean任意Generate synchronized audio with the video.
return_last_frameboolean任意Return the generated video's last frame.
resolutionenum<string>任意Output video resolution (480p or 720p).
aspect_ratioenum<string>任意Output aspect ratio. Use adaptive for single-frame or first/last-frame I2V.
durationinteger任意Video duration from 4 to 15 seconds.
output_formatenum<string>任意Video output format.
web_searchboolean任意Enable online search for the generation.
nsfw_checkerboolean任意Enable content safety checking (97AI relay; not forwarded to upstream output moderation).
curl -X POST https://97ai.97claude.com/api/generate \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "bytedance/seedance-2-mini",
"input": {
"duration": 5,
"generate_audio": true,
"output_format": "mp4",
"resolution": "720p",
"return_last_frame": false,
"web_search": false,
"nsfw_checker": false,
"prompt": "镜头缓慢推近,电影感自然光,人物回头微笑",
"aspect_ratio": "16:9"
}
}'Seedance 2.0 mode examples
Live-aligned examples below. One model slug switches modes by field groups; swap the model to bytedance/seedance-2-fast or -mini for other tiers.
curl -X POST https://97ai.97claude.com/api/generate \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "bytedance/seedance-2",
"input": {
"duration": 5,
"generate_audio": true,
"output_format": "mp4",
"resolution": "720p",
"return_last_frame": false,
"web_search": false,
"nsfw_checker": false,
"prompt": "镜头缓慢推近,人物回头微笑,自然光",
"first_frame_url": "https://frw-images.aiaipic.win/users/3514640099037941760/ai_generated/20260818/038f9f68-004f-4017-a09d-74b3da84e569.png",
"first_frame_portrait_kind": "virtual",
"aspect_ratio": "adaptive"
}
}'curl -X POST https://97ai.97claude.com/api/generate \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "bytedance/seedance-2",
"input": {
"duration": 5,
"generate_audio": true,
"output_format": "mp4",
"resolution": "480p",
"return_last_frame": false,
"web_search": false,
"nsfw_checker": false,
"prompt": "从首帧平滑过渡到尾帧,电影感运镜",
"first_frame_url": "https://frw-images.aiaipic.win/users/3492453287637028864/image/20260805/c743c3df-581f-4e3f-9c8d-01029926bcfa_thumb.jpg",
"first_frame_portrait_kind": "skip",
"last_frame_url": "https://frw-images.aiaipic.win/users/3492453287637028864/image/20260805/9abd34e1-1f37-44ed-b482-386a44febf6a_thumb.jpg",
"last_frame_portrait_kind": "skip",
"aspect_ratio": "adaptive"
}
}'curl -X POST https://97ai.97claude.com/api/generate \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "bytedance/seedance-2",
"input": {
"duration": 5,
"generate_audio": true,
"output_format": "mp4",
"resolution": "720p",
"return_last_frame": false,
"web_search": false,
"nsfw_checker": false,
"prompt": " @image1与 @image2在 @image3的场景中,参考 @video1的运镜,背景音乐参考 @audio1",
"aspect_ratio": "16:9",
"reference_image_urls": [
"https://frw-images.aiaipic.win/users/3514640099037941760/ai_generated/20260818/038f9f68-004f-4017-a09d-74b3da84e569.png",
"https://frw-images.aiaipic.win/users/3514640099037941760/image/20260819/fb280368-8f54-41eb-aacf-cee1c189b29b.png"
],
"reference_portrait_kinds": [
"virtual",
"skip"
],
"reference_video_urls": [
"https://frw-images.aiaipic.win/users/3492453287637028864/video/20260818/3524765235086888960.mp4"
],
"reference_audio_urls": [
"https://frw-images.aiaipic.win/users/3492453287637028864/audio/20260818/3524725649950380032.mp3"
]
}
}'