Skip to main content
업데이트: 2026-06-17

Seedance 2.0 과금 안내

이 문서는 Crazyrouter 현재 코드의 실제 정산 로직만을 설명하며, 공식 가격 페이지에 대한 일반적인 해설이 아닙니다. 적용 모델:
  • doubao-seedance-2-0
  • doubao-seedance-2-0-fast
접속 주소는 https://api.crazyrouter.com으로 통일해서 사용하며, 기본 설정은 API Endpoint를 참고하세요.

먼저 결론부터

  1. Seedance 2.0과 Seedance 2.0 Fast는 로컬 코드에서 모두 per_output_token 기준으로 정산되며, 초 단위 정산이 아닙니다.
  2. 작업 제출 시, 이 두 유형 작업의 선차감 금액은 기본적으로 0입니다.
  3. 작업이 성공하면, 시스템은 업스트림이 반환한 TotalTokens 또는 CompletionTokens를 기준으로 최종 차감을 수행합니다.
  4. duration은 작업 특성으로 기록되지만 Seedance 2.0의 최종 차감 공식에는 참여하지 않습니다.
  5. 따라서 코드에는 “몇 token = 몇 초”라는 고정된 전역 환산 공식이 존재하지 않습니다.
  6. “초당 대략 얼마인가”에 답하려면, 작업 완료 후 실제 출력 tokens / 실제 초 수로 관측치를 산출할 수밖에 없으며, 이를 고정 과금 규칙으로 취급해서는 안 됩니다.

로컬 코드의 과금 규칙

1. 어떤 과금 규칙에 해당하는가

Seedance 2.0 계열의 과금 규칙은 “비디오 입력 포함 여부”에 따라 결정됩니다. 여기서 video0 / video1은 초 수가 아니라 다음을 의미합니다.
  • video0: 요청에 비디오 참조 입력이 없음
  • video1: 요청에 비디오 참조 입력이 포함됨
대응 코드:
  • model/video_billing_seedance.go
  • relay/video_billing_runtime.go

2. 작업 제출 시 왜 대체로 차감되지 않는가

런타임에서 Seedance 2.0이 해당되는 플랫폼 과금 모드는 per_output_token입니다. 이런 유형의 작업은 제출 시:
  • BasePrice가 기록됨
  • Ratio가 0으로 설정됨
  • 따라서 제출 단계의 quota = int(ratio * QuotaPerUnit) 결과는 0이 됨
대응 코드:
  • relay/video_billing_runtime.go
  • relay/relay_task.go
이것이 Seedance 2.0에서 흔히 나타나는 다음과 같은 동작의 이유입니다.
  • 작업 제출 성공
  • 우선 차감하지 않거나, 선차감이 0
  • 작업 완료 후 실제 token 기준으로 추가 차감

최종 차감 공식

작업이 성공하면 시스템은 우선적으로 settlePerOutputTokenTaskBilling을 실행합니다. Seedance 계열에 대해, 코드가 token을 가져오는 우선순위는 다음과 같습니다.
  1. taskResult.TotalTokens
  2. 위 값이 없으면 taskResult.CompletionTokens를 사용
대응 코드:
  • controller/task_video.go
최종 가격 공식:
최종 quota 공식:
현재 코드에서:
대응 코드:
  • controller/task_video.go
  • common/constants.go

초 수가 코드에서 담당하는 역할

1. duration은 인식되고 기록됨

코드는 다음 위치에서 초 수를 파싱합니다.
  • req.Duration
  • req.Seconds
  • metadata.durationSeconds
  • metadata.duration_seconds
  • metadata.duration
  • metadata.seconds
대응 코드:
  • relay/video_billing_runtime.go

2. 그러나 Seedance 2.0은 초 단위로 정산하지 않음

duration은 작업 프로파일과 로그에 들어가지만, Seedance 2.0 / 2.0 Fast가 해당되는 모드는 per_output_token이므로:
  • match.BilledSeconds는 정산에 참여하지 않음
  • 최종 차감은 업스트림이 반환한 token만 참조
이는 Veo, Wan과 같은 per_second 비디오 모델과 다릅니다.

token과 초 수를 어떻게 대응시킬 것인가

정산 기준

직접 환산할 수 없습니다. 즉, 현재 코드에는 다음과 같은 규칙이 없습니다.
이유는 간단합니다.
  • Seedance 2.0의 판매 가격 설정은 per_second가 아님
  • 코드는 duration을 고정 token 등급으로 매핑하지도 않음
  • 최종적으로는 작업 완료 후 실제 token 사용량만 인정

관측 기준

“이번 작업이 평균적으로 초당 얼마의 token을 소모했는가”를 복기하고 싶다면, 작업 완료 후 다음과 같이 관측값을 만들 수 있습니다.
반대로:
하지만 이는 사후 분석일 뿐, 정산 공식이 아닙니다.

