curl --request POST \
--url https://toapis.com/v1/videos/generations \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{"model":"seedance-2-5","prompt":"영화 같은 제품 클로즈업, 카메라가 천천히 전진한다.","duration":10,"aspect_ratio":"16:9","resolution":"720p","generate_audio":true}'
{
"model": "seedance-2-5",
"prompt": "동영상1을 뒤로 연장하고 카메라를 계속 밀어 넣어 창밖의 도시를 보여 준다.",
"video_operation": "extend",
"duration": 11,
"aspect_ratio": "adaptive",
"output_format": "mov",
"video_with_roles": [{"url": "https://example.com/source.mov", "role": "reference_video"}]
}
{"id":"tsk_vid_xxx","object":"generation.task","model":"seedance-2-5","status":"in_progress","progress":10,"created_at":1781577600}
seedance-2-5
Seedance 2.5 동영상 생성
seedance-2-5 모델로 동영상 생성
POST
/
v1
/
videos
/
generations
curl --request POST \
--url https://toapis.com/v1/videos/generations \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{"model":"seedance-2-5","prompt":"영화 같은 제품 클로즈업, 카메라가 천천히 전진한다.","duration":10,"aspect_ratio":"16:9","resolution":"720p","generate_audio":true}'
{
"model": "seedance-2-5",
"prompt": "동영상1을 뒤로 연장하고 카메라를 계속 밀어 넣어 창밖의 도시를 보여 준다.",
"video_operation": "extend",
"duration": 11,
"aspect_ratio": "adaptive",
"output_format": "mov",
"video_with_roles": [{"url": "https://example.com/source.mov", "role": "reference_video"}]
}
{"id":"tsk_vid_xxx","object":"generation.task","model":"seedance-2-5","status":"in_progress","progress":10,"created_at":1781577600}
중국 본토 사용자 안내: 중국 본토 사용자는
https://toapis.cn 를 API 엔드포인트(Base URL)로 사용해 주세요. 본 문서의 예시에서 https://toapis.com 을 https://toapis.cn 로 바꿔 주세요.seedance-2-5이며 Volcengine 상위 모델 ID는 doubao-seedance-2-5-260628입니다.
- 텍스트-동영상, 첫 프레임/첫·마지막 프레임 이미지-동영상, 편집, 동영상 연장 및 멀티모달 참조를 지원합니다.
- 이미지·동영상·오디오 참조와 오디오만 사용하는 참조를 지원합니다.
- 비동기 작업입니다. 제출 결과의
generation.task를 작업 상태 API로 조회합니다.
Authorizations
string
필수
모든 요청은 Bearer Token 인증이 필요합니다. API Key 관리에서 키를 발급받고
Authorization: Bearer YOUR_API_KEY를 사용하세요.Body
string
기본값:"seedance-2-5"
필수
ToAPIs 공개 모델명입니다.
seedance-2-5를 사용합니다.string
장면, 카메라 움직임, 피사체 동작, 스타일과 오디오 분위기를 설명합니다. 참조 자료는 “이미지 1”, “동영상 1”, “오디오 1”처럼 지정합니다.
string
기본값:"generate"
동영상 작업:
generate, edit, extend. 편집과 연장에는 하나 이상의 video_with_roles가 필요하며, 편집은 duration=-1, 연장은 4–30 또는 -1을 사용합니다. 세 작업은 같은 엔드포인트를 사용합니다.string
주문 번호 또는 내부 작업 ID입니다.
GET /v1/videos/generations/{client_business_id}로 조회할 수 있습니다.integer
출력 동영상 길이(초)입니다. 범위는
4–30이며 -1은 모델이 자동으로 선택합니다. 편집은 -1만 사용하며 출력 길이는 입력 동영상과 거의 같습니다. 연장은 4–30 또는 -1을 사용하며 연장 후 출력 전체 길이를 지정합니다.string
21:9, 16:9, 4:3, 1:1, 3:4, 9:16, adaptive 중 하나입니다. 편집·연장·첫/마지막 프레임 작업은 adaptive를 사용합니다.string[]
호환용 이미지 URL 배열입니다. 새 연동에는 역할을 명시하는
image_with_roles를 권장하며 두 필드는 함께 보낼 수 없습니다.array
url과 role을 포함하는 이미지 배열입니다. role은 first_frame, last_frame, reference_image이며 최대 30장입니다. 프레임 모드와 참조 이미지 모드는 함께 사용할 수 없습니다.array
참조 동영상 배열입니다. role은
reference_video이며 최대 10개입니다.array
참조 오디오 배열입니다. role은
reference_audio이며 최대 10개입니다. 오디오만 참조하는 요청도 지원합니다.string
해상도:
480p, 720p 또는 1080p.string
기본값:"mp4"
mp4와 mov를 지원합니다.boolean
기본값:true
동기화된 오디오를 생성할지 여부입니다.
boolean
기본값:false
완료 결과에 마지막 프레임 이미지를 포함할지 여부입니다.
array
사용 가능한 도구는
[{ "type": "web_search" }]입니다. 텍스트 전용 요청에서만 사용할 수 있습니다.string
ToAPIs 작업 완료 콜백 주소입니다. 작업 Webhook을 참고하세요.
string
호출자가 지정하는 추적 ID입니다.
boolean
기본값:false
true로 설정하면 NSFW 콘텐츠 생성을 금지합니다.참조 자료 제한
총 50개까지 가능합니다(이미지 30장, 동영상 10개, 오디오 10개). 명시적인 역할을 사용하세요.잘못된 조합은 실패합니다. 편집과 연장은 상위 작업 유형을 명시하므로 제한과 맞지 않으면 제출 시 즉시 오류가 반환됩니다. 그 외에는 소재와 프롬프트로 작업 유형을 판단하며, 제한과 맞지 않으면 비동기로
InvalidParameter.TaskTypeConstraint가 반환됩니다. 편집·연장·첫/마지막 프레임 작업에는 aspect_ratio=adaptive를 지정하세요.소재 심사
요청에 이미지, 동영상, 오디오 소재가 있으면 일부 채널은 생성 제출 전에 소재를 자동으로 심사합니다. 추가 파라미터는 필요 없으며 기존 미디어 필드에 소재 URL을 전달하면 됩니다.- 요청이 접수되면 즉시 동영상 작업을 반환합니다. 심사가 필요하면 작업은
queued상태를 유지하며, 요청의 모든 소재가 통과한 뒤에 생성을 제출합니다. 최초 심사에는 몇 분이 걸릴 수 있으며, 같은 사용자가 같은 채널에서 같은 URL을 다시 사용하면 심사 결과를 재사용합니다. - 소재 준비는 라운드당 기본 최대 20분입니다. 심사 거부 또는 준비 시간 초과 시 작업은
failed로 종료되며 사유는error.message에서 확인할 수 있습니다. 심사를 통과하지 못하면 동영상 생성 요금은 청구되지 않습니다. - 소재는 공개 HTTP(S) URL이어야 하며 Base64와 로컬 경로는 지원하지 않습니다. 이미지는 20 MB 이하(일부 채널은 최대 30 MB), 동영상과 오디오는 100 MiB 이하로 준비하세요. 각 모델의 기존 형식 제한은 그대로 적용됩니다.
- 심사를 진행하는 채널은 접수 시 소재를 검증합니다. URL에 인증 정보가 있거나 2048바이트를 넘는 경우, 같은 URL을 다른 타입으로 사용한 경우, 한 요청의 소재 참조가 64개를 넘는 경우 HTTP 400을 반환하며
error.code는invalid_private_assets입니다. - 소재는 URL로 식별합니다. 파일 내용이 바뀌면 새 URL을 사용하세요.
- 드래프트 기반 최종 생성 요청(
draft_task_id)은 심사하지 않습니다. - 기존
asset://참조는 폐지되었으며 HTTP 400을 반환합니다.
완료 결과는동영상 작업 조회에서 확인하세요. 원본 URL 전달이 활성화되면
result.data[].url을 우선 사용하고 접근할 수 없을 때만 선택적 fallback_url을 사용하세요. 마지막 프레임은 last_frame_url과 fallback_last_frame_url을 사용합니다. 대체 필드는 사본을 사용할 수 있을 때만 반환됩니다.Response
string
상태 조회에 사용하는 작업 ID.
string
요청에 지정한 경우 반환됩니다.
string
generation.task로 고정됩니다.string
요청한 모델명.
string
queued, in_progress, completed, failed.integer
0–100 진행률.integer
생성 시각 타임스탬프.
curl --request POST \
--url https://toapis.com/v1/videos/generations \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{"model":"seedance-2-5","prompt":"영화 같은 제품 클로즈업, 카메라가 천천히 전진한다.","duration":10,"aspect_ratio":"16:9","resolution":"720p","generate_audio":true}'
{
"model": "seedance-2-5",
"prompt": "동영상1을 뒤로 연장하고 카메라를 계속 밀어 넣어 창밖의 도시를 보여 준다.",
"video_operation": "extend",
"duration": 11,
"aspect_ratio": "adaptive",
"output_format": "mov",
"video_with_roles": [{"url": "https://example.com/source.mov", "role": "reference_video"}]
}
{"id":"tsk_vid_xxx","object":"generation.task","model":"seedance-2-5","status":"in_progress","progress":10,"created_at":1781577600}