Programmable Media

How are transformations counted?

Last updated: Aug-28-2024

Your account's monthly pricing plan is in part dependent on the total number of transformations performed during a 30-day cycle.

Overview

Transformation counts are impacted by each processing of an asset. The majority of these occur when Cloudinary generates a new 'derived' resource from an asset based on a transformation URL (regardless of the complexity of the transformation).

Your pricing plan is also impacted by storage and bandwidth usage, not covered here.

Tips
  • Usage limits for uploading, transforming and delivering files depend on your Cloudinary plan. For details, check the Account tab in your Cloudinary Console Settings.
  • For additional information on how your overall account usage is calculated (including storage and bandwidth), see the Cloudinary Pricing page and this KB article.
  • You can set your email preferences to receive notifications regarding your account usage.

Transformation counting basics

  • Upload processing: The upload of each image and video asset (with or without an incoming transformation) counts as one transformation.

    If you re-upload (overwrite) an asset with the same public ID in the future, that upload is again counted as a transformation.

    Stored raw assets impact your storage quota, but are not counted as transformations.

  • Transformation complexity: The count for a single transformation URL is not impacted by the number of transformation parameters in the URL, or the number of transformation components if chained transformations are applied.
  • Multiple requests: Since transformations are counted when a new derived asset is generated, multiple requests to the identical transformation URL do not affect transformation counts.

    This includes URLs using Dynamic SEO suffixes, which are resolved on the CDN layer and thus do not increase transformation counts, even if multiple SEO suffixes are delivered with the same transformation URL.

Based on the above, most images that you deliver result in one transformation for the initial asset upload, and one transformation per image transformation URL delivered (or eagerly generated).

Note
Derived assets also count against your storage quota, but they are not backed up, so they don't impact backup storage.

Special transformation counts

The following features or operations address special transformation counting rules.

Tip
1 tx = 1 transformation count

Progressive videos

Feature h264
(tx/second)
h265/vp9
(tx/second)
AV1
(tx/second)
Derived SD videos 2 2 16
Derived HD videos 4 4 32
Derived 4K videos 8 8 64
Derived above 4K videos 120 120 960

Notes
  • The term progressive refers to video formats such as MP4 and WebM that do not support adaptive bitrate streaming. They are downloaded progressively so you can start watching them before they have fully downloaded.
  • Derived SD videos: output resolution of less than or equal to 921,600 total pixels, e.g. 1280 x 720
  • Derived HD videos: output resolution of more than 921,600 total pixels, and less than or equal to 2,073,600 total pixels, e.g. 1920 x 1080
  • Derived 4K videos: output resolution of more than 2,073,600 total pixels, and less than or equal to 8,294,400 total pixels, e.g. 3840 x 2160
  • Derived above 4K videos: output resolution of more than 8,294,400 total pixels
  • Parts of seconds are counted as one second. For example, 6.3 seconds is treated as 7 seconds.

Adaptive bitrate streaming

Automatic streaming profile selection (sp_auto)

Feature HLS/DASH - h264
(tx/second)
ABR streaming with sp_auto 8

Note

This is the count regardless of the streaming profile used or number of representations that are generated.

For details, see Automatic streaming profile selection.

Manual streaming profile selection

Profile HLS/DASH - h264
(tx/second)
HLS/DASH - h265
(tx/second)
DASH - vp9
(tx/second)
DASH - AV1
(tx/second)
4K 30 30 30 240
Full HD 14 14 14 112
Full HD WiFi/lean 8 8 8 64
HD 10 10 10 80
HD lean 6 6 6 48
SD 6 6 6 48

Note

For each streaming profile, several representations of the same video are generated, and all are counted against your transformation quota as per the progressive video guidelines.

For details, see Manual streaming profile selection.

Video AI

Feature All formats
(tx/second)
Video cropping with auto gravity 10
Dynamic video overlays 10
Video preview 2

Notes
  • These counts are in addition to the counts already mentioned for video.
  • If the result from the AI is already in cache then this count is not applicable. For example, if a transformation such as e_accelerate/ar_10,c_fill,g_auto:face,w_500 had already been applied to a video, then e_accelerate/ar_10,c_fill,g_auto:face,w_500/a_45 used on the same video would not incur the additional charge.
  • Video cropping with auto gravity is applicable to videos using g_auto, g_auto:face, g_auto:faces , and g_auto:<object>.
  • The count for video preview is based on the length of the input video (not the resulting preview).

Video Player seek thumbnails

Feature All formats
(tx)
Video Player seek thumbnails 1

Note
This count is in addition to the counts already mentioned for video and is due to the sprite that is automatically created containing the relevant thumbnails for the video.

Video Player AI highlights graph

Feature All formats
(tx/second)
Video Player AI highlights graph 2

Note
This count is in addition to the counts already mentioned for video and is due to the AI generated data used when first generating the graph.

Audio

Feature All formats
(tx/second)
Audio files 0.1

Note
This count is for audio-only files. There is no extra cost for audio tracks in videos.

Animated formats

Feature Count
Animated images (not AVIF) 1 tx + 0.1 tx/frame
Animated images converted to video 1 tx + 0.2 tx/frame

Note
The count is based on the number of frames of the transformed file.

Animated AVIF

Resolution Count
(tx/second)
Derived SD 16
Derived HD 32
Derived 4K 64
Derived above 4K 960

Notes
  • The count is based on the duration of the transformed file.
  • Derived SD: output resolution of less than or equal to 921,600 total pixels, e.g. 1280 x 720
  • Derived HD: output resolution of more than 921,600 total pixels, and less than or equal to 2,073,600 total pixels, e.g. 1920 x 1080
  • Derived 4K: output resolution of more than 2,073,600 total pixels, and less than or equal to 8,294,400 total pixels, e.g. 3840 x 2160
  • Derived above 4K: output resolution of more than 8,294,400 total pixels
  • Parts of seconds are counted as one second. For example, 6.3 seconds is treated as 7 seconds.

