Seedance 2.0 API — Coming SoonGet early access
EvoLink를 통한 Seedance 1.5 Pro API 연동 가이드: 비동기 작업, 콜백 및 모드 상세 분석
지도 시간

EvoLink를 통한 Seedance 1.5 Pro API 연동 가이드: 비동기 작업, 콜백 및 모드 상세 분석

Jessie
Jessie
COO
2026년 1월 3일
19분 소요

학습 내용

  • EvoLink의 비동기 작업 API(생성 → 상태 확인 → 결과 수신)를 통한 Seedance 1.5 Pro 배포.
  • callback_url의 안전한 사용(HTTPS 전용, 재시도 의미론 및 실패 시 처리).
  • 하나의 엔드포인트로 텍스트-투-비디오, 이미지-투-비디오, 첫-끝 프레임 모드 사용법.
  • 멱등성 키(Idempotency Key)와 재시도 예산을 통한 중복 처리 방지.
  • 링크 만료(24시간 보관 창) 전 출력 자산의 재호스팅(Re-hosting) 방법.
  • 불안정한 가격 정보에 의존하지 않는 "성공적인 출력당 비용" 모델 구축.
  • Veo 3.1Kling O1과의 통합 트레이드오프 비교(가격이 아닌 설계 구조 기반).

빠른 시작 체크리스트 (복사하여 작업 티켓에 붙여넣으세요)

  • POST /v1/videos/generations를 구현하여 작업 생성
  • GET /v1/tasks/{task_id} 폴링 구현
  • callback_url 엔드포인트 구현 (2xx 즉시 응답 + 비동기 처리)
  • 사용자 의도(예: "생성" 버튼 클릭)별로 멱등성 키 추가
  • 24시간 이내에 비디오 자산 재호스팅
  • 모니터링 수단: p50/p95 지연 시간, 정책 실패율, 재시도율, 성공당 시도 횟수

Seedance 1.5 Pro Demo
EvoLink는 Seedance 1.5 Pro를 비동기 생성 흐름으로 제공합니다.
  • 작업 생성 → task_id 수신
  • GET /v1/tasks/{task_id}를 폴링하거나 callback_url을 통해 콜백 수신
  • 완료 시, results URL을 가져와서 즉시 다운로드(링크가 만료되기 때문)

엔드포인트 개요

작업 생성
  • POST https://api.evolink.ai/v1/videos/generations
작업 조회
  • GET https://api.evolink.ai/v1/tasks/{task_id}
보관 기간
  • 출력 링크는 24시간 동안 유효합니다. 신속하게 재호스팅하세요.

하나의 엔드포인트, 세 가지 모드 (image_urls를 통한 자동 감지)

EvoLink는 image_urls의 길이에 따라 모드를 추론합니다.
  • 이미지 0개 → 텍스트-투-비디오 (Text-to-Video)
  • 이미지 1개 → 이미지-투-비디오 (Image-to-Video)
  • 이미지 2개 → 첫-끝 프레임 (첫 프레임 + 끝 프레임 가이드를 사용한 생성)
제약 사항
  • 요청당 최대 이미지 2개
  • 각 이미지 크기 ≤ 10MB
  • 지원 형식: jpg/jpeg/png/webp
  • URL은 서버에서 직접 접근 가능해야 함

프로덕션 단계에서 중요한 요청 필드

다음은 실제 운영 시 활용하게 될 파라미터들입니다.

  • model: "seedance-1.5-pro" 사용
  • prompt (필수): 최대 2000 토큰
  • duration: 기본 5초, 4~12초 지원

    운영 팁: 요금은 재생 시간에 비례하므로 재생 시간을 핵심 예산 제어 수단으로 활용하세요.

  • quality: 480p 또는 720p (기본값 720p)
  • aspect_ratio: 16:9, 9:16, 1:1, 4:3, 3:4, 21:9, adaptive (기본값 16:9)
  • generate_audio: 불리언 (기본값 true)
    팁: 대화 내용을 큰따옴표로 묶으면 대사 전달력이 향상됩니다.
  • callback_url: 완료/실패/취소된 작업을 위한 HTTPS 전용 콜백 URL (권장)

