MercadoSoporte← Volver a la app

Seedance 2.0

Los modelos de Seedance 2.0 se llaman a través de una API de trabajos asíncrona y unificada. Inicia una tarea con POST /api/generate y luego sondea GET /api/generate/{taskId} hasta que termine. Esta familia expone 3 endpoints.

Resumen

Todos los endpoints comparten la misma envoltura — solo cambian model y los campos input. Ejecuta cualquiera desde el playground del Mercado de modelos.

Seedance 2.0: one slug, multiple modes

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 with aspect_ratio adaptive
  • First/last: first_frame_url + last_frame_url + prompt, also adaptive; no reference_*
  • Omni reference: reference_image_urls + optional video/audio; use @image1, @video1, @audio1 in 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.

Portrait reference details
On direct routes, only portrait images are uploaded to the portrait library; scenes, videos, and audio stay as direct public URLs. Pair 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.

Límites de medios de referencia de Seedance 2

Estos valores son reglas públicas de validación de la interfaz ascendente conectada actualmente a 97AI.PRO. No son límites oficiales permanentes del modelo. Los rangos pueden variar según la ruta; la respuesta de la API es la referencia final.

Imágenes de referencia

Formatos
JPEG, PNG, WEBP, BMP, TIFF, GIF
Ancho / alto
300-6000 px
Relación de aspecto
0.4-2.5
Tamaño por archivo
< 30 MB

Vídeos de referencia

Formatos
MP4, MOV
Resoluciones
480p, 720p
Duración por archivo
2-15 s
Cantidad / duración total
Hasta 3 / máximo 15 s en total
Ancho / alto
300-6000 px
Píxeles totales
409600-927408
Relación de aspecto
0.4-2.5
Tamaño por archivo
<= 50 MB
Fotogramas
24-60 FPS

Audio de referencia

Formatos
WAV, MP3
Duración por archivo
2-15 s
Cantidad / duración total
Hasta 3 / máximo 15 s en total
Tamaño por archivo
<= 15 MB
Muestreo / canales
No publicado
Códec de audio
No publicado

Vídeo de salida

resolution
480p, 720p, 1080p, 4k
aspect_ratio
1:1, 4:3, 3:4, 16:9, 9:16, 21:9, adaptive
Dimensiones exactas
No publicado; no se garantiza un ancho y alto fijos

Autenticación

Crea una API key en /api-keys y luego envíala como token Bearer. Las solicitudes desde el navegador con sesión iniciada también funcionan mediante la cookie de sesión.

Authorization: Bearer <YOUR_API_KEY>

Crear tarea

POST
POST https://97ai.97claude.com/api/generate

Cuerpo: { "model": "<slug>", "input": { … } }

Respuesta: { "taskId": "<id>", "state": "waiting" }

Consultar resultado

GET
GET https://97ai.97claude.com/api/generate/<taskId>

Respuesta: { "taskId", "state": "waiting" | "success" | "fail", "resultUrls": [ … ], "creditsConsumed", "failMsg", "balance" }

Success response example
JSON
{
  "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."
}
Asíncrono
Un 200 de Crear tarea solo significa que la tarea fue aceptada — no que haya terminado. Sondea este endpoint hasta que state sea success o fail. Las tareas fallidas no se facturan.

Endpoints

ModeloTareamodel slug
Seedance 2Image to Videobytedance/seedance-2
Seedance 2 FastImage to Videobytedance/seedance-2-fast
Seedance 2 MiniImage to Videobytedance/seedance-2-mini

Seedance 2 · Image to Video

POSTImage to Videobytedance/seedance-2
campos input
promptstringobligatorio

Text prompt (max 30000 characters). Use @image1, @video1, @audio1 when reference_* fields are set.

first_frame_urlstringopcional

First-frame image URL or asset://{assetId}. Mutually exclusive with reference_* fields.

last_frame_urlstringopcional

Last-frame image URL or asset://{assetId}. Requires first_frame_url.

first_frame_portrait_kindenum<string>opcional

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>opcional

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>opcional

Reference image URLs (max 9). Mutually exclusive with strict first/last frame mode.

reference_portrait_kindsarray<string>opcional

Per-image ingest hint aligned with reference_image_urls: virtual (portrait library), real (alias), skip (direct URL; default when omitted).

reference_imagesarray<object>opcional

Structured reference images: [{ url, portrait: "virtual"|"real"|"skip" }]. Alternative to reference_image_urls + reference_portrait_kinds.

virtual_portraitsarray<string>opcional

Portrait URLs always uploaded to the virtual portrait library before generation.

real_portraitsarray<string>opcional

Portrait URLs (including real-person photos) uploaded to the virtual portrait library before generation.

reference_video_urlsarray<string>opcional

Reference video URLs (max 3). Never uploaded to the asset library.

reference_audio_urlsarray<string>opcional

Reference audio URLs (max 3). Never uploaded to the asset library.

