단일 패스로 최대 30초 내러티브
Seedance 2.5는 단일 패스로 최대 30초 길이의 네이티브 클립을 생성하며, 장면 전환과 템포 변화도 같은 생성 안에 담습니다. 샷 전체가 하나의 연속된 컨텍스트를 유지하기 때문에 이음새마다 어긋나기 쉬운 스티칭과 달리 모션·조명·정체성이 끝까지 일관됩니다.
ByteDance의 Seedance 2.5를 하나의 통합 API로 사용해 장편 시네마틱 AI 비디오를 생성하세요. 단일 패스로 최대 30초 클립을 네이티브 동기화 오디오, 최대 50개의 멀티모달 참조와 함께 만들 수 있습니다. 단일 REST 엔드포인트, 비동기 작업, 웹훅을 갖추었으며 별도의 ByteDance 계정을 관리할 필요가 없습니다.
Seedance 2.5을(를) 단 한 번의 API 호출로 통합하세요. 하나의 키, 하나의 통합 엔드포인트, 그리고 Apiframe의 모든 모델에 적용되는 통합 청구.
model: "seedance-2.5" Seedance 2.5는 단일 패스로 최대 30초 길이의 네이티브 클립을 생성하며, 장면 전환과 템포 변화도 같은 생성 안에 담습니다. 샷 전체가 하나의 연속된 컨텍스트를 유지하기 때문에 이음새마다 어긋나기 쉬운 스티칭과 달리 모션·조명·정체성이 끝까지 일관됩니다.
한 번의 생성에서 최대 50개의 멀티모달 참조(참조 이미지 최대 30개·비디오 클립 최대 10개·오디오 최대 10개)를 받아들일 수 있어 Seedance 2에서 크게 확장되었습니다. 모델이 참조 세트 전체를 함께 읽어 캐릭터 정체성·제품 외형·브랜드 팔레트·카메라 스타일·목소리를 클립 전반에 고정합니다.
오디오는 나중에 더빙하는 대신 같은 패스에서 함께 생성되어 음악·효과음·대사·립싱크가 화면에 동기화됩니다. 출력은 480p 또는 720p로 렌더링되며, 클립의 모든 1초가 동일한 초당 요금으로 청구됩니다.
패닝·달리·오빗·포커스 변경 같은 멀티샷 구성과 카메라 연출을 프롬프트에서 직접 지시할 수 있으며, Seedance 2.5는 컷 전반에서 피사체를 일관되게 유지합니다. 한 번의 호출로 단일 촬영이 아닌 편집된 듯한 시퀀스가 반환되고, 프롬프트 준수도는 Seedance 2 대비 약 20% 향상되었습니다.
프레임의 나머지를 안정적으로 유지한 채 특정 영역이나 요소만 편집하거나, 기존 클립을 참조 비디오로 편집할 수 있습니다. 소스의 캐릭터·환경·카메라 움직임·구도·액션 리듬·길이를 그대로 유지하면서 요청한 부분만 변경하며, 테이크 전체를 다시 생성할 필요가 없습니다.
움직임·각도 변화·장면 전환 전반에서 캐릭터의 정체성을 일정하게 유지해 영화, 브랜드 영상, 연작 콘텐츠에 중요합니다. 네이티브 오디오와 화면 텍스트가 여러 언어로 렌더링되어 별도의 패스 없이 한 번의 생성으로 현지화할 수 있습니다.
Apiframe의 Seedance 2.5 API로 생성한 출력 예시입니다.
Drone shot flying over a tropical coastline at sunrise, smooth cinematic motion
A vintage car driving through a rainy neon city at night, reflections on the asphalt
Time-lapse of clouds rolling over a mountain range in warm golden light
API 키와 함께 POST /v2/videos/generate 요청을 한 번 보내면 Seedance 2.5로 생성이 시작됩니다. 응답으로 폴링하거나 웹훅으로 받을 수 있는 jobId가 반환됩니다.
curl -X POST https://api.apiframe.ai/v2/videos/generate \
-H "X-API-Key: afk_your_api_key_here" \
-H "Content-Type: application/json" \
-d '{
"prompt": "a cinematic sunrise over a futuristic cityscape, smooth camera push-in",
"model": "seedance-2.5",
"seedanceParams": {
"resolution": "720p",
"start_image": "https://example.com/input.jpg",
"generate_audio": false,
"end_image": "https://example.com/input.jpg"
}
}'import requests
response = requests.post(
"https://api.apiframe.ai/v2/videos/generate",
headers={
"X-API-Key": "afk_your_api_key_here",
"Content-Type": "application/json",
},
json={
"prompt": "a cinematic sunrise over a futuristic cityscape, smooth camera push-in",
"model": "seedance-2.5",
"seedanceParams": {
"resolution": "720p",
"start_image": "https://example.com/input.jpg",
"generate_audio": False,
"end_image": "https://example.com/input.jpg"
}
},
)
print(response.json()) # { "jobId": "...", "status": "QUEUED" }const response = await fetch("https://api.apiframe.ai/v2/videos/generate", {
method: "POST",
headers: {
"X-API-Key": "afk_your_api_key_here",
"Content-Type": "application/json",
},
body: JSON.stringify({
"prompt": "a cinematic sunrise over a futuristic cityscape, smooth camera push-in",
"model": "seedance-2.5",
"seedanceParams": {
"resolution": "720p",
"start_image": "https://example.com/input.jpg",
"generate_audio": false,
"end_image": "https://example.com/input.jpg"
}
}),
});
const { jobId } = await response.json();
console.log(jobId);생성은 비동기로 처리됩니다. 제출이 성공하면 202 Accepted와 jobId가 반환됩니다. 상태가 COMPLETED가 될 때까지 GET /v2/jobs/{id}를 폴링하거나 webhook_url을 지정하면 result 필드에 출력 URL이 담깁니다.
{
"jobId": "b2c3d4e5-f6a7-8901-bcde-f23456789012",
"status": "QUEUED"
}curl https://api.apiframe.ai/v2/jobs/JOB_ID \
-H "X-API-Key: afk_your_api_key_here"import requests, time
while True:
job = requests.get(
"https://api.apiframe.ai/v2/jobs/JOB_ID",
headers={"X-API-Key": "afk_your_api_key_here"},
).json()
if job["status"] in ("COMPLETED", "FAILED"):
break
time.sleep(2)
print(job["result"])let job;
do {
await new Promise((r) => setTimeout(r, 2000));
job = await fetch("https://api.apiframe.ai/v2/jobs/JOB_ID", {
headers: { "X-API-Key": "afk_your_api_key_here" },
}).then((r) => r.json());
} while (job.status !== "COMPLETED" && job.status !== "FAILED");
console.log(job.result);Seedance 2.5 엔드포인트가 허용하는 요청 파라미터입니다. 모델별 옵션은 아래에 표시된 파라미터 객체 안에 중첩됩니다.
| 파라미터 | 유형 | 필수 | 기본값 | 허용값 / 범위 | 설명 |
|---|---|---|---|---|---|
| prompt | string | 필수 | — | — | 생성할 내용에 대한 텍스트 설명. |
| model | string | 필수 | "seedance-2.5" | "seedance-2.5" | 이 엔드포인트의 모델 식별자. |
| seedanceParams.resolution | string | 선택 | "720p" | "480p", "720p" | Resolution |
| seedanceParams.start_image | string (URL) | 선택 | — | — | Use a still as the first frame of the clip. |
| seedanceParams.generate_audio | boolean | 선택 | false | — | Generate audio |
| seedanceParams.end_image | string (URL) | 선택 | — | — | Optional last frame to control the ending. |
| seedanceParams.reference_image_urls | string[] (URLs) | 선택 | — | — | Reference images |
| seedanceParams.reference_video_urls | string[] (URLs) | 선택 | — | — | Reference videos |
| seedanceParams.reference_audio_urls | string[] (URLs) | 선택 | — | — | Reference audio |
| seedanceParams.return_last_frame | boolean | 선택 | false | — | Also return the final frame as a still image. |
| seedanceParams.seed | number | 선택 | — | step 1 | Reuse a number to reproduce the same result. |
Seedance 2.5 API에 대한 일반적인 질문입니다.
Seedance 2.5는 ByteDance의 차세대 멀티모달 AI 비디오 모델로 Seedance 2.0에서 세대가 도약한 버전입니다. 2026년 7월 31일에 출시되었고 2026년 8월 7일부터 API로 이용할 수 있습니다. 주요 특징은 단일 패스 30초 클립, 최대 50개의 멀티모달 참조, 영역 단위 로컬 편집, 감독 수준의 카메라 제어, 네이티브 동기화 오디오입니다.
텍스트·이미지·오디오·비디오를 지원하며, 한 번의 생성에서 최대 50개의 멀티모달 참조(참조 이미지 30개·참조 비디오 10개·참조 오디오 10개)를 결합할 수 있습니다. 참조 대신 첫 프레임(및 선택적 마지막 프레임)으로 클립을 고정할 수도 있습니다.
네. 오디오는 영상과 동일한 잠재 공간에서 함께 생성되어 음악·효과음·대사·립싱크를 포함한 동기화된 네이티브 오디오를 만듭니다. 나중에 사운드를 입히는 무음 클립이 아닙니다.
단일 패스로 4초에서 30초까지 자유롭게 지정할 수 있으며, 해상도는 480p 또는 720p, 화면 비율은 21:9부터 9:16까지(어댑티브 모드 포함) 지원합니다. 요금은 출력 1초 단위로 부과됩니다.
네. 프레임의 나머지를 일관되게 유지한 채 하나의 요소만 바꾸는 영역 단위 로컬 편집과, 소스 클립의 캐릭터·환경·카메라 움직임·구도·액션 리듬·길이를 유지하면서 지정한 요소를 교체·추가하는 참조 비디오 편집을 지원합니다.
생성된 비디오 1초 단위로 청구되므로 긴 클립일수록 그만큼 비용이 늘어납니다. 성공한 생성에 대해서만 비용을 지불합니다.
아직 궁금한 점이 있으신가요?
API 키를 받아 몇 분 만에 Seedance 2.5을(를) 통합하세요 — 사용한 만큼 지불.
궁금하신 점이 있으신가요? Discord에 참여하거나 영업팀에 문의하세요.