시나리오별 파라미터 제안 (빠른 의사결정용)

이 표는 문서나 기획서(PRD)에 인용하도록 설계되었습니다.

시나리오제안 durationqualityaspect_ratiogenerate_audio참고 사항
대화형 캐릭터 / 립싱크6–8초720p9:16 또는 16:9true대사 내용을 "큰따옴표"로 감싸기
배경 / B-roll5–8초720p16:9true/false오디오가 필수적이 아니면 제외하여 비용 절감
제품 데모 / 움직임4–6초720padaptivefalse→true오디오 없이 초안 생성 후 최종본에서만 추가
스토리보드 반복 시안4–5초480p16:9false반복 속도 최적화, 이후 최종 결과물 생성
첫-끝 프레임 연속성6–10초720p촬영 원본에 맞춤true/false이미지 2개 제공, 구성을 일정하게 유지

작업 수명 주기: 상태 머신 먼저 설계하기

안정적인 연동은 예측 가능한 내부 상태 머신(State Machine)에서 시작됩니다.

created → queued/processing → succeeded → (다운로드 → 재호스팅 → 전달)
                     └──────→ failed (정책 위반 | 일시적 오류 | 내부 오류)
                     └──────→ cancelled
핵심 규칙: 콜백을 최종 상태가 아닌 '신호'로 취급하세요. 상태를 확정하기 전에 항상 작업 조회 API를 통해 상태를 다시 확인해야 합니다.

1) 작업 생성 (cURL) — 복사하여 즉시 실행 가능

이 예시는 쉘 이스케이프 문제를 피하기 위해 따옴표가 없는 간단한 프롬프트를 사용합니다.

curl --request POST \
  --url https://api.evolink.ai/v1/videos/generations \
  --header 'Authorization: Bearer <사용자 토큰>' \
  --header 'Content-Type: application/json' \
  --data '{
    "model": "seedance-1.5-pro",
    "prompt": "A detective in the rain says: \"Do not move.\" Neon reflections on the street. Subtle footsteps and radio static.",
    "duration": 8,
    "quality": "720p",
    "aspect_ratio": "16:9",
    "generate_audio": true,
    "callback_url": "https://your-domain.com/webhooks/evolink-task"
  }'
예상 동작

API는 즉시 다음과 같은 정보가 포함된 작업 객체를 반환합니다.

  • id (작업 ID)
  • status
  • usage 필드(예: billing_rule, credits_reserved)

2) 작업 상태 폴링 (cURL)

curl --request GET \
  --url https://api.evolink.ai/v1/tasks/<task_id> \
  --header 'Authorization: Bearer <사용자 토큰>'

완료 시 작업 객체에는 다음이 포함됩니다.

  • 출력물 URL이 담긴 results 배열
  • statusprogress (진행률)

callback_url: 신뢰성 규칙 (생략 금지)

EvoLink는 작업이 완료, 실패 또는 취소되었을 때 여러분의 callback_url로 호출을 보낼 수 있습니다.
제약 사항 및 재시도 정책:
  • HTTPS만 지원
  • 내부/사설 네트워크 IP 차단
  • 타임아웃: 10초
  • 최대 3회 재시도 (재시도 간격: 1 / 2 / 4초)
  • 콜백 바디 형식은 작업 조회 응답 형식과 동일

콜백 프로덕션 체크리스트

  • 200ms–500ms 이내에 2xx 응답 (작업을 큐에 넣고 즉시 응답, 내부에서 무거운 작업 수행 금지)
  • task_id가 존재하며 해당 테넌트/사용자의 것인지 확인
  • 최종 상태를 기록하기 전 항상 GET /v1/tasks/{task_id}를 다시 조회
  • 콜백 중복 처리 (결과가 이미 기록된 task_id는 무시)
  • 디버깅을 위해 원시 콜백 페이로드 로그 기록 (민감 정보 제외)
  • 콜백 실패율 증가 시 알림 설정 (보통 수신 측 엔드포인트 이슈임)

멱등성: 중복 처리(및 이중 결제) 방지

