ByteDance: Seedance 1.0 Lite Text-to-Video
Seedance 1.0 Lite Text-to-Video는 글로 설명한 장면을 무음 영상으로 만듭니다. 이 Lite 선택자는 참조 이미지 대신 텍스트를 사용하며, 길이 2–12초, 24 fps와 가로형·세로형·정사각형·시네마형 구도를 지원합니다.
모델 소개
이 설명은 모델의 기능을 다룹니다. Ailoot에서 사용할 수 있는 입력, 출력 및 옵션은 아래에 선택한 메서드별로 표시됩니다.
Seedance 1.0 Lite Text-to-Video는 글로 설명한 장면에서 영상을 생성합니다. 정확한 선택자인 doubao-seedance-1-0-lite-t2v-250428은 Lite 버전에서 텍스트로 영상을 생성하는 모델입니다. 탁자 위 상품, 장소를 소개하는 전경, 인물의 짧은 행동처럼 피사체, 배경, 움직임을 직접 설명할 수 있을 때 사용합니다. 결과물은 영상 클립이며, 1.0 프로필은 동기화된 오디오를 생성하지 않습니다.
시청자가 볼 순서대로 장면을 작성하세요. 피사체와 외형, 장소, 동작, 숏 크기, 카메라 움직임을 지정한 다음 마지막 구도를 설명합니다. 예를 들어 상품 영상 지시에는 밝은 석재 받침대 위 병, 라벨을 가로질러 움직이는 햇빛, 뚜껑 쪽으로 천천히 다가가는 카메라를 담을 수 있습니다. 이는 새 장면을 위한 지시이며, 제공된 상품 사진을 모델이 재현한다는 뜻은 아닙니다. 화면에 보이는 동작은 선택한 클립 길이에 맞추세요.
이 텍스트 기반 영상 선택자는 별도로 이름 붙은 Lite 이미지 기반 영상 선택자와 다릅니다. 콘텐츠는 content 배열의 텍스트 항목으로 전달합니다. 문장으로 사람, 물체, 스타일을 설명해도 참조 이미지가 첨부되거나 모델이 보지 못한 파일의 정확한 시각적 정체성이 정해지는 것은 아닙니다. 기존 이미지에서 시작 구도를 가져와야 한다면, 미디어 필드를 추가한다고 Lite t2v가 다른 모드로 바뀐다고 가정하지 말고 이미지를 지원하는 프로필을 선택하세요.
문서에 명시된 1.0 길이 범위는 두 초부터 열두 초까지이며, 기본값은 다섯 초, 프레임 속도는 24 fps로 고정됩니다. Lite는 480p, 720p, 1080p 해상도를 제공하며, 문서상 기본값은 720p입니다. 고정 화면비는 16:9, 4:3, 1:1, 3:4, 9:16, 21:9입니다. 생성 전에 용도에 맞는 화면을 선택하세요. 세로형 프레젠테이션에는 세로형, 작은 상품 패널에는 정사각형, 넓은 장면에는 가로형이 적합합니다. 해상도와 화면비는 요청한 출력을 설명하는 설정입니다. 내려받은 클립의 실제 픽셀 크기와 구도를 확인하세요.
요청에는 seed, 워터마크, 카메라 제어가 있습니다. seed는 -1부터 2^32-1까지의 정수이며, -1은 무작위 값을 선택합니다. 카메라 고정 요청은 고정 카메라 지시를 추가하지만, 문서에서는 그 효과가 보장되지 않는다고 명시합니다. 장면 설명과 별도 제어 항목의 카메라 방향을 일치시키세요. 텍스트에 포함된 매개변수 지시는 별도의 선택적 매개변수보다 우선하므로, 두 곳에 길이·해상도·구도에 대한 상충하는 지시를 넣지 마세요.
사용량은 영상 토큰으로 측정하며, 출력 너비 × 출력 높이 × 프레임 속도 × 출력 길이 / 1024로 계산합니다. 완료된 작업은 이 수량을 usage.completion_tokens로 보고합니다. 보고된 사용량을 완성 클립 및 요청 설정과 함께 보관하세요.
생성은 비동기 방식입니다. 제출하면 작업 ID가 반환되고, 작업 조회에서 처리 상태와 성공 후 content.video_url의 영상 URL을 얻습니다. 작업이 queued 또는 running 상태인 동안 ID를 보관하고, 다음 수정에 쓸 완성 클립을 저장하세요. 문서상 생성 파일 보관 기간은 일주일입니다. 요청에는 작업 생성 시점부터 측정하는 만료 기간도 있으며, 이 기간이 지나면 미완료 작업은 expired가 됩니다. 문서상 기본값은 172800초이며, 3600~259200초를 지정할 수 있습니다.
전체 클립을 지시와 비교해 검토하세요. 의도한 피사체가 나오는지, 동작 순서가 맞는지, 카메라가 요청한 방향으로 움직이는지, 마지막 프레임을 사용할 수 있는지 확인합니다. 다음 버전에서는 잘된 장면 구조를 유지하며 구체적인 지시 하나를 바꾸세요. 여러 숏을 이어 만들 때는 각 프롬프트, 요청 설정, 완성 영상을 보관해 실제 결과를 바탕으로 다음 장면을 계획하세요.
Ailoot Ultra · 동영상 POST /v1/videos doubao-seedance-1-0-lite-t2v-250428
doubao-seedance-1-0-lite-t2v-250428
doubao-seedance-1-0-lite-t2v-250428시작하기
Seedance 1.0 Lite Text-to-Video는 글로 설명한 장면을 무음 영상으로 만듭니다. 이 Lite 선택자는 참조 이미지 대신 텍스트를 사용하며, 길이 2–12초, 24 fps와 가로형·세로형·정사각형·시네마형 구도를 지원합니다.
- 허용 입력
- 텍스트
- 결과
- 동영상
Ailoot에서 사용 가능 · 입력 및 메서드
Ailoot Ultra · 동영상 POST /v1/videos
- 입력
text- 출력
video
| 필드 | 유형 | 요건 | 값과 한도 | 기본값 |
|---|---|---|---|---|
필드model | 유형string | 요건필수 | 값과 한도 doubao-seedance-1-0-lite-t2v-250428 | 기본값— |
필드content | 유형array | 요건필수 | 값과 한도 조건: 네이티브 텍스트/미디어 객체입니다. 바깥쪽 배열은 비어 있으면 안 됩니다. 이 Ailoot 범용 생성자는 중첩 노드의 유형을 검증하지 않습니다. | 기본값— |
필드duration | 유형integer | 요건선택 사항 | 값과 한도 최솟값: 2 최댓값: 12 조건: 기본 1.x 스키마는 2–12입니다. 이후 공통 설명에는 1.5가 4–12 또는 -1로 명시되어 있습니다. 예제는 양쪽 모두에 명시된 5를 사용합니다. | 기본값5 |
필드resolution | 유형string | 요건선택 사항 | 값과 한도 480p, 720p, 1080p 조건: 공통 열거형입니다. 참조 이미지 사용 시와 1.5에서는 1080p가 제외됩니다. 인라인 pro 설명에는 480p/1080p가 나열되어 있지만 최상위 열거형에는 720p가 포함됩니다. pro의 720p 지원은 확인되지 않았습니다. | 기본값720p |
필드ratio | 유형string | 요건선택 사항 | 값과 한도 16:9, 4:3, 1:1, 3:4, 9:16, 21:9, 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 |
입력 자료 조합
메서드 매개변수와 수명 주기
| 매개변수 | 명세 |
|---|---|
매개변수content_type | 명세application/json |
매개변수required | 명세camerafixed, content, execution_expires_after, model, seed, watermark |
매개변수optional | 명세duration, resolution, ratio, service_tier |
매개변수material_types | 명세text |
매개변수additional_properties | 명세true |
매개변수validation_scope | 명세Ailoot는 필수 필드의 유형과 비어 있지 않은 model/content 배열을 확인합니다. 다른 요청 필드는 선택한 모델에 전달되도록 보존됩니다. |
메서드 별칭: /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 토큰 |
| 설정Ultra | 요금표— | 예측 수량— | 과금 단위1K 동영상 토큰당 | 요금 출력 · 비교 전용 추정치 $0.003 1K 동영상 토큰당 |
| 설정예상 생성 비용 | 요금표— | 예측 수량1회 생성 예상치 | 과금 단위— | 요금 출력 · 예상 생성 비용 · 비교 전용 추정치 $0.144 생성 전 추정치 이 예상 금액은 추가 요금이나 생성 완료 시 적용되는 고정 요금이 아닙니다. |
Ailoot는 요청 전에 예상 금액을 미리 확보합니다. 결과를 받은 뒤 측정된 사용량을 기준으로 최종 요금을 정산합니다. 스트리밍 정산에는 최종 사용량 기록을 사용합니다. 금액 확보와 정산 방식 →
요청 예제
Ailoot Ultra · 동영상
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
cat > request.json <<'JSON_REQUEST'
{"model":"doubao-seedance-1-0-lite-t2v-250428","content":[{"type":"text","text":"女孩抱着狐狸,女孩睁开眼,温柔地看向镜头,狐狸友善地抱着,镜头缓缓拉出,女孩的头发被风吹动"}],"resolution":"480p","ratio":"1:1","duration":5,"service_tier":"default","seed":-1,"camerafixed":false,"watermark":false,"execution_expires_after":172800}
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-0-lite-t2v-250428
메서드 경로 별칭
/v1/videos/generations
관련 호출용 ID
FAQ · ByteDance: Seedance 1.0 Lite Text-to-Video
- 어떤 입력과 결과를 사용할 수 있나요?
POST /v1/videos·doubao-seedance-1-0-lite-t2v-250428:text→video- 요청은 어떤 필드를 사용하나요?
POST /v1/videos·doubao-seedance-1-0-lite-t2v-250428:model,content,duration,resolution,ratio,service_tier,seed,camerafixed,watermark,execution_expires_after- 어떤 제한이 적용되나요?
POST /v1/videos·doubao-seedance-1-0-lite-t2v-250428:duration.minimum:2;duration.maximum:12;seed.minimum:-1;seed.maximum:4294967295;execution_expires_after.minimum:3600;execution_expires_after.maximum:259200