Media Credit Costs
Media Credit Costs
Section titled “Media Credit Costs”Base Costs
Section titled “Base Costs”Image, basic, and signature examples cost 1 base credit.
Carousel generations use CAROUSEL_CREDIT_PRICE.
Video generations use VIDEO_CREDIT_PRICE with duration thresholds. Long and extra-long durations use the configured multipliers and extra-long price constants.
Carousel Partial Refunds
Section titled “Carousel Partial Refunds”A carousel is priced for WorkflowCarouselItemCount panels (5). When fewer arrive (moderation blocks, or a sequential provider returning fewer):
- Fewer than
max(2, ceil(priced / 2)): the carousel fails and the full price is refunded. - Otherwise: the delivered panels are kept, and
min(ceil(Cost × undelivered / priced), Cost)whole credits are refunded as acarousel_partial_refundcredit event. Rounding favours the user. - The refund is taken off the carousel’s recorded spend (
spent_standard_credits/spent_full_access_credits). A later admin fail therefore refunds only what is left. - The refund never exceeds the recorded spend. A carousel with no recorded spend, such as one covered by the monthly media quota, consumed no credits and gets no partial refund.
- A carousel that arrives with all panels is charged in full, unchanged. It completes through the same guarded transaction as a short one and simply refunds nothing.
NSFW Multipliers
Section titled “NSFW Multipliers”NSFW examples and prompts use NSFW_CREDITS_MULTIPLIER. Image-to-video NSFW generation uses the image-to-video NSFW video multiplier where implemented.
Free Edits
Section titled “Free Edits”Free edits may reduce cost to zero for source edits. The price logic subtracts one NSFW-adjusted unit for free image edits and clamps at zero.
Source Paths
Section titled “Source Paths”- apps/brisket/src/utils/credits-price.ts