ByteDance: Seedance 1.5 Pro
Seedance 1.5 Pro는 텍스트나 이미지로 영상을 생성하며, 동기화된 목소리·효과음·배경 음악도 만들 수 있습니다. 오디오는 켜거나 끌 수 있고, 문서상 프로필은 길이 4–12초의 장면, adaptive(적응형) 구도, 온라인 또는 flex 처리를 제공합니다.
모델 소개
이 설명은 모델의 기능을 다룹니다. Ailoot에서 사용할 수 있는 입력, 출력 및 옵션은 아래에 선택한 메서드별로 표시됩니다.
Seedance 1.5 Pro는 텍스트나 이미지로 영상을 생성하며, 화면과 함께 사운드도 생성할 수 있습니다. 정확한 선택자는 doubao-seedance-1-5-pro-251215입니다. 오디오 제어가 무음 Seedance 1.0 프로필과의 차이입니다. generate_audio=true는 동기화된 오디오를, false는 무음 영상을 요청합니다. 새 구상에는 글로 쓴 장면을 쓰고, 시작 피사체와 구도를 정할 때는 이미지를 사용하세요.
화면의 동작과 사운드를 같은 장면의 구성 요소로 설명하세요. 피사체, 배경, 움직임, 카메라를 지정한 뒤 의도한 목소리, 효과음, 배경 음악을 설명합니다. 인물 장면에서는 주변에 바람이 부는 가운데 사람이 눈을 뜨고 카메라가 천천히 물러날 수 있습니다. 상품 장면에서는 무관한 효과 목록을 더하지 말고, 뚜껑이 열리거나 물체가 받침면에 닿는 것처럼 보이는 사건에 소리를 연결하세요.
모델은 프롬프트와 시각적 콘텐츠에서 목소리, 효과음, 배경 음악을 생성할 수 있습니다. 가이드는 발화할 대사를 큰따옴표로 감싸도록 권장합니다. 요청한 동작과 쉼에 맞도록 말을 짧게 하고, 여러 인물이 있으면 누가 말하는지 구분하세요. 실제 문구, 목소리의 인물 배정, 화면과의 동기화를 검토합니다. 사운드 지시는 생성될 표현을 안내하는 것으로, 이 프로필의 문서화된 요청에서 별도로 업로드한 음성 참조 입력을 뜻하지는 않습니다.
이미지 기반 영상에는 텍스트와 함께 image_url 항목을 사용합니다. JPEG, PNG, WEBP, BMP, TIFF, GIF 형식의 접근 가능한 이미지 URL 또는 Base64 data URL을 제공하세요. 문서상 이미지 제한은 30 MB 미만, 양쪽 변이 모두 300픽셀보다 크고 6000픽셀보다 작으며, 너비와 높이의 비율이 0.4보다 크고 2.5보다 작아야 한다는 것입니다. 의도한 크롭과 피사체를 명확히 준비한 다음, 그 구도에서의 움직임을 설명하세요. 이미지 예제는 참조 이미지에 맞추기 위해 adaptive 화면비를 사용합니다.
프로필별 길이 가이드에는 네 초부터 열두 초까지의 정수 초, 또는 그 범위 안에서 모델이 길이를 고르도록 하는 -1이 나옵니다. 기본 길이는 다섯 초입니다. Seedance 1.5 Pro 기본 해상도는 720p이며, 보관된 프로필 표에는 480p와 720p가 명시되어 있습니다. 전용 작업 가이드는 1.5 Pro에 1080p를 제공하지 않습니다. 고정 화면비는 16:9, 4:3, 1:1, 3:4, 9:16, 21:9이고, 문서상 1.5 기본값은 adaptive입니다. 요청한 값을 이미 반환된 결과물로 여기지 말고, 실제 클립의 길이와 비율을 확인하세요.
요청에는 두 처리 등급이 있습니다. service_tier=default는 온라인 처리를, flex는 더 긴 지연을 허용하는 작업용 오프라인 처리를 선택합니다. 작업 제출 후에는 등급을 바꿀 수 없습니다. 작업 흐름의 시간 요구에 맞게 선택하고, 요청 기록에 남기세요. 오디오 모드와 처리 등급은 별도 선택입니다. 무음 클립이 자동으로 오프라인 작업이 되지는 않으며, 오디오를 켠다고 처리 등급이 선택되는 것도 아닙니다.
seed, 워터마크, 카메라 지시를 장면과 일치시키세요. 텍스트에 포함된 매개변수 명령은 별도의 선택적 매개변수보다 우선합니다. 카메라 고정 제어는 참조 이미지를 쓰는 경우 제외되며, 적용되는 경우에도 화면의 완전한 고정을 보장하지 않습니다. 이미지 중심 애니메이션에서는 카메라 제어가 숏 설명의 필요성을 없앤다고 가정하지 말고, 의도한 움직임을 직접 설명하세요.
사용량은 영상 토큰으로 측정하며, 출력 너비 × 출력 높이 × 프레임 속도 × 출력 길이 / 1024로 계산합니다. 완료된 작업은 이 수량을 usage.completion_tokens로 보고합니다. 보고된 사용량을 완성 클립 및 요청 설정과 함께 보관하세요. 오디오 켜짐·꺼짐과 온라인·flex 처리는 사용량 기반 요금에서도 각각 별도 범주로 유지됩니다.
제출하면 비동기 작업 ID가 반환됩니다. 완료까지 작업을 추적한 뒤 content.video_url로 제공되는 영상을 저장하세요. 문서상 생성 파일 보관 기간은 일주일입니다. 만료 제어는 생성 시점부터 측정하며, 기본값은 172800초, 허용 범위는 3600~259200초입니다. 설정 기간이 지난 미완료 작업은 expired가 됩니다. 최종 클립, 원본 이미지, 정확한 영상·오디오 지시를 함께 보관한 다음, 전체 결과의 동작, 정체성, 카메라 연속성, 사운드 일치를 검토하세요.
Ailoot Ultra · 동영상 POST /v1/videos doubao-seedance-1-5-pro-251215
doubao-seedance-1-5-pro-251215
doubao-seedance-1-5-pro-251215시작하기
Seedance 1.5 Pro는 텍스트나 이미지로 영상을 생성하며, 동기화된 목소리·효과음·배경 음악도 만들 수 있습니다. 오디오는 켜거나 끌 수 있고, 문서상 프로필은 길이 4–12초의 장면, adaptive(적응형) 구도, 온라인 또는 flex 처리를 제공합니다.
- 허용 입력
- 텍스트 · 이미지
- 결과
- 동영상
Ailoot에서 사용 가능 · 입력 및 메서드
Ailoot Ultra · 동영상 POST /v1/videos
- 입력
text,image- 출력
video
| 필드 | 유형 | 요건 | 값과 한도 | 기본값 |
|---|---|---|---|---|
필드model | 유형string | 요건필수 | 값과 한도 doubao-seedance-1-5-pro-251215 | 기본값— |
필드content | 유형array | 요건필수 | 값과 한도 조건: 네이티브 텍스트/미디어 객체입니다. 바깥쪽 배열은 비어 있으면 안 됩니다. 이 Ailoot 범용 생성자는 중첩 노드의 유형을 검증하지 않습니다. | 기본값— |
필드duration | 유형integer | 요건선택 사항 | 값과 한도 조건: 기본 1.x 스키마는 2–12입니다. 이후 공통 설명에는 1.5가 4–12 또는 -1로 명시되어 있습니다. 예제는 양쪽 모두에 명시된 5를 사용합니다. | 기본값5 |
필드resolution | 유형string | 요건선택 사항 | 값과 한도 480p, 720p 조건: Seedance 1.5 Pro는 480p와 720p를 지원하며 1080p는 제외됩니다. 문서에 명시된 기본 해상도는 720p입니다. | 기본값720p |
필드ratio | 유형string | 요건선택 사항 | 값과 한도 16:9, 4:3, 1:1, 3:4, 9:16, 21:9, adaptive 조건: 문서에 명시된 Seedance 1.5 Pro의 기본 화면 비율은 adaptive입니다. 고정 화면 비율 선택지는 유지됩니다. | 기본값adaptive |
필드service_tier | 유형string | 요건선택 사항 | 값과 한도 default, flex 조건: default=online, flex=offline입니다. 생성 전에 선택하세요. | 기본값default |
필드seed | 유형integer | 요건필수 | 값과 한도 최솟값: -1 최댓값: 4,294,967,295 | 기본값-1 |
필드camerafixed | 유형boolean | 요건필수 | 값과 한도 조건: Ailoot에서 필수로 요구합니다. 문서에는 참조 이미지의 카메라 제어가 지원되지 않는다고 되어 있으며 효과는 보장되지 않습니다. | 기본값false |
필드watermark | 유형boolean | 요건필수 | 값과 한도 | 기본값false |
필드execution_expires_after | 유형integer | 요건필수 | 값과 한도 최솟값: 3,600 최댓값: 259,200 단위: 초 | 기본값172,800 |
필드generate_audio | 유형boolean | 요건선택 사항 | 값과 한도 조건: 1.5 전용으로, 생성된 동영상에 삽입되는 동기화된 사운드입니다. | 기본값true |
입력 자료 조합
메서드 매개변수와 수명 주기
| 매개변수 | 명세 |
|---|---|
매개변수content_type | 명세application/json |
매개변수required | 명세camerafixed, content, execution_expires_after, model, seed, watermark |
매개변수optional | 명세duration, resolution, ratio, service_tier, generate_audio |
매개변수material_types | 명세text, image |
매개변수additional_properties | 명세true |
매개변수validation_scope | 명세Ailoot는 필수 필드의 유형과 비어 있지 않은 model/content 배열을 확인합니다. 다른 요청 필드는 선택한 모델에 전달되도록 보존됩니다. |
매개변수image_constraints | 명세{"formats":["jpeg","png","webp","bmp","tiff","gif"],"aspect_ratio_exclusive":[0.4,2.5],"dimensions_px_exclusive":[300,6000],"file_size_mb_exclusive":30,"mb_bytes_definition":null} |
메서드 별칭: /v1/videos/generations
수명 주기: submit_once_poll_original
GET /v1/videos/{request_id}
GET /v1/videos/generations/{request_id}
GET /v1/videos/{request_id}/content
GET /v1/videos/generations/{request_id}/content
한 번 생성하고 반환된 공개 id/polling_url을 보존하세요.
원래 작업을 폴링하세요. succeeded 이후 실제 소유한 content.video_url을 다운로드하세요.
요금
최종 요금 계산 방식
표시된 요율은 생성 전 비용을 예상하는 데 사용됩니다. 최종 청구액은 최초 생성에 기록된 비용으로 계산됩니다. 측정된 출력 길이와 예상 수량은 최종 청구 수량이 아닙니다.
요금 정보는 요청 옵션을 추가하지 않습니다. 지원되는 매개변수는 선택한 메서드에 표시됩니다.
- 빠른 모드
- 미지정 빠른 모드를 선택한 경우
- Flex 모드
- 미지정 flex 모드를 선택한 경우
- 최대 추론 수준
- 미지정 최대 추론 수준에 default 조정값을 적용하는 경우
비교용 예상 요금
설정별 가격
각 요금을 표시된 조건과 대조하세요. 서로 대체되는 설정 묶음마다 하나의 요금만 적용하세요.
| 설정 | 요금표 | 예측 수량 | 오디오 생성 | 서비스 등급 | 과금 단위 | 요금 |
|---|---|---|---|---|---|---|
| 설정기본 토큰 요금 | 요금표기본 요금 | 예측 수량— | 오디오 생성— | 서비스 등급— | 과금 단위— | 요금 입력 · 입력 토큰 · 비교 전용 추정치 — / 1K 토큰 출력 · 출력 토큰 · 비교 전용 추정치 — / 1K 토큰 입력 · 캐시 읽기 · 비교 전용 추정치 — / 1K 토큰 입력 · 캐시 쓰기 · 비교 전용 추정치 — / 1K 토큰 입력 · 캐시 쓰기, 1시간 · 비교 전용 추정치 — / 1K 토큰 |
| 설정오프라인 처리 등급 (flex). 동기화된 오디오가 있는 출력. | 요금표— | 예측 수량— | 오디오 생성오디오 포함 | 서비스 등급flex | 과금 단위1K 동영상 토큰당 | 요금 출력 · 비교 전용 추정치 $0.0024 1K 동영상 토큰당 |
| 설정오프라인 처리 등급 (flex). 동기화된 오디오가 없는 출력. | 요금표— | 예측 수량— | 오디오 생성오디오 없음 | 서비스 등급flex | 과금 단위1K 동영상 토큰당 | 요금 출력 · 비교 전용 추정치 $0.0012 1K 동영상 토큰당 |
| 설정온라인 처리 등급 (default). 동기화된 오디오가 있는 출력. | 요금표— | 예측 수량— | 오디오 생성오디오 포함 | 서비스 등급default | 과금 단위1K 동영상 토큰당 | 요금 출력 · 비교 전용 추정치 $0.0048 1K 동영상 토큰당 |
| 설정온라인 처리 등급 (default). 동기화된 오디오가 없는 출력. | 요금표— | 예측 수량— | 오디오 생성오디오 없음 | 서비스 등급default | 과금 단위1K 동영상 토큰당 | 요금 출력 · 비교 전용 추정치 $0.0024 1K 동영상 토큰당 |
| 설정예상 생성 비용 | 요금표— | 예측 수량1회 생성 예상치 | 오디오 생성— | 서비스 등급— | 과금 단위— | 요금 출력 · 예상 생성 비용 · 비교 전용 추정치 $0.1152 생성 전 추정치 이 예상 금액은 추가 요금이나 생성 완료 시 적용되는 고정 요금이 아닙니다. |
Ailoot는 요청 전에 예상 금액을 미리 확보합니다. 결과를 받은 뒤 측정된 사용량을 기준으로 최종 요금을 정산합니다. 스트리밍 정산에는 최종 사용량 기록을 사용합니다. 금액 확보와 정산 방식 →
요청 예제
Ailoot Ultra · 동영상
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
cat > request.json <<'JSON_REQUEST'
{"model":"doubao-seedance-1-5-pro-251215","content":[{"type":"text","text":"女孩抱着狐狸,女孩睁开眼,温柔地看向镜头,狐狸友善地抱着,镜头缓缓拉出,女孩的头发被风吹动"}],"resolution":"480p","ratio":"1:1","duration":5,"service_tier":"default","seed":-1,"camerafixed":false,"watermark":false,"execution_expires_after":172800,"generate_audio":false}
JSON_REQUEST
curl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/videos \
-H "Authorization: Bearer $AILOOT_API_KEY" -H 'Content-Type: application/json' \
--data-binary @request.json -D response-headers.txt -o result.json
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
python3 - <<'PY_POLL'
import json
from pathlib import Path
from urllib.parse import quote,urljoin,urlsplit
r=json.loads(Path("result.json").read_text())
i=r.get("id")
if not isinstance(i,str) or not i.startswith("native302_"):raise SystemExit("Keep original response/headers/id; do not resubmit creation.")
u=urljoin("https://api.ailoot.ai",r.get("polling_url") or "/v1/videos/"+quote(i,safe=""))
p=urlsplit(u)
if p.scheme!="https" or p.netloc!="api.ailoot.ai" or not p.path.startswith("/v1/videos/"):raise SystemExit("Use actual Ailoot lookup path.")
Path("poll-url.txt").write_text(u)
PY_POLL
curl --fail-with-body --silent --show-error "$(cat poll-url.txt)" -H "Authorization: Bearer $AILOOT_API_KEY" -D status-headers.txt -o status.json
set -eu
python3 - <<'PY_ASSETS'
import json
from pathlib import Path
from urllib.parse import urlsplit
r=json.loads(Path("status.json").read_text())
if r.get("status")!="succeeded":raise SystemExit("Poll same original job until an owned result is returned.")
u=r.get("content",{}).get("video_url")
urls=[u] if isinstance(u,str) else u
if not isinstance(urls,list) or not urls:raise SystemExit("No completed video URL.")
for u in urls:
if not isinstance(u,str):raise SystemExit("Invalid returned URL.")
p=urlsplit(u)
if p.scheme!="https" or p.netloc!="api.ailoot.ai" or not p.path.startswith("/v1/media/assets/") or not p.path.endswith("/content") or not p.query:raise SystemExit("Wait for actual Ailoot-owned signed result.")
Path("asset-urls.txt").write_text("\n".join(urls)+"\n")
PY_ASSETS
index=0
while IFS= read -r asset_url; do
curl --fail-with-body --silent --show-error "$asset_url" -o "video-${index}.bin"
index=$((index + 1))
done < asset-urls.txt
결과 수신 및 저장
Ailoot Ultra · 동영상
공개 id/polling_url이 있는 네이티브 JSON입니다. 게시 후에는 content.video_url에 Ailoot가 소유한 서명된 URL이 포함됩니다. 게시 전에는 선택된 출력 URL이 비워집니다.
GET /v1/videos/{request_id}GET /v1/videos/generations/{request_id}GET /v1/videos/{request_id}/contentGET /v1/videos/generations/{request_id}/content
완료된 결과 모두 보관
완료된 모든 동영상과 반환된 파일을 저장하고, 실제로 반환된 모든 자산 URL에서 가져오세요.
content.video_url에 있는 모든 실제 URL을 보존하세요. index는 실제 반환된 출력을 식별해야 합니다.
원래 응답을 확인해야 할 경우
원본 응답/헤더/id를 보존하고 해당 작업을 폴링하세요. 결과를 알 수 없는 생성을 절대로 다시 제출하지 마세요.
응답 필드
| 필드 | 유형 |
|---|---|
필드id | 유형string |
필드provider_task_id | 유형string |
필드polling_url | 유형string |
필드status | 유형string when supplied |
필드content.video_url | 유형string|string[] |
필드usage | 유형object when supplied |
오류와 다음 단계
| 응답 | 조건 | 다음 단계 |
|---|---|---|
응답400 · invalid_request_error | 조건JSON/모델/필수 필드 유형 또는 콘텐츠 인덱스가 유효하지 않습니다. | 다음 단계 |
응답401 · authentication_error | 조건유효하지 않은 Ailoot API 키입니다. | 다음 단계 |
응답404 · not_found_error | 조건작업/출력이 없거나 동일한 사용자/API 키/그룹의 소유가 아닙니다. | 다음 단계 |
응답502 · result_pending_check | 조건최초 제출/상태 정보가 불완전합니다. 원래 ID를 보존하고 다시 제출하지 마세요. | 다음 단계 |
응답503 · result_pending_check | 조건원래 미디어/경로/정산을 확인 중입니다. 원래 작업을 계속 진행하세요. | 다음 단계 |
별칭
모델 별칭
Ailoot Ultra doubao-seedance-1-5-pro-251215
메서드 경로 별칭
/v1/videos/generations
관련 호출용 ID
FAQ · ByteDance: Seedance 1.5 Pro
- 어떤 입력과 결과를 사용할 수 있나요?
POST /v1/videos·doubao-seedance-1-5-pro-251215:text,image→video- 요청은 어떤 필드를 사용하나요?
POST /v1/videos·doubao-seedance-1-5-pro-251215:model,content,duration,resolution,ratio,service_tier,seed,camerafixed,watermark,execution_expires_after,generate_audio- 어떤 제한이 적용되나요?
POST /v1/videos·doubao-seedance-1-5-pro-251215:seed.minimum:-1;seed.maximum:4294967295;execution_expires_after.minimum:3600;execution_expires_after.maximum:259200