SeeGen AI API
SeeGen AI API에 오신 것을 환영합니다 — 여러 주요 모델을 아우르는 시네마틱 비디오와 고품질 이미지 생성을 하나의 API로 제공합니다.
개요
SeeGen AI는 통합 생성 API입니다. 여러 주요 AI 비디오/이미지 모델을 하나의 일관된 엔드포인트 세트로 호출할 수 있습니다. model 파라미터로 모델을 선택하세요 — 인증, 작업 제출, 상태 폴링, Webhook은 모든 모델에서 동일한 방식으로 동작합니다.
현재 사용 가능한 모델:
- 비디오 — Seedance 2.0 Pro(
sd2), Seedance 2.0 Fast(sd2-fast), Seedance 2.0 Mini(sd2-mini), Seedance 2.5(sd2.5), HappyHorse 1.1(happyhorse) - 이미지 — GPT Image 2(
gpt-image-2), Nano Banana 2(nano-banana-2), Nano Banana Pro(nano-banana-pro), Seedream 5.0 Lite(seedream-v5.0-lite), Seedream 5.0 Pro(seedream-v5.0-pro)
기본 URL: https://seegen.ai/api/v1
모델: 위 별칭 중 하나를 model 필드에 지정하세요(예: sd2, gpt-image-2).
SeeGen AI를 선택하는 이유
SeeGen AI를 선택해야 할 더 많은 이유:
- Seedance 2.0뿐만 아니라 HappyHorse 1.1, Nano Banana, ChatGPT Image 등도 이용 가능합니다.
- 구독 불필요 — 사용한 만큼만 지불
- 최신 모델에 빠르게 액세스
- 24/7 고객 지원
- 공식 모델 관련 문의 지원
- 개발자용 콘솔 액세스
- 기업과 개인 사용자 모두 이용 가능
요금제
API Pack
125,000 크레딧 ($0.004/크레딧)
5s 영상 ~781개
API-XL Pack
500,000 크레딧 ($0.004/크레딧)
5s 영상 ~3,125개
Seedance 2.0 / Fast / Mini / 2.5 — 비용 계산 방식
out = 출력 초, in = 각 입력 비디오의 ⌈duration⌉(각각 올림) 합계(out × 2/3을 최솟값으로 함)로 정의합니다. Seedance 2.5는 Seedance 2.0과 동일한 계산 방식을 따릅니다. 해당 모델의 기본 요율은 작업 공식을 적용하기 전에 1.5배로 곱한 뒤 반올림합니다(1080P는 sd2.5의 네이티브 출력이며, 720P 요율의 2.5배). 모델과 무관한 업스케일 추가 요금은 2K / 4K에서 출력 1초당 +30 / +40크레딧으로 동일합니다(1080P는 sd2-fast / sd2-mini에서만 +20).
| 비디오 입력 없음 | 비디오 입력 포함 | |
|---|---|---|
| sd2.5: 480P | 30 × out | 23 × (out + in) |
| sd2.5: 720P | 60 × out | 45 × (out + in) |
| sd2.5: 1080P (네이티브) | 150 × out | 113 × (out + in) |
| sd2.5: 2K | (60 + 30) × out | 45 × (out + in) + 30 × out |
| sd2.5: 4K | (60 + 40) × out | 45 × (out + in) + 40 × out |
| sd2-pro: 480P | 20 × out | 15 × (out + in) |
| sd2-pro: 720P | 40 × out | 30 × (out + in) |
| sd2-pro: 1080P (네이티브) | 100 × out | 75 × (out + in) |
| sd2-pro: 2K | (40 + 30) × out | 30 × (out + in) + 30 × out |
| sd2-pro: 4K (네이티브) | 200 × out | 150 × (out + in) |
| sd2-fast: 480P | 16 × out | 12 × (out + in) |
| sd2-fast: 720P | 32 × out | 24 × (out + in) |
| sd2-fast: 1080P | (32 + 20) × out | 24 × (out + in) + 20 × out |
| sd2-fast: 2K | (32 + 30) × out | 24 × (out + in) + 30 × out |
| sd2-fast: 4K | (32 + 40) × out | 24 × (out + in) + 40 × out |
| sd2-mini: 480P | 10 × out | 7.5 × (out + in) |
| sd2-mini: 720P | 20 × out | 15 × (out + in) |
| sd2-mini: 1080P | (20 + 20) × out | 15 × (out + in) + 20 × out |
| sd2-mini: 2K | (20 + 30) × out | 15 × (out + in) + 30 × out |
| sd2-mini: 4K | (20 + 40) × out | 15 × (out + in) + 40 × out |
참고: sd2-pro의 1080P와 4K는 공식 네이티브 출력입니다(4K = 720P 요율의 5배). sd2-pro의 2K와 sd2-fast / sd2-mini의 1080P/2K/4K는 모두 SeeGen AI가 업스케일한 것입니다. sd2.5는 480P/720P/1080P를 네이티브로 생성하며(1080P = 720P 요율의 2.5배, 업스케일 추가 요금 없음), 2K/4K는 자동 업스케일을 사용합니다. 원하는 등급은 outputResolution: "4k"와 같이 요청할 수 있습니다(예: "2k" / "4k"; 게이트웨이가 네이티브인지 업스케일인지 자동으로 선택하며, 달라지는 것은 가격과 Native 라벨뿐입니다). sd2-mini는 sd2-pro의 50% 가격으로, 가장 저렴한 등급입니다. Seedance 2.5는 Seedance 2.0의 영상별 길이 올림, 최소 입력 길이 하한, 업스케일 계산 방식을 그대로 사용합니다. 해당 모델의 기본 요율은 작업 계산 전에 1.5배로 곱한 뒤 반올림합니다(예: 비디오 포함 1080P: 75 × 1.5 → 113). 모델과 무관한 2K / 4K 업스케일 추가 요금은 출력 1초당 +30 / +40크레딧으로 유지됩니다. 업스케일이 실패하면 완료된 작업은 부분 환불 없이 720P로 폴백됩니다.
- sd2.5 480P, 4초 출력, 비디오 입력 없음: 120크레딧
- sd2.5 720P, 5초 출력, 비디오 입력 없음: 300크레딧
- sd2.5 720P, 5초 출력 + 3초 입력 비디오(최소 입력 4초): 405크레딧
- sd2.5 1080P 네이티브, 5초 출력, 비디오 입력 없음: 750크레딧
- sd2.5 1080P 네이티브, 5초 출력 + 5초 입력 비디오: 1,130크레딧
happyhorse — 초당 크레딧
| 출력 | 크레딧/초 | 5s 예시 |
|---|---|---|
| 720P | 32 | 160 |
| 1080P | 60 | 300 |
| 2K | 32 + 30 | 310 |
| 4K | 32 + 40 | 360 |
참고: 2K / 4K 업스케일은 720P 기본 요금에 추가됩니다(네이티브 1080P와는 중복 적용되지 않습니다). t2v / i2v / r2v는 동일한 초당 요율을 공유합니다 — 참조 이미지는 과금되지 않습니다.
🎉 기간 한정 혜택: 모든 이미지 생성 33% 할인 — 아래의 모든 이미지 가격은 이미 할인이 적용된 금액입니다.
gpt-image-2 — 이미지당 크레딧
| 해상도 | 중간 품질 | 고품질 |
|---|---|---|
| 1k | 1015 | 4770 |
| 2k (기본값) | 2335 | 84125 |
| 4k | 4060 | 154230 |
각 작업은 이미지 1장을 생성합니다. N개의 변형을 얻으려면 N개의 작업을 제출하세요. 실패한 작업은 크레딧이 자동으로 환불됩니다.
nano-banana-2 및 nano-banana-pro — 이미지당 크레딧
| 해상도 | nano-banana-2 | nano-banana-pro |
|---|---|---|
| 1k | 2030 | 4060 |
| 2k (기본값) | 3045 | 4060 |
| 4k | 4770 | 74110 |
각 작업은 이미지 1장을 생성합니다. N개의 변형을 얻으려면 N개의 작업을 제출하세요. 실패한 작업은 크레딧이 자동으로 환불됩니다.
Seedream 5.0 — 이미지당 크레딧
| 모델 / 등급 | 크레딧 |
|---|---|
| Lite 2k / 4k (정액) | 710 |
| Pro 1k (기본값) | 1015 |
| Pro 2k | 2030 |
각 작업은 이미지 1장을 생성합니다. N개의 변형을 얻으려면 N개의 작업을 제출하세요. 실패한 작업은 크레딧이 자동으로 환불됩니다. 참조 이미지는 별도로 과금되지 않습니다.
잔액 확인: GET /api/v1/account/credits
인증
모든 API 요청에는 Authorization 헤더에 Bearer 토큰이 필요합니다. API 키는 계정 설정에서 생성하고 관리할 수 있습니다.
curl -H "Authorization: Bearer YOUR_API_KEY" \
https://seegen.ai/api/v1/account/credits중요: API 키는 생성 시 한 번만 표시됩니다. 안전하게 보관하세요. 계정당 최대 10개까지 API 키를 생성할 수 있습니다.
빠른 시작
두 단계로 비디오를 생성하세요: 작업을 생성한 뒤 결과를 폴링합니다.
# 1. Create a text-to-video task
TASK_ID=$(curl -s -X POST \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "sd2",
"inputs": {
"prompt": "A golden retriever running on the beach at sunset",
"duration": "5s",
"resolution": "1280x720"
}
}' \
https://seegen.ai/api/v1/jobs/createTask | jq -r '.taskId')
echo "Task created: $TASK_ID"
# 2. Poll for result
while true; do
RESULT=$(curl -s -H "Authorization: Bearer $API_KEY" \
"https://seegen.ai/api/v1/jobs/queryTask?taskId=$TASK_ID")
STATUS=$(echo $RESULT | jq -r '.status')
echo "Status: $STATUS"
if [ "$STATUS" = "COMPLETED" ] || [ "$STATUS" = "FAILED" ]; then
echo $RESULT | jq .
break
fi
sleep 5
done엔드포인트
/api/v1/jobs/createTask새 비디오 생성 작업 생성
/api/v1/jobs/queryTask작업 상태 및 결과 조회
/api/v1/account/credits크레딧 잔액 확인
/api/v1/assets/upload검토용 에셋(이미지/비디오/오디오) 업로드
/api/v1/assets/status에셋 검토 상태 조회
/api/v1/assets/list업로드한 에셋 목록 조회
/api/v1/upscale/create독립형 비디오 업스케일 작업 제출(720p / 1080p / 2K / 4K)
/api/v1/upscale/query독립형 업스케일 작업의 상태와 결과를 폴링
모델 선택(비디오)
비디오를 생성하는 모델군은 두 가지입니다. 모드와 가격에 따라 선택하고, 요금제 섹션과 함께 비용을 추정하세요.
| 모델 | T2V | I2V | First–Last | Multi-Ref | R2V | 네이티브 1080p | 네이티브 4K | 오디오 | 720p / 5s |
|---|---|---|---|---|---|---|---|---|---|
| sd2.5 | ✓ | ✓ | ✓ | ✓ | — | ✓ | 업스케일 | ✓ | 300 크레딧 |
| sd2 | ✓ | ✓ | ✓ | ✓ | — | ✓ | ✓ | ✓ | 200 크레딧 |
| sd2-fast | ✓ | ✓ | ✓ | ✓ | — | 업스케일 | 업스케일 | ✓ | 160 크레딧 |
| sd2-mini | ✓ | ✓ | ✓ | ✓ | — | 업스케일 | 업스케일 | ✓ | 100 크레딧 |
| happyhorse | ✓ | ✓ | — | — | ✓ | ✓ | 업스케일 | ✓ | 160 크레딧 |
T2V = 텍스트로 비디오 생성 · I2V = 이미지로 비디오 생성(첫 프레임) · First–Last = 시작 + 종료 키프레임 · Multi-Ref = 이미지/비디오/오디오 참조 혼합 · R2V = 캐릭터 마커가 있는 참조 이미지 1~9장
Seedance 2.0 / 2.0 Fast / 2.0 Mini / Seedance 2.5
텍스트로 비디오 생성
텍스트 프롬프트로 비디오를 생성합니다. 이미지는 필요하지 않습니다.
curl -X POST \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "sd2",
"inputs": {
"prompt": "A futuristic city with flying cars at night, neon lights reflecting on wet streets",
"duration": "5s",
"resolution": "1280x720"
}
}' \
https://seegen.ai/api/v1/jobs/createTask| 파라미터 | 타입 | 필수 | 설명 |
|---|---|---|---|
| prompt | string | 예 | 생성할 비디오에 대한 텍스트 설명. 최대 20000자. |
| duration | string | 아니요 | 동영상 길이: "4s"~"15s"; sd2.5는 최대 "30s"까지 지원(기본값: "5s") |
| resolution | string | 아니요 | resolution으로 화면 비율을 지정합니다. 옵션: auto(기본값), 720x720, 720x960, 960x720, 1280x720, 720x1280, 1280x540 |
| outputResolution | string | 아니요 | 출력 해상도 등급: "480p", "720p"(기본값), "1080p", "2k", "4k" 중 하나. 네이티브 해상도는 모델마다 다릅니다: Seedance 2.0 Pro: 480p/720p/1080p/4k; Seedance 2.0 Fast·Mini: 480p/720p; Seedance 2.5: 480p/720p/1080p. 그보다 높은 등급은 자동으로 업스케일됩니다. |
| seed | int | 아니요 | 재현성을 위한 시드 값: 무작위는 -1 또는 생략, 고정하려면 0–2147483647을 지정합니다. |
| generateAudio | boolean | 아니요 | 동기화된 오디오 트랙을 합성할지 여부입니다. 기본값은 true이며, 무음 비디오를 원하면 false를 지정합니다. |
이미지로 비디오 생성
정적 이미지를 비디오로 애니메이션화합니다. 시작 프레임으로 이미지 URL 1개를 제공합니다.
curl -X POST \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "sd2",
"inputs": {
"urls": ["https://example.com/photo.jpg"], // or "asset://asset-20260326-abc123"
"prompt": "The woman slowly turns her head and smiles",
"duration": "5s"
}
}' \
https://seegen.ai/api/v1/jobs/createTask| 파라미터 | 타입 | 필수 | 설명 |
|---|---|---|---|
| urls | string[] | 예 | 이미지 URL 1개를 포함하는 배열(원본 프레임). HTTP URL과 에셋 참조(예: "asset://asset-20260326-abc123") 모두 지원합니다. |
| prompt | string | 아니요 | 원하는 움직임에 대한 텍스트 설명 |
| duration | string | 아니요 | 동영상 길이: "4s"~"15s"; sd2.5는 최대 "30s"까지 지원(기본값: "5s") |
| outputResolution | string | 아니요 | 출력 해상도 등급: "480p", "720p"(기본값), "1080p", "2k", "4k" 중 하나. 네이티브 해상도는 모델마다 다릅니다: Seedance 2.0 Pro: 480p/720p/1080p/4k; Seedance 2.0 Fast·Mini: 480p/720p; Seedance 2.5: 480p/720p/1080p. 그보다 높은 등급은 자동으로 업스케일됩니다. |
| seed | int | 아니요 | 재현성을 위한 시드 값: 무작위는 -1 또는 생략, 고정하려면 0–2147483647을 지정합니다. |
| generateAudio | boolean | 아니요 | 동기화된 오디오 트랙을 합성할지 여부입니다. 기본값은 true이며, 무음 비디오를 원하면 false를 지정합니다. |
시작/종료 프레임
시작 프레임과 종료 프레임을 지정하면 모델이 그 사이의 전환을 생성합니다. videoInputMode: "keyframe"을 사용합니다.
curl -X POST \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "sd2",
"inputs": {
"urls": [
"https://example.com/first-frame.jpg",
"https://example.com/last-frame.jpg"
],
"prompt": "Smooth camera transition from day to night",
"duration": "5s",
"videoInputMode": "keyframe"
}
}' \
https://seegen.ai/api/v1/jobs/createTask| 파라미터 | 타입 | 필수 | 설명 |
|---|---|---|---|
| urls | string[] | 예 | 정확히 2개의 이미지 URL을 포함하는 배열: [first_frame, last_frame]. HTTP URL과 에셋 참조(예: "asset://asset-20260326-abc123") 모두 지원합니다. |
| videoInputMode | string | 예 | "keyframe"이어야 합니다 |
| prompt | string | 아니요 | 전환을 안내하는 텍스트 설명 |
| duration | string | 아니요 | 동영상 길이: "4s"~"15s"; sd2.5는 최대 "30s"까지 지원(기본값: "5s") |
| outputResolution | string | 아니요 | 출력 해상도 등급: "480p", "720p"(기본값), "1080p", "2k", "4k" 중 하나. 네이티브 해상도는 모델마다 다릅니다: Seedance 2.0 Pro: 480p/720p/1080p/4k; Seedance 2.0 Fast·Mini: 480p/720p; Seedance 2.5: 480p/720p/1080p. 그보다 높은 등급은 자동으로 업스케일됩니다. |
| seed | int | 아니요 | 재현성을 위한 시드 값: 무작위는 -1 또는 생략, 고정하려면 0–2147483647을 지정합니다. |
| generateAudio | boolean | 아니요 | 동기화된 오디오 트랙을 합성할지 여부입니다. 기본값은 true이며, 무음 비디오를 원하면 false를 지정합니다. |
멀티 레퍼런스
여러 참조 이미지·비디오·오디오 파일을 사용해 생성을 제어합니다. videoInputMode: "reference"를 사용합니다. sd2.5에서는 이것이 기본 참조 서브태스크입니다. 기존 비디오를 편집하거나 이어서 생성하려면 아래의 '비디오 편집/연장'을 참고하세요.
curl -X POST \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "sd2",
"inputs": {
"urls": [
"https://example.com/ref1.jpg",
"https://example.com/ref2.jpg"
],
"videoUrls": ["asset://asset-motion-video"],
"audioUrls": ["https://example.com/audio.mp3"],
"prompt": "Character walks through a garden",
"duration": "5s",
"videoInputMode": "reference",
"resolution": "1280x720"
}
}' \
https://seegen.ai/api/v1/jobs/createTask| 파라미터 | 타입 | 필수 | 설명 |
|---|---|---|---|
| urls | string[] | 아니요 | 참조 이미지 URL(최대 9개). HTTP URL과 에셋 참조(예: "asset://asset-20260326-abc123") 모두 지원합니다. |
| videoUrls | string[] | 아니요 | 참조 비디오의 asset:// URI — 먼저 /api/v1/assets/upload로 업로드해야 합니다. 외부 URL은 거부됩니다. sd2: 최대 3개, 각 15s 이하. sd2.5: 최대 10개, 각 2–30s이며 200MB 이하, 참조 비디오 총 길이 30s 이하, 480p–4K 입력을 지원합니다. |
| audioUrls | string[] | 아니요 | 참조 오디오 입력. sd2 / sd2-fast / sd2-mini: 최대 3개 파일, 각 2–15s, 총 15s 이하 — 이 모델들에서는 오디오만 단독 참조로 사용할 수 없습니다(이미지 또는 비디오를 최소 1개 추가하세요). sd2.5: 최대 10개 파일, 각 15MB 이하 및 2–30s, 총 30s 이하이며 오디오 단독 입력도 지원합니다. |
| videoInputMode | string | 예 | "reference"이어야 합니다 |
| prompt | string | 아니요 | 텍스트 설명 |
| duration | string | 아니요 | 동영상 길이: "4s"~"15s"; sd2.5는 최대 "30s"까지 지원(기본값: "5s") |
| resolution | string | 예 | 참조 모드에서는 필수입니다. 옵션: 720x720, 720x960, 960x720, 1280x720, 720x1280, 1280x540 |
| outputResolution | string | 아니요 | 출력 해상도 등급: "480p", "720p"(기본값), "1080p", "2k", "4k" 중 하나. 네이티브 해상도는 모델마다 다릅니다: Seedance 2.0 Pro: 480p/720p/1080p/4k; Seedance 2.0 Fast·Mini: 480p/720p; Seedance 2.5: 480p/720p/1080p. 그보다 높은 등급은 자동으로 업스케일됩니다. |
| seed | int | 아니요 | 재현성을 위한 시드 값: 무작위는 -1 또는 생략, 고정하려면 0–2147483647을 지정합니다. |
| generateAudio | boolean | 아니요 | 동기화된 오디오 트랙을 합성할지 여부입니다. 기본값은 true이며, 무음 비디오를 원하면 false를 지정합니다. |
참조 제약 조건
- 이미지 최대 9개, 비디오 최대 3개, 오디오 최대 3개
- 전체 유형 합산 최대 12개 파일
- 비디오/오디오는 각각 15초 이하여야 합니다
- 이미지는 짧은 변이 400px 이상이어야 합니다
- sd2.5: 이미지 최대 30개, 비디오 최대 10개, 오디오 최대 10개, 총 최대 50개; 비디오와 오디오는 각각 총 30초 이하입니다
비디오 편집/연장
sd2.5는 참조 기반 생성을 세 가지 서브태스크로 나눕니다. 일반 참조 생성에서는 mode를 생략하고, 기존 비디오를 편집하려면 mode: "edit", 이어서 생성하려면 mode: "extend"를 지정합니다. 둘 다 videoUrls에 최소 1개의 비디오가 필요하며, 항상 원본 비디오의 화면 비율로 출력됩니다.
조작하려는 비디오는 videoUrls의 첫 번째에 배치하고, 프롬프트에서는 이를 'Video 1'로 지칭하세요. edit은 출력 길이를 첫 번째(원본) 비디오에 강제로 맞추며, 이 비디오는 4–30s여야 하므로 전송한 duration은 무시됩니다. 과금은 원본 비디오 길이를 출력 길이로 사용하고, 모든 참조 비디오를 입력으로 포함합니다. extend는 순서대로 이어붙일 1~3개의 클립을 허용하며, 요청한 duration이 이번 생성의 출력 길이가 됩니다(원본 길이와 무관) — 일반 참조 생성과 동일하게 과금됩니다.
2.0 계열 모델(sd2 / sd2-fast / sd2-mini)도 mode: "edit"과 mode: "extend"를 지원합니다. 이들은 프롬프트에서 작업을 추론하므로(편집이나 연장 내용을 명확히 설명하세요), 화면 비율은 원본 비디오를 따르고 duration은 계속 직접 제어할 수 있으며 과금도 일반적인 방식입니다.
curl -X POST \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "sd2.5",
"inputs": {
"mode": "edit",
"videoUrls": ["asset://asset-source-video"],
"urls": ["https://example.com/annotation-at-1.2s.png"],
"source_frame_timestamps_ms": [1200],
"prompt": "Replace the marked object with a red umbrella",
"outputResolution": "720p"
}
}' \
https://seegen.ai/api/v1/jobs/createTask| 파라미터 | 타입 | 필수 | 설명 |
|---|---|---|---|
| mode | string | 아니요 | "edit" 또는 "extend". 일반 참조 생성에서는 생략합니다. |
| videoUrls | string[] | 예 | 최소 1개의 비디오가 필요합니다. 첫 번째가 소스('Video 1')이며, 편집 출력 길이와 과금은 이를 따릅니다. 이후 비디오는 추가 참조(edit)이거나 순서대로 이어붙일 추가 클립(extend, 최대 3개)입니다. |
| urls | string[] | 아니요 | 선택적 주석/참조 이미지. |
| source_frame_timestamps_ms | number[] | 아니요 | mode "edit"에서만 사용. urls의 각 이미지마다 원본 비디오 기준 타임스탬프(밀리초, 음수 아님)를 하나씩 지정합니다. |
| outputResolution | string | 아니요 | 출력 해상도 등급: "480p", "720p"(기본값), "1080p", "2k", "4k" 중 하나. 네이티브 해상도는 모델마다 다릅니다: Seedance 2.0 Pro: 480p/720p/1080p/4k; Seedance 2.0 Fast·Mini: 480p/720p; Seedance 2.5: 480p/720p/1080p. 그보다 높은 등급은 자동으로 업스케일됩니다. |
Seedance 파라미터 레퍼런스
sd2 / sd2-fast / sd2-mini / sd2.5 모델의 모든 inputs 파라미터에 대한 전체 레퍼런스입니다.
| 파라미터 | 타입 | 필수 | 설명 |
|---|---|---|---|
| prompt | string | 아니요 | 텍스트 설명(텍스트로 비디오 생성 시 필수, 다른 모드에서는 선택). 최대 20000자. |
| urls | string[] | 아니요 | 이미지 URL. HTTP URL과 에셋 참조(예: "asset://asset-20260326-abc123") 모두 지원합니다. 내부적으로 uploadedUrls에 매핑됩니다. |
| videoUrls | string[] | 아니요 | 참조 비디오 asset:// URI(리퍼런스 모드 전용). 먼저 /api/v1/assets/upload로 업로드해야 합니다 — 외부 URL은 거부됩니다. |
| audioUrls | string[] | 아니요 | 참조 오디오 URL(리퍼런스 모드 전용). sd2.5에서는 오디오 단독 입력을 지원합니다. sd2 / sd2-fast / sd2-mini는 오디오와 함께 이미지 또는 비디오를 최소 1개 지정해야 합니다. |
| duration | string | 아니요 | 일반적으로 "4s"~"15s"; sd2.5는 최대 "30s"까지 지원합니다. 기본값: "5s" |
| resolution | string | 아니요 | 화면 비율: auto(기본값) | 720x720 | 720x960 | 960x720 | 1280x720 | 720x1280 | 1280x540 |
| outputResolution | string | 아니요 | 출력 해상도 등급: "480p", "720p"(기본값), "1080p", "2k", "4k" 중 하나. 네이티브 해상도는 모델마다 다릅니다: Seedance 2.0 Pro: 480p/720p/1080p/4k; Seedance 2.0 Fast·Mini: 480p/720p; Seedance 2.5: 480p/720p/1080p. 그보다 높은 등급은 자동으로 업스케일됩니다. |
| videoInputMode | string | 아니요 | "keyframe"(기본값) 또는 "reference" |
| mode | string | 아니요 | 리퍼런스 모드 서브태스크(모든 Seedance 모델 공통): 일반 참조 생성에서는 생략, videoUrls의 첫 번째 비디오를 편집하려면 "edit", 1~3개의 클립을 이어서 생성하려면 "extend". 자세한 내용은 '비디오 편집/연장'을 참고하세요. |
| source_frame_timestamps_ms | number[] | 아니요 | sd2.5 비디오 편집 전용: 주석 이미지마다 음수가 아닌 밀리초 타임스탬프를 하나씩 지정합니다. |
| seed | int | 아니요 | 재현성을 위한 랜덤 시드입니다. 서버가 무작위로 지정하게 하려면 -1을 지정하거나 생략합니다. 동일한 시드 + 동일한 입력이면 거의 일치하는 결과를 얻을 수 있습니다(GPU의 비결정성으로 인해 비트 단위로 완전히 동일하지는 않습니다). 범위: -1~2147483647. |
| generateAudio | boolean | 아니요 | 비디오에 동기화된 오디오 트랙(음성, 효과음, 배경 음악)을 합성할지 여부입니다. 기본값은 true입니다. 무음 비디오를 만들려면 false로 설정하세요 — 처리 속도가 약간 빨라지며, 별도로 더빙할 계획이라면 유용합니다. |
| bitrateMode | string | 아니요 | 동일한 해상도에서의 출력 비트레이트 등급: "standard"(기본값) 또는 "high". "high"는 더 많은 디테일을 유지하고 밴딩/블로킹을 줄이지만 파일 크기가 약 3~5배가 됩니다 — 해상도나 가격은 변하지 않습니다. |
| upscaleResolution | string | 아니요 | (사용 중단됨) 이전 방식의 분리형 필드이며, 하위 호환성을 위해 계속 허용됩니다. 새로 연동할 때는 outputResolution을 사용하세요. 이제 "2k" / "4k"를 직접 지정할 수 있습니다. 둘 다 전송하면 upscaleResolution이 우선 적용됩니다 — 단, 네이티브 1080p를 지원하는 모델(Seedance2 Pro / Seedance 2.5)에서는 upscaleResolution:"1080p"가 네이티브 1080p로 처리됩니다(네이티브 요율로 과금). |
최상위 요청 필드: model(필수), inputs(필수), callBackUrl(선택적 webhook URL).
에셋
에셋은 비디오 생성 작업에서 사용되기 전에 검토 절차를 거치는 이미지/비디오/오디오 파일입니다. 에셋을 업로드하고 ACTIVE 상태가 될 때까지 기다린 뒤, 작업에서 해당 asset:// URL을 사용하세요.
참고: 실제 인물이 등장하는 이미지/비디오 에셋은 공식 검토가 필요하며, 보통 몇 초 내에 완료됩니다. 승인되면 바로 참조로 사용할 수 있습니다. 검토를 거치지 않으면 생성이 실패할 수 있습니다.
에셋 업로드
업로드 방법은 두 가지입니다: 로컬 파일을 직접 전송(multipart/form-data)하거나, 공개적으로 접근 가능한 HTTPS URL을 제출합니다. 두 방법 모두 에셋은 자동으로 처리 및 검토됩니다.
방법 A — 파일 직접 업로드(multipart/form-data)
이미지 호스트 없이 로컬 파일을 전송합니다. 미디어 타입은 파일의 바이트에서 감지됩니다(파일명 확장자는 신뢰하지 않습니다). 허용 형식: 이미지(jpg/png/webp/gif/bmp/tiff/heic), 비디오(mp4/mov), 오디오(wav/mp3). 파일당 최대 50MB(이미지 ≤30MB, 비디오 ≤50MB, 오디오 ≤15MB).
curl -X POST \
-H "Authorization: Bearer $API_KEY" \
-F "file=@/path/to/photo.jpg" \
-F "name=my-photo" \
https://seegen.ai/api/v1/assets/upload| 파라미터 | 타입 | 필수 | 설명 |
|---|---|---|---|
| file | file | 예 | 로컬 파일(multipart 폼 필드). 미디어 타입은 콘텐츠에서 감지됩니다. |
| name | string | 아니요 | 에셋 이름(최대 64자) |
방법 B — URL로 업로드(application/json)
파일이 이미 공개 HTTPS URL에 호스팅되어 있는 경우.
curl -X POST \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"url": "https://example.com/photo.jpg",
"type": "IMAGE",
"name": "my-photo"
}' \
https://seegen.ai/api/v1/assets/upload| 파라미터 | 타입 | 필수 | 설명 |
|---|---|---|---|
| url | string | 예 | 업로드할 파일의 공개 접근 가능한 HTTPS URL |
| type | string | 예 | "IMAGE", "AUDIO", 또는 "VIDEO" |
| name | string | 아니요 | 에셋 이름(최대 64자) |
업로드 응답
{
"assetId": 123,
"volcAssetId": "asset-20260326-abc123",
"type": "IMAGE",
"status": "PROCESSING",
"failReason": null,
"url": "https://example.com/photo.jpg",
"name": "my-photo",
"createdAt": 1711234567890
}에셋 상태 조회
에셋의 검토 상태를 폴링합니다. 상태가 PROCESSING이면 이 엔드포인트가 검토 시스템의 업데이트를 자동으로 확인합니다.
# Query by asset ID (numeric)
curl -H "Authorization: Bearer $API_KEY" \
"https://seegen.ai/api/v1/assets/status?assetId=123"
# Query by volcAssetId (string)
curl -H "Authorization: Bearer $API_KEY" \
"https://seegen.ai/api/v1/assets/status?assetId=asset-20260326-abc123"에셋 상태 값
PROCESSING— 검토 중, 아직 사용 불가ACTIVE— 검토 통과, 작업에서 사용 가능FAILED— 검토 실패, failReason을 확인하세요
에셋 목록 조회
타입과 상태로 필터링하여 업로드한 에셋을 목록으로 조회합니다. 커서 기반 페이지네이션을 지원합니다.
# List all assets
curl -H "Authorization: Bearer $API_KEY" \
"https://seegen.ai/api/v1/assets/list"
# Filter by type and status
curl -H "Authorization: Bearer $API_KEY" \
"https://seegen.ai/api/v1/assets/list?type=IMAGE&status=ACTIVE&limit=10"
# Paginate with cursor
curl -H "Authorization: Bearer $API_KEY" \
"https://seegen.ai/api/v1/assets/list?cursor=100&limit=20"| 파라미터 | 타입 | 필수 | 설명 |
|---|---|---|---|
| type | string | 아니요 | 타입으로 필터링: "IMAGE", "AUDIO", 또는 "VIDEO" |
| status | string | 아니요 | 상태로 필터링: "NONE", "PROCESSING", "ACTIVE", 또는 "FAILED" |
| cursor | number | 아니요 | 페이지네이션용 커서(이전 응답의 nextCursor 사용) |
| limit | number | 아니요 | 페이지당 항목 수, 1-50(기본값: 20) |
목록 응답
{
"items": [
{
"assetId": 123,
"volcAssetId": "asset-20260326-abc123",
"type": "IMAGE",
"status": "ACTIVE",
"failReason": null,
"url": "https://example.com/photo.jpg",
"name": "my-photo",
"width": 1920,
"height": 1080,
"size": 245000,
"duration": null,
"createdAt": 1711234567890
}
],
"nextCursor": 122
}작업에서 에셋 사용하기
에셋이 ACTIVE 상태가 되면, 작업의 URL에서 asset:// 프로토콜과 함께 해당 volcAssetId를 사용하세요:
{
"model": "sd2",
"inputs": {
"urls": ["asset://asset-20260326-abc123"],
"prompt": "The person slowly looks up and smiles",
"duration": "5s"
}
}HappyHorse 1.1(Alibaba)
Alibaba DashScope의 대체 비디오 생성 모델입니다. 세 가지 모드를 지원합니다: 텍스트로 비디오 생성, 첫 프레임 기반 이미지로 비디오 생성, 레퍼런스로 비디오 생성(프롬프트당 1~9장의 참조 이미지를 결합; 프롬프트에서 character1, character2, … 로 피사체를 지칭). HappyHorse 1.1은 마지막 프레임, 참조 비디오, 참조 오디오를 지원하지 않습니다. 모델명: happyhorse.
에셋 검토가 필요 없습니다 — 공개 HTTPS 이미지 URL을 직접 사용하거나, 에셋 라이브러리의 asset:// 참조를 전달할 수 있습니다(자동으로 원본 R2 URL로 해석됩니다).
텍스트로 비디오 생성
curl -X POST \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "happyhorse",
"inputs": {
"prompt": "A panda DJ at a beach party, smoky sunset",
"duration": "5s",
"outputResolution": "720p",
"ratio": "16:9"
}
}' \
https://seegen.ai/api/v1/jobs/createTask이미지로 비디오 생성(첫 프레임)
curl -X POST \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "happyhorse",
"inputs": {
"urls": ["https://example.com/panda.jpg"],
"prompt": "The panda blinks and smiles",
"duration": "5s",
"outputResolution": "1080p"
}
}' \
https://seegen.ai/api/v1/jobs/createTask레퍼런스로 비디오 생성(참조 이미지 1~9장)
videoWorkflowTab: "multi-reference"와 1~9장의 참조 이미지 URL을 전달하면 여러 피사체를 하나의 출력으로 결합할 수 있습니다. 프롬프트에서 각 이미지를 character1, character2, …(urls의 순서와 일치)로 지칭하세요. 화면 비율은 ratio 필드로 제어합니다(기준이 될 첫 프레임이 없으므로).
curl -X POST \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "happyhorse",
"inputs": {
"videoWorkflowTab": "multi-reference",
"urls": [
"https://example.com/character.jpg",
"https://example.com/folding-fan.jpg",
"https://example.com/earrings.jpg"
],
"prompt": "A woman in red character1 opening folding fan character2, with tassel earrings character3 swinging",
"duration": "5s",
"outputResolution": "720p",
"ratio": "16:9"
}
}' \
https://seegen.ai/api/v1/jobs/createTaskHappyHorse 파라미터 레퍼런스
happyhorse 모델의 모든 inputs 파라미터에 대한 전체 레퍼런스입니다.
| 파라미터 | 타입 | 필수 | 설명 |
|---|---|---|---|
| prompt | string | 아니요 | 텍스트 설명. 텍스트로 비디오 생성과 레퍼런스로 비디오 생성에서는 필수, 이미지로 비디오 생성에서는 선택. 비CJK 문자는 최대 5000자, CJK 문자는 최대 2500자(초과분은 업스트림에서 자동으로 잘립니다). r2v에서는 character1/character2/…로 N번째 참조 이미지를 지칭합니다. |
| urls | string[] | 아니요 | t2v: 생략. i2v: 정확히 1개의 URL(첫 프레임으로 사용). r2v: 1~9개의 URL. 공개 HTTPS URL과 에셋 참조(예: "asset://asset-20260326-abc123")를 지원합니다. |
| videoWorkflowTab | string | 아니요 | 레퍼런스로 비디오 생성 모드를 활성화하려면 "multi-reference"로 설정하세요(urls 1개 이상과 함께 사용해야 합니다). 텍스트로 비디오 생성/이미지로 비디오 생성에서는 생략. |
| duration | string | 아니요 | "3s"~"15s"(기본값 "5s"). |
| outputResolution | string | 아니요 | "720p"(기본값) 또는 "1080p". |
| ratio | string | 아니요 | "16:9" / "9:16" / "1:1" / "4:3" / "3:4". 텍스트로 비디오 생성과 레퍼런스로 비디오 생성에 사용 — 이미지로 비디오 생성의 화면 비율은 첫 프레임에서 추론됩니다. |
| seed | int | 아니요 | 0에서 2147483647까지. 무작위 시드를 사용하려면 비워 두세요. |
이미지 요구 사항(i2v / r2v)
- 짧은 변 ≥ 300px
- 화면 비율은 1:2.5~2.5:1 사이
- 형식: JPEG, JPG, PNG, BMP, WEBP
- 이미지당 최대 파일 크기 10MB(r2v: 1~9개 입력 각각에 적용)
모델 선택(이미지)
이미지 모델은 프롬프트(및 선택적으로 참조 이미지)를 받아 작업당 이미지 1장을 반환합니다. 각 요청은 선택한 모델의 등급에 따라 이미지 단위로 과금됩니다(단, Seedream Lite는 고정 요금이 적용됩니다). 실패한 작업은 자동으로 환불됩니다. 배치 파라미터는 없습니다 — 여러 변형을 생성하려면 이미지마다 createTask를 한 번씩 호출하세요.
| 모델 | T2I | I2I(편집) | Multi-Ref | 최대 해상도 | 2k / medium |
|---|---|---|---|---|---|
| gpt-image-2 | ✓ | ✓ | 최대 10장 | 4k | 요금제 참고 |
| nano-banana-2 | ✓ | ✓ | 최대 10장 | 4k | 요금제 참고 |
| nano-banana-pro | ✓ | ✓ | 최대 10장 | 4k | 요금제 참고 |
| seedream-v5.0-lite | ✓ | ✓ | 최대 10장 | 4k | 정액 |
| seedream-v5.0-pro | ✓ | ✓ | 최대 10장 | 2k | 요금제 참고 |
GPT Image 2
OpenAI의 GPT Image 2 모델을 사용한 고품질 텍스트로 이미지 생성 및 이미지로 이미지 편집. 하나의 워크플로에서 두 모드를 모두 처리합니다 — urls를 전달하면 자동으로 편집 모드로 전환됩니다. 출력은 요청한 형식(PNG / JPEG / WEBP)으로 R2를 통해 전달됩니다. 모델명: gpt-image-2.
텍스트로 이미지 생성
curl -X POST \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-image-2",
"inputs": {
"prompt": "A neon-lit cyberpunk alley at midnight, photoreal",
"quality": "medium",
"resolution": "2k",
"aspectRatio": "16:9"
}
}' \
https://seegen.ai/api/v1/jobs/createTask이미지로 이미지 생성(편집)
urls로 1~10장의 참조 이미지를 전달하세요. 모델은 이를 prompt에 설명된 편집을 위한 시각적 맥락으로 사용합니다.
curl -X POST \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-image-2",
"inputs": {
"urls": ["https://example.com/portrait.jpg"],
"prompt": "Restyle as oil painting",
"quality": "medium",
"resolution": "1k",
"aspectRatio": "1:1"
}
}' \
https://seegen.ai/api/v1/jobs/createTaskGPT Image 2 파라미터 레퍼런스
gpt-image-2 모델의 모든 inputs 파라미터에 대한 전체 레퍼런스입니다.
| 파라미터 | 타입 | 필수 | 설명 |
|---|---|---|---|
| prompt | string | 예 | 생성할 이미지에 대한 텍스트 설명, 또는 urls가 제공된 경우 적용할 편집 내용. |
| urls | string[] | 아니요 | 이미지로 이미지(편집) 모드용 참조 이미지 URL(1~10장). 텍스트로 이미지 생성 시 생략. 공개 HTTPS URL을 허용합니다. |
| quality | string | 아니요 | "medium" / "high". 기본값: "medium". 크레딧은 등급에 따라 달라집니다(요금제 참고). |
| resolution | string | 아니요 | "1k" / "2k" / "4k". 기본값: "2k". 크레딧은 등급에 따라 달라집니다(요금제 참고). |
| aspectRatio | string | 아니요 | "1:1" / "16:9" / "9:16" / "4:3" / "3:4". 기본값: "1:1". |
| outputFormat | string | 아니요 | "png" / "jpeg" / "webp". 기본값: "png". |
입력 이미지 요구 사항(이미지로 이미지 모드)
- 작업당 참조 이미지 최대 10장
- 이미지당 최대 파일 크기 50MB
- 짧은 변 ≥ 256px
- 화면 비율은 1:3~3:1 사이
- 형식: JPEG, JPG, PNG, WEBP
이미지당 크레딧은 해상도와 품질에 따라 달라집니다 — 전체 표는 요금제 섹션을 참고하세요.
Nano Banana 2
Nano Banana 2은 gpt-image-2보다 더 폭넓은 화면 비율을 지원하는 고품질 이미지 모델입니다 — 세로/가로 프리셋(3:2, 2:3, 4:5, 5:4)과 시네마틱한 21:9가 추가되었습니다. 하나의 워크플로에서 두 모드를 모두 처리합니다 — urls를 전달하면 자동으로 편집 모드로 전환됩니다. 모델명: nano-banana-2.
텍스트로 이미지 생성
curl -X POST \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "nano-banana-2",
"inputs": {
"prompt": "A neon-lit cyberpunk alley at midnight, photoreal",
"resolution": "2k",
"aspectRatio": "16:9"
}
}' \
https://seegen.ai/api/v1/jobs/createTask이미지로 이미지 생성(편집)
urls로 1~10장의 참조 이미지를 전달하세요. 모델은 이를 prompt에 설명된 편집을 위한 시각적 맥락으로 사용합니다.
curl -X POST \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "nano-banana-2",
"inputs": {
"urls": ["https://example.com/portrait.jpg"],
"prompt": "Restyle as oil painting",
"resolution": "2k",
"aspectRatio": "1:1"
}
}' \
https://seegen.ai/api/v1/jobs/createTaskNano Banana 2 파라미터 레퍼런스
nano-banana-2 모델의 모든 inputs 파라미터에 대한 전체 레퍼런스입니다.
| 파라미터 | 타입 | 필수 | 설명 |
|---|---|---|---|
| prompt | string | 예 | 생성할 이미지에 대한 텍스트 설명, 또는 urls가 제공된 경우 적용할 편집 내용. |
| urls | string[] | 아니요 | 이미지로 이미지(편집) 모드용 참조 이미지 URL(1~10장). 텍스트로 이미지 생성 시 생략. 공개 HTTPS URL을 허용합니다. |
| resolution | string | 아니요 | "1k" / "2k" / "4k". 기본값: "2k". 크레딧은 등급에 따라 달라집니다(요금제 참고). |
| aspectRatio | string | 아니요 | "1:1" / "16:9" / "9:16" / "4:3" / "3:4" / "3:2" / "2:3" / "4:5" / "5:4" / "21:9". 기본값: "1:1". |
입력 이미지 요구 사항(이미지로 이미지 모드)
- 작업당 참조 이미지 최대 10장
- 이미지당 최대 파일 크기 50MB
- 짧은 변 ≥ 256px
- 화면 비율은 1:3~3:1 사이
- 형식: JPEG, JPG, PNG, WEBP
이미지당 크레딧은 해상도에 따라 달라집니다 — 전체 표는 요금제 섹션을 참고하세요.
Nano Banana Pro
Nano Banana Pro은 gpt-image-2보다 더 폭넓은 화면 비율을 지원하는 고품질 이미지 모델입니다 — 세로/가로 프리셋(3:2, 2:3, 4:5, 5:4)과 시네마틱한 21:9가 추가되었습니다. 하나의 워크플로에서 두 모드를 모두 처리합니다 — urls를 전달하면 자동으로 편집 모드로 전환됩니다. 모델명: nano-banana-pro.
텍스트로 이미지 생성
curl -X POST \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "nano-banana-pro",
"inputs": {
"prompt": "A neon-lit cyberpunk alley at midnight, photoreal",
"resolution": "2k",
"aspectRatio": "16:9"
}
}' \
https://seegen.ai/api/v1/jobs/createTask이미지로 이미지 생성(편집)
urls로 1~10장의 참조 이미지를 전달하세요. 모델은 이를 prompt에 설명된 편집을 위한 시각적 맥락으로 사용합니다.
curl -X POST \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "nano-banana-pro",
"inputs": {
"urls": ["https://example.com/portrait.jpg"],
"prompt": "Restyle as oil painting",
"resolution": "2k",
"aspectRatio": "1:1"
}
}' \
https://seegen.ai/api/v1/jobs/createTaskNano Banana Pro 파라미터 레퍼런스
nano-banana-pro 모델의 모든 inputs 파라미터에 대한 전체 레퍼런스입니다.
| 파라미터 | 타입 | 필수 | 설명 |
|---|---|---|---|
| prompt | string | 예 | 생성할 이미지에 대한 텍스트 설명, 또는 urls가 제공된 경우 적용할 편집 내용. |
| urls | string[] | 아니요 | 이미지로 이미지(편집) 모드용 참조 이미지 URL(1~10장). 텍스트로 이미지 생성 시 생략. 공개 HTTPS URL을 허용합니다. |
| resolution | string | 아니요 | "1k" / "2k" / "4k". 기본값: "2k". 크레딧은 등급에 따라 달라집니다(요금제 참고). |
| aspectRatio | string | 아니요 | "1:1" / "16:9" / "9:16" / "4:3" / "3:4" / "3:2" / "2:3" / "4:5" / "5:4" / "21:9". 기본값: "1:1". |
입력 이미지 요구 사항(이미지로 이미지 모드)
- 작업당 참조 이미지 최대 10장
- 이미지당 최대 파일 크기 50MB
- 짧은 변 ≥ 256px
- 화면 비율은 1:3~3:1 사이
- 형식: JPEG, JPG, PNG, WEBP
이미지당 크레딧은 해상도에 따라 달라집니다 — 전체 표는 요금제 섹션을 참고하세요.
Seedream 5.0 Lite
2K 또는 4K, 15가지 화면 비율로 빠른 텍스트로 이미지 생성 및 이미지로 이미지 생성을 지원합니다. 모델명: seedream-v5.0-lite.
텍스트로 이미지 생성
curl -X POST \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "seedream-v5.0-lite",
"inputs": {
"prompt": "A cinematic product photograph, soft studio light",
"resolution": "2k",
"aspectRatio": "1:1"
}
}' \
https://seegen.ai/api/v1/jobs/createTask이미지로 이미지 생성(편집)
curl -X POST \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "seedream-v5.0-lite",
"inputs": {
"prompt": "Restyle the references as a premium fashion campaign",
"urls": ["https://example.com/reference.png"],
"resolution": "4k",
"aspectRatio": "3:4"
}
}' \
https://seegen.ai/api/v1/jobs/createTaskSeedream 5.0 Lite 파라미터
| 파라미터 | 타입 | 필수 | 설명 |
|---|---|---|---|
| prompt | string | 예 | 이미지 설명 또는 편집 지시사항. |
| urls | string[] | 아니요 | 공개 HTTPS 참조 이미지 URL 1~10장. 텍스트로 이미지 생성 시 생략. |
| resolution | string | 아니요 | "2k" 또는 "4k". 기본값: "2k". |
| aspectRatio | string | 아니요 | "1:1", "1:2", "2:1", "1:3", "3:1", "2:3", "3:2", "3:4", "4:3", "4:5", "5:4", "9:16", "16:9", "9:21", 또는 "21:9". |
Seedream 5.0 Pro
1K 또는 2K로 고화질 생성 및 편집을 지원합니다. 모델명: seedream-v5.0-pro.
텍스트로 이미지 생성
curl -X POST \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "seedream-v5.0-pro",
"inputs": {
"prompt": "Editorial portrait with dramatic rim lighting",
"resolution": "2k",
"aspectRatio": "3:4"
}
}' \
https://seegen.ai/api/v1/jobs/createTask이미지로 이미지 생성(편집)
curl -X POST \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "seedream-v5.0-pro",
"inputs": {
"prompt": "Turn the reference into a cinematic poster",
"urls": ["https://example.com/reference.png"],
"resolution": "2k",
"aspectRatio": "1:2"
}
}' \
https://seegen.ai/api/v1/jobs/createTaskSeedream 5.0 Pro 파라미터
| 파라미터 | 타입 | 필수 | 설명 |
|---|---|---|---|
| prompt | string | 예 | 이미지 설명 또는 편집 지시사항. |
| urls | string[] | 아니요 | 공개 HTTPS 참조 이미지 URL 1~10장. 텍스트로 이미지 생성 시 생략. |
| resolution | string | 아니요 | "1k" 또는 "2k". 기본값: "1k". 4k는 지원되지 않습니다. |
| aspectRatio | string | 아니요 | "1:1", "1:2", "2:1", "1:3", "3:1", "2:3", "3:2", "3:4", "4:3", "4:5", "5:4", "9:16", "16:9", "9:21", 또는 "21:9". |
비디오 업스케일러
작업 생성
POST /api/v1/upscale/create
# source.url accepts ANY https video URL — your own CDN, OR a file you first
# uploaded to us via /api/v1/assets/upload (pass the r2Url it returns). No need
# to declare which: we detect it. External URLs are validated; our own are trusted.
curl -X POST \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"source": { "type": "url", "url": "https://your-cdn.com/video.mp4" },
"targetResolution": "2k",
"callBackUrl": "https://your-server.com/webhook"
}' \
https://seegen.ai/api/v1/upscale/create| 파라미터 | 타입 | 필수 | 설명 |
|---|---|---|---|
| source.type | string | 예 | 모든 소스에는 "url"을 사용하세요("uploadId"는 하위 호환성을 위해 유지되는 레거시 별칭입니다). |
| source.url | string | 아니요 | type="url"인 경우. 자체 CDN 또는 /api/v1/assets/upload가 반환하는 r2Url 등 모든 https 비디오 URL. 외부 URL의 경우, http 및 사설/내부 IP는 거부됩니다(SSRF 방지). 자체 에셋 호스트의 URL은 이 검사를 건너뜁니다. |
| source.r2Url | string | 아니요 | 레거시 — type="uploadId"인 경우에만 사용(하위 호환). 새로 연동할 때는 type="url"을 사용하세요. |
| targetResolution | string | 예 | "720p", "1080p", "2k", 또는 "4k". 소스 해상도보다 높아야 합니다. |
| callBackUrl | string | 아니요 | 종료 상태(완료 또는 실패)에 도달했을 때 한 번 호출되는 Webhook URL. |
생성 응답
{
"taskId": "n770mo4sh6rpi690ff3gwymx",
"orderId": "ord_2026...",
"status": "validating"
}상태 조회
GET /api/v1/upscale/query?taskId=...
상태는 validating → processing → completed / failed 순으로 진행됩니다.
curl -H "Authorization: Bearer $API_KEY" \
"https://seegen.ai/api/v1/upscale/query?taskId=n770mo4sh6rpi690ff3gwymx"완료 응답
{
"taskId": "n770mo4sh6rpi690ff3gwymx",
"status": "completed",
"targetResolution": "2k",
"creditsConsumed": 900,
"result": {
"url": "https://static.seegen.ai/standalone-upscale/results/...mp4",
"probedDurationSeconds": 30,
"probedSourceResolution": "1280x720"
},
"error": null,
"createdAt": "2026-04-29T01:23:45.000Z",
"finishedAt": "2026-04-29T01:35:01.000Z"
}실패 응답
{
"taskId": "n770mo4sh6rpi690ff3gwymx",
"status": "failed",
"creditsConsumed": null,
"result": null,
"error": {
"code": "SOURCE_RESOLUTION_TOO_HIGH",
"message": "Source 3840x2160 is not below target 4k"
}
}제한 사항
- 소스: https URL 또는 이전에 업로드한 R2 URL
- 최대 600초(5초 미만 클립은 5초로 과금)
- 파일 크기 ≤ 200MB
- 형식: MP4 / MOV / WebM
- 소스 해상도는 타깃보다 낮아야 합니다
요금
- 720P: 초당 17크레딧(5s = 85, 30s = 510)
- 1080P: 초당 25크레딧(5s = 125, 30s = 750)
- 2K: 초당 38크레딧(5s = 190, 30s = 1140)
- 4K: 초당 50크레딧(5s = 250, 30s = 1500)
- 최소 5초; 실패 시 크레딧이 자동으로 환불됩니다
오류 코드
조치할 수 있는 일반적인 오류입니다. 그 외의 실패는 내용을 바로 알 수 있는 message 필드를 반환합니다 — 코드가 이 중 하나라고 가정하기 전에 먼저 이를 확인하세요.
| 코드 | 의미 |
|---|---|
| INVALID_URL | URL 형식이 잘못되었거나 https가 아닙니다 |
| URL_NOT_REACHABLE | URL을 가져올 수 없습니다 — 공개적으로 접근 가능한지 확인하세요 |
| UNSUPPORTED_MEDIA_TYPE | 파일이 비디오가 아니거나 MP4 / MOV / WebM 형식이 아닙니다 |
| FILE_TOO_LARGE | 소스가 200MB를 초과합니다 |
| DURATION_EXCEEDS_LIMIT | 소스가 600초를 초과합니다 |
| SOURCE_RESOLUTION_TOO_HIGH | 소스가 이미 타깃과 같거나 더 높습니다 — 더 높은 타깃을 선택하세요 |
| INSUFFICIENT_CREDITS | 크레딧이 부족합니다 — 충전 후 다시 시도하세요 |
Webhook 콜백
폴링 대신 callBackUrl을 제공하면 작업이 완료되거나 실패했을 때 결과를 자동으로 받을 수 있습니다.
curl -X POST \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "sd2",
"callBackUrl": "https://your-server.com/webhook/callback",
"inputs": {
"prompt": "A cat playing piano",
"duration": "5s"
}
}' \
https://seegen.ai/api/v1/jobs/createTask콜백 페이로드
작업이 완료되면 queryTask 응답과 동일한 형식으로 귀하의 URL에 POST 요청을 전송합니다:
// POST to your callBackUrl
{
"taskId": "task_abc123",
"model": "sd2",
"status": "COMPLETED",
"creditsUsed": 200,
"output": [
{
"url": "https://static.seegen.ai/videos/result.mp4",
"width": 1280,
"height": 720
}
],
"error": null,
"createTime": 1711234567890,
"completeTime": 1711234612345
}재시도 정책: 엔드포인트가 2xx 이외의 상태를 반환하면, 지연 시간을 늘려가며 최대 3회 재시도합니다(1s, 5s, 30s).
응답 형식
createTask 응답
// 200 OK
{ "taskId": "task_abc123" }queryTask 응답
{
"taskId": "task_abc123",
"model": "sd2",
"status": "COMPLETED", // "PENDING" | "PROCESSING" | "COMPLETED" | "FAILED"
"creditsUsed": 200,
"output": [ // null when status is not "COMPLETED"
{
"url": "https://static.seegen.ai/videos/result.mp4",
"width": 1280,
"height": 720
}
],
"error": null, // error message when status is "FAILED"
"createTime": 1711234567890,
"completeTime": 1711234612345
}credits 응답
{
"credits": 5000,
"availableCredits": 4800
}오류 처리
| 상태 코드 | 의미 | 조치 |
|---|---|---|
| 400 | 잘못된 파라미터 | 오류 메시지를 확인하고 요청을 수정하세요 |
| 401 | API 키가 유효하지 않거나 없음 | Authorization 헤더 형식을 확인하세요 |
| 402 | 크레딧 부족 | seegen.ai에서 크레딧을 추가로 구매하세요 |
| 403 | 접근 거부 | 본인 소유의 작업만 조회할 수 있습니다 |
| 404 | 작업을 찾을 수 없음 | taskId가 올바른지 확인하세요 |
| 429 | 동시 실행 제한(작업 3개) | 기존 작업이 완료될 때까지 기다리세요 |
| 500 | 내부 서버 오류 | 몇 초 후 다시 시도하세요 |
제출 전 검증(코드가 포함된 400)
Seedance 요청은 크레딧이 청구되기 전에 업스트림 계약과 대조하여 확인됩니다. 검사에 실패하면 createTask는 HTTP 400과 함께 { "message": "...", "code": "..." }를 반환하며 작업은 생성되지 않습니다. 메시지에는 어떤 제한에 걸렸는지와 해결 방법이 정확히 안내됩니다.
| 파라미터 | 타입 | 필수 | 설명 |
|---|---|---|---|
| EMPTY_CONTENT | code | 아니요 | 프롬프트도 없고 참조 이미지/비디오/오디오도 없습니다. |
| AUDIO_ONLY_NOT_SUPPORTED | code | 아니요 | sd2 / sd2-fast / sd2-mini에서 오디오만 참조로 사용되었습니다. 이미지나 비디오를 추가하거나, sd2.5(오디오 단독 지원)를 사용하세요. |
| DURATION_OUT_OF_RANGE | code | 아니요 | duration이 모델 범위 내의 정수가 아닙니다(sd2 계열 "4s"–"15s", sd2.5 "4s"–"30s"). |
| EDIT_SOURCE_VIDEO_REQUIRED / EXTEND_SOURCE_VIDEO_REQUIRED | code | 아니요 | videoUrls에 비디오가 없는 상태로 mode "edit" / "extend"가 요청되었습니다. |
| EDIT_SOURCE_DURATION_INVALID | code | 아니요 | sd2.5 비디오 편집: 요청의 비디오가 4s 미만이거나 30s를 초과합니다(ARK는 편집 작업의 모든 비디오에 4–30s를 적용합니다). |
| TOO_MANY_REFERENCES | code | 아니요 | 모델이 허용하는 수보다 많은 참조 이미지/비디오/오디오 클립이 있습니다(sd2 계열 9 / 3 / 3, sd2.5 30 / 10 / 10; extend는 비디오 3개 이하). |
| REFERENCE_VIDEO_DURATION_INVALID | code | 아니요 | 참조 비디오가 클립당 최대값(sd2 계열 15s, sd2.5 30s)을 초과하거나, 참조 비디오 총 길이가 상한(15s / 30s)을 초과합니다. |
| ASSET_NOT_FOUND / EXTERNAL_URL / READ_TIMEOUT / READ_FAILED | code | 아니요 | videoUrls 항목을 업로드한 에셋 중 하나로 확인할 수 없거나, 길이를 읽을 수 없습니다. |
전체 예제
전체 워크플로: 에셋을 업로드하고, 검토를 기다린 뒤, 승인된 에셋으로 작업을 생성하고, 결과를 폴링합니다.
const API_KEY = process.env.API_KEY;
const BASE = "https://seegen.ai/api/v1";
const headers = {
"Authorization": `Bearer ${API_KEY}`,
"Content-Type": "application/json",
};
// 1. Upload asset and wait for review
// (To upload a LOCAL file instead of a URL, POST multipart/form-data with a "file"
// field — no Content-Type header, no "type" — see the Upload Asset section above.)
async function uploadAndWaitForAsset(url, type = "IMAGE") {
const res = await fetch(`${BASE}/assets/upload`, {
method: "POST",
headers,
body: JSON.stringify({ url, type }),
});
if (!res.ok) throw new Error(`Upload failed: ${(await res.json()).message}`);
const asset = await res.json();
console.log(`Asset uploaded: ${asset.assetId}, status: ${asset.status}`);
// Poll until review completes
while (true) {
const statusRes = await fetch(
`${BASE}/assets/status?assetId=${asset.assetId}`,
{ headers }
);
const status = await statusRes.json();
if (status.status === "ACTIVE") {
console.log(`Asset approved: asset://${status.volcAssetId}`);
return status.volcAssetId;
}
if (status.status === "FAILED") {
throw new Error(`Asset review failed: ${status.failReason}`);
}
await new Promise((r) => setTimeout(r, 3000));
}
}
// 2. Create a task
async function createTask(inputs, callBackUrl) {
const res = await fetch(`${BASE}/jobs/createTask`, {
method: "POST",
headers,
body: JSON.stringify({
model: "sd2",
inputs,
...(callBackUrl && { callBackUrl }),
}),
});
if (!res.ok) throw new Error(`[${res.status}] ${(await res.json()).message}`);
return res.json();
}
// 3. Poll until done
async function waitForResult(taskId, timeoutMs = 300000) {
const start = Date.now();
while (Date.now() - start < timeoutMs) {
const res = await fetch(
`${BASE}/jobs/queryTask?taskId=${taskId}`,
{ headers }
);
const result = await res.json();
if (result.status === "COMPLETED") return result;
if (result.status === "FAILED") throw new Error(result.error);
await new Promise((r) => setTimeout(r, 5000));
}
throw new Error("Timeout waiting for task");
}
// Full workflow: upload → review → generate → result
async function main() {
// Upload image and wait for review
const volcAssetId = await uploadAndWaitForAsset(
"https://example.com/photo.jpg", "IMAGE"
);
// Create task with approved asset
const { taskId } = await createTask({
urls: [`asset://${volcAssetId}`],
prompt: "The person slowly looks up and smiles",
duration: "5s",
});
console.log(`Task: ${taskId}`);
// Wait for video
const result = await waitForResult(taskId);
console.log(`Video: ${result.output[0].url}`);
}
main().catch(console.error);