generate_audiobooleanopcional

Generate synchronized audio with the video.

return_last_framebooleanopcional

Return the generated video's last frame.

resolutionenum<string>opcional

Output video resolution (480p–4K).

aspect_ratioenum<string>opcional

Output aspect ratio. Use adaptive for single-frame or first/last-frame I2V.

durationintegeropcional

Video duration from 4 to 15 seconds.

output_formatenum<string>opcional

Video output format.

web_searchbooleanopcional

Enable online search for the generation.

nsfw_checkerbooleanopcional

Enable content safety checking (97AI relay; not forwarded to upstream output moderation).

Ejemplo
cURL
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

POSTImage to Videobytedance/seedance-2-fast
campos input
promptstringobligatorio

Text prompt (max 30000 characters). Use @image1, @video1, @audio1 when reference_* fields are set.

first_frame_urlstringopcional

First-frame image URL or asset://{assetId}. Mutually exclusive with reference_* fields.

last_frame_urlstringopcional

Last-frame image URL or asset://{assetId}. Requires first_frame_url.

first_frame_portrait_kindenum<string>opcional

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>opcional

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>opcional

Reference image URLs (max 9). Mutually exclusive with strict first/last frame mode.

reference_portrait_kindsarray<string>opcional

Per-image ingest hint aligned with reference_image_urls: virtual (portrait library), real (alias), skip (direct URL; default when omitted).

reference_imagesarray<object>opcional

Structured reference images: [{ url, portrait: "virtual"|"real"|"skip" }]. Alternative to reference_image_urls + reference_portrait_kinds.

virtual_portraitsarray<string>opcional

Portrait URLs always uploaded to the virtual portrait library before generation.

real_portraitsarray<string>opcional

Portrait URLs (including real-person photos) uploaded to the virtual portrait library before generation.

reference_video_urlsarray<string>opcional

Reference video URLs (max 3). Never uploaded to the asset library.

reference_audio_urlsarray<string>opcional

Reference audio URLs (max 3). Never uploaded to the asset library.

generate_audiobooleanopcional

Generate synchronized audio with the video.

return_last_framebooleanopcional

Return the generated video's last frame.

resolutionenum<string>opcional

Output video resolution (480p or 720p).

aspect_ratioenum<string>opcional

Output aspect ratio. Use adaptive for single-frame or first/last-frame I2V.

durationintegeropcional

Video duration from 4 to 15 seconds.

output_formatenum<string>opcional

Video output format.

web_searchbooleanopcional

Enable online search for the generation.

nsfw_checkerbooleanopcional

Enable content safety checking (97AI relay; not forwarded to upstream output moderation).

Ejemplo
cURL
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

POSTImage to Videobytedance/seedance-2-mini
campos input
promptstringobligatorio

Text prompt (max 30000 characters). Use @image1, @video1, @audio1 when reference_* fields are set.

first_frame_urlstringopcional

First-frame image URL or asset://{assetId}. Mutually exclusive with reference_* fields.

last_frame_urlstringopcional

Last-frame image URL or asset://{assetId}. Requires first_frame_url.

first_frame_portrait_kindenum<string>opcional

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>opcional

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>opcional

Reference image URLs (max 9). Mutually exclusive with strict first/last frame mode.

reference_portrait_kindsarray<string>opcional

Per-image ingest hint aligned with reference_image_urls: virtual (portrait library), real (alias), skip (direct URL; default when omitted).

reference_imagesarray<object>opcional

Structured reference images: [{ url, portrait: "virtual"|"real"|"skip" }]. Alternative to reference_image_urls + reference_portrait_kinds.

virtual_portraitsarray<string>opcional

Portrait URLs always uploaded to the virtual portrait library before generation.

real_portraitsarray<string>opcional

Portrait URLs (including real-person photos) uploaded to the virtual portrait library before generation.

reference_video_urlsarray<string>opcional

Reference video URLs (max 3). Never uploaded to the asset library.

reference_audio_urlsarray<string>opcional

Reference audio URLs (max 3). Never uploaded to the asset library.

generate_audiobooleanopcional

Generate synchronized audio with the video.

return_last_framebooleanopcional

Return the generated video's last frame.

resolutionenum<string>opcional

Output video resolution (480p or 720p).

aspect_ratioenum<string>opcional

Output aspect ratio. Use adaptive for single-frame or first/last-frame I2V.

durationintegeropcional

Video duration from 4 to 15 seconds.

output_formatenum<string>opcional

Video output format.

web_searchbooleanopcional

Enable online search for the generation.

nsfw_checkerbooleanopcional

Enable content safety checking (97AI relay; not forwarded to upstream output moderation).

Ejemplo
cURL
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.

Image-to-video (portrait + virtual)
cURL
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"
  }
}'
First / last frame (scene skip + adaptive)
cURL
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"
  }
}'
Omni reference (portrait virtual + scene skip)
cURL
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"
    ]
  }
}'