Skip to main content
POST
Create a Seedance 2.0 video generation task
오른쪽의 플레이그라운드를 사용합니다: AuthorizationBearer sk-your-api-key로 설정하고( Token에는 SeeDance2 그룹이 활성화되어 있어야 합니다), model / content를 입력한 다음 전송합니다. 성공적으로 제출되면 작업 id이 반환됩니다. 폴링 및 다운로드 흐름은 아래 코드 샘플에서 다룹니다.
플레이그라운드의 “no response received” 오류에 관하여: 이 엔드포인트는 비동기 작업 엔드포인트이며, 브라우저에서 Send를 클릭하면 해당 메시지가 표시될 수 있습니다. 브라우저의 cross-origin 안전 검사가 응답을 차단한 것이지만, 작업은 실제로 성공적으로 제출되었습니다(아래 조회 엔드포인트 또는 콘솔 로그로 확인하십시오). 또한 플레이그라운드는 작업만 생성할 수 있으며, 동영상을 폴링하거나 다운로드할 수는 없습니다. 전체 create → poll → download 흐름을 실행하려면 아래 코드 샘플(cURL / Python / Node.js)을 복사하여 실행하십시오.
이것은 Seedance 2.0의 작업 생성 엔드포인트입니다. 텍스트-투-비디오, first+last/first frame, 그리고 멀티모달 reference-to-video가 모두 이를 공유하며 — content 배열이 모드를 선택합니다. 모델 선택, 요금, 해상도/픽셀 표, 그리고 FAQ는 Seedance 2.0 개요를 참조하십시오.
  • 경로 접두사는 /seedance/api/v3입니다 — /api 세그먼트를 삭제하지 마십시오, 그리고 /v1/videos를 사용하지 마십시오
  • Token에는 SeeDance2 그룹이 활성화되어 있어야 합니다. 그렇지 않으면 “이 모델에 사용할 수 있는 채널이 없습니다”가 표시됩니다
  • generate_audio의 기본값은 true입니다(출력에 소리가 포함됨) — 무음 동영상을 위해 false를 명시적으로 전달하십시오
  • Python requests는 "Accept-Encoding": "identity" 헤더가 필요합니다 — 이것이 없으면 gzip 디코딩 오류, 잘린 non-JSON 본문(예: 앞의 {"가 사라지고 id":"cgt-xxx"}만 수신됨), 또는 간헐적인 400 오류가 발생할 수 있습니다
  • 성공 상태 코드는 succeeded입니다(completed 아님); 동영상 URL은 content.video_url에 있으며 24시간 후 만료됩니다

코드 예제

매개변수 참조

Seedance 2.0은 frames, camera_fixed, 또는 service_tier(온라인 추론 전용)을 지원하지 않습니다. 이들은 Seedance 1.x 매개변수이며 무시되거나 거부됩니다.

생성 모드 (콘텐츠 조합)

세 가지 이미지 모드는 상호 배타적입니다. 이미지는 공개 URL, Base64 (data:image/png;base64,...), 그리고 에셋 ID (asset://...)를 지원합니다. 실제 인간 얼굴이 포함된 입력은 거부됩니다. 오디오는 최소 하나의 이미지 또는 video와 함께 전송해야 합니다. 엔드투엔드 에셋 참조 코드(ingest → asset:// → generate → download)는 에셋 참조 가이드를 참조하십시오.

응답 형식

생성은 작업 ID만 반환합니다(동영상은 아님):
GET /seedance/api/v3/contents/generations/tasks/{id}를 폴링하십시오. 성공한 작업은 다음과 같습니다(저희 테스트의 실제 샘플입니다):
  • 동영상 URL은 최상위가 아니라 **content.video_url**에 있습니다. 서명된 링크이며 24시간 후 만료됩니다 — 즉시 다운로드하십시오
  • 상태 머신: queued → running → succeeded / failed / expired; 성공은 succeeded
  • 링크는 일반 GET으로 다운로드하십시오 — 서명된 URL에는 Authorization 헤더를 보내지 마십시오
usage.completion_tokens는 과금된 token 수이며 tokens ≈ duration × width × height × 24 / 1024를 따릅니다(저희 테스트에서는 0.1% 이내입니다). duration: -1 또는 ratio: adaptive를 사용하면 실제 길이와 비율이 응답의 duration / ratio 필드에 보고됩니다.

인증

Authorization
string
header
필수

API key from the APIYI console (Token must have the SeeDance2 group enabled)

본문

application/json
model
enum<string>
필수

Model ID (plain ID, no ep- prefix). Standard supports 1080p; fast caps at 720p but generates faster — both bill at the same rate on APIYI

사용 가능한 옵션:
doubao-seedance-2-0-260128,
doubao-seedance-2-0-fast-260128
예시:

"doubao-seedance-2-0-fast-260128"

content
object[]
필수

Input array. Text-to-video: a single text item. Image-to-video: add image_url items (role: first_frame / last_frame). Multi-modal reference-to-video: 0-9 image_url items (role: reference_image) plus optional 0-3 video_url / 0-3 audio_url (at least 1 image or 1 video; can create / edit / extend videos). The three image modes are mutually exclusive

resolution
enum<string>
기본값:720p

Resolution tier (defines pixel area — every ratio in a tier costs the same). 1080p is not available on the fast model

사용 가능한 옵션:
480p,
720p,
1080p
ratio
enum<string>
기본값:adaptive

Aspect ratio. adaptive auto-fits the input (recommended for image-to-video to avoid cropping); the actual ratio is returned in the task's ratio field

사용 가능한 옵션:
16:9,
4:3,
1:1,
3:4,
9:16,
21:9,
adaptive
duration
integer
기본값:5

Video length in whole seconds, 4-15; or -1 to let the model choose (billed by actual output). Cost scales linearly with duration

예시:

5

generate_audio
boolean
기본값:true

Generate synchronized audio (voice, SFX, background music; mono). Note it DEFAULTS TO TRUE — pass false explicitly for silent video

watermark
boolean
기본값:false

Add an AI-generated watermark in the bottom-right corner

seed
integer
기본값:-1

Random seed, [-1, 2^32-1]. The same seed produces similar (not identical) results; -1 means random

return_last_frame
boolean
기본값:false

Return the last frame as a watermark-free png (same dimensions as the video) — chain it as the first frame of the next task to produce continuous multi-clip videos

execution_expires_after
integer
기본값:172800

Task expiry threshold in seconds; tasks exceeding it are marked expired. Range [3600, 259200]

응답

Task created. Returns the task ID for polling

Creation response. Poll GET /seedance/api/v3/contents/generations/tasks/{id}; on success the video URL is at content.video_url (expires in ~24 h) and billed tokens at usage.completion_tokens

id
string

Video generation task ID (kept for 7 days)

예시:

"cgt-20260606160057-6bbjd"