Skip to content
Guides · 비디오 생성

비디오 생성

Seedance 2.5로 영화 같은 비디오 클립을 생성합니다 — 텍스트-투-비디오, 이미지-투-비디오, 비디오-투-비디오.


Portrait 를 입력으로 사용

가상 또는 실제 인물 Portrait를 asset://<asset-id> 형태의 멀티모달 입력으로 전달하여 비디오 생성에서 참조합니다. asset://seedance-2.0 / seedance-2.0-fast에서만 지원되며seedance-2.5에서는 지원되지 않습니다. 전체 온보딩 절차는 Portrait 가이드를 참조하세요.

개요

Seedance 모델을 사용하여 텍스트 프롬프트, 참조 이미지 또는 참조 비디오로부터 짧은 영화 같은 비디오 클립을 생성합니다. seedance-2.5는 현재 플래그십으로 텍스트-투-비디오, 이미지-투-비디오, 비디오-투-비디오를 모두 지원합니다(reference_video를 통해 참조 비디오로 새 클립을 구동).

비디오 생성

Videos API를 사용하여 비디오 생성 작업을 제출합니다:

cURL
1curl https://api.alltoken.ai/v1/videos/generations -H "Authorization: Bearer $ALLTOKEN_API_KEY" -H "Content-Type: application/json" -d '{
2 "model": "seedance-2.5",
3 "prompt": "A serene mountain lake at sunrise, cinematic 4K",
4 "ratio": "16:9",
5 "duration": 5,
6 "resolution": "720p"
7 }'

참조 소재

텍스트 프롬프트 외에도, Seedance는 content[] 배열을 통해 참조 이미지, 비디오, 오디오를 받을 수 있습니다. 각 항목은 typerole을 가집니다:

소재type사용 가능한 role
이미지image_urlreference_image, first_frame, last_frame
비디오video_urlreference_video
오디오audio_urlreference_audio

각 소재를 제공하는 방법은 두 가지이며, 한 요청 안에서 혼용할 수 있습니다:

  • 이미 공개 호스트에 있는 경우 — type 객체 안에 http(s) URL을 넣어 전달합니다. 예: { "type": "image_url", "image_url": { "url": "https://..." }, "role": "reference_image" }. 업스트림에서 공개적으로 접근 가능해야 합니다(비공개 또는 서명 전용 링크 불가).
  • 로컬 파일사전 서명 후 업로드한 다음, 반환된 upload_id를 참조합니다: { "type": "image_url", "upload_id": "upl_...", "role": "reference_image" }.

경고

data: base64 인라인 경로는 2026-08-06에 제거되었습니다. data: 미디어를 담은 비디오 요청은 이제 400 inline_media_removed를 반환합니다. 인라인 URL을 upload_id로 교체하여 마이그레이션하세요 — 나머지 필드는 모두 동일하게 유지됩니다. http(s) URL과 upload_id는 영향을 받지 않습니다.

인라인 참조를 업로드로 마이그레이션
1- { "type": "image_url", "image_url": { "url": "data:image/png;base64,iVBOR..." }, "role": "reference_image" }
2+ { "type": "image_url", "upload_id": "upl_9f3c...", "role": "reference_image" }

role 기본값과 프레임 규칙

type은 짧은 형식 image / video / audio로 쓸 수 있지만(게이트웨이가 정규화합니다), role을 생략하면 기본값이 적용됩니다 — 그리고 이미지의 기본값은 예상과 다를 수 있습니다:

짧은 type정규화 결과생략 시 기본 role
imageimage_urlfirst_framereference_image가 아닙니다!
videovideo_urlreference_video
audioaudio_urlreference_audio

{ "type": "image", "upload_id": "upl_..." }은 참조 이미지가 아니라 첫 프레임으로 처리됩니다. 명시적인 role을 쓰는 긴 형식을 권장하며 기본값에 의존하지 마세요. GET 작업 응답은 감지된 input_type을 되돌려주므로, 게이트웨이가 content[]를 어떻게 해석했는지 확인할 수 있습니다.

경고

프레임과 시각적 참조는 혼용할 수 없습니다. 업스트림은 이 둘을 상호 배타적인 방식으로 취급합니다: first_frame / last_frame(시작/끝 화면을 지정)와 reference_image / reference_video(스타일 또는 피사체 참조 제공). 한 요청에서 두 종류의 시각 소재를 함께 사용하면 400 invalid_request를 반환합니다. reference_audio는 예외입니다 — "이미지를 첫 프레임으로 + 오디오를 참조로"는 지원되는 조합입니다.

입력 제약

제약누구의 제한
참조 비디오 픽셀 수≥ 409,600 (즉 640×640 이상)업스트림 모델 — 그대로 전달
파일당 업로드 크기미디어 업로드의 purpose 상한 참조AllToken
참조 이미지 개수업스트림 문서에는 9개로 되어 있으나, 당사는 제한하지 않음업스트림

참조 비디오가 너무 작으면 업스트림 오류가 그대로 전달됩니다(예: InvalidParameter: ... video pixel count ... must be greater than or equal to 409600 ...). framescamera_fixed는 2.0 시리즈에서 지원되지 않으며, 거부되는 대신 조용히 무시됩니다.

지원 모델

실시간 목록은 GET /videos/models를 호출하세요. seedance-2.5가 현재 플래그십이며(텍스트-투-비디오, 이미지-투-비디오, 비디오-투-비디오), asset:// Portrait 참조는 2.0 라인에 유지됩니다.

Model주요 용도asset:// portrait reference
seedance-2.5플래그십 — 텍스트 / 이미지 / 비디오-투-비디오❌ 지원 안 됨 (Portrait는 2.0 전용)
seedance-2.0 / seedance-2.0-fastPortrait(asset://) 워크플로✅ 지원
seedance-1.5-pro이전 세대❌ 지원 안 됨 (일반 이미지 URL 사용)

asset_id를 얻는 방법은 Portrait 가이드를 참조하세요.

파라미터

  • model"seedance-2.5"(플래그십), "seedance-2.0", "seedance-2.0-fast", 또는 "seedance-1.5-pro"; 실시간 목록은 GET /videos/models를 호출하세요
  • prompt — text description of the desired video
  • ratio"16:9", "9:16", "4:3", "3:4", "21:9", "1:1", or "adaptive"
  • duration — length in seconds; -1 lets the model choose automatically
  • resolution"480p", "720p", or "1080p"
  • content — multimodal input array for image-to-video or references, for example { "type": "image_url", "image_url": { "url": "..." }, "role": "first_frame" }. Images containing real human faces must go through Portrait first — pass asset://<asset_id> after onboarding (see Portrait guide); public URLs of real-person images may be rejected upstream for deepfake / consent compliance.

작업 상태 확인

Video generation is asynchronous. Poll for status:

cURL
$curl https://api.alltoken.ai/v1/videos/generations/{task_id} -H "Authorization: Bearer $ALLTOKEN_API_KEY"

The response includes status (queued, processing, completed, failed, expired, or cancelled) and a download URL when complete.

작업 취소

Cancel a queued or processing task:

cURL
$curl -X POST https://api.alltoken.ai/v1/videos/generations/{task_id}/cancel   -H "Authorization: Bearer $ALLTOKEN_API_KEY"

Tasks already completed, failed, or cancelled cannot be cancelled.