API
Wan 3.0 Prime API
비디오Wan 3.0 Prime API는 텍스트, 시작·종료 프레임 또는 멀티모달 참조로 2~30초 영상을 480p / 720p / 1080p로 생성합니다. 참조 모드는 이미지 최대 10장, 영상 5개, 오디오 5개를 지원합니다. 이미지 한 장은 30MB 이하여야 합니다.
본문
application/jsonmodelstring필수wan-3-0-primeinput.promptstring필수피사체, 동작, 장면, 조명, 카메라 움직임과 시간 흐름을 설명하세요. 앞뒤 공백은 제거됩니다.
input.frames_imagesstring[]선택공개 HTTPS 이미지 URL 1~2개의 목록입니다. 시작 프레임, 선택적 종료 프레임 순서로 입력하세요. 이 모드는 reference_images, reference_videos, reference_audios와 함께 사용할 수 없습니다.
최대 URL 수: 2개.
이미지 한 장당 최대 크기: 30MB.
예시: ["https://example.com/first-frame.png","https://example.com/last-frame.png"]
input.reference_imagesstring[]선택공개 HTTPS 참조 이미지 URL 목록입니다. reference_videos, reference_audios와 조합할 수 있지만 frames_images와는 함께 사용할 수 없습니다. 파일이나 base64 대신 URL 문자열을 보내세요.
최대 URL 수: 10개.
이미지 한 장당 최대 크기: 30MB.
예시: ["https://example.com/your-image.png"]
input.reference_videosstring[]선택공개 HTTPS 참조 영상 URL 목록입니다. frames_images와 함께 사용할 수 없습니다. 영상을 입력하면 크레딧 사용량이 달라집니다. 아래의 해당 요율 행과 공식을 확인하세요.
최대 URL 수: 5개.
예시: ["https://example.com/your-video.mp4"]
input.reference_audiosstring[]선택공개 HTTPS 참조 오디오 URL 목록입니다. 다른 reference_* 목록과 조합할 수 있지만 frames_images와 함께 사용할 수 없습니다.
최대 URL 수: 5개.
예시: ["https://example.com/your-audio.mp3"]
input.reference_video_durationnumber선택모든 참조 영상의 총 길이(초)입니다. reference_videos를 제공하면 필수입니다. 과금 시 총 길이를 정수 초로 올림하고 추가 과금 길이를 최대 15초로 제한합니다. 참조 영상이 없으면 생략하세요.
input.durationinteger선택영상 길이를 2~30 사이의 정수 초로 지정하세요. 기본값은 5초이며 크레딧 사용량은 길이에 비례합니다.
기본값: 5
input.resolutionstring선택영상 출력 해상도입니다. 아래에 나열된 소문자 값을 사용하세요. 해상도에 따라 크레딧 요율이 달라집니다.
기본값: 720p
input.aspect_ratiostring선택출력의 가로세로 비율입니다. 기본값은 16:9이며 입력 프레임도 최종 구도에 영향을 줍니다.
기본값: 16:9
input.soundboolean선택영상과 함께 오디오를 생성할지 지정합니다. 기본값은 false입니다. 문자열이 아닌 JSON 불리언 값을 보내세요.
기본값: false
요청 예제
생성 모드를 하나 선택하세요. 미디어를 생략하면 텍스트로 생성하고, frames_images를 사용하면 시작·종료 프레임으로 생성합니다. 참조 모드에서는 reference_images, reference_videos, reference_audios를 조합할 수 있습니다. frames_images는 reference_* 미디어 목록과 함께 사용할 수 없습니다. 모든 리소스는 공개 HTTPS URL 목록이며 파일 객체나 base64는 지원하지 않습니다. example.com 주소를 교체하세요. data.task_id를 저장하고 completed 또는 failed까지 POST /api/v1/check를 호출하세요.
POST /api/v1/createcurl -X POST https://nanobanana.io/api/v1/create \
-H "Authorization: Bearer sk_live_your_api_key" \
-H "Content-Type: application/json" \
-d '{
"model": "wan-3-0-prime",
"input": {
"prompt": "해 질 무렵 빨간 클래식 자동차가 해안 도로를 달립니다. 카메라는 자동차 옆면을 부드럽게 따라가고 따뜻한 빛이 바다에 반사됩니다.",
"duration": 5,
"aspect_ratio": "16:9",
"resolution": "720p",
"sound": false
}
}'POST /api/v1/create · HTTP 201{
"data": {
"task_id": "task_example",
"model": "wan-3-0-prime",
"status": "processing",
"credits": 900
}
}반환된 작업 ID를 사용해 작업이 완료되거나 실패할 때까지 이 엔드포인트를 폴링하세요. 최신 작업 상태를 확인하려면 5초마다 폴링하는 것을 권장합니다.
POST /api/v1/check{
"task_id": "task_example"
}응답
POST /api/v1/check가 반환하는 작업 상태입니다. 아래 ID, URL, 타임스탬프는 예시입니다.
idstring필수data.id는 작업 식별자로, 조회 요청의 task_id와 같습니다.
statusstring필수failed_reasonstring선택status가 failed일 때만 반환되며 실패 이유를 설명합니다. completed와 processing에는 이 필드가 없습니다.
완료 · completed
다운로드 URL은 data.data.results에 있습니다.
POST /api/v1/check · HTTP 200{
"data": {
"id": "task_example",
"created_at": 1791244800,
"model": "wan-3-0-prime",
"status": "completed",
"data": {
"results": [
"https://example.com/generated.mp4"
],
"processing_time": 120
}
}
}다른 상태
processing 또는 failed에서는 data.data가 null입니다. 아래는 failed 예시이며, failed일 때만 failed_reason이 포함됩니다. processing이면 조회를 계속하고, failed이면 중단하세요.
POST /api/v1/check · HTTP 200{
"data": {
"id": "task_example",
"created_at": 1791244800,
"model": "wan-3-0-prime",
"status": "failed",
"data": null,
"failed_reason": "Generation failed."
}
}크레딧 사용량
해상도와 참조 영상 모드별 과금 대상 1초당 크레딧입니다.
| 생성 방식 | 480P | 720P | 1080P |
|---|---|---|---|
| 참조 영상 없음 | 90 | 180 | 360 |
| 참조 영상 있음 | 90 | 180 | 360 |
요청 하나로 영상 하나를 생성합니다. 길이나 해상도를 생략하면 위의 기본값을 사용합니다. 참조 영상에 따라 크레딧이 증가할 수 있으므로 해당 행과 공식을 사용하세요.
참조 영상 없음: 생성 길이 × 요율. 참조 영상 있음: (생성 길이 + min(15, ceil(reference_video_duration))) × 요율. 초당 요율은 같고 참조 영상 길이가 과금 초수에 더해집니다.
POST /api/v1/create 응답의 credits 필드는 해당 작업에 실제로 차감된 크레딧을 나타냅니다.