공급자 측의 처리가 정확하더라도 다음과 같은 이유로 시스템에서 중복이 발생할 수 있습니다.

  • 사용자가 "생성" 버튼을 여러 번 클릭
  • 모바일 네트워크의 재시도
  • 게이트웨이 타임아웃
권장 패턴
  • 클라이언트가 사용자 의도당 하나의 idempotency_key 생성 (한 번의 클릭 = 하나의 키)
  • 서버는 (user_id, idempotency_key)task_id를 TTL과 함께 저장
  • 동일한 키가 다시 들어오면 새 작업을 생성하지 않고 기존 task_id를 반환

API가 멱등성을 명시적으로 처리한다고 되어 있지 않다면, 애플리케이션 단계에서 직접 구현해야 합니다.


자산 전달: 24시간의 함정

출력 링크는 24시간 후에 만료되므로 여러분의 파이프라인에서 다음 작업을 수행해야 합니다.

  • status=completed 시 결과를 즉시 다운로드
  • 자체 오브젝트 스토리지(S3/GCS/R2)에 재호스팅
  • CDN을 통한 서비스
  • 메타데이터 영구 보관: task_id, 프롬프트 해시, 사용자 ID, 생성 설정, 모데레이션 결과 등
자주 발생하는 실패 사례: "사용자가 다음 날 돌아왔는데 링크가 만료됨"

완료 시 자동으로 재호스팅하여 이를 방지하세요.


융통성 있는 비용 모델링 (고정 가격에 의존하지 않기)

가격 숫자가 아닌 지속 가능한 단위 경제학 모델이 필요합니다.

1) 플랫폼의 결제 기준 파악

운영 측면에서 비용을 결정하는 요인은 다음과 같습니다.

  • duration (길수록 비쌈)
  • generate_audio (오디오 추가 시 비용 발생)
  • 반복 횟수 (사용자가 첫 시도에 만족하는 경우는 드묾)

2) "시도당 비용"이 아닌 "성공한 출력당 비용" 측정

다음을 추적하세요.

  • attempts_per_success (시나리오별 성공당 시도 횟수)
  • retry_rate (재시도율)
  • policy_failure_rate (정책 위반 실패율)
  • p95_latency (지연 시간 분포)

실제 단위 경제학:

세션당 성공적인 출력 수 × 성공에 필요한 평균 시도 횟수

3) 초안 → 승인 → 최종 생성 (가장 확실한 비용 절감 전략)

반복 시도가 많은 경우:

  • 낮은 품질/짧은 길이의 저렴한 설정으로 초안 생성
  • 사용자가 승인한 후 Seedance 1.5 Pro(오디오 포함)로 최종 결과물 생성

프로덕션에서의 함정과 해결책

1) 비동기 함정 (타임아웃 및 좀비 작업)

단일 HTTP 요청을 오래 열어두지 마세요. 항상 즉시 task_id를 반환하고 콜백이나 폴링으로 마무리하세요.
베스트 프랙티스
  • "작업 TTL"과 "처리 중" UI 상태 설정
  • p95 완료 시간을 추적하고 지연 발생 시 사용자에게 상황 안내

2) 모데레이션(검수) 결과 지연

"생성 후 검수 실패" 상태를 위한 UI/백엔드 설계를 준비하세요.

  • 실패 원인 구분: 정책 위반 vs 일시적 오류 vs 내부 오류
  • 정책 위반에 대해서는 절대 자동 재시도를 수행하지 않음
  • 프롬프트 재작성 가이드 제공 (특히 민감한 내용 관련)

Comparison Diagram 1Comparison Diagram 2

비교: Seedance 1.5 Pro vs Veo 3.1 vs Kling O1

가격 숫자는 변하지만 플랫폼의 설계 방식과 연동 편의성은 유지됩니다.

표 A — 연동 및 비용 산정 방식