실측 사례: 4초 720p 단순 영상

아래는 Seedance 2.0을 실제로 호출한 결과로, 실제 usage로부터 “이번 작업의 평균 초당 비용”을 역산하는 방법을 설명합니다.
이 사례는 720p이며 1080p가 아닙니다. 현재 Crazyrouter 문서에서 Seedance 2.0 / 2.0 Fast의 공개된 능력 범위는 여전히 480p, 720p이며, 1080p는 현재 공개 지원 범위에 포함되지 않습니다.

사례 1: 가장 단순한 텍스트-투-비디오

요청 특성:
  • 모델: doubao-seedance-2-0
  • 입력: 텍스트만 있고 이미지나 비디오 참조 없음
  • 해상도: 720p
  • 길이: 4s
  • 작업 ID: cgt-20260617212928-5s755
  • 업스트림 실제 반환: completion_tokens = 87300, total_tokens = 87300
요청에 비디오 참조 입력이 없으므로 다음에 해당됩니다.
계산 과정:
따라서 이 매우 단순한 4s 720p 텍스트-투-비디오의 관측 단가는 대략 다음과 같습니다.

사례 2: 이전 영상을 기반으로 한 참조 비디오 생성

요청 특성:
  • 모델: doubao-seedance-2-0
  • 입력: 텍스트 + 이전 작업에서 생성된 비디오를 reference_video로 사용
  • 해상도: 720p
  • 길이: 4s
  • 작업 ID: cgt-20260617214300-rsnsx
  • 업스트림 실제 반환: completion_tokens = 173700, total_tokens = 173700
요청에 비디오 참조 입력이 포함되므로 다음에 해당됩니다.
계산 과정:
따라서 이 4s 720p 참조 비디오 생성의 관측 단가는 대략 다음과 같습니다.

이 실측치를 고객에게 어떻게 설명할 것인가

다음과 같이 설명할 수 있습니다.
이것이 바로 “일반적으로 1초는 100,000 tokens”라고 미리 가정할 수 없는 이유입니다. 고객에게 신뢰할 수 있는 추정치를 제공하려면 실제 작업의 usage.total_tokens 또는 usage.completion_tokens를 역산해서 사용하는 것이 우선입니다.

바로 적용 가능한 두 가지 예시

예시 1: doubao-seedance-2-0-fast, 비디오 입력 포함

가정:
  • doubao-seedance-2-0-fast:video1에 해당
  • 업스트림 반환 TotalTokens = 1,200,000
  • quantityMultiplier = 1
  • groupRatio = 1
  • discount = 1
그러면:
이 요청의 duration = 12라면, 다음과 같은 관측값만 얻을 수 있습니다.
이 100,000 tokens/s는 이번 작업에만 성립합니다.

예시 2: doubao-seedance-2-0, 비디오 입력 미포함

가정:
  • doubao-seedance-2-0:video0에 해당
  • 업스트림 반환 CompletionTokens = 800,000
  • quantityMultiplier = 1
  • groupRatio = 1
  • discount = 1
그러면:
요청 시 duration = 8을 입력했다면, 다음과 같이 관측만 할 수 있습니다.
여전히 “8초 작업은 항상 80만 token”이라는 결론을 내릴 수는 없습니다.

어떤 필드를 확인해야 하는가

Seedance 2.0 비용을 조사해야 한다면, 우선 다음 정보를 확인하세요.
  • 요청에 비디오 입력이 포함되었는지
  • 해당되는 billing_key
  • 작업 완료 후 업스트림이 반환한 TotalTokens / CompletionTokens
  • 해당 작업의 groupRatio
  • 해당 모델 할인 discount
  • 최종 task.Quota
코드의 로그와 스냅샷에도 다음이 기록됩니다.
  • billing_mode
  • billing_key
  • billing_total_price
  • billing_output_tokens
  • billing_billed_tokens
  • billing_token_kind
  • billing_settled
대응 코드:
  • relay/relay_task.go
  • model/task.go
  • controller/task_video.go

한 문장으로 이해하기

Seedance 2.0에 대해:
  • 초 수는 요청 특성입니다
  • token은 정산 기준입니다
  • quota는 token 정산 후 환산되는 사이트 내 크레딧입니다
따라서 올바른 순서는 다음과 같습니다.
다음과 같은 순서가 아닙니다.
향후 플랫폼이 Seedance 2.0에 초당 판매 SKU를 별도로 추가한다면, 그때는 안정적인 “초 수-가격” 매핑이 생길 수 있습니다. 그러나 2026-06-06 기준으로 로컬 코드는 아직 그렇게 되어 있지 않습니다.