Midjourney 청구 방식
각 Midjourney subscription에는 생성 작업에 소요되는 컴퓨팅 시간인 월별 “Fast GPU Time”이 포함됩니다. 아래 수치는 Midjourney의 플랜 비교에서 가져온 것입니다.- Pricing Tiers: Midjourney는 월 $10에서 $120까지 네 가지 subscription level을 제공합니다. 각 level에는 일정량의 Fast GPU time이 포함됩니다.
- Relax Mode: Standard 이상 플랜에는 Fast time이 소진된 후 낮은 우선순위 queue에서 이미지를 무제한으로 생성할 수 있는 기능이 포함되므로, 사용량이 갑자기 차단되지 않습니다.
- Extra GPU Hours: 사용자는 월별 allowance를 모두 사용한 후에도 빠른 결과가 필요할 때 시간당 $4에 추가 Fast GPU time을 구매할 수 있습니다.
- Metering in GPU Seconds: 사용량은 각 생성 작업에 걸린 GPU time으로 측정되므로 복잡한 렌더링은 단순한 초안보다 더 많은 비용이 발생합니다.
- Community Loop: 사용자는 이미지에 평점을 매겨 무료 GPU time을 얻을 수 있으며, 이는 Midjourney의 model 학습에도 도움이 됩니다.
차별화된 특징
Midjourney model은 사용자가 지불하는 금액을 실제로 소비하는 리소스와 연결합니다:- GPU-time billing은 컴퓨팅 비용에 맞춰 복잡한 렌더링에 단순한 초안보다 높은 가격을 책정합니다.
- Relax Mode는 unlimited fallback으로 작동해 월별 allowance가 소진된 후에도 사용자가 계속 액세스할 수 있으므로 이탈을 줄입니다.
- Fast와 Relax의 구분은 속도를 중시하는 사용자에게 priority processing을 판매하여 업그레이드를 유도합니다.
- Extra GPU Hours는 power user에게 월중에 high-priority capacity를 추가할 수 있는 방법을 제공합니다.
Dodo Payments로 구축하기
subscription, usage meter, 애플리케이션 로직을 결합하면 Dodo Payments로 이 모델을 구축할 수 있습니다.1
Create a Usage Meter
각 고객이 사용하는 GPU seconds를 추적하는 meter를 생성합니다.
- Event name:
gpu.fast_seconds - Aggregation:
gpu_seconds를 Over Property로 사용하는 Sum
2
Create Subscription Products with Usage Pricing
subscription product를 생성하고 플랜의 Fast GPU allowance와 동일한 Free Threshold를 usage meter에 추가합니다.
모든 플랜에서 unit당 price를 $0으로 설정하여 threshold를 초과한 사용량이 청구되지 않도록 합니다. Dodo Payments는 threshold에서 사용량을 중지하지 않습니다. Basic 플랜의 hard cap을 적용하고 meter가 threshold를 초과하면 다른 플랜을 Relax Mode로 전환하는 작업은 애플리케이션에서 처리합니다.
3
Implement Application-Level Relax Mode
Relax Mode는 billing feature가 아닙니다. Dodo Payments usage meter에서 고객이 플랜의 threshold를 초과한 것으로 표시되면 애플리케이션이 요청을 더 느린 queue로 전송합니다.
4
Send Usage Events (Fast Mode Only)
generation이 Fast mode로 실행될 때만 usage event를 Dodo Payments로 전송합니다.
5
Sell Extra Fast Hours (One-Time Top-Up)
“Extra Fast GPU Hour”라는 one-time payment product를 생성하고 가격을 $4로 설정합니다. 고객이 이를 구매하면 구매한 시간당 3,600초씩 애플리케이션에서 해당 고객의 threshold를 늘립니다.
6
Create Checkout for Subscription
subscription plan에 대한 checkout session을 생성합니다.
Time Range Ingestion Blueprint로 가속하기
Time Range Ingestion Blueprint는 duration 기반 billing을 위한 helper를 제공하여 GPU time tracking에 필요한 작성량을 줄여 줍니다.durationMs를 전송하므로 meter의 Over Property를 durationMs로 설정하거나, seconds 기준 meter에 맞추려면 durationSeconds를 전송합니다.
Fast와 Relax 아키텍처
두 queue는 고객의 현재 사용량에 따라 각 요청을 라우팅하는 방식으로 작동합니다.- 모든 요청은 애플리케이션을 거칩니다.
- 애플리케이션은 고객의 Fast GPU usage를 플랜의 free threshold와 비교합니다.
- 사용량이 threshold 미만이면 요청은 Fast queue로 전달되고 meter로 측정됩니다.
- 사용량이 threshold를 초과하면 요청은 측정되지 않으며 우선순위가 낮은 Relax queue로 전달됩니다.
- Basic 플랜에는 Relax fallback이 없으므로 limit에 도달하면 애플리케이션이 요청을 차단합니다.
Relax Mode는 Dodo Payments billing feature가 아니라 application-level pattern입니다. Dodo Payments는 고객의 Fast GPU usage를 기록합니다. 사용자를 차단할지 더 느린 queue로 보낼지는 애플리케이션이 결정합니다.
사용되는 Dodo 주요 기능
Subscriptions
반복 billing 및 plan tier를 관리합니다.
Usage-Based Billing
실제 resource consumption을 기준으로 추적하고 billing합니다.
Event Ingestion
high-volume usage event를 Dodo Payments API로 전송합니다.
Meters
usage event의 aggregation 및 billing 방식을 정의합니다.
One-Time Payments
추가 시간 또는 top-up을 one-time purchase로 판매합니다.
Time Range Blueprint
duration 기반 helper로 GPU time tracking을 간소화합니다.