차원Seedance 1.5 Pro (EvoLink 경유)Veo 3.1Kling O1
요금 산정 단위재생 시간/오디오 기반 호출당 산정재생 시간 중심 산정이 일반적접근 경로별 상이 (플랜/크레딧 등)
연동 계약비동기 작업 + 콜백/폴링비동기 Job 패턴이 일반적업체 및 래퍼(Wrapper)별 상이
네이티브 오디오generate_audio를 통한 지원오디오 합성을 핵심 기능으로 제공버전 및 접근 경로에 따라 다름
운영 예측 가능성강력함 (재호스팅 및 멱등성 보장 시)에코시스템이 안정적일 때 강력함서비스 제공자의 설계 전문성에 의존
최적 활용오디오가 중요한 단편 영상 + 첫/끝 프레임 제어시간 기반 예산 관리 + Google 에코시스템영상 편집/스타일 변경 중심 제품
결론: 안정적인 비동기 계약과 오디오가 중요한 출력을 원한다면 Seedance가 최선입니다. Veo는 시간 기반 예산 관리를 선호할 때 매력적입니다. Kling O1은 영상 편집과 스타일 변경이 중심인 제품에 적합합니다.

표 B — 프로덕션 결정 매트릭스

우선순위가 다음과 같을 때…Seedance 1.5 Pro (EvoLink 경유)Veo 3.1Kling O1
텍스트/이미지/첫-끝 프레임 단일 API지원 (image_urls 길이에 따라)엔드포인트별 상이업체별 상이
신뢰할 수 있는 콜백정의된 재시도 의미론 제공업체에 의존적업체에 의존적
자산 운영 예측 가능성24시간 내 재호스팅 필요업체에 의존적업체에 의존적
생성 + 편집 워크플로우주요 타겟 아님주요 타겟 아님핵심 차별화 요소인 경우가 많음
연동 복잡도(최저 순)상 (단일 엔드포인트 + 작업 API)상 (에코시스템 내인 경우)중~하 (의미론적 파편화 시)

의사결정 체크리스트 (빠른 결정용)

다음과 같은 경우 EvoLink를 통해 Seedance 1.5 Pro 사용:
  • 네이티브 오디오가 필요하고 프롬프트의 따옴표로 대사를 구조화할 수 있는 경우.
  • 텍스트/이미지/첫-끝 프레임 모드를 하나의 계약으로 사용하고 싶은 경우.
  • 24시간 이내에 자산 재호스팅을 자동화할 수 있는 경우.
다음과 같은 경우 Veo 3.1 사용:
  • 재생 시간 기반의 예산 관리와 안정적인 클라우드 에코시스템 워크플로우를 선호하는 경우.
다음과 같은 경우 Kling O1 사용:
  • 영상 편집/스타일 변경이 핵심이며 안정적인 접근 경로를 확보한 경우.

자주 묻는 질문 (FAQ)

Q: EvoLink에서 텍스트-투-비디오와 이미지-투-비디오를 어떻게 전환하나요?

image_urls를 사용하세요. 0개면 텍스트 기반, 1개면 이미지 기반, 2개면 첫-끝 프레임 모드입니다.

Q: 콜백과 폴링 중 무엇이 더 안전한가요?

가능하다면 callback_url을 사용하세요. 단, 상태를 확정하기 전 작업 조회를 통해 다시 확인하는 과정이 필요합니다.

Q: 왜 결과를 재호스팅해야 하나요?

링크가 24시간 후에 만료되기 때문입니다. 완료 즉시 다운로드하여 보관하십시오.

Q: 중복 작업을 방지하려면 어떻게 해야 하나요?

사용자 의도마다 멱등성 키를 구현하세요: (user_id, idempotency_key)task_id.

지금 Seedance 1.5 Pro로 개발을 시작하세요

이제 API 사양과 장단점을 모두 파악하셨습니다. 지금 바로 여러분의 제품에 프로덕션 기능을 구현해 보세요.

EvoLink는 프롬프트 → 작업 → 전달까지의 깔끔한 경로를 제공합니다.
  • Seedance 1.5 Pro, Veo 3.1, Kling 등을 위한 단일 API 키.
  • 재시도 정책이 정의된 비동기 작업 + 콜백.
  • 투명한 크레딧 기반의 사용량 요금제.

대부분의 팀이 1시간 이내에 연동을 완료합니다.

AI 비용을 89% 절감할 준비가 되셨나요?

오늘 EvoLink를 시작하고 지능형 API 라우팅의 힘을 경험해보세요.