Multi-page image files

Feature Count
Multi-page image files 1 tx + 0.1 tx/page

Note
Multi-page image files includes all files with multiple 'pages' or 'layers', such as TIFF, PDF, and PSD files.

3D models

Feature Count (tx)
3D models 20

Note
This count is applicable to any new derived asset generated from a 3D model.

AVIF

Feature Count (tx)
AVIF < 2 MP 1
AVIF >= 2 MP 1 + 1 per 2 MP (or part thereof)

Notes
  • The transformation count for AVIF files, and other formats converted to AVIF, is based on the transformed (derived) image size.
  • Most web-based displayed images should be less than 2 MP (2 MP is, for example, 1600 × 1250 pixels), so should not incur extra transformation costs.

Effects with special counts

Feature Count (tx)
Enhance 100
Extract 75
Generative background replace 230
Generative fill 50
Generative recolor 50
Generative remove 50
Generative replace 120
Generative restore 100
Upscale 10:  input < 0.25 MP (e.g. 500 x 500)
100: input 0.25 - 4.2 MP (e.g. 2048 x 2048)

Note
Each use of these effects incurs a charge, even if used multiple times within the same transformation.

Fetched and remote social media profiles

Feature Count (tx)
Fetched images and remote social media profiles 1
Fetched videos Same as other video transformation counts

Notes
  • The count is applicable whether or not you apply transformation parameters in the delivery URL.
  • There isn't an additional upload count associated with fetched assets.

Custom functions

Feature Count (tx)
JavaScript filters (fn_select:js) 0.004 per ms of JavaScript execution time (max 2 for a single execution as each execution is limited to 500 ms)

Note
This count is in addition to the standard transformation count for images.

Additional considerations

URL changes

If two (or more) transformations generate an identical result, but the URL is different in any way, a separate transformed (derived) resource is created (and counted) when each of those transformations is requested.

Examples:

  • The transformations are in a different order (w_200,h_200 vs h_200,w_200)
  • You use a transformation that has no impact (for example, a_0)
  • The same file format is specified in different ways (for example, specifying f_jpg as a transformation parameter vs using the .jpg file extension).
  • No file extension is specified, when previously an extension has been specified, even if the same format is returned.

'Auto' transformations

Some 'auto' transformation parameters have the potential to generate multiple derived assets, depending on the browser, device, or viewing size being used when the URL is requested. Each time a new derived asset is generated, it counts as another transformation.

  • Automatic format selection delivers images and videos in the optimal format for the requesting browser, so if a transformation URL including f_auto is requested on different types of browsers, that same URL may result in multiple derived assets in different formats.
  • Automatic pixel density detection automatically delivers an image using the best DPR for the requesting device. So the single URL may, for example, result in two derived images, one using dpr_1, and one using dpr_2.
  • Automatic width selection automatically resizes the image to match the width available for the image in the responsive layout. When you use this parameter, the number of potential derived images depends on the screen or viewport size of the requesting devices and the breakpoints you set. Using this parameter might sometimes result in only two or three different derived images, or in other cases, may result in 20 or more images.

Placeholder images

Placeholder images are used when the requested base image doesn't exist. In that case, if transformations are applied to the placeholder image, and the relevant derived image doesn't already exist, it is generated and counted as a transformation.

Auto-upload

Auto-upload is much like uploading any other file, except that the upload occurs 'lazily' when the URL is first requested.

Thus at the time of the first request, the initial upload counts as a single transformation.

If the auto-upload URL also includes transformations, a derived asset is generated in addition to the uploaded file, resulting in the relevant transformation counts as described in this page.

Eager transformations

You may intentionally generate some 'derived' assets in advance using eager transformations so that they'll be immediately available upon request.

One or more eager transformations can be performed either when uploading an asset (in the upload API method, or through an upload preset), or by using the explicit API method.

Eager transformations are counted identically to on-the-fly transformations. The only difference is that eager transformations are counted when requested via the API call, while on-the-fly transformations are counted when the transformation URL is requested for delivery for the first time.

Console asset editor

When you use the Asset Editor in the Cloudinary Console to experiment with transformations, a new derived asset is generated each time you refresh the preview.

Transformation Builder

When you use the Transformation Builder to preview an image or video with transformations applied, you are not charged for these transformations unless you open the result in a separate browser tab.

Media library operations that delete derived assets

Certain changes to assets via the Media Library, delete any derived assets that specifically depend on those values, and new derived assets are generated when a transformation URL on that asset is requested.

For example, adding/modifying tags may result in regeneration of a conditional transformation with a text overlay that's based on a tag value.

API operations that delete derived assets

Certain Upload API and Admin API operations that change or replace the original asset result in all stored derived assets for that asset being deleted. This means that the next time a corresponding transformation URL is requested, a new derived asset is generated based on the updated asset.

Methods that cause this behavior include: upload, explicit, tags, context, update, delete.

Asset analysis operations on 'Explicit'

When you include parameters that perform special media processing or analyses on existing assets, and return the data in the response as part of an Explicit method call, this extra analysis operation is counted as a transformation.

Specifically, when you run an Explicit method call that includes one or more of the following parameters, that request is counted as a transformation:

  • media_metadata(or image_metadata or exif (deprecated) )
  • phash
  • colors
  • faces
  • pages
  • illustration_score
  • quality_analysis
  • accessibility_analysis
  • cinemagraph_analysis

Add-ons

When using add-ons that are triggered by transformation parameters, then an add-on transformation count is used in addition to the normal transformation count for the derived asset.

✔️ Feedback sent!

Rate this page: